My 80' Chevrolet Malibu Classic SW

Status
Not open for further replies.

Texas82GP

Just-a-worm
Apr 3, 2015
7,986
18,691
113
Spring, Texas
Before you tear your dashboard apart, try to lubricate the speedometer cable. Years ago, my needle would jump around as you describe. There is a ring clamp on the back of the speedometer; push it towards the speedo and you should be able to pull the cable out. There isn't much space to work in there, so try to slide it out of the firewall. There is a rubber grommet that you can gently pry out of the firewall. Once freed up int he engine compartment, put about 10-20 drops of clean motor oil down the cable. Let it drip all the way down to the other end. Since you have cruise control, you'll have to work the two cables separately, same method.
I thought he said he replaced both cables. I like your idea though.
 

ZeblodS

Not-quite-so-new-guy
Jun 13, 2016
18
16
3
France
I changed the front lights of the car, in order to see better and to be better seen.

- Replaced the headlight switch because the old one made the lights blink after a few minutes,
- Replaced the old rusted headlights by H6054 to H4 conversion kit for Europe,
- Replaced the 1157 bulbs in the parking light / turn signals by BAY15D amber/white LED,
- Replaced the halogen h4 lamp by SHO-ME G3.1 LED H4 kit,
- Rewired the front side markers to be only turn signal (in France you need amber front and side turn signals, but side markers like in the US are forbidden), and put T10 amber LED in them.
- And finally replaced the two flashers by electronic flashers so it blink at constant speed whatever the load.

Here's a video with all the front lights in action (but the camera is rubbish...).
As you can see, the parking light and the headlights are neutral white (5500k~6000k) which is pretty good looking. The turn signals / hazard lights are amber, and thanks to the LED it lights up / switch off instantly : you can clearly see the difference between the front and back turn signals in the video.
I think I'll also use LED on the back to have this reactivity with the turn signals and the break lights, and maybe add a third break light at the top of the rear window (mandatory in France).

Here are pictures of the LED H4 bulbs in the Euro H4 conversion kit.
Low beam:



High beam:



There is way more lights than with the original halogen H4 bulb and the old headlights, with only 36W per bulb at high beam. I can actually see further compared to the pictures taken with my old rubbish camera... But I'm a bit too low, I could legally rise up both headlights a bit, but I'm afraid with that much light I might blind the on-coming traffic.
 
  • Like
Reactions: 1 users

ssn696

Living in the Past
Supporting Member
Jul 19, 2009
5,546
6,671
113
Permanent Temporary
I checked out the video as well as your links. I must admit that I like the dual-color front turn signal/marker light combination. The LED headlights seem to give a very pure white light in the video. Merci pour vos renseignements.
 

ZeblodS

Not-quite-so-new-guy
Jun 13, 2016
18
16
3
France
So, the interior lighting delay module died yesterday.

I noticed that it wasn't working good lately: the light stayed ON all night a few times, and stayed OFF when I opened the door the morning a few times...

After some research I found out the part is GM #463498, but damn it costs a fortune!
$59.95 + $33.74 for shipping to France, $93.69 for delayed interior light, no way!

I opened the part to see if I can see obvious damaged components, but nothing except for the TO-220 shaped transistor that become VERY hot when the module is plugged (burn your finger to the touch). After some research on the web, that's the part that usually fail and this reference isn't produced nor available for years now...



That's why I decided to build my own replacement part from scratch using some COTS (commercial off-the-shelf) I already have at home:
- The original module with all components desoldered to be able to plug my own module easily on the car wiring,
- A Pro micro module which is Arduino compatible for the logic part of my own module,
- A Pololu 5V relay module I planned to use on a previous project but never did. I could have used a transistor in saturated state but I didn't have any on hand that could handle enough power,
- A DC/DC step down converter to have a 5v from the battery with no heat and a good efficiency when powering both the Arduino and the relay,
- A few resistors (1k and 10k, 1/4W), two zeners (5.1v, BZX79C5V1), a prototype PCB, some wires and a soldering iron.

All in all, it costs about $10 and I already had all components at home.



