This page hosts files or links for projects that I have done. All code/software posted here is free to use and modify/upgrade as long as you give credit for where the code came from and report your upgrades back to this page. I am a strong believer in open source software and hardware and I encourage you to contribute.


  1. […] blocks to allow you to use the RS485 functionality on the NXT. You can find those files here: [LINK].  Note that you will need to use the enhanced firmware to use these […]

  2. […] blocks to allow you to use the RS485 functionality on the NXT. You can find those files here: [LINK].  Note that you will need to use the enhanced firmware to use these […]

  3. Mathias Creyf says:

    First of all: thank you for sharing! I just encountered one problem with the RS485 VI for labview: I use an XbeePro to send a 1Darray to the NXTBeePro, only the NXTBeePro (using the Read data from RS485 VI) can’t read negative values (for example: sending a value of -4,6 is read as 0, where 4,6 is read correctly as 4,6). I solved this by sending the absolute value and the state (+ or -, by sending 1 or 0) separately. This negatively impacts performance. I went over the VI, but can’t seem to find the problem, since I’m pretty new to labview. Any thoughts would be greatly appreciated.

    • 08milluz says:


      The block is built on unsigned data types. This makes it easier to share strings. All values are converted to an unsigned byte array and then sent. You could try explicitly stating the conversion to unsigned and then back on the other side. That will have less of a performance hit. Another solution (if you know your data is in a specific range) is to add an offset to it. Again that would be less of a performance hit. The xbee pro vs regular would make no difference in this case.

      Hope that helps!


      • Mathias Creyf says:

        Hello Andy,
        Thanks for the tip!

      • Mathias Creyf says:

        Hi Andy,

        I’m having some problems with two-way communication using the Xbee VI’s (RS485 2.0):
        I’m sending a 1D array with 14 values via a VISA Write from my computer to my NXT.
        This works fine.
        The problems start when I try to send a 1D array with 2 values (for now) back with the “Write Data” VI.
        On the pc, I use a “property node: bytes at port”, to determine the number of bytes to send to the VISA Read VI.
        Problem is that the “Return Count” for both the VISA Write and VISA Read show “0” (iso 14 and 2).
        When they do show 14 and 2, the received data on the NXT and computer are corrupted.
        Any thoughts?
        If you want I can email you my VI’s. Just email me at “” with your emailadress and I’ll send them to you.

        Any help would be greatly appreciated 🙂

        Mathias Creyf
        Aeronautical Engineering student

  4. Steve says:


    New to LabView so I have a couple of questions about the RS485 VIs. Is there a way to set a specific baud rate? Do the numbers in the Set Speed VI correspond to specific baud rate. I’m sending data less than 1m.

    Also, does the NXT firmware upgrade change any other functionality of the NXT?



    • 08milluz says:


      Sorry for the slow reply, just saw the comment. The speeds can change, only on the enhanced firmware. The enhanced firmware does not change operation, but it does fix a few bugs. I will make a post with the speed values. 🙂


  5. […] You can also find some software on his website for using the NXTBee’s and LVLM.  While RS485 communications are not officially supported in Labview for LEGO MINDSTORMS, he has some great downloads that work very well with the NXTBee. […]

  6. Jack Lu says:

    thank you for sharing!
    My English is not good, maybe you can not fully understand my description, but I still want to talk to you!
    I use “NXT-G RS485 BLOCK” when communicating with ARDUINO found “BLOCK” unable to communicate properly with the ARDUINO.
    But when I use NXC, it can be a very good and ARDUINO communicate!
    So, I would like to ask you, how can RS485 BLOCK AND ARDUINO for high-speed communications.

    (in the “ARDUION MEGA2560” ,I have already added a MAX485 for level conversion.)

    Hope to get your reply!

  7. […] Downloads […]

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s