Skip to content


Repository files navigation


Programming toolkit for ev3dev


This is a GLib/GObject based library that provides a number of programming interfaces for ev3dev, including user interface and device driver interface. It is written in vala, but since it uses GObjects, it can be used with many languages via GObjectIntrospection.

For an example of how it is used, checkout brickman.


This is currently in the development stages and is unstable.

Get the code

This project uses git and git submodules.

git clone --recursive git://

Cross-compiling for the EV3

This requires that you have Docker installed. (On Linux, you will also need to install the qemu-user-static package.)

cd ev3devKit
./docker/ $ARCH
docker exec --tty ev3devkit_$ARCH make install

Substitute $ARCH with armel for the EV3 or armhf for RPi/BeagleBone. When the build is completed, copy the files from build-$ARCH/dist to your EV3.

Compiling for desktop

# include install build depends
$ sudo apt-get install cmake valac libgirepository1.0-dev \
libgudev-1.0-dev libgrx-3.0-dev libgtk-3-dev
$ cmake -P setup.cmake
$ make -C build


When building for the desktop, one can run the demos using make -C build run<tab>. In order to run them on the device, copy the demos over or share the folder via NFS or sshfs with the EV3. When copying them to /home/user, the demos are runable from the file-browser.


API docs are at