Python
Switch branches/tags
Clone or download

README.rst

LEGO Mindstorms EV3 Comparison

This project is meant to complement the comparison made in The Difference Between LEGO MINDSTORMS EV3 Home Edition (#31313) and LEGO MINDSTORMS Education EV3 (#45544), an article by Laurens Valk.

There are two editions of LEGO Mindstorms, LEGO's Robotics Invention System (RIS), the EV3 Home Edition and the Education Edition. You may wonder what is the difference and which one is right for you. Reviews on Amazon will tell you that the Education set is meant for schools, with a more robust plastic packaging and shorter, in-class exercises to go through instead of full-blown projects to be exercised from start to end that fulfill you as a robot newbie with the Home Edition.

If you one day want to upgrade your set you'll be wondering if you can combine the two. The data elaborated in this project may help you with your decision on what pieces to buy.

Did You Know? (Interesting Facts)

The Education Edition's rechargeable battery pack also fits on the EV3 Home Edition brick! This is useful since the battery piles drain rather fast (10-20 minutes playing at average). Instead of buying 6 or 12 battery piles, unmounting and charging them regularly you could simply buy a single battery pack and attach the charger while playing, whenever needed.

Reading

Usage

  1. Lego-Mindstorms-Editions-Comparison.ods, a LibreOffice Calc spread sheet, lists the pieces of all sets combined. Columns H and K tell you which pieces to buy if you have either Home Edition + Expansion Set or Education Edition + Expansion Set. You can filter the columns using the "Auto Filter" in the first row.

    The spread sheet document specifically targets the two sections "‘Upgrading’ Elements from Education Edition to Home Edition" and "‘Upgrading’ Elements from Home Edition to Education Edition" in Lauren's article. Specifically, the document will make the latter section less vague with regards to the "you’ll need to purchase [...] certain Technic building elements" statement.

    Note

    If you can't or don't want to install LibreOffice here are some free services that display or convert the spread sheet: convert-doc (view), Zamzar (convert), convertfiles (convert). Some let you specify the raw document url directly. Google Docs and Zoho Docs also import the spread sheet.

  2. lego-mindstorms-pieces.py is a Python3 script to help with calculating and ordering required LEGO Mindstorms EV3 spare parts. It has three commands:

    parse

    Generate the combined list of LEGO pieces from the 3 separate inventory lists (the combined list is what the above mentioned spread sheet is made of). It takes three file names as an argument. Output is sent to stdout. You can redirect it to a text file using the > operator on the command line.

    missing

    Generate a list of LEGO parts missing in the combination of the Edu Expansion set + Home or Edu Core, that only the other (omitted) set would have. The output has the format part:quantity,... and is sent to stdout. You can use the result as a shopping list in the order command.

    order

    Add a list of LEGO parts and their quantity to the 'Shopping Bag' of LEGO's customer service platform. A browser window will be opened, you'll be able to watch the browser do what you would normally do by hand, and execution will stop after all pieces have been added, so you can review and finalize your order. (This is just to help you save time on entering 60+ pieces manually. Nothing is ordered on your behalf!)

    For full instructions run: python3 lego-mindstorms-pieces.py {command} --help

Requirements

To run lego-mindstorms-pieces.py you need:

Documentation, Examples, Hints

See the docs folder for sample output of the order command, and screenshots of prepared orders at LEGO's customer service platform.

The order process at LEGO is highly automated. This usually means that orders with items out of stock, or orders that are too large will not be processed. LEGO notifies you with an automatic email in such a case.

Data Sources

Where To Go From Here?

LEGO Parts Research, Shopping And Other Resources

[1]Spare parts you want to buy in addition are usually available here. Use the 5-digit number of the set you did not buy (31313 or 45544) when the shop asks you for a set number.

Inspiration for LEGO EV3 Robots

LEGO robot programs can be written with the LEGO MINDSTORMS EV3 Software (on Windows and Mac), the Windows 10 touch device application (Education Edition), or with any programming language supported by the ev3dev firmware (platform-independent).

Open Roberta Lab is available as a visual editor for ev3dev (setup instructions), featuring Python under the hood. Also, if you use Scratch you may be interested in Scratch extensions (for Windows and Mac).

LEGO firmware ev3dev (Python) [2] Description
> Home Edition robots (build instructions for 5 official and many more robots)
Track3r (LEGO) Track3r (ev3dev) Crawler-mounted, all-terrain robot
Spik3r (LEGO) n/a Remote-controlled scorpion robot
R3ptar (LEGO) R3ptar (ev3dev) Scary cobra snake robot
Gripp3r (LEGO) Gripp3r (ev3dev) Heavy-duty lifting robot
Ev3rstorm (LEGO) Ev3rstorm (ev3dev) Walking robot firing bullets
> Education Edition Core Set robots (build instructions for 5 robots)
Educator Vehicle Educator Multi-purpose robot for teaching robotics
Sorter n/a Sorts LEGO bricks by size and color
Gyro Boy Balanc3r Self-balancing robots
Puppy n/a Looks and behaves like a dog
Robot Arm H25 n/a Robot arm used for assembly in factories
> Education Edition Expansion Set robots (build instructions for 6 robots)
Znap n/a Crawler-mounted bat-like animal
Remote Control n/a A remote control for your hand
Stair Climber n/a Wheel and crawler-mounted vehicle
Tank Bot n/a Crawler-mounted military vehicle
Elephant n/a Walking and roaring elephant
Spinner Factory (1/3) n/a Complex assembly line machine
> Popular (awesome) robots by other authors
n/a Explor3r Self-driving exploring robot
n/a EV3D4 Remote-controlled Star Wars R2-D2 clone
MindCub3r MindCub3r (ev3dev) Solves the Rubik's cube
n/a EV3 Tracked Explor3r Autonomous crawler-mounted tank vehicle
EV3 Dancing robot n/a The sweetest LEGO disco dancer ever!
Wall-EV3 (non-free) n/a Disney's cute WALL-E robot built with EV3
Chip & Dale (non-free) n/a Two mecha twin robots that walk and turn
NXT Turtle (non-free) n/a An awesome turtle (see also: EV3 Turtle)
EV3 Desk Guardian (easy to write yourself) A bodyguard shooting robot for your desk
Clev3r Car n/a RC or autonomous car that avoids obstacles
Cleaning Robot n/a Clean your room with this Roomba clone!
n/a Sound & LEDs Demos to produce sound and activate LEDs
> Other resources
Walking robots just videos of maker creations
More EV3 Maker and Coding Activities official LEGO downloads
ev3devlight (ev3dev based on MicroPython) Faster, lightweight ev3dev for MicroPython
[2]Python bindings API docs

Your Contribution

If you find a typo, an error, a critical mistake or feel there's some enhancement needed please feel free to open an issue, or even better clone the repository, apply your changes, and place a pull request. Your contribution is welcome!

Please run flake8 over the Python code to make sure it follows PEP8. A line length of 100 is okay (flake8 --max-line-length=100).

Step by Step

If you make changes to the raw data, e.g. raw-data/Brickset-inventory-*.csv, in a pull request please also regenerate the combined list and update the Calc spread sheet as follows:

$ cd raw-data/
$ python3 ../lego-mindstorms-pieces.py parse Brickset-* > "Lego Mindstorms EV3 combined list.csv"

Then open Lego-Mindstorms-Editions-Comparison.ods and copy the contents of the regenerated Lego Mindstorms EV3 combined list.csv from a text editor into the spread sheet as follows:

  1. Highlight the first 7 columns and press the Del key to clear the cells.
  2. Place the cursor onto the first left upper cell and press Ctrl + v.
  3. The "Text Import" dialog pops up. Choose "Unicode" and "Tab" separation.