sprintf / lemon-pi

onboard display for racing 24 hours of lemons using a raspberry pi
4 stars 1 forks source link

Python application

Lemon-Pi

drawing meets drawing

A Raspberry-Pi based dashboard display for endurance car racers.

image

Under active hackery, but the basic premise is to solve the following issues

  1. provide a display of the current time
  2. boldly inform the driver when the engine is overheating
  3. let the driver know their position in the race, and the gaps to the cars around them
  4. provide a predictive/delta lap timer
  5. avoid over-burdening the driver with visual information by making audio announcements in the drivers ear.

In order to achieve the above we use a Raspberry Pi, a screen and a Wifi connection. The Rpi attaches to the OBD connector in the car and constantly pulls in coolant temperature and displays it. The time is provided by the Wifi connection and is generally very accurate.

We also use GPS, which allows us to detect when the car crosses the start/finish line, and then show per-lap timing.

We put a phone in the car as a personal hotspot and just use Wifi from the RPi to the cell phone. Then we built a server to handle the communications between the car and the pit. The server is called Meringue.

Pit Integration

Lemon-Pi also works with a Slack integration in order to inform team mates when the car is pitting, as well as pinging the lap time and engine temperature as each lap is completed. The slack integration easily allows team mates and support staff to know when the car is on the track or in the pits. The Pit Integration also allows text messages to be sent to the driver, in case radio communications break down (that never happens though).

Raspberry Pi Setup Instructions

Raspberry Pi specific instructions

Development Instructions

Developer README

Hardware

Computer

Raspberry Pi Model 3+. $35 Adafruit Link

Note It's quite hard to find the model 3+ now. You can get a model 4 which is more readily available and the same price, but your experience with the battery used here may vary. The RPi 4 is known to be more power hungry than the 3/3+

Display Options

Sunfounder 7" HDMI display. $65.99 Amazon Link

Note : There's a quite nice ELEcrow 5" HDMI display but it can only run on USB power andis not bright enough. Use a 12v powered display or it will not be bright enough.

GPS

GPS USB Receiver $12.99 Amazon Link

Adafruit Ultimate USB GPS $29.95 Digi-Key

Note In theory this receiver can operate at 10Hz, providing a lot more GPS data. However, the fastest we've been able to get this working is 2.5Hz.

DO NOT USE Global Sat BU3-353S4 $28.38 Amazon Link as it doesn't work so well with gpsd on the RPi.

OBD

OBD USB $16 Amazon Link

All the above plug-and-play with the Raspberry Pi.

Sound Mixing Hardware

Mini Mixer $8.95 Ebay

This is useful to provide an easy to reach volume control for the driver. This can mix input from the Radio on one channel, and the RPi on the other channel, and mix the two audio sources into the drivers headset. If your drivers use helmets with a microphone, you will need to custom wire the microphone around this contraption and back to the radio. We use Nascar wiring for our headset adapters, and this didn't provide too difficult.

Tracks Currently Supported

Almost ALL the tracks that are raced by 24 Hours of Lemons are now supported. If yours isn't or the configuration doesn't match, file an Issue. The tracks that are currently supported is here

Power Considerations

The Raspberry Pi needs a good 2amp power supply. Many USB cables will struggle, and many USB power sources are not rated for this. I had to buy these cables from Amazon to get rid of the flashing low power indicator.

Since this is designed for a racing application, we do not want to power it from the main car battery, because during pit stops it is required the kill switch completely disconnects the car battery. We don't want the device needing to reboot, and we want it to keep track of what's been going on (laps completed, predictive lap timing data) through a whole day of racing. The solution is to power the Raspberry Pi from a USB battery pack. This is the one we use to power both the Raspberry Pi and the onboard Go-Pro camera.

It is not possible to run two or three USB devices connected to the Pi as well as having the screen powered. We are now running power for the screen from a separate source, and are not piggy-backing the screen to the Pi. This has the downside of losing the touch capability of the screen, but does mean a 16,000mAh battery can power the Pi for more than 12 hours.