On Tuesday, 10 September 2024, I bought the VW Golf. On closer inspection I found the following faults with the car:
Temperature gauge doesn't work, an aftermarket temperature gauge was installed by the previous owner, but this also did not work.
The coolant expansion tank has been replaced with some other car's tank, so the sensor wires did not fit.
Opening any of the 2 front doors (the rear doors could not open) was a rather difficult and tricky process.
The vehicle had no back board.
Things that have been fixed
Bought a set of 4 door handles and installed these, very simple, don't even need to take off the door panel. Not that expensive, now works as good as new.
Installed an ECU for the car, ESP32 Tensilica LX6 32-bit Dual-Core processor with WiFi, BT.
Installed an OLED display in the instrument cluster
On the console there is 2 rows for LEDs, the bottom row is not used at all (had to drill out the plastic), installed 5 individually addressable red LEDs to be used as warning lights.
While the OLED display is displaying the above, the LEDs does a little light show, then flashes with a 250ms delay a few times. I think it would attract attention when enabled.
Installed a "retro"-looking radio, but it has Bluetooth.
Installed 2 x IcePower 6x9" speakers in the backboard.
The water pump pulley wasn't running smoothly, further inspection revealed that the bearing was busy going, so I replaced the water pump.
The starter motor has been making funny noises since I bought it, have been waiting for it to fail, so it did and also got replaced.
Replaced the rear light clusters with semi-smoked ones (it was about the same price as original covers).
Replaced both headlights with LED lights.
ECU
The ECU is connected to the ignition via an INA219 Voltage/Current sensor.
Version 1.0 read and displayed the temperature of the coolant expansion tank and the battery voltage. It also kept record (in EEPROM) of minimum and maximum values. Monitoring the cooland tank temperature is in fact pointless.
Version 1.1 code was rewritten entirely to read and displayed the temperature sensors - one in the coolant expansion tank, one connected to the pipe heading into the car's head (DS18B20 in a modified crimp connector, with some thermal paste, heat-shrinked together, then connected to the pipe using some more thermal paste. EEPROM was cleared, and it also kept record of minimum and maximum values, but no longer displayed that on the OLED at startup.
Version 1.2 is more advanced:
Attempts to connect to my HA wifi network, if after 20 seconds there is no connection, it disconnects and shuts down the WiFi, as the vehicle is clearly not at home. If it does manage to connect, it starts a 5-minute timer, sends the minimum and maximum values stored in EEPROM to Prophet (my Home Automation system). When the 5 minute timer expires, it disconnects from wifi and shuts it down.
During this 5-minute period that the ECU is connected to my HA wifi system, it listens for OTA (Over-The-Air) updates, meaning I no longer have to physically connect a USB cable to the ECU to reprogram it - I can simply switch on the car (doesn't even need to be started), and push the OTA update.
Still reads/displays both temperatures and battery voltage.
Version 2.0 is being designed as follows:
Introduce the concept of multiple ECU "Modules".
CLUSTER_DISPLAY
0.96" OLED display replaced with 2 x 1.3" 240x240 RGB IPS LCD Modules.
Top display displays the current time, in white on light blue background. DS1307 is used as (battery-backed) RTC.
Top display also caters for check control messages (e.g. brake light failure), as well as indicators left/right active.
Read temperature from DS18B20 (connected to the pipe), and use this to draw a pretty temperatur gauge.
Battery-backed RTC (DS1307), at startup (if WiFi connects): get time from (local) SNTP server and set RTC.
ADXL345 Accellerometer to detect vehicle acceleration (in order to start seatbelt warning, or lock the doors.
SIM800L GPRS board, using A-GPS to determine location, an sending this information real-time (via GPRS) to Prophet.
Central locking system - on unlock, only unlock driver door, on lock, lock all doors.
Analog comparators, comparing the following to a set value, in order to display error to driver:
Brake lights left.
Brake lights right.
Reverse lights.
Parking lights rear.
Parking lights front.
Figure out where the anti-hijack is disconnecting the fuel supply, possibly on receipt of SMS with certain contents, activate this device. Alternatively set some shutoff relay in the battery to car cable.
The minimum and maximum data collected will be used to determine when to activate an alarm on the display for high temperature for future versions.
Check soldering/replace 2nd red LED in cluster warning lights row.
Install new seat covers (already purchased) - would need to perform some maintenance on the seats first, they are tearing at places, have ordered cloth repair tape to see how that performes holding everything together.
Install new window washer tank/pump/etc (already purchased) - currently not working for some reason.
Build new side-wires for the backboard, the ones I initially built both snapped.
Install central locking system. Unlock should only unlock the driver door, but lock should lock all four doors.
ECU:
Figure out why ECU buzzer is not working.
Create a function for providing warnings, which flashes the LED warning lights and activates the buzzer.
Gearlock sensor, detect if it has been inserted. Without much if anything visible (can do it with sonar or IR distance sensor but that'll look ugly).
See if I can get some seat-belt sensor (shouldn't be too difficult) for a seatbelt reminder.
Trigger a warning if water pipe temperature exceeds some threshold.
Trigger a warning if battery is out of some range.
Accelerometer that triggers the central locking system to lock all doors when speed exceeds a threshold (think my BMW is set to 40kph).
The back board was built out of pegboard, with two pine supports to make it strong enough to hold (some day) 6x9 speakers. The fluffy black "carpet" was glued on using Bostik clear glue and some hot glue at the bottom.
Easy build, just measure the size where it's supposed to go in the back, and build it to that size. The pine supports have 45-degree angles which abruptly ends in being cut away to allow for easier positioning of the board.
Here's some images of the board, do note I ended up painting the underside of the board with grey sealant, it looks much better when painted.