Homemade ARM-based Calculator Programming Cable


I was able to make a fully functional programming cable to use for programming the ARM-based calculators (12C+, 15CLE, 10bii+, 20b/30b/wp34s). I made the 6-pin connector from scratch and used one of Harald Pott's USB converter boards (thank you Harald!). Furthermore I didn't need nor use HP's cable to mold, measure or even look at.

The basic materials are:

one of Harald's PCB's (is there a link to order them somewhere?)

0.8mm x 16.55mm spring loaded pins

2mm pitch x 2 row machine pin sockets

beryllium copper sheet 0.01" (.25mm) thick

some thin, stranded 6-conductor wire (ribbon cable is good)

some shrink wrap tubing

Here's how to make it:

raw materials for connector:

Cut a connector to get a 5-pin (x 2-pin) block. Cut the copper sheet to get two pieces: 3mm x 18mm and 4mm x 18mm. Insert 6 pins in the middle of the connector and solder them into place:

Make a small bend on the end of each piece of the copper that will serve as the hook to lock the connector in place. Solder the copper pieces in place as shown:

Here are the rest of the materials to finish the cable. Harald's cable comes with the USB wire and connector already attached. You need to add some standard size tact switches (for erase and reset). Any electronics distributor will have zillions of them to choose from:

Now comes the hard part, soldering the wires to the back of the connector and to the PCB:

Here's the final cable with the board mounted in a little 1" x 2" Amac clear plastic box

Edited to remove an unnecessary and confusing comment

Edited: 25 Aug 2012, 12:12 a.m. after one or more responses were posted


I think you just won yourself a Nobel prize in physics!!!!


Very nice that is a very good idea you had for the clips, I was considering bringing the wire out the side and then use a one piece metal strap that went right over the top, but what you did looks a lot easier.



The main thing that I concluded was that I had to use a 2mm pitch socket for the pins or I would have zero chance of aligning them properly. Once I had the socket in hand it just seemed logical to use it as the backbone of the plug.

The pins I used were the perfect diameter on both ends, but the connector would be a somewhat tighter fit if pins were shorter so that it wasn't so far away from the calculator. Did you find shorter pins to use?


The ones I received are about 18mm so about the same as yours I think the only difference is mine are spear point. I wonder if the pins could be shortened? Another thing that comes to mind is you could drill through the bottom of the holes in the socket and then position the socket closer to the tip of the pogo pins and solder them in place and attach the wires to the ends of the pins protruding though the socket. You could also stabilize the pins by encasing them in something like hot glue or epoxy. I think epoxy putty would work good here but does not give you a lot of working time. Could you work shapelock in between the pins? I got some but have not tried to do anything with it yet.


You can shorten the pins I have but only by a couple of millimeters. The internal spring runs most of the way through the sleeve and if you cut off too much it's toast. Soldering the pins into the socket keeps them pretty stable. It's just that the whole plug should be closer to the case so that it's easier to put the calculator down on a desk face up.


Great work, Katie! And very well documented :-)

Now the inevitable dumb question applying to the WP 34S: Harald also offers a pcb with a USB port on it to be installed inside the HP-20b/-30b/WP 34s so you can use a standard micro USB cable for the computer link. Using this, the only additional thing required for programming would be your great 6-pin connector with pin J31 and J36 (reading J34 on the calculator board) shorted. This will replace the ERASE button. Kind of a programming dongle ;-) Correct?


Very nice!

As Walter already pointed out, with the USB adapter installed, a simple short between the ERASE pin and +3V is enough for programming. A simple two pin version of the connector should be fine for this. I once did it with just a piece of wire. Once the WP34S firmware is up and running this trick is no longer needed except for recovery of a failed flashing attempt.


Marcus and Walter,

If I had one of Harald's micro-USB boards installed in my 34s I would take things a step further and glue a small reed switch inside the case that's wired to Erase and +V. When you want to program you then just need a small neodymium magnet correctly placed on the outside of the case. This will cause the reed switch to connect Erase to +V while the magnet is in place.

I've used this "hidden switch" trick for several devices I've modded -- most recently an HP82240b printer that doubles as a recording device for a wireless thermometer. (I probably should write this up sometime.)


Please do write up the remote recording thermometer project, Katie, I can't wait to see the details.


I don't have much in the way of documentation on this as I just sort of slapped it together using pieces of code that I had worked on in other projects. I used a simple 433Mhz receiver like this one and hooked the output into a Parallax SX microcontroller.

The receiver picks up the signals sent by the Oregon Scientific remote temperature sensors (series 1) and the micro runs a program to decode these. (I use THR138 sensors). I figured this out myself based on some info found on the web, it was pretty tricky but fun to work out. Then the micro takes the temperature (in ASCII) and drives an IR LED with the correct encoding/timing that the HP82240A/B printer needs.
The encoding/timing is well documented here.

