ev3dev Research Notes

These are some of our findings when playing around with ev3dev.

ev3dev is slow

Tested on ev3dev-jessie-2017-09-14. Performance may have improved on newer versions.

Performance is especially poor when using the default python ev3 modules. A simple two-sensor line following program can run as slow as 30 loops per second, compared with 300+ loops per second on LeJOS and 400+ on EV3-G. Using ev3fast.py will improve performance to 200+ loops per second, and supports nearly all EV3 sensors.

Unless your project requires high speed, this should not be a deciding factor on whether you should use ev3dev or some other firmware. The benefit of having support for just about any programming language can easily out-weight the performance drawbacks.

LED operations can severely slow the system down

Operations that changes the ev3’s built in LED (eg. turning them on or off), can cause a severe system slowdown. This slow down persists even after your program terminates, and it stacks with every LED operations.

If your program calls an LED operations every loop (eg. to set color or turn them on/off), you may find your program slowing down to as low as 4 loops per second. Even after the program ends, the slow down will continue to affect the entire system and any program that you run, and it may last for several minutes.

If your program needs to use the LED, it should keep track of the LED state and only send the LED commands if there is a change from the current state.