Skip to the content
PCBKitNew board
2 layers130.8 × 139.7 mmPcb design, the printed circuit board in 3D

E28 Cluster Driver is (going to be...) an ESP32 based driver board which allows the E28, and possibly E21/E30, cluster to be controlled via custom inputs.

Size
130.8 × 139.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
74
Nets
119
Pads
272
Tracks, vias
528, 0
Pours
9
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
21 Aug 2019
Updated
6 Nov 2025

Overview

Pcb design is an open-source printed circuit board by dowster, from the dowster/e28-cluster repository on GitHub. It is a 2-layer board of 130.8 × 139.7 mm with 74 parts on 119 nets, routed with 528 tracks and 0 vias.

It is built around the L7805. Its parts include 5 ICs, 3 resistors and 2 connectors. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

E28 Cluster Driver

E28 Cluster Driver is (going to be...) an ESP32 based driver board which allows the E28, and possibly E21/E30, cluster to be controlled via custom inputs. For the first version custom input will be done solely via CAN Bus. There won't be any hardcoded message spec, that will be configurable by the user after firmware has been flashed.

Main repository is at https://gitlab.com/dowster/e28-cluster

Build Status

Build Status

Hardware

ESP IDF Version

v4.2

:)

E28 Cluster Driver Inputs

Input to the E28 cluster driver shall be done via CAN Bus and possibly with a web based interface for diagnostics, calibration, and configuration. The CAN input shall be configurable so that any value on a can message may be mapped to any of the outputs, allowing the potential for configuring the driver with custom cluster gauge faces. IE: using the econometer to show watts / mile.

Instrument Cluster Outputs

Speedometer Output

The speedometer of the E28 cluster is pulse driven. Approximately 2Hz for every MPH. IE: 50hz -> 25mph, 280hz -> 140mph. Driving the speedometer will advance the odometer automatically. It will also generate a pulse signal that is output to the SI board and the cruise control hardware.

The speedometer operates on a UAF 2115 IC. This IC is a general purpose speedoemter and mileage indidactor IC by ITT Semiconductors. It provides a constant current source to the output pin(s) 10-13 on the E28 cluster plug C2 (white), these four pins are all bridged together, shorting these to ground will provide a pulse to the speedometer. The UAF 2115 also provides an open collector NPN pulse output to drive things such as cruise control. In order to trigger a pulse the speed sensor in the differential would short to ground as each tooth of the gear passed by, these pulses must be atleast 50 microseconds in duration, the max frequency is 10Khz. On the E28 Pin 11 of UAF 2115 is connected to ground, so the division factor is 2^6, I think this is to configure how the odometer tracks distance.

Temperature Gauge Output

The temperature guage output will be an open collector NPN output from the E28 cluster driver. The temperature gauge is controlled by varying the current output of pin 12 on connector C1 of the E28 instrument cluster. To control this I'll either use the DAC on the ESP32 or use PWM. I have had some issues with "buzzing" when using PWM but I may just need a higher frequency.

Fuel Gauge Output

This is pretty much the same as the temperature gauge but with a different calibration. I'll be using a lower value resistor on the gate of this transistor since the fuel gauge requires more current. This signal is also output to the onboard computer by default. See OBC Outputs for information on how I plan to control the OBC.

Tachometer Output

The tachometer is controleld by a simple voltage input. I'm thinking a PNP driver for this with PWM control should be fine.

Econometer Output

No clue how to do this one yet, haven't really looked into it.

Warning Indicators (On PCB)

The warning lights will be controlled via simple solid state relay circuits. Either PNP or NPN transistors controleld via shift registers to save up some pins on the ESP32, if needed. Some of the warning indicators are built onto the instrument cluster's PCB, others are controlled via lights have external wiring.

Charge Indicator

Could have many different functions, possibly solid when charging the pack or when the pre-charge resistor is engaged and flashing when a pack error is detected.

Brake Warning Indicator

TODO

High Beam Indicator

TODO

Fog Light Indicator

TODO

LH Turn Indicator

TODO

RH Turn Indicator

TODO

Low Fuel Warning Indicator

TODO

"Check" Active Check Control Alarm Indicator

TODO

Oil Pressure Warning Indicator

This is probably not needed with an EV so that could be modified to be something else.

"Park Brake" Indicator

TODO

Brake Lining indicator

Haven't seen how this wires up yet, It's on the PCB.

Warning Indicators (External Wiring)

Left and Right turn arrows

Probably used to be used on cars where there was only one lamp to tell you that the turn indicators were on. Could be repurposed with a different logo. Background is green.

Solid Yellow

There's no graphic on this lamp, it's in the 3rd position from left and just has a yellow or orange color filter.

EML

Not wired up, says "EML" in black letters with a yellow or orange color filter. 4th position from left

Solid Green

No graphic on this indiactor, just a solid green. 6th position from left.

ABS

If the stock ABS is kept this can stay here. Not sure if ABS is used on many swaps but I think that if it is this light may want to be used as a way to kill regen and let the motor coast while ABS figures out what to do.

Gearshift Indicators

Seems like even the manual clusters include this plate, or my car has been swapped with an automatic cluster.

