Post Reply 
HP-25C Eumulator
09-22-2014, 11:55 AM
Post: #1
HP-25C Eumulator
Hello, I've been lurking this forum for a few months looking for information on emulators. With the information I found on this site and forum I managed to realize / port part of the nonpareil emulator into a hardware project.

Thought some of you may get a kick out of this as a lot of threads here are emulation related.

The hardware is based on a MSP430G2553 mcu (16bit MCU, 512 byte RAM, 16K flash) and a 74HC164 shift register to help out the led multiplexing.

There is a "slow-mode" implemented so the speed resembles the original HP-25C. I don't have a HP-25C and I can only compare it from a youtube video.

Here is a video of it running a "accuracy test" via program mode.

http://youtu.be/WwPM0slZro4?t=1m57s


Attached File(s) Thumbnail(s)
   
Find all posts by this user
Quote this message in a reply
09-22-2014, 12:30 PM
Post: #2
RE: HP-25C Eumulator
Congrats Chris!
Do you think to assemble, refine & sell your prototypes?

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
09-22-2014, 12:49 PM
Post: #3
RE: HP-25C Eumulator
@massimo

There are some comments on the youtube video regarding this. Basically the whole thing will be open sourced (also my thanks to the nonpareil author Eric Smith). There could be a group-build / group-buy opportunity when the project is stable enough. I.e. if there will be a kit, I need to make sure everyone can build it.

This is the 1st prototype and I had made fixes to the design and currently into another version of PCB. It came out OK but unfortunately the silkscreen prints had messed up.

I had attached a photo of it, may be I can get some advice from this forum. For most of the scientific button labels, I had use other S/W to generate the scientific notions / symbols and combined into the PCB as "images". It turns out the PCB manufacturer had problem w/ those and it's not printed (instead I got these two big dots under the top-left-most button.

It would be nice if I can find a way to "impose" the "F" and "G" function labels in color. I am planning to just "write" on it for the time being. I saw all the nice labels stickers for WP34S, etc. Not sure if it could somehow be done on a single PCB build like mine. I welcome any suggestions to this.


Attached File(s) Thumbnail(s)
   
Find all posts by this user
Quote this message in a reply
09-22-2014, 01:41 PM
Post: #4
RE: HP-25C Eumulator
A PCB to fit the 25 would be nice :-).
Find all posts by this user
Quote this message in a reply
09-22-2014, 02:14 PM
Post: #5
RE: HP-25C Eumulator
Great!! Price ? Production ?

Systems Analyst
48G+/58C/85B/PC1500A
TH-78A/DooGee S9
Focal & All Basic´s
Visit this user's website Find all posts by this user
Quote this message in a reply
09-22-2014, 03:23 PM
Post: #6
RE: HP-25C Eumulator
(09-22-2014 01:41 PM)Thomas Radtke Wrote:  A PCB to fit the 25 would be nice :-).

Brain transplant? It could be costly and requires not-functioning HP-25Cs. To get those thin tactile buttons align w/ the original keys may be tricky.

(09-22-2014 02:14 PM)hp41cx Wrote:  Great!! Price ? Production ?

This is a hobby project w/o production in mind. I am more of a electronic hobbyist than a calculator expert. There could be another 1-2 iteration of PCB cycles to perfect the design. So you are looking at at least a couple of months before I can make extra builds.

I had made this other TI DataMath calculator which is similar, we (from a MCU forum 43oh.com) did a group buy project (kits) and the cost of components is about US$20, for the HP-25C, it should cost may be 50% more as the led bubble displays are costly (we need 3 sets for 12 digits) and the microcontroller also costs more.

http://forum.43oh.com/topic/5537-group-b...e-display/

I am new to the forum so please let me know if it's not appropriate to post external content, etc.
Find all posts by this user
Quote this message in a reply
09-22-2014, 04:32 PM
Post: #7
RE: HP-25C Eumulator
Is not only welcome if not put into production :-)

