
Ask HN: Best Lego Mindstorms alternative for fun programming projects? - crypto-jeronimo
What are the best Best LEGO Mindstorms alternatives out there?
No upper age limit.
======
MarcScott
I wrote these resources you might like.

[https://projects.raspberrypi.org/en/projects/?interests[]=ro...](https://projects.raspberrypi.org/en/projects/?interests\[\]=robotics)

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.

[https://github.com/raspberrypilearning/build-a-
buggy](https://github.com/raspberrypilearning/build-a-buggy)

Disclosure - I work for the Raspberry Pi Foundation.

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

------
whiskers
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/](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/](https://www.arduino.cc/) <\-- More akin to embedded
systems - traditionally very low powered micro-controllers programmed in C.

[https://microbit.org/](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!

[https://shop.pimoroni.com/collections/raspberry-
pi](https://shop.pimoroni.com/collections/raspberry-pi)

[https://shop.pimoroni.com/collections/arduino-
microcontrolle...](https://shop.pimoroni.com/collections/arduino-
microcontrollers)

[https://shop.pimoroni.com/collections/micro-bit-
uk](https://shop.pimoroni.com/collections/micro-bit-uk)

(Disclaimer - co-founder of Pimoroni)

~~~
mkesper
Calliope mini plays also in this category:
[https://calliope.cc/en](https://calliope.cc/en)

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

------
TaylorAlexander
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...](https://shop.prusa3d.com/en/3d-printers/180-original-
prusa-i3-mk3-kit.html)

You can build things like this with it:
[https://youtu.be/f5JPLIyKOfE](https://youtu.be/f5JPLIyKOfE)

~~~
crypto-jeronimo
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)?

~~~
TaylorAlexander
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...](https://hackaday.io/project/158458-rover-v2-four-wheel-drive-
robot#menu-description)

There’s lots of cool robots on hackaday:
[https://hackaday.io/list/158174-thp-2018-semifinalists-
open-...](https://hackaday.io/list/158174-thp-2018-semifinalists-open-
hardware-design)

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

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

There’s a lot of good stuff online!

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

------
bunderbunder
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.

~~~
jaustin
(full disclosure - I work for micro:bit)

If you're looking _specifically_ at Lego, then the sbrick-plus
[https://www.sbrick.com/](https://www.sbrick.com/) can talk directly to a BBC
micro:bit [https://github.com/vengit/pxt-
sbrick](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.

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

~~~
kart23
It is obscenely overpriced.

~~~
patja
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.

~~~
bunderbunder
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.

~~~
SteveNuts
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.

~~~
fenwick67
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.

------
tostitos1979
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.

------
salgernon
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.

------
bernardv
Surely [https://littlebits.com/](https://littlebits.com/) It's a fantastic
educational tool

------
andyjohnson0
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.

[https://www.sparkfun.com/products/14265](https://www.sparkfun.com/products/14265)

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

1: [https://meetedison.com/](https://meetedison.com/)

------
gmiller123456
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.

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

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

------
52-6F-62
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.

~~~
hugs
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.

~~~
dunham
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.

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

------
rb808
Not sure if its an alternative, but Lego Boost is awesome and not well known
yet. [https://shop.lego.com/en-US/LEGO-Boost](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.

------
clan
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.

[https://www.makeblock.com/steam-kits/mbot](https://www.makeblock.com/steam-
kits/mbot)

~~~
ianbicking
I've gotten (and extended) the ranger kit this summer:
[https://www.makeblock.com/steam-kits/mbot-
ranger](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.

------
ForHackernews
[http://www.finchrobot.com/](http://www.finchrobot.com/) is a fun little
programmable bot for kids.

------
raphman
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/](http://www.m5stack.com/)

------
delineator
We're playing with a Raspberry Pi 3 b+ together with the CamJam EduKit 3 –
Robotics: [https://camjam.me/?page_id=1035](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](http://sonic-pi.net)

------
glup
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)

------
linkpuff
A good alternative for FUN programming projects would be
[http://www.meccano.com/meccanoid-
programming](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

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

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

[https://ubtrobot.com/collections/jimu-
robots](https://ubtrobot.com/collections/jimu-robots)

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

~~~
baylessj
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](https://www.robotmesh.com/studio-editions)) and actual C
([https://pros.cs.purdue.edu/](https://pros.cs.purdue.edu/))

~~~
tostitos1979
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.

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

------
bromagosa
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.

------
emptysea
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.

------
DonHopkins
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.

[https://snap.berkeley.edu](https://snap.berkeley.edu)

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:

[https://i.imgur.com/cOq8tvR.png](https://i.imgur.com/cOq8tvR.png)

[https://snap.berkeley.edu/snapsource/snap.html#present:Usern...](https://snap.berkeley.edu/snapsource/snap.html#present:Username=jens&ProjectName=y%20combinator)

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

[https://ecraft2learn.github.io/ai/](https://ecraft2learn.github.io/ai/)

>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.

[https://github.com/ecraft2learn/ai](https://github.com/ecraft2learn/ai)

[http://lntrg.education.ox.ac.uk/presentation-of-ai-cloud-
ser...](http://lntrg.education.ox.ac.uk/presentation-of-ai-cloud-services-
integrated-with-snap-at-the-connective-ubiquitous-technology-for-embodiments-
center-of-the-national-university-of-singapore-and-keio-university-
on-16-march-2017-by-k/)

Use devices with Snap!:

Orbotix Sphero guide by Connor Hudson and Dan Garcia:

[https://docs.google.com/document/d/11wR53OTnofRtTtxZCmxnCUjI...](https://docs.google.com/document/d/11wR53OTnofRtTtxZCmxnCUjIlFQjnGewM21A0vmjtFw/edit?usp=sharing)

Lego NXT package by Connor Hudson:

[https://github.com/technoboy10/snap-nxt](https://github.com/technoboy10/snap-
nxt)

Nintendo Wiimote package by Connor Hudson:

[https://github.com/technoboy10/wiisnap](https://github.com/technoboy10/wiisnap)

Finch and Hummingbird robots package by Tom Lauwers:

[https://www.hummingbirdkit.com/learning/snap-
programming/](https://www.hummingbirdkit.com/learning/snap-programming/)

Parallax S2 robot package by Connor Hudson:

[https://github.com/blockext/s2](https://github.com/blockext/s2)

LEAP Motion by Connor Hudson:

[https://github.com/technoboy10/snapmotion](https://github.com/technoboy10/snapmotion)

Speech synthesis by Connor Hudson:

[https://github.com/technoboy10/snap2speech](https://github.com/technoboy10/snap2speech)

Arduino package by Alan Yorinks:

[https://github.com/MrYsLab/s2a_fm](https://github.com/MrYsLab/s2a_fm)

Arduino package by Bernat Romagosa/Citilab:

[http://snap4arduino.rocks/](http://snap4arduino.rocks/)

Fischertechnik ROBOTICS TXT Controller by Richard Kunze:

[https://github.com/rkunze/ft-robo-snap](https://github.com/rkunze/ft-robo-
snap)

Snap! for Raspberry Pi by rasplay.org:

[http://downloads.rasplay.org/pisnap/](http://downloads.rasplay.org/pisnap/)

More Snap! extensions for CS education:

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

[http://snap-apps.org/](http://snap-apps.org/)

[http://www.snap-apps.org/edgy.html](http://www.snap-apps.org/edgy.html)

[http://www.flipt.org/#cellular](http://www.flipt.org/#cellular)

Netsblox for multiplayer networking.

[https://netsblox.org/](https://netsblox.org/)

