Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Best Lego Mindstorms alternative for fun programming projects?
141 points by crypto-jeronimo on July 23, 2018 | hide | past | favorite | 59 comments
What are the best Best LEGO Mindstorms alternatives out there? No upper age limit.

I wrote these resources you might like.


There's even an Ali Express shopping list for you. You can probably build a buggy for about $20.

Resources are also on GitHub and issues and pull requests are always appreciated.


Disclosure - I work for the Raspberry Pi Foundation.

(Edit - $20 not including the price of a Pi)

I'd recommend you look into the Raspberry Pi, Arduino, or micro:bit - each offer a great introduction to physical computing with huge libraries of online content to dive into.

https://www.raspberrypi.org/ <-- Basically a pocket sized computer which can run a full Linux stack and exposes a heap of useful IO options.

https://www.arduino.cc/ <-- More akin to embedded systems - traditionally very low powered micro-controllers programmed in C.

https://microbit.org/ <-- Designed specifically for education and provides a number of high level abstractions for development including visual programming languages and MicroPython.

As well as these there is a huge range of other options targeting different niches such as Javascript, Internet of Things, ultra low-power systems, etc.

It really depends what you're interested in getting into. All of the platforms have starter kits, add-ons, and tutorials to get you going. Feel free to message me (e-mail in profile) if you want to discuss further!




(Disclaimer - co-founder of Pimoroni)

Arduinos are bit of a mixed bag imho. Especially the classic 8-bit Uno, which is more iconic than good/practical. I also find them bit pricy for what they are.

Of course they have their own market segment (artists/"makers"), and they seem to fill their role there perfectly well. But it is good to understand where they come from and how they are positioned at the market before plunging in.

Calliope mini plays also in this category: https://calliope.cc/en

Yes! Calliope is a spin on the micro:bit that has been developed in Germany. They are a great team too!

Depending on the users experience, a 3D printer and Arduino or a Raspberry pi plus some servos, lights, and other motors may be all you need.

I recommend a quality printer like the Prusa i3 MK3: https://shop.prusa3d.com/en/3d-printers/180-original-prusa-i...

You can build things like this with it: https://youtu.be/f5JPLIyKOfE

Second this advice, along with laser-cutting if you have access to a shared workspace with one in your area; take a look, you might be surprised.

Electronics had may as well be lego bricks, these days. If you want to make a robot, you can mostly plug together cheap pre-built modules on breadboards. Outfits like Pololu have great options for things like small-scale motor control and DC/DC conversion, and tiny displays/sensors/etc are ubiquitous.

Thanks for your response! This is absolutely wonderful! Could you provide some further links to example projects (eg, interesting open-source designs and/or source code)?

Hey thanks!

I’ve been pushing hard on new developments and need to spend more time documenting my projects. But I have some info on another robot here: https://hackaday.io/project/158458-rover-v2-four-wheel-drive...

There’s lots of cool robots on hackaday: https://hackaday.io/list/158174-thp-2018-semifinalists-open-...

I also recommend browsing http://reddit.com/r/3dprinting as there is a lot posted there. And check out http://reddit.com/r/RobotBuilding

I also run a website to discuss projects that have a social impact. That’s at http://reboot.love

There’s a lot of good stuff online!

I have to admit I wasn't aware of any of these fascinating and useful resources. Thanks a million once again!

I'm a fan of the BBC micro:bit. The basic board is very inexpensive but comes with a lot of possibility already soldered in. You can choose among several well-supported programming languages, from Scratch on up to C++, so it can grow with you for quite a while.

There's not really an official robotics kit that I know of, but there are several 3rd-party options on the market.

(full disclosure - I work for micro:bit)

If you're looking specifically at Lego, then the sbrick-plus https://www.sbrick.com/ can talk directly to a BBC micro:bit https://github.com/vengit/pxt-sbrick so you can use the micro:bit and Lego together. There are also a huge range of micro:bit accessories from third parties that do robotics, sensing, lights, etc.

I'd feel remiss not to mention a project I'm working on that is currently running its Kickstarter campaign: https://www.kickstarter.com/projects/460355237/smartibot-the...

It's a pretty comprehensive robotics package, with built-in 4 strong DC motor drivers and 10 servo ports.

It's a project "inspired" by the micro:bit... the original plan was to make it hardware compatible but we were keen to upgrade the mcu to the NRF52 from the NRF51 so this was not possible, so we are working on porting the Makecode environment used by the micro:bit to it.

