Building The DIY HP41C: A Field Report

I have a confession to make. I write about a lot of projects for Hackaday, but there are very few I read about and then go actually build a copy of it. I don’t have a lot of time and I’m usually too busy building my own stuff. But once in a while, something strikes my fancy and I’ll either raid the junk box or buy the kit. The most recent case of that was the PX-41C, a replica of the classic HP-41C.

Nicely bagged parts.

The HP-41C is a somewhat legendary reverse-polish notation calculator. I still have my original HP-41C from 1979 (a very low serial number). It is still a workhorse but at 43 years old or so, I don’t like to leave it hanging around or near anything that might damage it. It has enough wear from the daily use it received 40 years ago. Sure, I have great emulation on my phone and I use that too, but the PX-41C kit looked fun, and with all through-hole parts it would be a quick build. The black Friday sale on Tindie sealed the deal for me.

Start-Up

The kit arrived on the Saturday after Thanksgiving, I decided to tackle it while waiting for some 3D prints. The components were all nicely bagged and marked. Tearing into the bags was a bit frustrating, but not hard and it did keep everything separate. There was a bill of materials, but — I thought — no instructions. Turns out the last part of the bill of materials is a link to some instructions. They aren’t much and I didn’t realize they were until after completing the board, but it isn’t hard to figure out. All the parts are marked on the silkscreen and you can probably figure it out — with a few caveats.

Note components squashed down for the LCD.

Several components go under the LCD display and that is soldered in, so you need to put them in first. I wondered if you should install them on the back of the board, but the pictures showed them front-mounted and you realize pretty quickly you have to bend them down to let the LCD sit flat. The instructions, if you read them, do mention this.

Once I had everything but the switches done, I powered up to make sure it all worked. It did — or, at least — it powered up and said MEMORY LOST.

Switches

With 39 switches, you need 156 solder joints…

There are 39 little tact switches to install. Luckily, they have little legs that spring into the holes, so it isn’t very hard. However, they can pop out, so I suggest doing a column or two at a time. One switch was a little bent out of shape but there was an extra, so I didn’t bother trying to unbend it.

With a few keys in the bottom right corner, I could power on and do a few quick calculations with no problem. The board takes a CR2025 and I only had a thinner battery. A dime made a good spacer and let me fit the thin battery and get the thing working.

Configuration

The board has a backlit LCD and a clock — features a regular HP41C didn’t have. However, I didn’t see an obvious way to set them. I had found the documentation by then and it said to hold the 0 key while powering on to get into the configuration menu. Turns out, it is the divide key, which took a minute to figure out. In addition, the keys to operate the menu system are a little wonky (but, in all fairness, the firmware put a help message on the screen until you release the divide key).

Just in Case

The case looks great and the key springs are very precise. The tape on the overlay is very obvious in the photo, but not as bad in person.

There is a 3D printed case and a way to print an overlay for the keys along with a springy key matrix. They were nice enough to send me these already made up, although I’m not sure that’s always included. The overlay looks great at first, but if you look closely, it is taped down and that detracts a little from it. Don’t lift up the tape! It will ruin the overlay.

The case looked good, and it is fairly simple. There were a few problems, though. First, the LCD was poking up at an angle. The instructions tell you to tape it down to the CPU, but that didn’t really help. After taking these pictures, I pulled the LCD off and reinstalled it carefully with new headers and had it come out nice and flush.

The other problem was that the R/S key in the bottom right corner didn’t want to work with the case in place. Sometimes it was inoperative. Sometimes it would work but didn’t click like the rest of the keys and was more like a touch panel. Sometimes it was stuck pressed down.

I tried filing the case a little but that didn’t seem to help. There are some nubs that keep the board from coming down too low on the key springs. It looks like the case was warped enough to have that corner a bit lower than the rest. If you left the back off and pushed on that corner, it would reproduce the problem, but the other corners were fine.

I thought about reprinting the case myself — I have enough 3D printers, after all. But I finally made a little paper shim to make the stop in that corner a little thicker. I just took a small strip of paper and folded it many times until it was about the same size as the stop and inserted the stop into the paper making a sandwich where the paper was the bread and the stop was the meat. This seems to have cleared up the keyboard issue. It doesn’t look like the problem was related to the key installation, but anything is possible. I’m pretty sure it was just a subtle warping in the case.

Last Impressions

Done. Sort of. Works great! The tape is very reflective in photos.

For the price (about $40) this is a fun kit and is actually useful. It would be nice if the LCD had a socket. It would also be nice if the overlay install looked cleaner, but for a casual glance, it is fine and it still looks better than just a bare PCB with keys — unless you like that sort of thing.

I haven’t tried to see if the emulator will do synthetic programming yet, but it is on my to do list. Otherwise, I now can use my HP41C with no phone and without risking my real one. After forty-some-odd years, it can use the rest.

For some reason, the projects I tend to build after writing (or reading) about them are mostly for retrocomputing. I built the KIM UNO (and repurposed it for the 1802). I built a PiDP-8 (and need to find time for the PDP-11 version). Possibly my favorite was the $4 Z80 which I actually added a bit to, software-wise.

20 thoughts on “Building The DIY HP41C: A Field Report

  1. My first “real” calculator was an HP 11C. I immediately fell in love with RPN; it was a natural to the way I think. Further, it was my first introduction to progamming. I used the HB Basic to run engineering beam bending calcs for concrete form work. This looks to be an intriguing project.

    1. Exactly the opposite in that I like the horizontal orientation. My first HP ws the 11C, then when I got the 15C and 16C my sister took the 11C. As said above, RPN is ‘natural’ to the way I think too.

      I might have to to check this kit out. Thanks for the article. I enjoyed the PDP 11 build (was actually working with it last night for a bit). I sent a message a couple months ago to see about getting a PDP 8 but never received a response on that request. Oh, well.

  2. I so WISH they would have added a physical on/off slide switch right next to the reset button. That ATmega 328 sips power when sleeping, but it WILL drain that coin cell eventually. Adding the slide on/off switch would have solved that problem. Even if you argue the deep sleep draws “negligible” power next to the shelf life of the battery, I still do not buy it. The shelf life of coin cells in my experience is far longer than manufacturer published, plus they’re over-priced, and (most important) it just BOTHERS me when a battery operated device like a calculator cannot be easily and fully turned off!

    1. The ubiquitous “transistor tester” has a nice power-off circuit.
      It’s made of a few BJT’s (which generally have lower leakage the MOSfets) and the “off” current (from a 9V battery) did not register on my DMM (100nA resolution).

      1. I’m a big fan of hard power switches too.

        That well-known BJT trick is excellent, but really useful only when you have a bit of voltage headroom to spare, and don’t have a lot of dynamic range in your power requirements. The transistor tester’s load and its 9V battery is ideal.

        The 3V from a coin cell won’t work so well, especially with a widely varying load.

    1. 20 digits exceeds the numeric precision of even double-precision floating point by several orders of magnitude.
      The real 41C has only 13 significant digits.
      I don’t know what library this FauxHP uses, but Arduino floating point on that processor has only 6-7 digits of precision.

  3. Or you can buy from ebay a new HP20b or HP30b calculator much cheaper than the above tindie project and then flash it
    with the WP 34S firmware to transform it in a scientific RPN calculator. You will get a 32bit AT91SAM7 processor instead of
    the 8bit ATMega328, a proper case and the classic HP buttons. Decals for the WP34 are also readily available.

  4. Loved my 25 and 41C, but now I have an emulator (V41 on the computer, i41C on my iPhone) and it’s just fine. I get my RPN fix virtually, though I do miss that lovely HP button feel.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.