VMS ECU
Viking Motorsports (VMS) Engine Control Unit (ECU) is the main control board of a custom made electric race car for Formula SAE. Its development was supported by Beta project and the board was designed, assembled and tested at College of Engineering, Portland State University in 2016. The board runs stock Paparazzi sofware as a base.
Current status
As of February 2016, the hardware is essentially mature (revision 1.0) and it runs Paparazzi (an example airframe configuration is provided). More software development needs to be done in order to comply with Formula SAE rules.
Features
- 4 layer PCB board for better EMI
- Fully waterproof enclosure (IP-65 rated) and 48-pin Deutsch-TM header
- ARM Cortex-M4 168MHz MCU
- Intel Edison as a linux companion computer
- SD card logging on both MCU and Intel Edison
- Wifi & Bluetooth connectivity (Intel Edison)
- 2x insulated CAN bus
- 2x RS232
- 4x Analog input (5V)
- 2x Analog output (5V)
- 2x Digital input (Switch-to-Ground)
- 6x Digital input (Switch-to-Battery)
- 2x High-Side digital output
- 4x Low-side digital output
- 12-24V power input
- 5V power output
- Reverse polarity and overvoltage input protection on all I/O
- AspirinIMU with 3-axis gyro, accel and magnetometer and MS5611 barometer
- Ublox GPS with external antenna
- USB/JTAG for programming/debugging
The board is fully enclosed in a waterproof enclosure, and is intended to be used in harsh and dusty environments, such as automotive racing.
Pinout
Pins Name and Type are specified with respect to the ECU board. Note that the headers are in the order A-C-D-B (left to right, looking at the board from the top - component side). The pinout is designed so the related pins are adjacent in the wiring harness.
Pin # | Name | Type | Description | Color |
---|---|---|---|---|
1 | GND | PWR | For analog sensors | Black |
2 | 5V | PWR | For analog sensors | Yellow |
3 | AIN1 | IO | Analog input 5V | Orange |
4 | GND | PWR | For analog sensors | Black |
5 | 5V | PWR | For analog sensors | Yellow |
6 | AIN2 | IO | Analog input 5V | Orange |
7 | GND | PWR | For analog sensors | Black |
8 | 5V | PWR | For analog sensors | Yellow |
9 | AIN3 | IO | Analog input 5V | Orange |
10 | GND | PWR | For analog sensors | Black |
11 | 5V | PWR | For analog sensors | Yellow |
12 | AIN4 | IO | Analog input 5V | Orange |
Pin # | Name | Type | Description | Color |
---|---|---|---|---|
1 | GND | PWR | For digital inputs | Black |
2 | DIN_STG1 | IO | Switch to ground | Magenta |
3 | GND | PWR | For digital inputs | Black |
4 | DIN_STG2 | IO | Switch to ground | Magenta |
5 | GND | PWR | For power in | Black |
6 | VIN | PWR | 12-24V power in | Red |
7 | DIN_STB1 | IO | Switch to battery | Pink |
8 | DIN_STB2 | IO | Switch to battery | Pink |
9 | DIN_STB3 | IO | Switch to battery | Pink |
10 | DIN_STB4 | IO | Switch to battery | Pink |
11 | DIN_STB5 | IO | Switch to battery | Pink |
12 | DIN_STB6 | IO | Switch to battery | Pink |
Pin # | Name | Type | Description | Color |
---|---|---|---|---|
1 | GND | PWR | For analog outputs | Black |
2 | AOUT1 | IO | Analog output 5V | Light Tan |
3 | GND | PWR | For analog outputs | Black |
4 | AOUT2 | IO | Analog output 5V | Light Tan |
5 | GND | PWR | For high-side drivers | Black |
6 | VOUT | PWR | 12-24V power out (directly connected to VIN) for low-side drivers | Red |
7 | CAN1_H | IO | CAN high | Blue |
8 | CAN1_L | IO | CAN low | Cyan |
9 | GND | PWR | For high-side drivers | Black |
10 | VOUT | PWR | 12-24V power out (directly connected to VIN) for low-side drivers | Red |
11 | CAN2_H | IO | CAN high | Blue |
12 | CAN2_L | IO | CAN low | Cyan |
Pin # | Name | Type | Description | Color |
---|---|---|---|---|
1 | GND | PWR | For RS232 | Black |
2 | SERIAL_IN1 | IO | RS232 input (12V) | Green |
3 | SERIAL_OUT1 | PWR | RS323 output (12V) | Light Green |
4 | GND | PWR | For RS232 | Black |
5 | SERIAL_IN2 | IO | RS232 input (12V) | Green |
6 | SERIAL_OUT2 | PWR | RS323 output (12V) | Light Green |
7 | DOUT_LS1 | IO | Low-side output | Brown |
8 | DOUT_LS2 | IO | Low-side output | Brown |
9 | DOUT_LS3 | IO | Low-side output | Brown |
10 | DOUT_LS4 | IO | Low-side output | Brown |
11 | DOUT_HS1 | IO | High-side output (12V) | White |
11 | DOUT_HS2 | IO | High-side output (12V) | White |
Schematics and board files
The ECU is a fairly complex board, as shown in schematics below. The Eagle schematics and board files are on Github
Gerber files
Also available on Github.
Ordering and assembly
There is a shared project on OshPark - $307 for 3 PCBs
There is Digikey BOM for easy ordering here (some additional parts like the enclosure and the Aspirin IMU have to be ordered separately).