IntroductionThis is Carberry
Carberry aims to be a shield for Raspberry Pi microcomputers. Carberry represents the link between car electronics and Raspberry Pi, which allows the development of end-user applications, such as media centers, vehicle diagnostics, data logging, fleet management, tracking, blackboxes, burglar alarms, carputing, internet, and much more.
Communication stack How it works
Carberry is connected to Raspberry Pi via the expansion port P1, by this connection Carberry is able to supply Raspberry Pi.
The communication between Raspberry Pi operating system and Carberry takes place via the serial port.
By default it is provided a daemon that allows communication via a TCP/IP socket on port 7070
;
you can anyway develop your own custom daemon to communicate with Carberry directly on the serial port.
Having a dedicated approach to the cars, Carberry manages Raspberry Pi supply, via a power remote control
(whether it is analog on dedicated wire, on the CANBUS or line GMLAN).
By acting on the power remote control Carberry will feed the Rasberry Pi or if necessary will launch the shutdown of the operating system.
Communication stack between Carberry and Raspberry Pi is the following:
Carberry's Technical Specifications
Board Specification | |
---|---|
CPU | 32 bit RISC Microcontroller |
Supply |
|
BUSes |
|
GPIO |
|
User Interface |
|
UART |
|
Storage |
|
Sensors |
|
Multimedia |
|
Dimensions | Raspberry Pi shaped |
Hardware Specification | |
---|---|
Same size printed circuit board as of Raspberry Pi, with proper shaping. | |
Connection to Raspberry via the P1 26 pin GPIO header located on the board. | |
22 pin Microfit connector for vehicle connection. | |
Power supply +12 V and GND from the vehicle. | |
Power supply 5V 1A for Rasperry Pi generated onboard by Carberry. | |
Control of the Raspberry Pi power supply by mosfet, for the management of low consumption. | |
Logic shutdown signal to Raspberry Pi to perform a controlled shutdown. | |
Low power consumption compatible whit automotive standards (< 3mA). | |
Communication to the Raspberry Pi via UART (Pin 15/16 of P1 header). | |
+12V Ignition signal input. | |
+12V Ignition signal output with a 2.5A power mosfet. | |
2 CAN Bus lines for series or parallel connection at vehicle buses | |
2 GMLAN lines for series or parallel connection at vehicle buses. | |
2 channels for resistive steering wheel controls, with single key bypass capability. | |
1 general purpose UART 5V/3V3 | |
2 general purpose 100mA open collector outputs. | |
2 general purpose inputs (to ground or 5V tolerant). | |
2 general purpose user-programmable LEDs. | |
Microchip PIC32MX microcontroller. | |
Button and two-color LED for can bus profiles learning and reset functions. | |
PWM signal to Raspberry Pi for LIRC management. | |
Infrared remote control emulation for media centers via steering wheel controls. | |
Infrared sensor for 38KHz IR remote controls. | |
Infrared LED for IR codes emission. | |
Ready to Apple MFI program to develop applications under Linux (coprocessor not provided). | |
RTCC to handle date and time with car battery backup. | |
Raspberry Pi wakeup by RTCC at programmed date/time. | |
External EEPROM with a unique identifier to be used for any licenses related to the card. | |
Accelerometer + magnetometer, for anti-theft features, positioning, blackboxes. | |
Raspberry Pi wakeup by accelerometer and magnetometer events. | |
Microusb device connector for a stand-alone operation of the shield or future functionality. |
Software Specification | |
---|---|
Interfacing to the Raspberry Pi via ASCII strings (like modem AT commands). | |
Firmware upgradable via Raspberry Pi. | |
CAN bus self-recognition of the car profile. | |
GMLAN self-recognition of the car profile. | |
Manual selection of CAN bus profile. | |
CAN BUS Service Manager. | |
Notification services (lights, handbrake, odometer, etc) to the Raspberry Pi. | |
Management of CAN bus steering wheel controls. | |
Notification of CAN bus steering wheel controls to the Raspberry Pi. | |
Selective interception of the CAN bus steering wheel controls. | |
Notification of fuel gauge and engine diagnostics (where available). | |
Self-learning of resistive steering wheel controls. | |
Selective interception of resistive steering wheel controls. | |
Exposure to Raspberry Pi of the Apple MFI Coprocessor to subscribe to the MFI program to play Apple devices connected to the Raspberry Pi USB. | |
Exposure to Raspberry Pi of a RTCC to manage time and date. | |
Saving data to retain into EEPROM. | |
Exposure to Raspberry Pi of an accelerometer and magnetometer. | |
Exposure to Raspberry Pi of a unique code register. |