Regarding the wiring from the car:
A - Interior lights, high impedance (open circuit) to keep them OFF, ground to turn them ON. All current from all interior lights goes through this wire, hence the relay module.
B - Ground.
C - Battery voltage, hot at all time with a 20A fuse, same fuse that the one for the interior lights.
D - Door push button signal, high impedance when both front doors closed, ground when one of the front door is opened.
E - Key battery signal, high impedance when ignition key is OFF, battery voltage when ignition key is ON (engine ON or OFF).



I need to adapt some voltage:
- Door voltages, use a pullup resistor to have +5V on Arduino input when all doors are closed, use a zener and resistor to protect from battery voltage (should not happen, but better be safe than sorry).
- Key voltage, use a pulldown resistor to have ground when ignition key is OFF, and a zener and a resistor (voltage divider) to limit to +5V instead of battery voltage.
- The rest is pretty straight forward, I used the DC/DC module to have +5V from the battery voltage, and use the pins D2, D3 and D14 on the Arduino.
- Of course, I could have used clamping schottky diodes instead of zener, but I didn't had any on hand.



Regarding the logic part, the easiest and fastest is to use a finite-state automaton that is pretty straight forward to implement.
Some highlights:
- Most of the time, the Arduino is in sleep (Power Down) state, and the consumption is kept under 1mA at 5v, with the pullup resistor and considering the fairly poor efficiency of the DC/DC converter at such low consumption (about 20~30%), the whole consumption of the module is less than 2mA at 12v when in sleep.
- I deactivated all µcontroller modules on the chip, except for the Timer1 I need, to save power even when not in sleep mode (according to online tests, about 40mA instead of more than 100mA with every modules activated).
- The Arduino is woken up by an edge-change interrupt from the door or the key signal (INT0 and INT1).
- When woken up, timer interrupt made the automaton evolve each 100ms (10Hz), the same interrupt is used to count the delays. The 10Hz is used to debounce the door and key signals, could have used a way higher frequency, but 10Hz is more than enough.
- Unlike the original delay module, I use two separate delays. A 30 seconds delay when the door is closed and the ignition key is OFF, and a 10 minutes timeout delay when the door is opened and the ignition key is OFF in case you forgot to close your door.
- The 10 minutes timeout delay is bypassed when the door is opened and the ignition key is ON, you have a reason to let the door open when the key are in the car.

The Arduino code is available here.







The module is a bit larger than the original one, but way cheaper, more precise, and I bet it consumes less power in sleep. I put the module in the car like that, no external casing, works fine since yesterday.

Took me roughly an hour to get how the original module works and make the finite-state automaton on a piece of paper, 2 hours to solder everything, and an hour to implement the Arduino. It actually took me more time to make this forum post (nice automaton, electronic diagram, pictures, write all this)...

I hope it can help someone else on day.
 
  • Like
Reactions: 1 users

Texas82GP

Just-a-worm
Apr 3, 2015
7,986
18,691
113
Spring, Texas
So, the interior lighting delay module died yesterday.

I noticed that it wasn't working good lately: the light stayed ON all night a few times, and stayed OFF when I opened the door the morning a few times...

After some research I found out the part is GM #463498, but damn it costs a fortune!
$59.95 + $33.74 for shipping to France, $93.69 for delayed interior light, no way!

I opened the part to see if I can see obvious damaged components, but nothing except for the TO-220 shaped transistor that become VERY hot when the module is plugged (burn your finger to the touch). After some research on the web, that's the part that usually fail and this reference isn't produced nor available for years now...



That's why I decided to build my own replacement part from scratch using some COTS (commercial off-the-shelf) I already have at home:
- The original module with all components desoldered to be able to plug my own module easily on the car wiring,
- A Pro micro module which is Arduino compatible for the logic part of my own module,
- A Pololu 5V relay module I planned to use on a previous project but never did. I could have used a transistor in saturated state but I didn't have any on hand that could handle enough power,
- A DC/DC step down converter to have a 5v from the battery with no heat and a good efficiency when powering both the Arduino and the relay,
- A few resistors (1k and 10k, 1/4W), two zeners (5.1v, BZX79C5V1), a prototype PCB, some wires and a soldering iron.

