Search My Blog

Friday, October 12, 2012

VUE32 - open source controller for the peripherals of an electric car

This open source controller for the peripherals of an electric car. Looks like it could save an EV Builder allot of time and work. Check out the VUE32...

Don VUE32 - openecosys


Back to the OpenECoSys Main Page




Within the framework of a Capstone Project, twelve students in mechanical engineering and fifteen students in electrical engineering chose to design and build an urban electric vehicle with active torque vectoring. As there is actually no such thing as a freely available car control architecture which would allow us to test and implements our ideas on an existing vehicle, we designed one. The approach taken favours a highly modular hardware architecture, built around multiple VUE32 boards and a Panda Board embedded computer. This page covers the VUE32 module.

This project is released under an Open Hardware licence.

For additional details, please refer to Projet VUE's official web page: [1]

The Car

  • Modified Smart ForTwo
  • Active torque vectoring
  • 2 independent Enstroj EMRAX motors (info: [2])
    • Water cooled
    • 2x 50kW (roughly 140hp!)
  • Piktronik SAC41 Drives (info: [3])
  • 7x VUE32 on a CAN network
  • 1x PandaBoard embedded computer
  • 2x LCD displays

For additional details and pictures of the car, please refer to Projet VUE's official web page: [4]

Functionalities and details

  • PIC32MX795F512H Microcontroller
    • 80MHz, 1.56 DMIPS/MHz, 32-bit MIPS M4K® Core
    • 512K Flash, 128K RAM
    • USB 2.0, 2 x CAN2.0b
  • 8x Digital I/Os, 0-3.3V (protected)
  • 4x External 10 bits ADC 0-3.3V (protected, filtered)
  • 2x Speed sensor inputs, compatible with standard car's magnetic speed sensors
  • 4x 12V 10A power outputs
  • 2x 2A motor driver outputs
  • 1x I²C
  • Onboard sensors: temperature and battery voltage
  • Compact design
    • 4-layers 95 x 54.25mm PCB
    • Custom enclosure
  • Open source hardware, Altium files available
  • Open source software, based on the NetV stack

Detailed hardware description


Complete PDF Schematic: [[5]]

Page by page description:

  • p. 1/10: Top sheet
  • p. 2/10: 4 channel analog inputs. Details: VUE32_4CH_ANALOG
  • p. 3/10: CAN
  • p. 4/10: 2A DC Motor driver
  • p. 5/10: PIC32
  • p. 6/10: Power output. Details: VUE32_PWR_OUT
  • p. 7/10: Digital I/Os
  • p. 8/10: Speed sensors. Details: VUE32_SPEED
  • p. 9/10: Supplies. Details: VUE32_SUPPLIES
  • p. 10/10: USB-Serial

General comments:

  • Additional information pages are supplied when the comments on the schematic were not judged complete enough. Feel free to request more information.
  • Partial assembly is used to keep the cost at a minimum
  • There is only 1 USB connector, even if there is on-board USB and a USB-Serial bridge. The later one was added only as a security (in case we couldn't use the USB stack due to timing considerations). As the onboard USB works flawlessly, the USB-Serial peripheral is not used.


2D PCB Top view
3D PCB Top view
Top Layer: signals
Inner Layer 1: GND plane
Inner Layer 2: power planes
Bottom Layer: signals

General comments:

  • 259 components, 793 pads, 536 via/holes, 94 x 54.25mm
  • We used Labo Circuit's Standard specs: [6]
  • The assembly was done on a pick and place, reflow soldering
  • 97.7% of the components are on the top layer to reduce the assembly cost (single stencil). The only components on the bottom side are optional jumper resistors (in an easy to solder 0603 package).


A couple simulations were made in LTSpice. The files are in the main archive. Here's an example, the power output:


Custom enclosure, designed especially for the VUE32 board:

3D animation of the first design: [7]

This design offers the equivalent of an IP31B protection:

  • IP31B: Solid particle protection: >2.5 mm (Tools, thick wires, etc.)
  • IP31B: Liquid ingress protection: Dripping water (Dripping water (vertically falling drops) shall have no harmful effect.)
  • IP31B: Protected against access to hazardous parts with fingers

For all the details: [8]

This is far from being perfect. It was designed that way to keep costs down and to simplify connector selection. In our car, they are placed in protected areas. The next step would be to pick new connectors and design a sealed enclosure to reach at least an IP64D (or even IP66D) rating. That way, we could place these boards everywhere in the car, not just in protected areas.


Here is a brief list of the automotive peripherals that we use with the VUE32:

Sensors and user input:

  • CAN steering wheel position sensor
  • Yaw and lateral acceleration sensor (analog)
  • Lights lever
  • Wipers lever
  • Key, D/P/R lever
  • Battery current sensor
  • Magnetic speed sensors
  • Doorlock switches, windows switches
  • Pedal position sensors (analog)

Output peripherals:

  • All kinds of lights: low beams, high beams, flashers, ...
  • Wipers: arms and washer pump
  • Power windows
  • Door locks
  • Pumps
  • Blowers
  • Audio amplifier enable
  • Relays

Excellent source of information: Evilution [9]


We are actively developing our software at this time. As soon as we have a Release Candidate the sources will be posted here.

Does it work?

Of course! We waited a long time before releasing the details to be sure that the boards were thoroughly tested. While v0.1 (our initial design) had some issues, v1.0 is almost perfect.

Here is an extract of our QA sheet, as of October 10th 2012:

An example of what we went through to qualify our power outputs. Notice the size of the power resistor compared to the size of the board!

Power output qualification

Known issues:


Freshly assembled VUE32 v1.0

Fully assembled VUE32 v1.0 with enclosure

Design files and license

Hardware files

This project is licensed as Open Source Hardware. Here is an extract of the definition, according to Sparkfun:

If a device or project has this icon, it means the plans must:

  • Contain editable source files
  • Allow for modification
  • No discrimination against groups [...] or technology [...]
  • You are allowed to sell your version. No -NC limitations.
  • May require attribution

All the details are available on their website: [10]

We are not selling this board. This project was purely educational, not for profit. By releasing this design we hope we will help the development of electric cars of all kinds.

Let us know if you use the files and give us credit. That's the least we can ask. Contact: j f d u v a l @at@ a q r a .dot. c a.

All the design files are available here: [11]

Free Altium Viewer: [12]

Software / sources

See Software.


Here's a list of improvements and ideas for the next revision:

  • Fix the 2 known issues (change a couple resistors...)
  • Better IP protection (see Enclosure)


A complete list of our generous sponsors is available here: [13]

Authors and Greetings

  • Jean-François Duval and Team VUE (full list of members: [14])
  • Special thank you to Dominic Létourneau for his code and support
  • Thanks to all our sponsors!

Contact Jean-François Duval for more information, j f d u v a l @at@ a q r a .dot. ca.


VUE32 - open source controller for the peripherals of an electric car
Electric vehicle peripheral controller for the masses - Hack a Day VUE32 - openecosys
.:Projet VUE:. Vehicule Urbain Electrique - Universite de Sherbrooke
EMRAX motors | Electric products | ENSTROJ - electric motor manufacturer
SAC41 Sensorless AC Drive Controller File:Enclosure 3.JPG - openecosys File:Enclosure 2.JPG - openecosys File:Power test.JPG - openecosys
SAC50 Sensorless AC Drive Controller
Battery chargers
SAC60 Sensorless AC Drive Controller File:Sch topsheet.png - openecosys

No comments: