Berkeley students competed in the World Solar Challenge

Source: CAN Newsletter December 2011

Calsol – the UC Berkeley solar vehicle team - is an undergraduate club focused on designing, building, and racing highway capable solar vehicles. Impulse, Calsol’s newest car, depends upon a system of small modules communicating via CAN in order to perform its critical functions.
The centerpiece of each module is the Berkeley robust automotive interchangeable node, also known as the Brain, which is an in-house Arduino variant modified to include native CAN functionality. The micro-controller used is an Atmel AtMega 324P 8‑bit MCU, and interfaces with a Microchip MCP2515 (CAN interface chip) via SPI. The MCP2551 chip then interfaces with CAN through the Microchip MCP2551 (CAN transceiver). The AtMega 324P sports two UART lines, one of which is connected to an FTDI FT232R, which enables a developer to program the  Brain using USB.
The Brain was specifically designed with ease of development in mind and aims to lower the learning curve of programming with CAN and micro-controllers. The  Brain is fully compatible with the Arduino programming environment, which is a popular and easy to use IDE designed for small embedded system projects for hobbyists. This is important to support students who are eager to work for Calsol, but are lacking experience with industry standard tools, which are mainly targeted to large projects. Using this scheme, Calsol has been successful at getting new developers to do micro-controller programming with CAN.
Each Brain can be easily inserted into or taken out of a node, allowing a high degree of flexibility and interchangeability. Because of this modularity, the entire electrical system is functional, reliable, and easily repairable. These are all important characteristics when designing and racing a car powered only by the energy from the sun.

The Brain – Berkeley robust automotive interchangeable node

Impulse uses a system of small modules to perform all of its functions, including battery management, driver interface, telemetry, solar array monitoring, and data logging. All modules communicate with each other using a proprietary CAN protocol. Each module periodically transmits a heartbeat indicating the health of the module, along with all of its state data and sensor readings. The amount of data needed to be sent out by each module is small, therefore standard CAN (with 8 byte messages) is used, without the need for a higher level abstraction layer.
The system is designed to be failsafe. A failure of a non-critical component, such as brake and turn signals, will be noticed by the rest of the system but will not affect driving of the car. A failure of a more critical node, like the battery protection system, will cause an automatic shutdown procedure to ensure the safety of the driver. Each node in the system can be developed and tested independently, allowing a greater degree of design freedom and creativity.
Calsol raced the ­Impulse in the World Solar Challenge in Australia in 2011.