A classic car enthusiast friend presented me with an interesting problem. He had a literal black box from the firewall of a 60’s era Saab Monte Carlo he'd recently purchased. The Monte Carlo has a two-stroke engine with an oil injection pump. The pump has a monitoring switch that closes to ground and opens periodically when the pump is operating. The black box was meant to monitor the switch and light a dash lamp if the pump ceased to run.
Inside the box there were bimetallic contacts wrapped with nickel-chrome heating wire. We conjectured that if the pump switch was in the same state too long, the elements would heat the contacts, closing them to light the dash lamp. The original guts were toast, however, and replacement parts were unavailable. Luckily, replicating the function in the original box would be an easy job for an Arduino, and a Nano and its support components would fit easily inside the original housing.
An Arduino Nano Every was used in the original project because I had one lying around. For this article, the project was recreated with a Nano clone. The code is written so that an Every, a Nano or clone can be used. Get a board without headers installed. Other components include a buck converter board (EBOOT Mini MP1584EN or similar), an opto-isolated relay board (HiLetGo or similar) and an PC817 optocoupler. All components are available from Amazon. The buck converter reduces the nominal 12V automobile Voltage to 5 Volts for the processor board. A buck converter was used because it produces less heat than a Voltage regulator. The relay board provides isolation for the processor output to switch the 12 Volt lamp load. The optocoupler allows the processor input to be switched with a 12V signal without sending the processor voltage out into the nasty world.
Wire the buck converter for automotive Voltage first and, with Voltage applied, adjust the converter potentiometer to obtain 5 Volts at the output. Wire the Nano to the converter and adjust the Voltage again.
Taking advantage of the board layout, D2 is used as the input, allowing the PC817 optocoupler DIP package to be soldered directly to the Nano D2 and GND connections. This allows the Nano and optocoupler to be mounted as a single component.
After wiring, the unit should be tested. After upload or upon power-up, the relay should energize three times and stay energized. Touch the pump switch wire to 12V ground to keep the relay energized. If the wire remains in one state (i.e. grounded or ungrounded) longer than 10 seconds, the relay should de-energize. Changing the wire state should immediately re-energize the relay.
The wired and tested components were placed “dead bug” style in the hollowed-out Bakelite relay case. The components were arranged and glued to the case floor with GE Advanced Silicone 2 clear caulk. The Nano should be placed so that the USB port is accessible for later reprogramming. With the initial silicone dried, components were embedded with additional silicone for waterproofing. To ensure accessibility, insert a cable into the Nano USB port during the second application. Allow the silicone to dry thoroughly before applying power.
Wires from the circuit were soldered internally to the labelled case terminals and the original case cover was reattached.
The sketch provides a 10 second delay before the dash lamp is illuminated, i.e. if the pump monitoring switch status remains static for longer than 10 seconds, the lamp is illuminated. A normally closed relay contact is used to illuminate the dash lamp so that the unit must be functional to keep the lamp off (i.e. failsafe operation). Upon startup, the lamp is flashed three times to show that the unit and lamp are functioning.
The reconditioned relay performed perfectly in my friend's Monte Carlo. I realize that demand for these will not be great. If you need one, though, you need one.






Comments