My Garmin keeps crashing. This circuit reboots it with a power toggle.
Sending a bunch of null chars from a RS232 port to the circuit switches
the relay, interrupting power to the Garmin.
I wrote a little program to send
null chars from a serial port. I suppose you could do the same thing with a
shell script
Shd >---------------------------------------------------------> Shd From USB To Garmin GND >---------------------------------------------------------> GND From USB To Garmin NC O---------> +5V / To Garmin +5V >-----------------------------------------*---O CM (60mA) From USB | +-----O NO . +5V >-----------------------------------*-----+ /|\ From 'other' USB | | | | | | Relay 1N4148 --+-- +++ | 5V, 125 Ω (40mA) /|\ |/| ---+ --+-- +++ | | | | +-----* | | 4k7 4k7 | | / +-----+ +-----+ |/ TXD >---+ +---*---+ +---*-----*---| (3) +-----+ | +-----+ | | |\ | | | | _\| BC547B | | | | --+-- +++ --+-- | --+-- | | /|\ | | +++ --+-- | | | | | | | | | GND >-------------*-------------*-----*-------* (5) 470 nF 100k 1N4148 | | | RTS >-------> CTS | (7) (8) | | | DTR >---*---> DSR | (4) | (6) | | | | | +---> DCD | (1) | | | GND >-----------------------------------------+ From 'other' USB Shd >---+ From | RS232 | | Shd >---+ From 'other' USB
CM | Common |
NC | Normally closed |
NO | Normally open |
The relay I use is a Maluska HJR1-2C (German), which in fact double throw;
NC O-----*---> +5V / | To Garmin +5V >-------*---O CM | From USB | | *-----O NO | | | | NC | | O-----+ | / *---O CM | +-----O NO
The pin numbers are those of a 9-pin RS232 connector;
1 2 3 4 5 ───────────── ╲ o o o o o ╱ ╲ o o o o ╱ ─────── 6 7 8 9
The circuit and the Garmin are powered from different USB ports.
The same circuit can be used to power toggle other equipment.
Any low power low frequent general purpose NPN transistor can be used instead
of the BC547B.
I use 2 seconds of null chars at 115200 bps (23040 bytes).