All in all, it costs about $10 and I already had all components at home.



Regarding the wiring from the car:
A - Interior lights, high impedance (open circuit) to keep them OFF, ground to turn them ON. All current from all interior lights goes through this wire, hence the relay module.
B - Ground.
C - Battery voltage, hot at all time with a 20A fuse, same fuse that the one for the interior lights.
D - Door push button signal, high impedance when both front doors closed, ground when one of the front door is opened.
E - Key battery signal, high impedance when ignition key is OFF, battery voltage when ignition key is ON (engine ON or OFF).



I need to adapt some voltage:
- Door voltages, use a pullup resistor to have +5V on Arduino input when all doors are closed, use a zener and resistor to protect from battery voltage (should not happen, but better be safe than sorry).
- Key voltage, use a pulldown resistor to have ground when ignition key is OFF, and a zener and a resistor (voltage divider) to limit to +5V instead of battery voltage.
- The rest is pretty straight forward, I used the DC/DC module to have +5V from the battery voltage, and use the pins D2, D3 and D14 on the Arduino.
- Of course, I could have used clamping schottky diodes instead of zener, but I didn't had any on hand.



Regarding the logic part, the easiest and fastest is to use a finite-state automaton that is pretty straight forward to implement.
Some highlights:
- Most of the time, the Arduino is in sleep (Power Down) state, and the consumption is kept under 1mA at 5v, with the pullup resistor and considering the fairly poor efficiency of the DC/DC converter at such low consumption (about 20~30%), the whole consumption of the module is less than 2mA at 12v when in sleep.
- I deactivated all µcontroller modules on the chip, except for the Timer1 I need, to save power even when not in sleep mode (according to online tests, about 40mA instead of more than 100mA with every modules activated).
- The Arduino is woken up by an edge-change interrupt from the door or the key signal (INT0 and INT1).
- When woken up, timer interrupt made the automaton evolve each 100ms (10Hz), the same interrupt is used to count the delays. The 10Hz is used to debounce the door and key signals, could have used a way higher frequency, but 10Hz is more than enough.
- Unlike the original delay module, I use two separate delays. A 30 seconds delay when the door is closed and the ignition key is OFF, and a 10 minutes timeout delay when the door is opened and the ignition key is OFF in case you forgot to close your door.
- The 10 minutes timeout delay is bypassed when the door is opened and the ignition key is ON, you have a reason to let the door open when the key are in the car.

The Arduino code is available here.







The module is a bit larger than the original one, but way cheaper, more precise, and I bet it consumes less power in sleep. I put the module in the car like that, no external casing, works fine since yesterday.

Took me roughly an hour to get how the original module works and make the finite-state automaton on a piece of paper, 2 hours to solder everything, and an hour to implement the Arduino. It actually took me more time to make this forum post (nice automaton, electronic diagram, pictures, write all this)...

I hope it can help someone else on day.
Man! I thought I was pretty good with wiring but you are a genius!
 

Longroof79

Rocket Powered Basset Hound
Oct 14, 2008
12,173
9,769
113
Gainesville, Fl
Nice work, man.
I'm sure you got more of a sense of accomplishment recreating your own circuit board replacement...and saving a bunch of money in the interim....good for you.
 

drogg1

G-Body Guru
Jan 25, 2009
885
213
43
Nice little solution! Clean code with comments!
 

ZeblodS

Not-quite-so-new-guy
Jun 13, 2016
18
16
3
France
Hello guys!

Some news: I'm still using the car almost every day as daily driver, it works great so far. The interior light delay module I made last time (my previous message) worked flawlessly for the last two and a half months.

A friend of mine gave me a non working remote keyless entry module with its two wireless remotes (three buttons: lock, unlock, trunk release) which I decided to use on my car. I think the kit was similar as this one.
The main microcontroller on that kit was fried so impossible to use as is, but I managed to salvage the 433MHz RF receiver. Both remotes works fine as well, and there's a blue LED I can put on the dash to mimic an alarm (or at least have a visual Lock status).


