This has been a long running project. I bought the LVB Tracker kit (inc LCD display) probably a year ago and construction took place over a rainy weekend. However, programming the PIC has not been so simple.
Importing the provided .hex file into either the MPLab IDE or a standalone programmer (programming via both a socketed hardware programmer and ICSD) resulted in various warnings about configuration bits not being set. The author hints in the instructions that the provided programmer binary has some intelligence and does more than just write the data. He also states the programmer is Windows only and must use a real serial port (not a USB->RS232 converter).
The problem for me was a) all my machines run Linux and b) my only machine with a real serial port is used as my ‘radio’ machine, is in an awkward location and runs completely headless (no monitor or keyboard). I really didn’t like the idea of digging the machine out, swapping HDs and installing Windows. So, the project stalled for almost a year.
Today I dug an old machine out of the garage. Replaced a failed motherboard, installed XP, fought with a million drivers and hooked up a serial cable between the serial port and the LVB Tracker.
PicProg firmware.hex \\.\COM1
The programmer indicated it had detected the PIC and selected a programming method suitable (I suspect setting the relevant config bits). Success!
Only, the LCD display now seemed to be randomly garbled. 30 minutes later and a poor joint on the LCD ribbon cable was identified. Issue fixed and the LVB Tracker lives!
Maintenance could however be an issue. The author states:
“The firmware is written entirely in Knusden Data’s C. This was chosen primarily because of its integrated floating point library.”
I see Knusden C is still available, however my preference going forward would be to port the source to the MPLab C compiler (assuming floating point is available).
The original .hex file and a dumped .hex file (once programmed, with full configuration bits etc set) can be found below. The dumped .hex should be complete but I haven’t yet re-flashed this to confirm (since tested/confirmed OK by ON7CFZ, many thanks!).
Dumped 16F876 post programming (by custom programmer): LVBTrack_Dumped.hex
The next task will be to mount the tracker in a case, add push buttons and connect my Yaesu G-5500 controller to test. I do still have issues controlling the FT847 in satellite mode using CAT (poor support in Hamlib) but at least one part of the puzzle is almost complete.