(Pronounced “Eco-Orb”)

How do you get 100mpg or more from your plug-in hybrid vehicle? Limit yourself to only driving using the electric drive train and charge from the grid. It sounds easy but in practice it takes more than that — you need to drive smoothly, conservatively, limiting acceleration to the level that can be supplied by the electric drive train. If you mash the accelerator, the gas engine will spin up and you will be back to burning dead dinosaurs.

So how do you know if you are driving in electric mode? On every hybrid I’ve seen, there is an infographic screen available somewhere in the dashboard controls that shows little animated power arrows to indicate whether the electric system is providing power to the wheels (good) or receiving power from the gas engine (bad). Those infographics are a mess. (See below.) They are distracting, hard to understand, and mostly fake anyway, and they take the place of the map, radio, climate, or other screens that are actually useful.

Is this actually useful?
Right so… the engine… is in the front…
Ah, that clears things right up.
Still not doing a great job of answering the main question.

What we need is simple feedback on a driver’s acceleration aggressiveness. It needs to be subtle to urge a more conservative driving style.

Our invention is intended to evoke the “Prius Effect”, a phenomenon where simply surfacing real-time fuel consumption data to a driver affects their driving style. It is essentially the gamification of driving where the winner is the one who uses the least fuel to go the longest distance.

Design it.

A small team of 2 (my daughter Alyssa and I) created the ecOrb to produce something cool and useful at home while exploring various hardware, software, and fabrication techniques.

From a hardware standpoint the ecOrb is built on an Arduino clone platform, talking to the world through an HC-05 Bluetooth module and showing its various statuses via a single RGB LED. The HC-05 is mounted on a breadboard-pitch carrier board that also supplies the power hardware to adapt the 3.3v module to the 5v Arduino I/O pins. The RGB LED is also mounted on a convenience board that has the appropriate current-limiting resistors for direct 5v usage. With everything at 5v there is zero supporting hardware, just those 3 composite components themselves. Simple!

Hardware prototype complete!

The ecOrb communicates with a cheap OBD2 Bluetooth module that plugs in under the dashboard of any US car since 1996. The software is 95% setup and string processing, with the actual logic reduced to approximately the following, using the trick that the RPM only measures the revolutions of the gas drivetrain and returns zero while running on batteries alone:

if (rpm == 0) { // Electric drivetrain only
if (speed == 0) { // Not moving
} else { // Driving
} else { // Gas drivetrain
if (speed == 0) { // Not moving
} else { // Driving

That’s the entire algorithmic heavy-lifting right there. :)

Build it.

Fabrication can be a really fun or a really frustrating part of a project like this. For this project we made some choices that kept it fun. We used a rubber sphere as a light diffuser. We used the bottom of a little tap light as the base. The only machining we did was to cut/melt a nice little notch for the USB cable into the plastic base by pressing sideways against a spinning drill bit.

Some plastic enclosure bits and pieces to get started.

To finalize the wiring we went with an older technique that I have not used in years, wire wrapping! Wire-wrapped connections are extremely solid, providing 4 points of contact per turn, and in many cases provide as good or better connectivity than soldering. They also have the advantage of being living room-friendly, unlike soldering, which needs to stay in the garage.

Wire-wrapped connections, looking good.

The last thing we needed to figure out was how to mount the LED so it would hover in the middle of the sphere. We considered various options but what we came up with was actually to do nothing at all — the 4 solid wires leading to the LED module gave it the perfect amount of support, springiness, and shock absorption for a rolling application like ours.

Free-floating LED, all wires wrapped, final mounting.
Look at the pretty cable notch! Hot glue on the inside acts as an invisible strain relief.
Fortuitous cup holder fit.

Test it.

Does it work? Yes!

It lights up as designed and it gives peripheral feedback that helps me drive conservatively. At this point we are getting just over 120 mpg, which is not bad at all. Check it out!

An ecOrb glowing blue means that the vehicle is at rest and running on batteries.
Green is the ideal state, the vehicle is in motion and running on batteries.
Purple means you are in motion using the gas engine.
Red means you are idling using the gas engine, which is basically the worst case in terms of fuel economy.

The colors and straightforward algorithm also made it a fantastic project to do with my 10-year-old daughter. She was able to follow and extend the algorithm given some primitives, and she worked with me on various debugging phases as well (the OBD emulator sends nice, discrete response packets, while the actual vehicle sends a massive stream of stuck-together responses). She was also able to collect data while we drove around the block and I think she followed along on the string-chunking fixes to get things working for the final implementation.

Here she is narrating its use in a real driving scenario. Enjoy!