Random EV does CAGIVA


eGUI mini in

”Night mode”

  1. -eGUI stands for ”eCars Graphical User Interface”

  2. -It could  be the only instrument you’ll need to drive your own EV

  3. -Adaptable for other EV’s too

Large friendly numbers to tell exactly what’s going on

My main instrumentation is called the ”eGUI mini”. It’s an small graphical display, 64x128 pixels wide, and it has an RGB background lightning. This means that I can display large fonts, graphics etc. relatively easily and it’s visible at night-time too.

This will be one of the items I will research for eCars-Now community. It’s supposed to communicate with motor controller with CAN-bus and have all the necessary details available in easily read form. All the software will be available under GPLL - license.

Here’s a quick look-around at main driving screen;

Battery charge indicator

Bar-graph to display instant and max values

Name / units of the currently visible item

Video - eGUI mini V1 mounted in the eCagiva

(Open in new window)

CAD plans for making similar round housing that was used in the video, eg. V1 casing. Material was 20mm POM (Delrin). This case can be made with CNC-machine from one side, no need to turn part.

DXF has height information as layer names, so that -20 mm is bottom.


First version - case & layout

Second version - case & layout


Second casing version was designed with Alibre 3D CAD and prototypes were made with commercial SLA prototype machine. Process turned out to work quite nicely, parts are ready to be used, straight after they are painted to the suitable color (in our case, they were painted black).

If you would like to make your own case, you can either download the plans from thingiverse.com or you can order them ready-made from the web-shop at Shapeways / PalonenLABS.


eGUI mini software is now supporting Lawicel RS232-CAN adapter. With that, it can read messages from CAN-bus and display them. Currently there is support for Reap Systems BMS and it’s SOC-level message (CAN ID 0x630). It can be very easily be extended to support any other messages and systems as well.

All graphics are converted from PNG to HEX so you can very easily desing your own graphics. Just make suitable PNG-files to replace the original files and run small converter script. For example, if you would like to make new battery graphics, just put your battery status files to ”Layouts/Default/battery/” directory and name them ”battery_0.png”, ”battery_1.png” ... After you have made your own graphics, just run ”battery2hex.rb” Ruby script. That will read PNG file pixel by pixel and convert it to special HEX-format used by Atmel’s LCD-library. Copy the output of that script to the ”flashpics.h” and ”flashpics.c”.

Here is a short video representing current layout. Battery-icon is made from PNG-files and progress-bar is made from PNG-files also, as well as fonts. This allows UI designers to design an nice UI and software writers to concentrate on software issues. In fact, current eGUI mini graphics and layout are made by Joona Kallio of Jay Design. Joona is the guy behind all our eCars-Now! graphics and logos - he’s a very talented person indeed ! Thanks Joona for such a nice UI for eGUI mini!

As usual, all the source is released under LGPL Open Source licence and can be found from eCars-Now! SVN.

For uploading the firmware, you’ll need just standard ISP-programmer for Atmel microcontrollers. Then go to ”egui_mini/production_demo_rev_A/make_standalone/” directory and issue


followed by

make upload”.

That will compile the software and flash it to the microcontroller.

Secondary displays

I’m using Cycle Analyst as my secondary display. It’s the display what is used when I’m developing various features of eGUI mini. It also serves as a reference of functions needed and backup display should my eGUI mini software have some bugs ...

I’m also monitoring each cell voltage with 3 CellLog8 units. They are connected to between each cell and BMS so I can easily monitor my cell voltages no matter what BMS I’m using.

I’m currently considering adding Arduino with WiFi shield to obtain remote-monitoring of charge process.