Yup .. I also encountered the microbit recently, and it is very well done IMO. A bit easier to use than the Arduino for lil kids.

How about... Mindstorms? What constraint makes you seek out an alternative?

Seriously. If you want linux, just stick Debian on it.


It is obscenely overpriced.

I used to think so too, but you get a lot of value for the price, especially when you consider the variety of projects you can build, the relatively beginner-friendly programming toolset, and the number of videos, books, and other supporting resources available.

Overpriced is maybe a strong word (I get that Legos are expensive because they're a higher build quality than other interlocking blocks), but Mindstorms is a very expensive option, all the same. At that price point, even though I could afford a set, I don't really consider it an option for trying to get a kid interested in programming or robotics, because I'd feel pretty chapped about hundreds of dollars down the drain if they didn't end up taking to it.

FWIW, I had the first generation Mindstorms and I definitely consider it the most important factor in getting me interested in engineering and software.

Resale on LEGO is good, so if it works out and gets the kids interested, it's a small price to pay to introduce them to logic and mechanical concepts (make sure you don't lose any pieces). If it doesn't work out, sell them and take a small hit - it's really a win-win in my book.

I had basically the same experience.

It would be really hard to beat the LEGO Mindstorms experience for ease-of-use and learning through experimentation.

> I don't really consider it an option for trying to get a kid interested in programming or robotics, because I'd feel pretty chapped about hundreds of dollars down the drain if they didn't end up taking to it.

The OP didn't specify who the Mindstorm alternative was for, but for young children, the new Lego Boost is cheaper (~ $160 vs the ~ $350 for Mindstorms EV3) and probably an easier introduction to programming and robotics than the Mindstorms, but seems to also be quite hackable (but I don't think you can install your own linux on it like the EV3).


No LEGO is definitely over priced for what you get now

My kids new LEGO sets have had multiple bricks brack. We’re using the few I had as a kid that have held up for 30 years, as replacements

Their remote control train never worked, after 3 months of receiving the wrong parts, finally getting what we hoped was the right one, the battery box stopped powering on

They’ve become a second hand junk shop buy. No more supporting their throwaway this plastic in 6 mos crap

btw you can buy any individual brick https://shop.lego.com/en-US/Pick-a-Brick. They're quick to ship.

I got a Cozmo ... has vision and a Python API, which seems like a good idea. Haven't had a chance to really use it. It was also a bit expensive.

I have made my own robots in the past. Frankly, my flakey hw killed my sw enthusiasm. That's why, I am happy to pay a bit for functioning robot hw.

Next, I want to get into robot arms. Something with the DoF of a kuka arm but doesn't need to perform as well and on a low budget. My current prospect is the Dobot Magician but I am still on the fence.

If hardware isn't a requirement, I'd point you at processing.org and the various related projects (openprocessing.org for a javascript front end.). It hits that logo sweet spot for me when introducing kids to actual programming. Then, add a pen plotter to the mix for that "look what I made" kick.

Surely https://littlebits.com/ It's a fantastic educational tool

We got our eldest child a SparkFun Inventor's Kit last year. He seemed to find it fun to play around with. One of the projects is a robot.


I haven't picked one up (yet), but the Edison[1] looks like a pretty decent Lego-compatible platform.

1: https://meetedison.com/

Depends on how many prebuild (proprietary and expensive) components you want. I think the absolute best platform for robotics is Arduino. Pretty much anything you can think of has been done, and there's likely a step by step tutorial out there somewhere with component lists. Arduino UNO clones can be had for as little as $3-$4. And the components like LEDs, motors, servos, etc can be had for a tiny fraction of what a lot of the proprietary systems cost.

The downside comes when you want to do things like attach a motor to a lead screw, or attach something to a servo. You'll probably end up needing a drill press or an improvised lathe. But, I think compared to the cost of the proprietary systems, you can still come out ahead. And you don't have to worry about breaking something or dedicating a motor or controller to a project because they can be replaced cheaply.

Plywood, jigsaw, pololu, some servos and your regular computer or laptop or a rasberry pi. Add sensors to taste, stir.

And don't forget regular cardboard. One can do surprisingly much with that.

I’m not sure if this is very helpful, but I know here in Toronto you can use 3D printers and borrow Arduinos and other parts for free from certain locations of the Toronto Public Library (or virtually free? Haven’t done it yet).

