ev3dev

Debian GNU/Linux 7 on LEGO MINDSTORMS EV3!


Project maintained by Ralph Hempel and David Lechner, with help from the community Hosted on GitHub Pages

Introduction

The ev3dev distribution is a full Debian 7 (wheezy) Linux distribution running on the 3.3.x kernel that has been customized for the LEGO MINDSTORMS EV3 controller. (huh?) Rather than use custom language bindings that use direct access to mmap'ed files, this distribution aims to allow as many programming languages as possible to access the EV3 peripherals using simple Linux file access. If your favorite programming language is available as an ARM port, and it can read and write files, you can use it to program the EV3. Currently the ev3dev distribution includes the following languages:

If your favorite language isn't listed, you can still program with the EV3. ev3dev supports standard apt tools, so once you get up-and-running you can install whatever language you like. And although you can directly access the APIs via file I/O if you want to, let's face it: that's hard. It's much easier when you have a higher-level library to use. Contributors have written language wrappers for the following languages:

Features

Features above and beyond the official LEGO kernel include:

Put more simply: ev3dev can do almost everything normal Linux can, while the stock LEGO kernel cannot.

Using the ev3dev Kernel:

Don't want to give up your official LEGO MINDSTORMS EV3 kernel and rootfs? You don't need to!

Just install ev3dev on any microSD card (min 1GB suggested, but can you even buy one that small anymore?) and plug it into the microSD slot on the EV3. The uboot loader will look on the card, find the ev3dev kernel and happily boot that instead!

When you want to use the official LEGO tools, just shutdown the EV3, unplug the ev3dev microSD card and restart the brick.

This is still an early beta, so it's not as polished as the official LEGO offering, but it's getting better every week as we add support for more of the native EV3 drivers. Alongside the main kernel, work is also being done on brickdm, which adds a LEGO-like GUI.

The state of the project

Currently, the project is being maintained by @dlech and @rhempel in their spare time. Active development is being done in the main ev3dev-kernel repo as well as in places like brickdm and other related packages. ev3dev supports many of the basic functions of the brick, including:

Getting Started

To start working with ev3dev, head over to the getting started page on the main wiki.

Assorted Info / FAQ

Does ev3dev replace the firmware on my EV3 programmable brick?

No. ev3dev runs completely off of an SD card, leaving the existing firmware intact. To restore the original functionality of your brick, just power it off and remove the SD card containing ev3dev. When you turn it back on, it will boot using the existing firmware.

Can ev3dev do everything that the official firmware can?

No. Although the goal is to support as much as we can, some things will probably never make it in to ev3dev for various reasons. Here are some things that ev3dev doesn't do (currently):

What's a Linux?

If you are at this section right now as a result of true inquiry, that probably means that ev3dev itn't something for you (yet). We're currently in a heavy development stage so ev3dev requires some more advanced knowledge and lots of time to use. We invite you to look here often, because some day we will have many more user-friendly features for you to take advantage of. Stay tuned!