Lego Mindstorms NXT Segway

The other night I was researching building a balancing Segway like robot with the Lego Mindstorms NXT kit. I wanted a robot that could balance on two wheels and could move forward and backward. I also wanted the robot to recover when “pushed”.

I was familiar with Steve Hassenplug’s Legway built on the Lego RCX platform, but I wanted to tackle the challenge with the NXT. Luckily, I found Philo Hurbain’s NXTWay. I was intrigued enough to build a copy and try out the programming.

It is quite hard to get the balance right and in the end I created a very aggressive robot that I can push around and it will mostly right itself. Here is the video of the final creation.

Next Post

Previous Post


  1. Marek January 14, 2007

    Hi Rich,

    very impressive NXTWay. Me and my son, we want to give it a shot as well and I was wondering if you could share with us your NXT-G code so we get some ideas how the balancing portion needs to work.



  2. Dev January 19, 2007

    Nice!!! 🙂

  3. Rich January 19, 2007

    I pretty much modified the code from Philo’s website listed above. Modify the “scale” parameter to get some of those effects.

  4. swissboy February 4, 2007

    your bot is very nice. i have some problem with the program from Philo. could you give me the programm for the nxt??

    and sorry for my bad english, but i speak normaly german

  5. Pete February 4, 2007

    Very cool what you did! I played around with the scale, but wasn’ able to do anything you did. Could you post your scale and PID values(KD, KI, KD) and potentially other params you edited?
    Also: were you able to place counterweights so that your NXTway balance standing fully upright?
    Any hints would be great – thanks!!!

  6. joe February 5, 2007

    i think all you did ws to sewt the light sensor value when it was at x it was vertical, when it was lesss it went forward to correct it self, when greater it went backwards to correct its self. and by adding a second sensor would prob make it easyer to backwards. but if you did programing a certian way just add a wheely bar.

  7. Rich March 15, 2007

    I could only get it to balance, but not move or move and not balance. I need a second light sensor so I can rebuild it and try for both movement and balance without any non-lego sensors.

  8. Steve March 20, 2007

    Hi Rich,
    your NXT Segway is really a piece! Could you please get in touch with me?

  9. Jeremy March 21, 2007

    Hey Rich,

    I was wondering if you programed this using the Mindstorms software or programs listed on Philo’s website. I am trying to program it using the Mindstorms software and I can’t get it to work.


  10. Rich March 23, 2007

    I used the program from philo’s website and modified the variables.

  11. brett stevens May 19, 2007

    I have been trying to build this NXTway but I cannot get it to stand straight no matter how I vary the coefficients! Nor beable to move and stay balanced. Does anyone have some tips on how to go about “tuning” KP, KD, KI. Should the scaling parameters for err

  12. Rich May 22, 2007

    It has been a while since I played with this one, but try to slowly change the variables. Start with one variable at a time. It took forever for mine to balance and move properly. Even after all that work it was still quite un-reliable.

  13. nils June 26, 2007

    Hello I would have there times ne question: I try for 5 weeks already mean Segway robot to programieren and to calibrate ultrasonic sensor (17-9) cm or photosensor (382-525) and I get it not, could you me perhaps times help or me one tap give. Mfg Nils would make me happy about an answer

  14. Luiz July 10, 2007

    Congratulations!! you robots are so cool!!
    do you just have a NXT kit??

  15. Rich July 12, 2007

    I have a few NXT kits and lots of other technic kits used for parts.

  16. jorge - españa May 29, 2009

    Please. i need contact with the code source of this video. who is the with me: or
    this is my project final of the course system embebed and i cant stand up my robot lego nxt. please urgent contact with me.

  17. John August 7, 2009

    Can you send me the blueprints on how to make it and the program for it?

    I would appreciate it.

  18. reggie October 6, 2009

    can I have the segway code?

  19. roygbiv April 23, 2010

    descient, but put the light sensor further out, and lower the trigger point on the light sensor i built a segway robot too. make it taller, and download the segway program from (i did not make that program, but it works very well. I use a program i created, but i have not figured how to put it online)

  20. houzillf February 14, 2012

    may I have a look at your code, I found your robot quite stable. I am doing my own project as well, but it always tip over, I wonder if there is something wrong with my PID value and the algorithm.
    Hope you can share some info with me.

  21. Jei April 29, 2012

    Your vedio is really cool
    I have few qustion

    I can balance the robot,but I don’t know how to
    foward at same time,would you mind to give me some suggestion??
    Hope you can help me:)

    May you have good day:D

  22. Arko November 19, 2012

    I tried to build in bricx command center, but its not stabilizing. can you help me, if i send you codes ?

  23. melvin chan October 30, 2018

    hello, can you please share your code, it´s for a school assignment. Thank you.

    • Rich Thompson November 18, 2018 — Post Author

      I think you will have better luck with the code links in the article. I used the NXTway code linked above.

Leave a Reply

© 2024 robotthoughts

Theme by Follow Me on Mastodon