Philippe Hurbain, or Philo as he’s known in the Mindstorms community, is one of the earliest experimenters with Lego’s robotics sets. His Lego-hacking book Extreme Mindstorms delves down into the guts of how the motors, sensors, and microcontroller brick work, not only helping readers create robots but helping them understand how they work. Philo lives in France.
MB: Tell us how you got involved with LEGO and Mindstorms. Has LEGO been a life-long interest, or is this something you got involved with as an adult? Does LEGO relate at all to your day job?
P: As for many people, my relationship with LEGO bricks has been of on/off kind, with periods of inactivity (“Dark Ages” as LEGO fans say). When I was young, my LEGO bricks collection was small (it even included some pre-ABS era bricks!), but I played a lot with them, before my hobbies shifted to chemistry and electronics. I was about thirty when I discovered LEGO again: the newly launched Technic sets appealed to the engineer in me! As I was already fascinated by robotics, I created some little electronics modules to automate my creations. These modules, based on a few relays, transistors and switches, were assembled on top of LEGO plates for easy integration to models. When properly interconnected, they were able to control a vehicle going around obstacles detected by bumpers. Actually this vehicle was a more modern version of one I built when I was a teen, that was using logic circuits scavenged from surplus IBM mainframe boards. Building with LEGO was so easy compared to plywood…
At the end of this period, I bought the Control Center set. Though the models included were quite good, I was disappointed by the imprecise controller lacking sensor feedback. It was only several years later, end of 1999, that I got interested again when the LEGO Robotics Invention System was launched in France. I bought this set as a birthday gift for one of my daughters… and soon played with it much more than she did! I was hooked…
I can’t say that there is a tight link between LEGO and my day job, but of course as an electronics engineer I use test equipment to understand and measure LEGO electronics. I also have used the data-logging capability of the NXT brick to control and record lengthy experiments for my job.
MB: Are you involved with any local LEGO robotics groups like the FIRST LEGO League or similar?
P: I am a member of French LEGO User Group FreeLUG, but it hardly qualifies as a robotics group, though we have organized a few robotics events during gatherings (robot sumo is a recurring one). And I am clearly not a good teacher, so coaching a FLL team would not be a good idea… I was once involved in a FLL-like event – as a competitor! In 2005 LEGO organized an international robotics competition event among AFOLs (Adult Fans of LEGO), and I was a member of the French team. We didn’t fare very well, but I have wonderful memories of this event, as it was the first time I went to Billund [home of the LEGO Group and original Legoland theme park]… It was the opportunity to meet many big names in LEGO robotics, who are still around now.
MB: Your webpage includes a veritable gold mine of detailed technical information about the mindstorms electromechanical parts including motors, battery packs, sensors, wheels, etc (for example, this page full of teardown details and torque plots of the NXT motor). What drove you to create such excellent references for the NXT components?
P: It all started in 2002 because of an upcoming robotics sumo event at FreeLUG. I wanted to use the most powerful LEGO motors available, so I started to devise a series of tests to see which ones were the most capable. The community reaction showed that there was a real need for this kind of data so I kept on adding new motors as LEGO released them. It was also for sumo preparation that I started to gather data on wheels and tires, but I was never fully satisfied by the consistency of results so this work was never updated.
It’s only some time later that I learnt that my motor comparison chart was also appreciated by LEGO people… They were often asked for detailed characteristics of their products, and could not answer for marketing/legal/safety reasons. So they started redirecting customers to my pages! Thank to this recognition I was among the few AFOLs who received engineering samples of the new Power Functions range of motor and control elements that were introduced in 2008.
MB: You’ve done a lot of great work reverse-engineering and documenting many aspects of the Mindstorms parts. If you could talk to an engineer inside LEGO, what would you ask? Is there anything you’d request or suggest for the next Mindstorms release?
P: Well… I have often had the opportunity to talk to LEGO engineers! In 2006 I was one of the happy few selected for beta-testing the new Mindstorms NXT (only 100 people selected among about 10000 applicants!). This was the first time I could interact with technical people at LEGO! Since then, I have remained a member of Mindstorms Community Partners program, where we could see the evolution of NXT, and planning and creation of the EV3. Unfortunately all these discussions are covered by non-disclosure agreement so I can’t talk about much before things are officially announced by LEGO.
MB: The third generation of LEGO Mindstorms, EV3, was released in September 2013. Have you had a chance to experiment with any EV3 parts? What are your favorite improvements compared to the NXT 2.0?
P: Sure I did! As a MCP member I received a kit several months before release. Of course one of the first thing I did was to put the EV3 motors on my test bench to be able to publish their characteristics as soon as the EV3 kit was officially released. I also started at that time modeling the new parts for LDraw CAD. The LDraw system and its library of parts was used to create the building instructions of the 12 EV3 bonus robots designed by other MCP members. Even though I didn’t build any of those models, I was actively involved in creating their building instructions.
There are actually two things I appreciate in the EV3 compared to NXT. One is the programming environment, though it overall keeps the same spirit as NXT-G, I feel much more at ease with it. One of the major improvement is that you can directly see the parameters used by a block, you no longer need to hover one block at a time to see the parameters in the configuration panel. Or maybe it’s just me? When I started to use NXT-G it was the first time I used a graphical language (except for the rudimentary language used for the RCX), and it was quite unsettling to me. Several years of NXT-G usage made it more natural to me now! Perhaps also the time I spent proof-reading the French translation of the help file was useful…
One of the big features of the EV3 language is the possibility to use arrays (though limited to one dimension). This simplifies many programs, for example the brick sorter program of my SORT3R robot.
On the hardware side, I think that the big improvement is the use of an infrared distance sensor instead of the ultrasonic type used in NXT. Granted, it doesn’t provide a true distance and has a shorter range, but it is much more reliable to see obstacles in front of a robot. Ultrasonic sensor are almost completely blind to soft things like curtains, and even a wall at an angle is not seen because the ultrasonic sound reflects in the wrong direction. Even dark objects are correctly detected by the IR sensor, albeit at a reduced range. This sensor also acts as a remote control receiver. This has been criticized because remote control removes some incentive to properly program the robot… on the other hand, it’s a great way to validate mechanical construction before starting programming!
MB: Most of the projects you’ve posted online use the NXT-G graphical programming environment from LEGO or the NXC language. Have you experimented with any other alternate programming languages or control brick firmwares?
P: I am not a great programmer… one of my classic jokes is “My favorite programming language? The soldering iron!” I did however try other solutions to deal with specific problems. I used Java (Lejos) in a RCX based odometry robot (at the time it was the only language available that supported floating point calculation and offered trigonometric functions). For my needle 3D scanner, pbLua was a good solution as it was able to directly transmit 3D coordinates to the computer console: NXT memory was too small to directly record data off-line. Finally, the programs examples in the first edition of Extreme NXT book were written in NBC, a kind of assembly language based on NXT intermediate language. At the time the book was written, it was the only available language able to directly access non-standard NXT sensors. These examples were re-written in NXC in the second edition of the book.
MB: What are your plans for the future? Another LEGO-related book? Any creations you’ve been dreaming of building?
P: As for a new book, it’s highly improbable: I don’t like to write – proof is the procrastination time before answering this interview! Extreme NXT would have never hit the shelves without the talents of my co-author Mike Gasperi.
One idea I toy with as my next build is a bas-relief sculpting machine. This has been done several times, but I think I can do that using only EV3 kit parts (except the milling cutter of course). I like this kind of challenge because when you build a single kit model you are sure that it can be reproduced by people everywhere!
MB: Are there any assemblies or LEGO constructions that were especially tricky, or required exceptional creativity, or that you are especially proud of?
P: In addition to single set robots mentioned above that require quite a bit of creativity to overcome the limited parts variety and supply, my greatest achievement is probably my needle 3D scanner. Obtaining submillimeter precision from a toy was not an easy task!