Maybe something like that exists where you are and you can create your own? There are a lot of projects online with schematics and even step by step instructions. Not an exact alternative or anything, but might fulfill similar requirements in learning.

Arduino and 3D printers to make Lego Mindstorms/Technic-compatible parts is what I do. (I call my parts "Bitbeam".)

I used to use Lego to prototype the robots and machines I make. Now I design my own "Lego" with OpenSCAD and program the bots with AVR microcontrollers. Have been doing this for 7-ish years. However, Lego Mindstorms is still a great (although expensive) system for learning.

Can consumer 3D printers pull off decent lego compatible parts? I'm fascinated by the idea of 3D printers, but I don't really have a good use-case to justify getting one. (And I've been waiting for them to come down in price.)

I ended up getting my five year old the Lego "Boost" set - I wanted some motors &c that were accessible to him. He's had fun putting together the projects, and playing with the scratch programming.

It is tied to their app, but I see that someone has python libraries to talk to it, so I have options if the app goes away.

Nothing can truly match Lego's perfectly tuned injection molding process, however 3D printing can be good enough for many things.

Sounds great! Have you got any related blog posts and/or open-source code? I'd love to have a look :)

I set up a blog just about the Lego-parts years ago (bitbeam.org), and it looks dead-ish, even though I still make the parts for new robot orders all the time.

The most up-to-date location for the actual 3D printable files is in the Tapster project GitHub repo: https://github.com/tapsterbot/tapsterbot/blob/master/hardwar...


This is a fantastic idea. An arduino and renting time on printers in your neighborhood with 3DHubs is brilliant (our family is a hub and there are dozens of others in our local network). The possibilities are endless, the skills are directly transferable, and the communities are awesome. Lots of free projects are available online. Makerspaces are everywhere now so you can go hang out with other enthusiasts and talk your passion. Share your creations online to get lots of positive comments from all the 3D printing enthusiasts. This is the best way to go.

I thought they charged on a per minute basis. Still ... a valuable resource.

I haven't done the costing but seems buying a cheapo printer is more economical than using any per-minute service .. especially, when one is getting started. That said, last cheapo printer I got kept breaking down .. when I was in an inspired mood, I had to wrestle with the darn printer. Seems like a nice model where I can rely on someone else to keep the printer working - if it is cheap enough :)

Yep it appears there is a fee. I hadn't looked into the details, but assumed they must charge at least for material.

Seems as if there's no time limit, but you are charged for filament. (Plus sales tax)

> A printing fee of $0.10 per 1 gram of filament (printing material) will be charged for each print job. An average print job is about 10 grams and costs $1 (10 grams x $0.10 = $1). There is a minimum charge of $0.10 per print job. A 13% tax is also applied to each print job.

> A maximum of two hours is allowed for most print jobs with a dedicated printer available for longer prints at all locations (except Toronto Reference Library). Call your nearest Digital Innovation Hub to inquire about rules and availability of booking a longer print.


TPL Digital Innovation Hub: https://www.torontopubliclibrary.ca/using-the-library/comput...

Not sure if its an alternative, but Lego Boost is awesome and not well known yet. https://shop.lego.com/en-US/LEGO-Boost. I'm not sure if its supposed to replace Mindstorms or is an alternative track for ipad driven robots.

I have found the Makeblock mBots both at a reasonable price and a lot of fun. Not quite as versatile as Lego but in the same ballpark.


I've gotten (and extended) the ranger kit this summer: https://www.makeblock.com/steam-kits/mbot-ranger

I've been generally happy with the price and hardware, but I've grown to really hate Arduino. Makeblock publishes a bunch of code, but it's highly redundant and poorly organized, and I find myself constantly using the slightly wrong version of different pieces of code. But IF I ever figure this stuff out, I'm slightly hopeful about controlling the Makeblock hardware from RaspberryPi.

The basic approach is to have the RPI connected to the Arduino board via a serial connection (this has also difficult to setup, but sometimes I can do serial over the USB), and then there's just a very simple protocol that runs. Once this is actually working properly, there's a fairly small Python library to do the talking, and you get the benefit of the RPI environment (logins, wifi, camera access, etc), but with the hardware of the Makeblock unit (on-board sensors, no direct GPIO handling or contention, and pluggable sensors and motors). But getting there... ugh, it's been really challenging and I only got hints of it really working so far.

http://www.finchrobot.com/ is a fun little programmable bot for kids.

If you are happy with Arduino or MicroPython, the M5Stack [1] blocks and ecosystem are pretty nice (and Lego-compatible). It is basically an ESP32 microcontroller with a display, speaker, sensors, and connectors in a 5x5x2 cm case. Documentation and build quality are not yet perfect but good enough for most applications.

[1] http://www.m5stack.com/

We're playing with a Raspberry Pi 3 b+ together with the CamJam EduKit 3 – Robotics: https://camjam.me/?page_id=1035

Bought a small bluetooth speaker so our robot can make some noise, possibly with Sonic Pi as the sound engine: http://sonic-pi.net

1) Buy a Raspberry Pi and an Arduino 2) Pick a project: telepresence robot, autonomous robot, sous vide machine, thermal camera trigger, etc. 3) Buy minimal pieces for that project: AdaFruit, SparkFun, or various OEM pieces from Amazon, Ali Express, etc. (higher cost = more documentation and fewer lemons) 4) Goto 2)