I decided to take my current interior light delay module and reuse some parts to make a mix interior light delay + remote keyless entry module. That way I can also control the interior light according to the car central locking.
The part list used is the following:
- The same original module with all components desoldered as before,
- The same Pro micro module as before,
- The same Pololu 5V relay module as before,
- The same DC/DC step down converter as before,
- The salvaged 433MHz RF receiver (but would also work the same with a 433MHz receiver like this one with a quarter or half wavelength long (17.2cm or 34.4cm) wire as antenna),
- The two salvaged remotes (same as these ones, but can work with any 433MHz remotes...),
- The salvaged LED with its mount insert,
- Two optocouplers (PC817) used to adapt the voltage for the door push button signal and the key battery signal,
- Five SPST 5V Relays, enough to switch battery voltage for the Lock, Unlock, Trunk release, Turn signals left and right,
- A driver circuit (ULN2003) which is the easiest way to manage the relays and the LED,
- A few resistors (1k and 10k, 1/4W), some terminal connectors, two prototype PCBs, some wires, a soldering iron, tape, hot glue, Rilsan collars, nylon sheath, shrink sleeves...

You can see the parts are pretty cheap, the salvaged parts don't really cost much either. Like last time, I used these parts mostly because I had them on hand: I didn't want to order specific parts for that.
There's a bit higher number of components compared to last time, and for practical reasons I chose to make two circuits linked by 6 wires.