Systems Analyst
48G+/58C/85B/PC1500A
TH-78A/DooGee S9
Focal & All Basic´s
Visit this user's website Find all posts by this user
Quote this message in a reply
09-22-2014, 04:52 PM
Post: #8
RE: HP-25C Eumulator
(09-22-2014 03:23 PM)Chris Chung Wrote:  
(09-22-2014 01:41 PM)Thomas Radtke Wrote:  A PCB to fit the 25 would be nice :-).

Brain transplant? It could be costly and requires not-functioning HP-25Cs. To get those thin tactile buttons align w/ the original keys may be tricky.
A lot of Woodstocks have been fried, including mine. I guess some of those are still around.
Find all posts by this user
Quote this message in a reply
09-22-2014, 05:25 PM
Post: #9
RE: HP-25C Eumulator
Indeed - one of the main chips in the '20 series has a strong tendency to be destroyed if the calculator is plugged in for battery recharging and the batteries are not in or otherwise good and well connected. My 1975 '25 (non-C) is one such. As such, since the chips are long out of production (and the standard battery charge circuit is so ruinous), replacing the main PCB with a variant of yours would be terrific to get these fine machines working again.

It would be easier too - the keyboard and display are already provided. The battery pack could easily be replaced as well either with primary cells or higher capacity NiMH or lithium using readily available battery maintenance ICs.

When you open-source your design, would you mind if I look into the above? It would certainly be open source as well.

Many thanks for your fine work!
Find all posts by this user
Quote this message in a reply
09-22-2014, 06:09 PM
Post: #10
RE: HP-25C Eumulator
Thanks Eric for the original nonpareil work! I tried to email him but has not yet got a reply, may be his site / account is not very active these days.

It sounds interesting that there are a lot of non-working 20's. I googled some pictures on the internals and this is what I think.

The led module can be made to work as they are all the same, segment + multiplexing. However, the "comma" is not available on my design as I ignored it because of lack of IO pins and my Sparkfun led module has only 7 segment + decimal.

The keyboard, however, need more investigation. I am doing a 12 x 3 matrix scan (based on 12 digits as columns, I used 3 IO pins dedicated to the row scan), I don't know if the original HP layout is like so. I will investigate though.

The fact that it will require considerable de-solder, soldering to perform the "brain transplant", not every one may have the resource to do it.

I was initially thinking of throwing away everything (including keys and led module) and snap in a PCB (like what I had prototype), just make use of the case and plastic key-tops.

I will come up w/ a schematic for your comments later.
Find all posts by this user
Quote this message in a reply
09-22-2014, 06:30 PM
Post: #11
RE: HP-25C Eumulator
Sounds great, thanks so far for showing your interesting work :-).
Find all posts by this user
Quote this message in a reply
09-22-2014, 11:21 PM
Post: #12
RE: HP-25C Eumulator
Below is an ascii schematic, bypass cap, reset pull-up have been left out.
Code:

               MSP430G2553
             -----------------    
         /|\|                 |  
          | |                 | 
          --|RST  digit 0 P2.6|--\
            |     digit 1 P1.0|--\       digits bus (12)
            |     digit 2 P2.7|-----//--+---------+
            |     digit 3 P1.1|--/      |         ~  3 units of 4 digits bubble led
            |     digit 4 P1.2|--/      |         |
            |     digit 5 P1.3|--/      |    +---------+ +---------+ +---------+
            |     digit 6 P2.0|--/      |    | % % % % | | % % % % | | % % % % |----+
            |     digit 7 P1.4|--/      ~    +---------+ +---------+ +---------+    |
            |     digit 8 P1.5|--/      |                                           |
            |     digit 9 P2.1|--/      | digits bus x 3 scan lines                 |
            |     digit a P1.6|--/      +-----+-----+---/ ~~ /--+-----+-----+-----+ |
            |     digit b P1.7|--/  _=_ | _=_ | _=_ | _/ ~~ /=_ | _=_ | _=_ | _=_ | |
            |      scan X P2.5|-----o o-+-o o-+-o o-+-/ ~~ /o o-+-o o-+-o o-+-o o-+ |
            |      scan Y P2.4|-----o o-+-o o-+-o o-+/ ~~ /-o o-+-o o-+-o o-+-o o-+ |
            |      scan Z P2.3|-----o o-+-o o-+-o o-/ ~~ /+-o o-+-o o-+-o o-+-o o-+ |
            |                 |                                                     ~
            |                 |      (34 tactile button + 1 slide switch populated) |
            |                 |                                                     |
            |                 |        +--------+                                   |
            |             P2.2|--+---->|CLK ~CLR|---+---- Vcc                       |
            |                 |  |     |       B|---+                               |
            |                 |  |     |  0(d)QA|-\                                 |
            |                 |  |     |  1(f)QB|-\                segments bus (8) |
            |                 |  -     |  2(b)QC|--------------//-------------------+
            |                 | | |    |  3(a)QD|-/
            |                 | | |1k  |  4(g)QE|-/  74hc164 segment driver
            |                 |  -     |  5(e)QF|-/
            |                 |  |     |  6(c)QG|-/
            |                 |  +---->|A 7(h)QH|-/
            |                 |  |     +--------+
            |                 | === (102)    1 wire shift register via RC delay
            |                 | ===  1nF     to shift 1, Hi-Low-Hi
            +-----------------+  |           to shift 0, Hi-Looooooow-Hi (>20us Lo)
                                ___
                                ///

