8748/9 Programmer

I came across a box of old work related circuit boards from the 80/90's in my loft and on thinking what to do with them I came up with the idea of using the old Train Describer display modules as clocks for my loft. It's not a new idea as our TD display modules were used as clocks in both Paisley and Motherwell Power Signal Box's.

This will be another project in a few months but to get started I un-boxed my Stag PP39 to make a copy of the Clock program from my 'master' 8748 microcontroller. The Stag hasn't been used for around seven years and at first it wouldn't read my 8748 device but after a lot of cleaning and cajoling it would read it consistantly.. progress! Next was to try programming a blank device.. the PP39 was having none of it no matter how many blank devices I tried.

So what I need now is a second opinion and that will be in the form of Matt Millman's HVEPROM Project pictured above..I needed an excuse to buy an Arduino :)

This project is one I think I could build so I sent off for an Arduino Mega 2560, ordered what components I didn't aready have and used the 'short' Gerbers to order the PCB. The short Gerbers keep the PCB cost to a minimum.

The Arduino arrived quickly, even before I had the chance to set up the Aduino IDE but that's done now and I have made the LED Blink.. a good start.

Building the Shield

All the parts and the first components being soldered on.

Next are the crystal and resistors.

Then the Transistors/FETs and capacitors.

Finally the 5V Regulator and the headers

The Shield ready for testing.


The HVEPROM Project explains how to program the Arduino using the command line program, Avrdude, but being a complete Arduino novice I thought it would be a simple matter of using the IDE to copy the hex file to the Arduino. How wrong could I be!

So it was back to command line programming, I searched the internet for a Win10 compatible copy of Avrdude which I found but using the command on the web site failed! Searching the internet for clues to this problem didn't come up with any potential solutions so that was me stuck. I contacted Matt who helped by enlightening me that the Arduino IDE uses Avrdude in the background to load the compiled programs onto the Arduino and to use the 'verbose' output to send an example program to the Arduino and note the command line it uses.

This worked with a slight tweak, I had to include inverted commas round the windows paths.

"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" "-CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega2560 -cwiring -PCOM6 -b115200 -D -Uflash:w:C:\Data\hveprom.hex:i


The client program has ten test routines to run through which allows you to check all the ZIF socket pin voltages that switch levels including the Data Bus I/O. Here are a couple of examples.

Reading and writing my first 8748

The first 8748 to backup was the Clock program. Simply Insert the device into the ZIF socket then 'Read from Device' and 'Save as BINARY'. To check that it has copied correctly I used a freeware Hex Editor to calculate the check sum of the file.

Then write back to a blank 8748. Insert a blank 8748, You can do a blank check to confirm it is empty then 'Load BIN/HEX' file and finally 'Start Operation'. If all three check oxes are ticked then a Blank check is performed, then the device is programmed and finally it is verified.

With that done I can now backup all the SES Software and also move on to my project of converting a TD display module into a clock.