The bottom part has the same 5 inputs/outputs as the previous module so I can use the original module board to plug it easily in the car.
I get the battery voltage (through the car's "CTSY/CLK" 20A fuse) and the ground for the whole system, the input signals from the door push button (high impedance when both front doors closed, ground when one of the front door is opened) and the ignition key (high impedance when ignition key is OFF, battery voltage when ignition key is ON), and the output to drive the Interior lights (high impedance to keep them OFF, ground to turn them ON).

The top part has only outputs for the Lock/Unlock signals (parallel with the inputs of the car central locking on the right of the passenger's feet behind the carpet), the Trunk release signal (plugged after the Trunk release button in the glovebox), and both right and left Turns signals (plugged right after the direction assembly outlet near the direction column, it provides directly the battery voltage to the front and rear bulbs without going through the blinker nor the direction assembly). It works with only two turn signal relays because I have the European wiring, which means that the whole left side is plugged together (front and rear) and likewise with the right side. With the US wiring we must probably would need four relays, or large diodes...

The two parts are separated by 35~40cm wires, so I can plug the bottom part where the original interior light delay module is plugged, and the top part under the dash behind the climate control unit which is harder to access and cleaner. I was careful to wire these five signals neatly (brazing with shrink sleeves, wires similar as the genuine ones...).

Here are the car wiring diagrams and where all signals are taken:

 
Last edited:
  • Creative
  • Like
Reactions: 1 users

ZeblodS

Not-quite-so-new-guy
Jun 13, 2016
18
16
3
France
The logic part is also a bit more evolved than before with two interdependent finite-state automatons running at the same time.



General rules:
- Lx: Light automaton state,
- Rx: Remote automaton state,
- TL: Light automaton timer,
- TR: Remote automaton timer,
- The automaton is assessed every 100ms (10Hz frequency) so a timer of 10 means 1 second,
- The timer of the corresponding automaton is reset each time its state evolve,
- Every inputs are retrieved once before assessing the two automatons (the logical inputs like the door and key sensors as well as the remote button pressed, if any),
- Every outputs are set after both automatons have been assessed,
- At any time, only one state of each automaton is active (the active state of one automaton can be used as condition for the other automaton, and one automaton car define the active state of the other automaton).

Inputs:
- DOOR: both front doors are closed,
- /DOOR: one (or both) of the front door is opened,
- KEY: the ignition key is OFF,
- /KEY: the ignition key is ON,
- REMOTEL: the remote button Lock has been pressed,
- REMOTEU: the remote button Unlock has been pressed,
- REMOTET: the remote button Trunk release has been pressed.

Outputs:
- LIGHT: interior lights are ON,
- LED: the blue LED is ON,
- TURNS: both sides of turn signals are ON,
- LOCK: the lock signal of the car central locking is active,
- UNLOCK: the unlock signal of the car central locking is active,
- TRUNK: the trunk release signal is active,
- When not specified, the output is OFF/inactive.

Regarding the remote button state retrieval, I use the RCSwitch library for Arduino which allows to easily capture and process the 433MHz remote signals. The remotes I have uses an EV1527 IC encoder that sends 24bits long frames: 20bits are used only for address coding (1048576 unique combinations), and 4bits are used for data (in this case: button Lock is 1, button Unlock is 2 and button Trunk release is 4).
I have developed a way to save the address 20bits of a new remote in the EEPROM of the Arduino, by pressing one of the three buttons during the first 15 seconds after the Arduino boot. I limited the number of remotes to three (but it's a variable in the code: the 1KB EEPROM of the Arduino could save up to 340 codes). When 3 remotes are already saved, if a new one is learned it overwrite the oldest one.
Each 100ms, before assessing both automatons, a code check if a new remote code has been received. If it's the case it checks the length (24bits) and the protocol (EV1527 IC encoder is protocol 1). If it matches, It compares the 20bits address with the three remotes saved. And finally if it also matches It retrieves the data part to generate the REMOTEL/REMOTEU/REMOTET input signals.

Compared to the previous version, the Arduino must remain active at all time: no more sleep (Power Down) state. Otherwise it would be impossible to monitor efficiently for the remotes frames. Which means the system has an higher consumption while "idling", but the deactivation of all unused microcontroller modules on the chip allow the consumption to stay under 15mA (Arduino + RF module active). Every Keyless Kit in the shops have similar consumption (if not higher...).

The two state automatons work roughly as follow:
- When you close the doors with the ignition OFF: the interior light goes ON for 30 seconds and then goes OFF if the light was previously ON, or stays OFF otherwise.
- When you open one door with the ignition OFF: the interior light goes ON for a maximum of 10 minutes and then goes OFF (timeout to save the battery).
- When you close the doors with the ignition ON: the interior light goes OFF.
- When you open one door with the ignition ON: the interior light goes ON.
- When you turn the ignition ON with both doors closed: the interior light goes OFF.
- When you turn the ignition ON with at least one door open: the interior light goes ON.
- When you turn the ignition OFF with both doors closed: the interior light goes ON for 15 seconds and then goes OFF.
- When you turn the ignition OFF with at least one door open: the interior light goes ON for a maximum of 10 minutes and then goes OFF (timeout to save the battery).
- When you unlock the car (with the remote): the interior light goes ON for 30 seconds and then goes OFF.
- When you lock the car (with the remote): the interior light goes OFF.
- When the car is locked: the LED flashes every 10 seconds (ON for 1% of the time), and the interior light is always OFF.
- The Lock function consists in: activate Lock signals while short blinking twice the turn signals and the LED.
- The Unlock function consists in: activate Unlock signals while long blinking once the turn signals and the LED.
- The Trunk release function consists in: activate Trunk signals while short blinking once the turn signals and the LED.
- The Lock function is only available when the car is unlocked (LED doesn't flash), both doors are closed and the ignition is OFF.
- The Unlock function is only available when the car is locked (LED flashes).
- The Trunk release function is only available when the ignition is OFF (prevent opening the trunk while driving).
- To activate the Trunk release function: press the Trunk release button on the remote once and then press it a second time after 400ms and within a 1 second timeout, or keep the button pressed for more than 400ms. It prevents inadvertently opening the trunk.
- When the car is locked (LED flashes) if one door is opened or if the ignition is turned ON, the Unlock function is executed.

The Arduino code is available here.


Finally the pictures, it doesn't look much (tape covering the circuit, lot of hot glue and Rilsan to keep everything in place...) but it works great since last weekend:















Now, if you're interested, you can make your own.
 
  • Creative
  • Like
Reactions: 1 users
Status
Not open for further replies.

GBodyForum is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com. Amazon, the Amazon logo, AmazonSupply, and the AmazonSupply logo are trademarks of Amazon.com, Inc. or its affiliates.

Please support GBodyForum Sponsors

Classic Truck Consoles Dixie Restoration Depot UMI Performance

Contact [email protected] for info on becoming a sponsor