Being a minimalist I always go for the most simple design. The led modules are driven directly by the MCU (digits) and a 8 bit shift register (segments).
All of the 16 IO lines on the MCU is used. 12 IO pins are used to drive the LED digits, also used for key scanning columns. 3 IO pins for key scanning rows. The last single IO pin is used to drive the shift register.
The LED is not the brightest as there are no dedicated driver. So it has trouble for outdoor usage.
The MCU is rather limited but I really want to use only thru-hole parts so it's easier to build.
Find all posts by this user
Quote this message in a reply
09-23-2014, 05:27 PM
Post: #13
RE: HP-25C Eumulator
Great work!!

I like hardware emulators ;-)

Tobie
Find all posts by this user
Quote this message in a reply
09-25-2014, 07:38 AM
Post: #14
RE: HP-25C Eumulator
Very nice!

I started thinking about doing something very similar - I even bought a couple of those dispalys a while ago. But my software skills aren't anywhere close to being able to port nonpareil to a microcontroller.
Is your software available somewhere? Id love to try and make a board that fits inside a woodstock calculator. I would not try and reuse the original keyboard, as those often suffer from leaking batteries.

Cheer,
Harald
Find all posts by this user
Quote this message in a reply
09-25-2014, 09:12 AM
Post: #15
RE: HP-25C Emulator
(09-25-2014 07:38 AM)Harald Wrote:  Id love to try and make a board that fits inside a woodstock calculator. I would not try and reuse the original keyboard, as those often suffer from leaking batteries.

So how do you want to operate the resulting calculator? Open board technology?

d:-?
Find all posts by this user
Quote this message in a reply
09-25-2014, 09:43 AM
Post: #16
RE: HP-25C Eumulator
I'd definitely be interested in replacement internals for a real 25. My one has the fried chip and it would be a perfect donor.

- Pauli
Find all posts by this user
Quote this message in a reply
09-25-2014, 12:13 PM (This post was last modified: 09-25-2014 12:13 PM by Harald.)
Post: #17
RE: HP-25C Eumulator
(09-25-2014 09:12 AM)walter b Wrote:  So how do you want to operate the resulting calculator? Open board technology?

d:-?

Of course not open board technology ;-)
I'll have a look at one of my dead Woodstocks when I get a chance. The idea would be to install a PCB with tactile switches and use the original keys to press the switches.
Find all posts by this user
Quote this message in a reply
09-25-2014, 01:25 PM
Post: #18
RE: HP-25C Emulator
Sounds good. Smile