Transmission Warning Indicator

Shows as a gear with an exclamation mark in the center

P, R, N, D

Pretty self explanatory

3, 2, 1

Show up as individual lamps, for indicating if you've manually selected one of these gears I presume.

1-2-3

This is on single indicator, I presume that it indicates you've disabled overdrive.

OBC Outputs

The method for driving the OBC hasn't been determined yet, two options are to just plug the OBC into the instrument cluster and let it run business as usual. The more involved, and possibly better method is to map out the pins on the OBC and manipulate that with the E28 cluster driver. The main feature I'd like to see out of this is an accuruate range estimate based on pack state of charge and average watts/mile.

Parts

74
QtyValueFootprintReferences
264700Resistor_SMD:R_0805_2012MetricR_A0_1, R_A0_3, R_A1_1, R_A1_3, R_A2_1, R_A2_3, R_A3_1, R_A3_3, R_A4_1, R_A4_3, R_A5_1, R_A5_3, R_A6_1, R_A6_3, R7, R10 +10
202N2222Package_TO_SOT_THT:TO-92_HandSolderQ_A0_1, Q_A1_1, Q_A2_1, Q_A3_1, Q_A4_1, Q_A5_1, Q_A6_1, Q_A7_1, Q_B0_1, Q_B1_1, Q_B2_1, Q_B3_1, Q1, Q2, Q3, Q6 +4
922000Resistor_SMD:R_0805_2012MetricR_A0_2, R_A1_2, R_A2_2, R_A3_2, R_A4_2, R_A5_2, R_A6_2, R_A7_2, R9
92N3906Package_TO_SOT_THT:TO-92_InlineQ_A0_2, Q_A1_2, Q_A2_2, Q_A3_2, Q_A4_2, Q_A5_2, Q_A6_2, Q_A7_2, Q8
2470Resistor_SMD:R_0805_2012MetricR1, R3
1220Resistor_SMD:R_0805_2012MetricR2
1AP1117-33Package_SIP:SIP3_11.6x8.5mmU4
1Conn_02x13_Top_Bottompcb-design:Connector_TE_827881-1J6
1ESP32-DEVKITC-32Dpcb-design:MODULE_ESP32-DEVKITC-32DU6
1L7805Package_SIP:SIP3_11.6x8.5mmU7
1MCP23017_SPPackage_DIP:DIP-28_W7.62mmU2
1MCP2562-E-PPackage_DIP:DIP-8_W7.62mmU3
1Screw_Terminal_01x02TerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-2_1x02_P2.54mm_HorizontalJ4

Questions

How big is the Pcb design PCB?

It measures 130.8 × 139.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pcb design use?

74 parts, built around the L7805. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Pcb design KiCad files?

From the dowster/e28-cluster repository on GitHub, at the commit this page was made from: the board is pcb-design/schematic.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pcb design design in my own project?

Its repository states no licence, so its author keeps all rights: ask dowster before reusing the design.

Similar boards

  • 2 layers40.6 × 110 mmEuropi surface mount, the printed circuit board in 3D

    Europi surface mount

    Allen-Synthesis/EuroPi

    EuroPi: A reprogrammable Eurorack module based on the Raspberry Pi Pico

    92 parts584CC0-1.0
  • 2 layers132.1 × 45.7 mmIPoS, the printed circuit board in 3D

    IPoS

    peterheinrich/InternetOverSpaghetti

    Transmitting IP packages over a pair of spaghetti thus demonstrating how media independent IP really is.

    42 parts342
  • 2 layers59.7 × 57.5 mmFunBox, the printed circuit board in 3D

    FunBox

    GuitarML/FunBox

    Stereo guitar pedal platform using Daisy Seed.

    61 parts289MIT
  • 2 layers90.8 × 35.6 mmERCF easy brd, the printed circuit board in 3D

    ERCF easy brd

    Tircown/ERCF-easy-brd

    More informations on how to reset for flashing:\ https://wiki.seeedstudio.com/Seeeduino-XIAO/#enter-bootloader-mode

    28 parts195GPL-3.0
  • 2 layers111.3 × 106.4 mmSuper Sixteen v1, the printed circuit board in 3D

    Super Sixteen v1

    matthewcieplak/super-sixteen

    Code and schematics for the Super Sixteen Eurorack sequencer

    141 parts171
  • 2 layers91.4 × 71.1 mmPico w rover, the printed circuit board in 3D

    Pico w rover

    NikodemBartnik/Mini-Mars-Rover

    Educational robotic platform made to look like a mini mars rover

    20 parts143MIT
  • 2 layers144.1 × 182.2 mmSHVC CPU-01, the printed circuit board in 3D

    SHVC CPU-01

    starlightk7/OpenSFC

    OSHW Reproduction Parts related to the Super Famicom / Super Nintendo game console

    498 parts114CERN-OHL-S-2.0
  • 2 layers106.1 × 155 mmMotherboard, the printed circuit board in 3D

    Motherboard

    Redherring32/OpenTendo-TopLoader

    An Open Source HardWare (OSHW) recreation of the 1993 toploading NES motherboard (Also known as NES-101)

    84 parts94