I took the my 1390 apart and pried off the PCB's metal EMI shields. The 'logic' side of the PCB has an ARM microcontroller seemingly customized by Garmin, a Samsung 2GB flash memory, and a Bluetooth IC. The other 'analog' side has some GPS and analog amplifier ICs. The Samsung IC is basically a solder-in MMC memory card, which likely makes use of a standard MMC interface in the ARM chip. Most custom ARM chips contain both factory-programmed ROM (not editable) and some flash memory.
My guess is that Garmin has a custom hard-coded loader burned onto their IC, and that in turn loads other FW from a GCD file or similar via the USB port. I couldn't find any obvious PCB pads that supported board-level programming. In my experience we always programmed all flash memory when a product was fully built up, since this allowed for serialization and avoided having to manage multiple versions of commonly-used chips. So, if all Garmin FW lived in the Samsung flash IC, then replacing that and executing the cure process might work. However, if the ARM's onboard flash is also used, then that could be the issue and that chip would also have to be replaced. Both ICs are available from overseas surplus electronics wholesalers, but I decided that life is too short in this case. Flash is usually good for 100k+ write cycles, but is easily damaged by the type of environments seen by our automotive GPS units, such as starting your car with the GPS plugged in, unplugging it from a PC without 'ejecting' it first, and so on. Garmin might also write to the flash during normal operation, which would wear it out after ??? hrs of use. 15 years isn't bad. I guess I'll baby my eTrex 20 going forward!
Spoiler: images
Bookmarks