Speeduino Canbus Dash Demonstration

Описание к видео Speeduino Canbus Dash Demonstration

Speeduino digital dash using canbus. This has been added to a car that had purely analog gauges and no canbus support whatsoever since it was designed in 1992 when canbus was a twinkle in some engineers' eye. This system has in total 5 canbus devices:
Raspberry Pi 3 B+ for right hand cluster screen, with custom made canbus hat
Raspberry Pi 2 for left hand touch screen, with same canbus hat
Raspberry Pi Zero with same canbus hat taking data from the Speeduino ECU and converting it to a canbus stream (this I refer to as the "Canbus Bridge").
Arduino Nano for accessory inputs (indicators, hazards, handbrake, oil pressure, fuel gauge, ice warning light, ignition sense, main beam, dipped beam, brake fluid warning)
Arduino Nano for VSS using a BMW hall sensor with 48 tooth wheel on the drive shaft (already present).

The fuel, ignition, and AFR maps are all downloaded directly from the ECU and broadcast as canbus messages at boot with CRC checks to ensure they are accurate. The screens are synced on boot but I forgot to enable it here before taking the video. You can see there is a sync on key-off though. At key off the power is delayed by a basic delay relay board to enable everything to stop before power is cut. The accessory node on the canbus detects key off through its ignition sense.

The system is built using Ultibo alongside the small bits of code on the arduinos. It's a bare metal build, which is why it boots so quickly. The cluster screen actually starts up before the cluster LCD has initialised. I'd love to be able to remove the green boot message but it just isn't possible as it's part of the LCD firmware.

The layout of the clocks duplicates the original dashboard design mostly, although I added a central information section in the cluster that it boots with. The system adds numerous features not available on the original car such as headlight on warning when you shut the engine off, handbrake on warning when you set off, oil pressure detection, low fuel level warning, two separately resetable trip counters, and of course multiple different cluster views - classic, sport, and track. Other convenience features will be added (such as speed limit warning) later.

Every part of the display, on both screens (they both actually run the same application) is configurable through an XML file. So new displays can be added together with linkage between them. Obviously artwork has to be drawn where needed. There are many different kinds of guages and ways to control them - all configurable. For example you can provide code snippets within the XML to control the colour of a vertical bar gauge based on other engine parameters.

There are a number of features I have not shown - the cluster screen datalogs everything automatically, keeping a history of logs up to a configured quantity. The rectangular displays in the cluster have rotatable options so you can change them to different things using the left touch screen - all configured in the XML and there is a health check page in the touch screen that shows coloured warnings. It also has a real-time clock but as you can see I haven't set the time on it.

A bit of work is still needed on the layout in places because some of the XML is from when I had a slightly smaller touch screen (this new one incidentally being a proper capacitive one so is super responsive and accurate).

Комментарии

Информация по комментариям в разработке