I found that I could actually skip the IR LED and feed the modulation directly to the IR photo diode inside the IR printer. So I built a circuit into the printer and just use a little reed switch to activate it. It doesn't interfere with the normal function of the printer at all and the only external modification is the antenna wire hanging out of the back.

Here's the mostly uncommented code

Here's the really ugly mod in pictures:

Note the antenna and the little magnet on the HP name plate:

Here's reed switch glued under the nameplate and the ugly wiring:

and here's the dead-bug style microcontroller

and the RF module I used and located next to the paper roll:

Edited: 25 Aug 2012, 7:35 p.m.



Many, many thanks for sharing the source. The comments are quite sufficient to be able to follow it, mostly because the routine names pretty well describe what each is doing. Using this beside the 82240 "Interfacing" manual makes it very clear.

Your pictures are also very helpful.

I have been wanting to make an RS-232 to 82240 IR widget to use for printing messages from a device that (still) has a serial port, and this should make it way easier. The only hard parts, for me, will be getting the timing exactly correct with the micro I'm using (MC9S08QG or similar) and figuring out a nice enclosure for it. (That'll be way easier if I can get enough current to power it from RTS and DTR... Then it might even fit in the hood on the D-shell connector with the IR LED sticking through the cable hole!)

Now I just need to find time to work on it. Maybe if I stopped typing long forum replies...



I'm glad that the source code was readable and potentially useful to you. I found that the timing isn't as critical as "interfacing" manual says it is. Make sure that when you test your circuit the IR emitter is very close to the printer as you're likely to get less than 30cm distance from a couple of milliamps of current into the LED.


Hi Katie,

very nicely done! Thanks for sharing.
I think this is probably most interesting for people who do not wish to modify their calculator with the USB board.
Sorry there is no link for ordering the PCBs, just email to: h dot pott at gmx dot net.
Originally the board was intended to replace the PCB in the HP cable, so the cable could directly be connected to the USB port without an RS232 adaptor. For that purpose it seemed best to reuse the original pushbutton - hence I don't have any of those right now. But if there is an interest in these boards I can order some buttons and maybe even make the connectors. Unfortunately I don't think I can buy beryllium copper in Germany.



Unfortunately I don't think I can buy beryllium copper in Germany.

This used to be easy to find in the USA, but not now. Is this becasue of ROHS, I really have no idea. However any sort of easy to cut, springy metal that can be soldered too will work. There's got to be something in a local hardware store that would do the trick.


Well, beryllium copper isn't really a healthy material due to the beryllium :-( But an arbitrary spring steel ("Federstahl") will do at least as well :-)


Well, beryllium copper isn't really a healthy material due to the beryllium :-(

I believe that is the reason why it has not been available here for many years.
But an arbitrary spring steel ("Federstahl") will do at least as well :-)

Yes, that is true. But it is not as easy to cut, bend and solder as beryllium copper.

The pogo pins in the link aren't available to us Europeans either, but I am sure we can find an alternative there.

Edited: 26 Aug 2012, 4:05 a.m.



The only thing I would add is a couple plastic posts glued to one side of the "plug" to match the alignment slots on the calculator. Knowing me, I'd make the cable, then hook it up backwards and end up releasing the smoke from the most expensive component.



I cut the beryllium-copper strips to different widths (3mm and 4mm) to match the notches for locking clips on each side of the connector. You can't put it on the wrong way!

The plug alignment slots are redundant, I'm not really sure why they are there. In fact, the 12C+ and 15CLE don't have them, they just have a space so that the same plug as used in the 20b/30b will fit.

Possibly Related Threads…
Thread Author Replies Views Last Post
  The Lucky WP34S Cable eri 7 3,817 12-22-2013, 05:18 AM
Last Post: Walter B
  DIY HP 30b WP 34s serial flash/programming cable Richard Wahl 2 2,538 12-04-2013, 11:14 AM
Last Post: Barry Mead
  PIL-box w/o IL cable = paper weight Joe Horn 15 4,964 11-26-2013, 01:05 AM
Last Post: Les Wright
  HP30b cable I can borrow? eri 7 2,798 11-10-2013, 07:55 PM
Last Post: Paul Berger (Canada)
  WP-34s ISP (flashing cable) again ;( Bernhard 16 5,890 11-01-2013, 05:02 PM
Last Post: Bernhard
  Compatibility of new HP PRIME Cable Harold A Climer 8 2,913 10-13-2013, 01:14 PM
Last Post: Eric Smith
  Dedicated HP calculator programming-hardware-bug website? Geoff Quickfall 12 2,851 10-12-2013, 11:34 PM
Last Post: Les Koller
  WP34 cable Mike Powell 9 3,154 09-29-2013, 07:27 AM
Last Post: Mike Powell
  Flashing cable for HP 20 / 30B Stefan Koenig 3 1,997 09-19-2013, 05:53 AM
Last Post: Marcus von Cube, Germany
  Self-made WP-34s flashing cable? Victor Koechli 6 2,967 08-15-2013, 10:11 AM
Last Post: Les Wright

Forum Jump: