I2C access in NXT-G

Hello All,
I have been using labview since version 4, and I am very excited about the NXT platform from NI and Lego.  Being more on the software side of things, embedded programming has always been intimidating.  Yet, with tne NXT platform, one can deploy embedded applications with relative ease.
Of the NXT-G improvements, I am most interested in a I2C block for the NXT programming enviroment.  This will allow anyone to dangle custom hardware at the input ports.  I can see tremendous utility for such a function.
Is there a way for one to access the I2C in the NXT-G enviroment?  For example, to dangle a PCF5274 chip for I2C IO expansion (8bit)?  What are your thoughts?
Larry

Hi Larry, with teh new LabVIEW toolkit for NXT you can access to the I2C Bus.
You can find documentations here http://ftp.ni.com/evaluation/mindstorms/LabVIEW_for_NXT_Advanced_Programming_Guide.pdf
Here a simple experiment for how to adding some I\O to NXT and control it via I2C
Enjoy!
Ciao,
Alessandro Ricco
ILVG.it - Italian LabVIEW user Group, ADMIN & LabVIEW Champion

Similar Messages

  • I2c ServoModule for NXT

    Hallo all,
    i'm new in programming with Labview and tried to make a Block for my Servocontroller. I assambled a I2C Servo Module to control up to 8 Servos from the NXT. The Module is about 19 mm to 43 mm and after removing the Progadapter it will be smaller. It works with an AVR
    Mega8 Processor and the software for the AVR is under GNU lisence.
    Because i'm new please have look to my block if something could be made better ? Or if there are some Errors.
    many thanks for your help.
    kind regards
    Harald
    Attachments:
    servo_i2c.zip ‏316 KB

    I took a quick look through the code and I think this block actually looks pretty good. There isn't anything I would've coded differently in the implementation VIs. The Configuration UI looks good from a functional perspective (all the values stuck between clicks on the Block, things grey out properly, etc). The Draw values all seemed to update properly on the block too. I'm glad that, even though you were new to LabVIEW, you've been able to be successful developing blocks for MINDSTORMS NXT.
    Two small comments:
    I had to rename the folder within your zip file from "IIC Servo_Block" to just "IIC Servo". The Block Import/Export Wizard follows strict naming conventions and will not recognize your block unless the folder has the same name as your implementation VI.
    You might consider renaming "WriteSensor.vi" to something a little more specific to your block, like "IIC Servo_WriteSensor.vi". The reason being that LabVIEW/Mindstorms can't have two VIs of the same name in memory, so if some other 3rd party block developer has a WriteSensor.vi and a user has both blocks installed, one of the blocks will most likely be broken.
    I haven't run the block at all to see if it really works, but it looks like it should. Good work!
    Brady Duggan
    LEGO MINDSTORMS team
    National Instruments

  • I2C NXT block modifications / new block supporting RS485 interface port 4

    Hello
    1. Has anyone tried to modify the published I2C  read and write NXT blocks so that they can support the full 16 byte buffers available in the NXT firmware.  Many I2C interface applications require more than reading or writing one byte at a time.
    Even the Ultrasonic sensor has some multi byte parameters that could be accessed.
    It would appear that one only has to provide access to the buffer element contained within the lower level VI's in the current solution, but being a newbie   i have not been able to successfully make these buffers available on the main front panel.
    2. Has anyone created a NXT block that allows access to the RS485  port 4 hardware.  I see that no one had responded to an earlier post concerning this solution. I have seen  example  NXC code,  but i was looking for an NXT block implementation.
    3. Is there a tutorial that explains technique's for developing and debugging a NXT block for use on the NXT ?
    I have read thru the pdf  tech docs and have followed the examples, but i still find it difficult to understand how one goes about createing, testing, debugging the application before creating a block for the NXT.
    I am obviously missing some important points about Labview development for NXT.  I have a lot of experience developing embedded applications with C, but this is the first time i have tried to do anything with Labview especially with the Lego NXT as the Target device.
    I want to create NXT blocks for some homebrew sensors that i have created. I need full access to the I2C and RS485 support in the NXT.
    Can anyone suggest ways one should go about createing, debugging, this type of sensor interface block for the NXT.
    Thanks
    KC

    Yes: there are so many questions in your post that it is difficult to build an answer...
    I surely can not help you with the problem of multiple bytes.
    This is an answer to your question about rs485 in NXT-G:
    http://forums.nxtasy.org/index.php?s=&showtopic=1676&view=findpost&p=13530
    I don't know if you have already studied the i2c-related pages in:
    http://www.tau.ac.il/~stoledo/lego/
    this too is an example which can be study both for i2c interfacing and NXT-G block preparation:
    http://www.extremenxt.com/tda8444.html
    finally the block from mindsensors' PCF8574-NX kit could be useful (I mean: look at the vi's):
    http://www.mindsensors.com/index.php?module=documents&JAS_DocumentManager_op=viewDocument&JAS_Document_id=37
    and maybe among the blocks they've prepared for their sensors:
    http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=45&MMN_position=12:12
    you could learn something.
    I agree with you that the tutorial about building NXT-G blocks with Labview is too short;
    some lessons can be learnt from the NXT-G blocks done by others (spying the vi's they wrote): you find many of them in nxtasy.org repository.
    Some advanced techniques are reported in
    http://nxtasy.org/2007/04/12/advanced-nxt-g-block-techniques-part-iv/
    and other pages of nxtasy.org.

  • Best way to chain several I2C write / read cycles

    Hi,
    I'm developing a custom sensor that communicates over I2C with the NXT.
    I need to perform sequencially several read / write actions over I2C.
    I know that the NXT toolkit is limited to only one frame sequences and that is possible to chain them with "pink NXT wires" or "any other wire".
    I've tried several times but I only get the first frame working. The other aren't executed.
    Does anyone here has enough experience or advices to perform several I2C operations sequencially in the same VI.
    Many thanks in advance.

    What version of LabVIEW / NXT Module are you using?
    The most recent LVLM supports multi-frame stacked sequences.
    Take a look at the ultrasonic sensor block diagram, it has a configure step followed by actually reading the data.
    One problem can be trying to read/write the i2c channel too fast. You may need to insert some arbitrary wait times in between sequential i2c calls.
    If you post your code it might be easier to tell whats not working.

  • Why does LabVIEW for Lego Mindstorms have 2 Functions Palettes?

    LabVIEW for Lego Mindstorms has 2 separate Functions Palettes.  One of them appears when one creates a VI (.vi) for a Project (.lvrbt), and it appears to contain Mindstorms NXT functions.  The other appears when one creates a stand alone VI (.vi), and it contains functions which are labelled "NXT Robotics" but which appear to be the old Mindstorms RCX functions.  For example, the Motor Functions have no Speed or Duration controls.  (See Control Palette pictures on the attached Word document.)  (NI should be aware that the RCX is no longer sold or supported by Lego.)
    If I only want to create a stand-alone VI, how do I access mature NXT functions with which to implement that VI?
    Attachments:
    NI LabVIEW Function Palettes.doc ‏127 KB

    I knew that the NXT could be controlled from a "remote" device (e.g. cell phone), though perhaps "remote" is a poor choice of words given your use of the word "direct" which, as you use it, has the same connotation.  I have never run the NXT in the direct mode, nor have any of my team members.  The reason I assumed that you had included RCX functions was RCX functions had fewer properties than NXT functions just like your "direct" functions do.  I have no idea where the "dual mode" functions are to be found.
    I think LVLM has inadequate introductory documentation.I have Gasperi's book, but like NXT-G books, he only gives recipes for robots with different functionalities.  LVLM needs a better structural and functional description.
    Lego Education is not supporting LVLM (nore is NI, for that matter, at least not very well...it was a lot of work to get to someone who knew what they were talking about).  The guys at Lego Education are not in a position to support LVLM.  Your guys also asked me to call "Tom Barrowman," Lego's New England sales rep.  I didn't call him, but I am betting that he knows even less.
    I understand why NI doesn't want to put the support bucks into LVLM.  The license for LV cost $2500/year, and I bought LVLM for $100.  LVLM was intended to be an introductory product for people (kids) who might become NI customers someday, but if those kids walk off in disgust because they can't figure out how to use LVLM, NI's investment in it will have been for nothing.
    Attachments:
    For Ethan.doc ‏66 KB

  • Accessing I2C From Java

    Has anyone had any experience accessing I2C devices using Java. I am currently running a J2ME CVM on arm-linux and I have the device file /dev/i2c-0. I have run a few supplied test programs which scan the bus and show me that the devices are operational. But now I need to be able to write and read using Java.
    Thanks

    Since you need to use a bunch of different IOCTLS with this device, it seems that a JNI adaptor would be in order.

  • RMI access denied ERROR

    I got the following problem.
    My Server code is a simple RMI Server. I've also made a new policy
    grant {
      permission java.security.AllPermission;
    };And give the following run commands: -Djava.security.policy=/home/nxt/java/SimpleRMI.policy
    I did the same for the client:
    Only with a different run command:
    -Djava.rmi.server.codebase=file:/home/rawi/Desktop/Server/build/classes/server
    -Djava.security.policy=/home/rawi/Desktop/Server/build/classes/server/SimpleRMI.policy
    When I remove this from my code:
    if (System.getSecurityManager() == null)
    System.setSecurityManager (new RMISecurityManager());
    The data does arrive on de Server, but the client gives me the following error:
    java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
    java.lang.ClassNotFoundException: ReceiveMethods (no security manager: RMI class loader disabled)
    But when I put this back,I got the error code;
    Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 145.24.159.188:6666 connect,resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    Anyone any idea?
    client code
    import java.rmi.*;
    import java.rmi.registry.*;
    public class Client {
        static public void main(String args[]) {
            ReceiveMethods rmiServer;
            Registry registry;
            String serverAddress = "145.24.159.188";
            String serverPort = "6666";
            String text = "testing";
            System.out.println("sending " + text + " to " + serverAddress + ":" + serverPort);
            if (System.getSecurityManager() == null)
            System.setSecurityManager   (new RMISecurityManager());
            try {
                // get the “registry”
                   System.out.println("Maak registry code aan");
                registry = LocateRegistry.getRegistry(serverAddress,
                        (new Integer(serverPort)).intValue());
                // look up the remote object
                System.out.println("We gaan de registry opzoeken");
               rmiServer = (ReceiveMethods) (registry.lookup("Server"));
                // call the remote method
                     System.out.println("We gaan de methode's uitvoeren");
                rmiServer.Links();
                rmiServer.Rechts();
            //2e methode
            } catch (RemoteException e) {
        System.out.println("RemoteException Failure 1:" );
                e.printStackTrace();
            } catch (NotBoundException e) {
                System.out.println("NotBoundException Failure 2:" );
                e.printStackTrace();
    }Server code:
    import java.rmi.*;
    import java.rmi.registry.*;
    import java.net.*;
    //import server.ReceiveMethods;
    public class Server extends java.rmi.server.UnicastRemoteObject
            implements ReceiveMethods, Runnable
        int thisPort;
        String thisAddress;
        Registry registry;    // rmi registry for lookup the remote objects.
        DataExchange DE;
        Pilot P;
         public void run()
              System.out.println("Run methode van Server");
              try {
                   KomMaar();
              catch (Exception e)
                   System.out.println("Things went Wrong" +e);
        public Server(DataExchange DE, Pilot P) throws RemoteException  {
          private void KomMaar() throws RemoteException {
             System.out.println("KomMaaar Methode komt");       
         if (System.getSecurityManager() == null)
                System.setSecurityManager   (new RMISecurityManager());
         try {
                // get the address of this host.
                thisAddress = (InetAddress.getLocalHost()).toString();
            } catch (Exception e) {
                throw new RemoteException("can't get inet address.");
            thisPort = 6666;  // this port(registry’s port)
            System.out.println("this address=" + thisAddress + ",port=" + thisPort);
            try {
                // create the registry and bind the name and object.
                registry = LocateRegistry.createRegistry(thisPort);
         System.out.println("rmiServer wordt gebind");
                registry.rebind("Server", this);
            } catch (RemoteException e) {
                throw e;
        public void Links() {
         System.out.println("Methode links wordt uitgevoerd");
        Action move = new Action(1);
        Thread links = new Thread(move);
        links.start();
        public void Rechts() {
         System.out.println("Methode Rechs wordt uitgevoerd");
        Action move = new Action(2);
        Thread rechts = new Thread(move);
        rechts.start();
    }Edited by: hansteeuwen on Oct 13, 2009 12:09 PM

    I did the same for the client:
    Only with a different run command:
    -Djava.rmi.server.codebase=file:/home/rawi/Desktop/Server/build/classes/server Codebase is specified at the server only, unless the client is exporting remote objects of its own (i.e. callbacks).
    Also that codebase specification would be wrong anyway - it should stop at 'classes', assuming 'server' is a package.
    Finally, if you are using the codebase feature you must have a security manager in the client, as the exception is telling you.
    Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 145.24.159.188:6666 connect,resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)So your client isn't seeing your .policy file. Run it with -Djava.security.debug=access,failure to check that. There's somethign wrong with the way you've specified the policy file.
    registry = LocateRegistry.getRegistry(serverAddress,
    (new Integer(serverPort)).intValue());Why are you holding the serverPort as a string in the first place?
    Server code:
         public void run()Why does the server have a run() method? That's not usual. Just put all that stuff into the constructor.

  • LV NXT toolkit 2.0 for mac

    On the toolkit downloads page, the NXT 2.0 toolkit is for windows only.
    However, there is Mindstorms NXT 2.0 for both operating systems.
    I was wondering what might cause this discrepancy.  Has NI simply not built this installer for mac, or are there some DLLs that aren't available?
    From what I've heard, there's two differences between the two:
    i2c color sensor
    AND
    floating point handling. 
    Marshal Horn

    Hello,
    I would recommend having a look at KB21320-BlackBerry Desktop Manager does not detect a BlackBerry smartphone that is connected to a Mac computer when Open using Rosetta is enabled http://bbry.lv/fKWdBZ
    Thank you
    -DrP
    Come follow your BlackBerry Technical Team on Twitter! @BlackBerryHelp
    Be sure to click Kudos! for those who have helped you.
    Click Solution? for posts that have solved your issue(s)!

  • I2C Write/Read Error

    Error -301742 occurred at NI-845x I2C Write Read.vi
    "Possible reason(s):NI-845x:  The slave did not acknowledge an address+direction byte transmitted by the I2C master. Reasons include the incorrect address set in the I2C configuration or the incorrect use of the 7-bit address. When entering an address to access a 7-bit device, do not include the direction bit. The NI-845x Basic I2C API internally sets the direction bit to the correct value, depending on the function (write or read). If your datasheet specfies the 7-bit device address as a byte, discard the direction bit (bit 0) and right-shift the byte value by one to create the 7-bit address."
    We have connected the pull up resistors on the SDA and SCL line.
    The error seems to be strange in our case,
    We have two setup
    1. Using a push button to power the device and wires through the pull up resistor.
    2. We are trying to communicate using a NI 2569 for the SDA and SLC and the Power supply to the device.
    We do not observe the error in case 1,however, in case 2 we do observe,attached are the waveform pics for the same.
    Noted that we have the clock signal rise delay in case 2, is this because of the relay 2569?
    Any help will be highly appreciated.
    Regards,
    Naru 
    Attachments:
    Case 1.jpg ‏302 KB
    Case 2.jpg ‏302 KB

    I don't quite understand your setup, and I'm not sure what I'm looking at with the figures you posted. What does the 2569 have to do with the 8451? You also said
    1. Using a push button to power the device and wires through the pull up resistor.
    I have no idea what this means.
    It's hard to tell from the pictures, but for the Case 1 figure, it appears that you are generating a correct start condition. It's also indicating that are sending a read transaction. You didn't indicate what device you're talking to, so we can't say for sure if this is correct. 
    In the second case it also appears that you generating a correct start condition. The slow rise times that you are seeing in the clock is probably due to extra capacitance on the bus, or weak pullups, or both. This transaction appears to be a write transaction, but with no data.
    At this point, without knowing what device you're talking to, a better explanation of your setup, and the code itself, I'm not sure how much help we can be. 

  • Why do "official" NXT blocks have to be password protected?

    Like everyone, I'm new to building NXT blocks with LabVIEW.  The projects we had in mind when we got LabVIEW were to combine and modify existing NXT-G blocks to make them more suitable for our purposes.  However, the first thing I learned was that the block diagrams to all of the existing blocks are password protected.  Therefore, instead of being able to take the easy approach of modify the work that has already been done, we have to start from scratch.  Does anyone know why NI won't let the public have access to the block diagrams?

    Hi Eagles Coach,
    The existing NXT blocks contain several different VIs with proprietary software. Like any other software company, it is in National Instruments' best interest to protect the original source code the NXT software was built upon.
    So, rather than leaving eager programmers such as yourself in the dark we created an NXT Toolkit which provides all NXT VIs not deemed proprietary. You have the means to create your own blocks while National Instruments keeps important software practices internal.
    If you're looking for examples so you don't have to start from scratch, simply peruse the examples included with the Toolkit! C:\Program Files\National Instruments\LabVIEW 7.1\examples\NXTToolkit contains several relevant examples for just about any application, and if you hit any bumps just post to the discussion forum.
    Cheers.
    | Michael K | Project Manager | LabVIEW R&D | National Instruments |

  • NI LabVIEW 2009 LEGO MINDSTORMS NXT Module Released!

    This software allows users to run code on their computers to control LEGO® NXT Bricks and compile, download, and run LabVIEW code directly to the NXT.  The new NXT Module 2009 represents a considerable improvement in features and usability over past versions.
    Totally redesigned APIs
    Full access to LabVIEW debugging tools
    Control NXT bricks either by running code in LabVIEW or compiling and deploying code to the NXT brick
    VIs for TETRIX kits are available out of the box
    Support for all LEGO® MINDSTORMS NXT 2.0 sensors.
    NXT Applications  Data Viewer, Piano Player, NXT Multimeter, Remote Control, and Scope
    The module can be downloaded here. 
    Please feel free to ask questions and provide feedback to NI R&D.
    Thanks,
    Mark
    Product Support Engineer - LabVIEW R&D
    Mark
    LabVIEW R&D

    Nice! But I guess that doesn't mean that you will be releasing a free version any time soon... does it. 
    Oh! BTW (slightly off topic) you should remove the "Select Your Operating System" block on the Student edition cd order form. It just gets peoples hopes up that they might get a mac version. 
    Andrew 
    Message Edited by AndrewDudney on 10-22-2009 10:27 PM

  • Usb-8451 i2c developement

    Generated a simple program to talk to i2c on NSE5310 using usb-8451.  I get the following error.
    Error -301742 occurred at NI-845x I2C Write Read.vi:1
    Possible reason(s):
    NI-845x:  The slave did not acknowledge an address+direction byte transmitted by the I2C master. Reasons include the incorrect address set in the I2C configuration or the incorrect use of the 7-bit address. When entering an address to access a 7-bit device, do not include the direction bit. The NI-845x Basic I2C API internally sets the direction bit to the correct value, depending on the function (write or read). If your datasheet specfies the 7-bit device address as a byte, discard the direction bit (bit 0) and right-shift the byte value by one to create the 7-bit address.
    I do have pullup resistors of 1.5k on both SDA and SCL.  I've attached the data sheet for the device and a sample program. 
    THANKS FOR YOUR TIME.   Happy Holidays.............................
    Attachments:
    NI-8451 Testing ver2.vi ‏13 KB
    NSE-5310_Datasheet_v1_0.pdf ‏1569 KB

    You are providing the wrong address. As the error message says, you must provide the 7-bit address, excluding the read/write bit. . You are providing the full value of the first byte, including the read/write bit. In other words, you are doing the exact opposite of what the error message tells you to do. If you've set the user-bits to 0 then the correct address is 0x40.
    Side-note: When you set a front panel numeric control to hex display you should also display the radix so that others know that it refers to "81" hex, and not "81" decimal, which are two different values.

  • I2C with ARM embedded receiving incorrect data

    Hi together
    For a schools project, which I must finish until next week, I need to read out a DS1307 RealTimeClock via I2C.
    I am using a LM3S8962.
    I have tried to communicate via the NI USB-8451 module, which worked just fine.
    Now I only need to read out the Data from the DS1307 and I used the ARM embedded I2C VIs. I receive some data, but the Data is not correct (for example it shows a value of 70 in the seconds-register which is not possible).
    I've tried a lot of things but I couldn't get it to work properly.
    Attached a screenshot of how I implemented the reading of I2C. What am I doing wrong? I have really to get this working otherwise I can't finish my project and this would unfortunately result in a bad mark I hope someone can help me.
    Regards from Switzerland
    Dominic
    Solved!
    Go to Solution.
    Attachments:
    i2c_problem.JPG ‏46 KB

    Hi doh,
    are you sure you are reading from the right register? 
    According to this datasheet: DS1307.pdf , 
    if you want to access the seconds register it would be Adress 0 (Hex-Value-0), in your screenshot its 68 decimal. You can change the representation of your constant which is connected to the Adress terminal of your Create Configuration Reference VI. Just right click your constant -> visible object -> Radix. After that you can change the representation to x (HEX).
    Additionally when you read the 7 bits which are casted to 8 bit unsigned you have to notice that the 7 bits are encoded as BCD code.
    So consider your example reading the value 70: 70 in binary means: 100110 with the most significant bit on the left side and the least significant bit on the right side. Now when you split the values according to the seconds in the datasheets table:
    | 0 | 1 0 0 | 0 1 1 0  
    Then you will see, that 70 as U8 value has : 0110 = 6 (last 4 bits) and 100 (middle 3 bits) = 4, which means, that your actual value is not 70, but 46.
    So I would guess, you have to convert the U8 value to an Boolean array, split the bits according to the Table mentioned in the manual and then convert them to the proper time.
    Hope this helps, if you have further questions just post.
    With best Regards,
    Lam

  • Unable to access storage 2530

    Hi Friends,
    After did a factory reset of my 2530 storage i am unable to access now even controller IP's are not pinging. I tried via serial but terminal does not accepting the break signal .
    Controller boot messg;
    ú
    -=<###>=-
    Attaching interface lo0... done
    Adding 9766 symbols for standalone.
    Error
    06/26/13-09:18:34 (GMT) (tRootTask): NOTE:  I2C transaction returned 0x0423fe00
    Reset, Power-Up Diagnostics - Loop 1 of 1
    3600 Processor DRAM
         01 Data lines                                                  Passed
         02 Address lines                                               Passed
    3300 NVSRAM
         01 Data lines                                                  Passed
    5900 Ethernet 91c111 #1
         01 Register read                                               Passed
         02 Register test                                               Passed
    3A00 NAND Flash
         06 Bad Blocks Test                                             Passed
    2310 Application Accelerator Unit
         01 AAU Register Test                                           Passed
    6D00 LSI SAS 1068 IOC--Base Board
         01 IOC Register Read Test                                      Passed
         02 IOC Register Address Lines Test                             Passed
         03 IOC Register Data Lines Test                                Passed
    6D01 LSI SAS 1068 IOC--Host Card
         01 IOC Register Read Test                                      Passed
         02 IOC Register Address Lines Test                             Passed
         03 IOC Register Data Lines Test                                Passed
    3900 Real-Time Clock
         01 RT Clock Tick                                               Passed
    Diagnostic Manager exited normally.
    Current date: 06/26/13  time: 09:06:41
    Send <BREAK> for Service Interface or baud rate change
    06/26/13-09:18:51 (GMT) (tRAID): NOTE:  Set Powerup State
    06/26/13-09:18:51 (GMT) (tRAID): NOTE:  SOD Sequence is Normal, 0
    06/26/13-09:18:52 (GMT) (tRAID): NOTE:  SYMBOL: SYMbolAPI registered.
    06/26/13-09:18:53 (GMT) (tRAID): NOTE:  lost persistent dq data because buffer was modified or size changed.
    06/26/13-09:18:57 (GMT) (tRAID): NOTE:  Initiating Drive channel: ioc:0 bringup
    06/26/13-09:19:00 (GMT) (tRAID): NOTE:  IOC Firmware Version: 00-24-64-00
    06/26/13-09:19:03 (GMT) (tNetCfgInit): NOTE:  Network Ready
    06/26/13-09:19:09 (GMT) (tSasEvtWkr): NOTE:  sasIocPhyUp: chan:0 phy:0 prevNumActivePhys:2 numActivePhys:2
    06/26/13-09:19:10 (GMT) (tSasEvtWkr): NOTE:  sasIocPhyUp: chan:0 phy:1 prevNumActivePhys:2 numActivePhys:2
    06/26/13-09:19:10 (GMT) (tSasEvtWkr): NOTE:  sasIocPhyUp: chan:1 phy:2 prevNumActivePhys:2 numActivePhys:2
    06/26/13-09:19:10 (GMT) (tSasEvtWkr): NOTE:  sasIocPhyUp: chan:1 phy:3 prevNumActivePhys:2 numActivePhys:2
    06/26/13-09:19:10 (GMT) (tSasCfg011): NOTE:  Alt Controller path up - chan:0 phy:18 itn:1
    06/26/13-09:19:10 (GMT) (tSasCfg019): NOTE:  Alt Controller path up - chan:1 phy:16 itn:2
      We dont have oracle support for this, please help to resolve.
    Thanks
    Bharathiraja

    This may be a bit late as a reply but just for sake of learning,   the messages shown are just boot up sequence,   including the "NOTE: I2C transaction ..." message which are all part of the boot up diagnostics,   that's not indicative of a problem or cause of problem.
    The fact that you have tried the same serial port connection on another array and worked,  then the only logical conclusion is that the problem 2530 has a faulty controller, whether the serial port is faulty or a larger problem with the controller itself, or a firmware lockup.
    Physically inspecting the controller's 7-segment display after boot up would provide a clue on the state of the array, if it is not showing a solid tray no. as per normal operation,  then the display is showing a diagnostic code.
    At some point in time,  Support Services will be needed to either diagnose (interpret the 7-segment display or further data collection) or to fix (some invasive procedure through debug interface or replace controller).

  • NXT Flatten to String Not Working with Clusters and Arrays

    Hello,
    My name is Joshua and I am from the FIRST Tech Challenge Team 4318, Green Machine. We are trying to write a program that will write to a configuration file and read it back. The idea is that we will be able to write to a config file from our computer that will be read by our autonomous program when it runs. This will define what the autonomous program does.
    The easiest way to do this seems to be flattening a data structure to a string, saving it to a file, and then reading back and unflattening it. The issue is that the flatten to string and unflatten from string VIs don't seem to work with arrays and clusters on the NXT. It does work when running on the computer. We've tried arrays, clusters, clusters in arrays and arrays in clusters, none seem to work. Thinking it was something to do with reading the string from a file, we tried bypassing the file functionality, still not working. It does work with basic data types though, such as strings and numbers.
    No error is thrown from what we can tell. All you get is a blank data structure out of the unflatten VI.
    The program attached is a test program I've been working on to get this functionality to work. It will display the hex content of what is going into the file, coming out of the file, and then the resulting data from the unflatten string, as well as any errors that have been thrown. The data type we are using simulates what we would like to store. There is also a file length in and out counter. The out file is a little larger because the NXT write file VI adds a new line character on to the end (thus the use of the strip white space VI). This character was corrupting even basic data types saved to file.
    I would like to know if there is a problem with what we are doing, or if it is simply not possible to flatten arrays on the NXT. Please ask if you have any questions about the code. Thank you in advanced!
    Joshua
    Attachments:
    ReadableTest.vi ‏20 KB

    Hi jfireball,
    This is a very interesting situation. Take a look at what kbbersch said. I also urge you to post in the FTC Forums. You posted your question to the general LabVIEW forums, but by posting to the FTC Forums, you will have access to others that are using the NXT hardware.
    David B.
    Applications Engineer
    National Instruments

Maybe you are looking for

  • Lost mail messages from inbox and drafts

    I have lost all my previous inbox messages and drafts after resetting my account in Mail Preferences after a server problem. Is it because I may have renamed my account? I can't remember what I called my POP account before. How do I recover my inbox

  • Help with Background Color

    Posting this for a second time - If I change the background color of my document, I can't see it, nor can I see the different fill colors of any symbols I add to Scene 1. The colors show fine when I run the movie. It is using the outline color to dis

  • JClient Find Mode question

    I have an application where I want to give the user the option of which columns to search for a user-given key. Everything works except that the find mode ANDs the results from the selected columns, so if I'm searching for a number string that appear

  • Hyper links in e mail are invisible

    In some E mail it will have links and there invisible I can can still open them I just right click " Select all " and they will be seen

  • Yen currency: DB connect

    we are extracting data from R3 and other databases using DB connect. data extracted via DB using Yen currency  multiplies the result by 100. Transactions extracted from R3 using Yen currency are displayed correctly. checked the currency settings/ tab