Two thoughts since we're at it:
  1. Wouldn't it make sense to think about a 29C emulator (as well or instead). Advantage: subroutines.
  2. Since memory isn't the limiting factor anymore, would it be possible to allow that emulator accessing a bit more than the 49 or 98 program steps, respectively, the originals had? May be an addressing issue, however.
Just crossed my mind.

d:-)
Find all posts by this user
Quote this message in a reply
09-25-2014, 03:35 PM
Post: #19
RE: HP-25C Eumulator
(09-25-2014 07:38 AM)Harald Wrote:  Is your software available somewhere? Id love to try and make a board that fits inside a woodstock calculator. I would not try and reuse the original keyboard, as those often suffer from leaking batteries.

I will put the source up on github this weekend. It's not very clean as I am not ready to clean out things that can help me debug. But it works well.

(09-25-2014 12:13 PM)Harald Wrote:  I'll have a look at one of my dead Woodstocks when I get a chance. The idea would be to install a PCB with tactile switches and use the original keys to press the switches.

This would be easier as I found out that the original HP-25 key scanning is done on a 5 x 7 matrix. My design is of 3 x 12 and I don't have extra IO pins to change it to 5 x 7. I.e will have to add a IO expander chip. The PCB layout could be tricky though.

(09-25-2014 01:25 PM)walter b Wrote:  
  1. Wouldn't it make sense to think about a 29C emulator (as well or instead). Advantage: subroutines.
  2. Since memory isn't the limiting factor anymore, would it be possible to allow that emulator accessing a bit more than the 49 or 98 program steps, respectively, the originals had? May be an addressing issue, however.
Just crossed my mind.

(1)
It can run whatever ROM (woodstock / spice) that nonpareil can run. I.e. 21, 25, 25C, 32E, 33C, 34C, 37E, 38E, 38C. The TI mcu can hold 16K flash. You can fit a 21 + 25C in it at the same time. I can use a "hold button + switch on" kind of scheme to select ROMs at startup. Like this one that have both a TI DataMath and Sinclair Scientific ROMs.

http://youtu.be/9ElT7siDtaE

For the biggest ROM (34C), it can only hold one. Also the TI msp430g2553 has only 512 bytes of RAM. So there is only may be 1/2 the 210 steps? for the 34C.

I only tried 25C and 34C ROM and they both work correctly. Of course the program steps is not full for the 34C. The other ROMs should work by replacing a header file. But I don't see the 29C being supported by nonpareil.

(2)
Yes, for the 25C and other woodstock models, we can lift the limit and make use of extra program steps. Again the MCU I choose has only 1/2K RAM and the program steps need to run off RAM (or at least for now). And the emulation itself requires RAM for stack and stuffs. So there is a limit to this.

* You may ask why I did not choose a powerful chip. Perhaps do it w/ a ARM Cortex, etc. The answer is that I prefer to use lesser devices, simple, very easy to build for this project. The all thru-hole DIP components allows for any average or occasional builders to make this.
Find all posts by this user
Quote this message in a reply
09-29-2014, 04:50 PM (This post was last modified: 09-29-2014 04:52 PM by Chris Chung.)
Post: #20
RE: HP-25C Eumulator
I had upload the code to github for anyone who wish to have a look. They are not very well organized though.

I assembled the latest design over the weekend. I had a bad trace and the original design is not very bright (having to multiplex 12 digits) on a 3V cell. So this newer design I use 2 x 3V power and used a LDO regulator to fix the supply to 3.3V. It is only a bit brighter.

Right now the key-scanning is very "jumpy" and keep registering wrong key-press and key-release events. I have to spend time to work on the scan timing.

One interesting feature of the HP-25 is that when you press down and hold the "R/S" run button, it show the current program step, and only when you release that button, the program starts. To re-create this feature, I have to use dedicated io scan lines and do some s/w tricks.

The attached image shows the old and newer (right) version PCB.

/EDIT forgot the source link, here

https://github.com/simpleavr/NP25


Attached File(s) Thumbnail(s)
       
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 7 Guest(s)