A good alternative for FUN programming projects would be http://www.meccano.com/meccanoid-programming It is drag and drop. It may be not as good as raspberry pi or arduino but it is at least easier

In fact I worked with this before. Its simple but enough to learn alot.

Jimu is very nicely done. Only product I know of in this segment that ships with servo motors


Potentially look into VEX? It's not cheap, but it's good fun.

VEX has announced a new micro and accompanying electronics - which should hopefully mean that their current Cortex system will become cheaper secondhand. Lots of benefits to the new micro but for hobby use their Cortex is sufficient.

Also a lot of good programming options available with this system - the same ROBOTC for C-like programming/graphical as is used with LEGO Mindstorms, but also Python (https://www.robotmesh.com/studio-editions) and actual C (https://pros.cs.purdue.edu/)

Last I looked at Vex, I seem to recall being surprised that the software was not free. Was a non-starter for me as a hobbyist.

The RobotMesh python software listed above is free for individual use, and the PROS C/C++ option is completely free and open-source.

microblocks.fun is still in Alpha, but check it out nevertheless! It works on lots of 32 bit microcontrollers.

It's been tested on the micro:bit, circuit playground express, calliope and several Arduinos.

If you are looking to explore programming, there is a great python library for interacting with the LEGO Mindstorm.

Possibly a stepping stone into more programming intensive projects.

One of the coolest ways to learn programming I've ever seen is the Snap! visual programming language, which is written in JavaScript and runs in the browser.


It's the culmination of years of work by Brian Harvey and Jens Mönig and other Smalltalk and education experts. It benefits from their experience and expert understanding about constructionist education, Smalltalk, Scratch, E-Toys, Lisp, Logo, Star Logo, and many other excellent systems.

Snap! takes the best ideas, then freshly and coherently synthesizes them into a visual programming language that kids can use, but is also satisfying to professional programmers, with all the power of Scheme (lexical closures, special forms, macros, continuations, user defined functions and control structures), but deeply integrating and leveraging the web browser and the internet (JavaScript primitives, everything is a first class object, dynamically loaded extensions, etc).

Y Combinator demo:



Here's an excellent mind-blowing example by Ken Kahn of what's possible: teaching kids AI programming by integrating Snap! with existing JavaScript libraries and cloud services like AI, machine learning, speech synthesis and recognition, Arduino programming, etc:

AI extensions of Snap! for the eCraft2Learn project


>The eCraft2Learn project is developing a set of extensions to the Snap! programming language to enable children (and non-expert programmers) to build AI programs. You can use all the AI blocks after importing this file into Snap! or Snap4Arduino. Or you can see examples of using these blocks inside this Snap! project.



Use devices with Snap!:

Orbotix Sphero guide by Connor Hudson and Dan Garcia:


Lego NXT package by Connor Hudson:


Nintendo Wiimote package by Connor Hudson:


Finch and Hummingbird robots package by Tom Lauwers:


Parallax S2 robot package by Connor Hudson:


LEAP Motion by Connor Hudson:


Speech synthesis by Connor Hudson:


Arduino package by Alan Yorinks:


Arduino package by Bernat Romagosa/Citilab:


Fischertechnik ROBOTICS TXT Controller by Richard Kunze:


Snap! for Raspberry Pi by rasplay.org:


More Snap! extensions for CS education:

snap-apps.org provides Edgy for graphs, Cellular for multi-agent simulation, and more.




Netsblox for multiplayer networking.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact