A mechanical and manufacturing engineer by day, [Tyler Collins] taught himself electronics and firmware development in his spare time and created an open source Lego controller called Evlōno One. It is based on the STM32 and Arduino ecosystems, and compatible with a impressive variety of existing Lego controllers, sensors and actuators. [Tyler] encountered Lego Mindstorms while helping in an after-school program, and got to wondering whether he could make a more flexible controller. We’d have to say he succeeded, and it’s amazing how much he has packed into this 4 x 4 single-height brick format.
The Evlōno One is based on an ESP32 dual-core MCU, and has WiFi, Bluetooth, and an IR transmitter for wireless connectivity. It also boasts USB-C power delivery, three motor controllers, speakers, LEDs and a button. Dig through the Kickstarted page for more details on these interfaces and specifications. Both the firmware and the hardware will be published as open source on GitHub.
Although [Tyler] has the prototypes all running, he notes this is his first big production effort. FCC certification testing and production mold tooling are the two biggest items driving the scheduled Feb 2021 shipments. If computer driven Lego modeling is one of your hobbies, definitely check out [Tyler]’s project. And if you missed our [Daniel Pikora]’s FOSSCON 2018 presentation about the intersection (collision) of Legos and Open Source, our article must-read for you folks in the Adult Fan of Lego (AFOL) community.
15 thoughts on “Open Source Lego Controller”
Awww, I thought by the title I was going to read about smart Legos that self-assemble into whatever structure you choose.
Wish it was that easy. Pull out a bin from 1980s, send request to reassemble set 6399, pull out completed set and sell it on eBay for about a thousand dollars
I don’t think that your standard bin will have the parts for that set, I think you’re gonna need some of those special lego bricks for the track in that one…
Why not? With little expansion of this project it can be done.
Hmm very nice. Not sure if there is a huge degree of need for it though – the older mindstorms stuff could be programmed in a variety of real languages, power supply options existed etc, not sure if the new stuff is though. This also has a few skills the older Mindstorms won’t have (probably the new stuff too and its darn small)
Does seem a shame to make something like this designed to interface with LEGO motor etc but require cable mod to the LEGO…
Still interesting, I’m sure some great projects will be done with them… But it seems to me like it could use some more refinement in how it interfaces with the stock lego parts, or to be a proper divergence from using the expensive LEGO stuff – interface with Lego Technic but throw in steppers, sensors the whole show in different (probably smaller) form factors..
V1 Mindstorms/RCX (the Big Yellow Brick) and the even earlier, tethered “Interface A” (which i have seen in the wild!) only supported two wires per device using the 9v bricksnap cables, this uses 6-lead cables whose ends fit inside brickspace even if they’re not bricksnap. the two wires was extremely limiting, so you could only use passive sensors – resistive and switches.
V2 Mindstorms/NXT and subsequent compatible series use a 6 pin RJ-style connector, large and doesn’t fit in brickspace, and junction extensions are as large as a telephone cable splice.
also, the two above families have a HUGE mechanical footprint, mandating a large minimum size and weight-handling capacity. the Evolono fits in a 5H 4×4 volume in brickspace, meaning it can be packed into however small you can make the rest of your design, and because of this would lend itself way more to smaller aesthetic-conscious builds. as I recall, the RCX sticks out past the sides of a Lego Train rolling chassis, meaning it could never be hidden in that application, or most others that aren’t the size of a breakbox
there is also no NXT variant I am aware of with Studs On Top, it’s all technic pins
Any idea where I can find relevant information about bus and protocols used by Lego modules, particularly Lego Boost ? It seems it´s a jungle of different hardware bus and interfaces (NXT, VX …) and although it´s quite easy to find resources to talk with the controller, I did not find anything describing what protocol and communication is used by the Boost modules.
This might be a good starting point: https://lego.github.io/lego-ble-wireless-protocol-docs/
If you search for “powered up framework” you can find a number of projects covering the latest iteration of smart bricks. I’m not sure where to find the older ones, but I’d guess they’re out there somewhere.
While you are quite right about there being limitations with 9v cables there are lots of great homebrew sensors that make us of it – its not as big a limitation as it sounds if you are not 100% determined to use only official LEGO parts
https://www.philohome.com/sensors.htm is one of the references I could recall for doing this..
The LEGO Mindstorms parts are huge only because they have power regulation and batteries on board – this device would be no different there. Either you tether it or have a bulky battery box onboard somewhere. And if tethered why have the brains on the model at all – might as well have all the unnecessary bits at the other end of the tether.
I’ve hidden RCX V1.0’s (With the power jack and rectifier – so I can power my 9V track with 12vac and not need batteries on board) inside Lego trains – its not that hard really while its too wide to fit in most trains stud side up its not hard to build it so the wide side is the trains height – or even length so leaving the IR poking up/down through the train if you desire.
I don’t see the little RJ connectors the NXT and later have as a real problem – they are pretty damn tiny. No reason the extension connector have to be near as bulky as telephone ones – they have so much extra wasted space around the socket. I’d have to do a bit more measurement but it looks to me (having the RJ connector in hand but the LEGO not handy for certainty) that you could create extension cables in a normal height LEGO block. If not – its not the end of the world to be that extra plank thicker, lots of official LEGO stuff does that through the years to make space inside.)
So for me this if its going to use LEGO electronics (which cost a fortune) it should go with the right connectors and just shrink its footprint by omitting the battery box all the LEGO Mindstorms have inbuilt. That then increases the flexibility with no downside.
Or go one better for those aesthetic builds and use your own motor/sensors in smaller sizes. One of the NEMA motor sizes is a remarkably natural fit for Technic (can’t remember which on for sure off the top of my head) for example, so build the system around slimline connectors and varieties of that motor – then you have smaller and possibly more powerful options than the LEGO motors..
“It is based on the STM32 and Arduino ecosystems”
what is an STM32 ecosystem ?
is it a byproduct of the digestive system of an HaD blog-regurgitating text processor ?
IKR? and then it ends up saying it’s an ESP32 … But nice find nevertheless Chris Lott – keep on keepin’ on.
Where is the “open” source code?
The kickstarter campaign says publication on github will be in December 2020 or January 2021.
Nice job! Looking forward to the release of the design for this. @Chris Lott – minor typo, in the last line, it’s never Legos, always LEGO ;)
A real AFOL will never harm and destroy the Lego connectors. he should have a adapter avable.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)