HP Forums
Hardware Voyager Emulator - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not quite HP Calculators - but related (/forum-8.html)
+--- Thread: Hardware Voyager Emulator (/thread-17347.html)

Pages: 1 2 3 4 5 6


Hardware Voyager Emulator - agarza - 08-10-2021 10:17 PM

So Ive been working on a simple, easy to build hardware emulator for the Voyager series.

I have tested it with HP11, HP12, HP15 and HP16 ROMS. And they all works fine. (HP15 Self test does not work)

Approximately 4~5 times faster than the originals.

It is running on a single chip. A ATMEGA328 8 bit microcontroller @ 8MHz.

It has:
- a real time clock
- sound (only for keypress feedback)
- 192x64 lcd display
- Display Backlight
- Runs on a sigle CR2032 3V battery

Please check out the video and let me know what you think.






RE: Hardware Voyager Emulator - Sylvain Cote - 08-10-2021 10:36 PM

Youtube link is not working.


RE: Hardware Voyager Emulator - agarza - 08-10-2021 10:41 PM

(08-10-2021 10:36 PM)Sylvain Cote Wrote:  Youtube link is not working.

This is the direct link to the YouTube video: https://www.youtube.com/watch?v=3qrd2igGZY4


RE: Hardware Voyager Emulator - BobVA - 08-11-2021 02:00 AM

Very nice! Congratulations!


RE: Hardware Voyager Emulator - grsbanks - 08-11-2021 07:10 AM

Nice job there!

I'm in a good position to know how hard it is to get that right...


RE: Hardware Voyager Emulator - Ren - 08-11-2021 01:37 PM

Impressive!
So when are you going to market it with a case, keycaps, and keyboard overlays?
B^)


RE: Hardware Voyager Emulator - Dan B - 08-11-2021 04:33 PM

Very nice! Any plans to market them?


RE: Hardware Voyager Emulator - agarza - 08-12-2021 02:15 AM

(08-11-2021 04:33 PM)Dan B Wrote:  Very nice! Any plans to market them?

If enough people is interested I can make some kits or even assembled them.


RE: Hardware Voyager Emulator - agarza - 08-12-2021 02:16 AM

(08-11-2021 01:37 PM)Ren Wrote:  Impressive!
So when are you going to market it with a case, keycaps, and keyboard overlays?
B^)

I'm working on the 3D printed case.
For the keyboard overlay I'm not sure how tackle it. Ideas are welcome!


RE: Hardware Voyager Emulator - sa-penguin - 08-12-2021 02:35 AM

(08-12-2021 02:16 AM)agarza Wrote:  
(08-11-2021 01:37 PM)Ren Wrote:  Impressive!
So when are you going to market it with a case, keycaps, and keyboard overlays?
B^)
I'm working on the 3D printed case.
For the keyboard overlay I'm not sure how tackle it. Ideas are welcome!

May I suggest putting the schematic, PCB design etc. on Github?
I have most of the parts already, building myself would be quicker.

Still need a case and decent keycaps, of course. The custom hardware has the greatest commercial prospects.


RE: Hardware Voyager Emulator - Alejandro Paz(Germany) - 08-12-2021 05:52 AM

You can 3d-print a frame with keys attached to it:

Here an openscad file that I used for a portrait keyboard, I think you get the idea. The keys are a bit too tall, maybe 2 mm would be better. You may need a frame with holes, kind of spacer around the keys to hold this frame with keys, the it doesn't flex when you press a key. I do not seem to have the file (it is somewhere who knows where).

Code:

// all measurements in mm
// fully parametrized
//
nkeys_horiz = 6;
nkeys_vert = 7;

key_width = 8;
key_height = 5;
key_depth = 3; // z-axis
key_binder_width = 5;
key_binder_depth = 0.6;
key_border = 0.6;
keyrow_height = 12.7-1.27-1.27;
keyrow_step = 12.7;

border_width = 6;
border_height = 5;
border_depth = 1;
// horizontal key separator
sep_width = keyrow_step - 2 * key_border - key_width;
// double-length key
module enter_key()
{
    translate ([key_border, key_border, 0]) 
    {
        cube ([ key_width+keyrow_step, key_height, key_depth]);
        translate ([(key_width-key_binder_width) / 2, -key_border, 0]) cube ([ key_binder_width+keyrow_step, key_border, key_binder_depth]);
    }
}

module key()
{
    translate ([key_border, key_border, 0]) 
    {
        cube ([ key_width, key_height, key_depth]);
        translate ([(key_width-key_binder_width) / 2, -key_border, 0]) cube ([ key_binder_width, key_border, key_binder_depth]);
    }
}

module keyrow()
{
    //sep_width = keyrow_step - 2 * key_border - key_width;
    translate ([0, keyrow_height - 2 * key_border-key_height, 0])
    {
        for (x = [0:nkeys_horiz-1])
            translate ([x*keyrow_step, 0, 0]) key();
        if (nkeys_horiz > 1)
        for (x = [0:nkeys_horiz-2])
            translate ([x*keyrow_step + 2 * key_border + key_width, 0, 0]) cube ([sep_width, 2*key_border+key_height, border_depth]);
    }
    cube ([(nkeys_horiz-1)*keyrow_step+key_width+2*key_border, keyrow_height-key_height-2*key_border, border_depth]);
}

module enter_keyrow()
{
    //sep_width = keyrow_step - 2 * key_border - key_width;
    translate ([0, keyrow_height - 2 * key_border-key_height, 0])
    {
        for (x = [0:nkeys_horiz-1])
            if (x == 0)
                translate ([x*keyrow_step, 0, 0]) enter_key();
            else
                if (x != 1)
                    translate ([x*keyrow_step, 0, 0]) key();
        if (nkeys_horiz > 1)
        for (x = [0:nkeys_horiz-2])
            if (x != 0)
                translate ([x*keyrow_step + 2 * key_border + key_width, 0, 0]) cube ([sep_width, 2*key_border+key_height, border_depth]);
    }
    cube ([(nkeys_horiz-1)*keyrow_step+key_width+2*key_border, keyrow_height-key_height-2*key_border, border_depth]);
}

// keys 8x5
translate ([1*border_width, 0, 0])
{
    // keys from bottom to top, row 5 is always enter key row
    for (y = [0:nkeys_vert-1])
        if (y == 4)
            translate ([0, keyrow_height*y, 0]) enter_keyrow();
        else
            translate ([0, keyrow_height*y, 0]) keyrow();
    // left side
    translate ([-border_width, 0, 0]) cube ([border_width, nkeys_vert*keyrow_height+border_height, border_depth]);
    // right side
    translate ([nkeys_horiz*keyrow_step-sep_width, 0, 0]) cube ([border_width, nkeys_vert*keyrow_height+border_height, border_depth]);
    // top
    translate ([-border_width, keyrow_height*nkeys_vert, 0]) cube ([border_width+nkeys_horiz*keyrow_step-sep_width, border_height, border_depth]);
    // display area
}



RE: Hardware Voyager Emulator - jjohnson873 - 08-12-2021 02:29 PM

Very cool....and very geeky! I'd love to build one. Is this a custom LCD display? Some of the annunciators appear to be in a fixed location. You've managed to pack a lot of alpha characters into the small flash memory (32KB) of the ATMEGA328. Very nice display setup. Does it have a timeout to shutoff, if left on? Is the RAM preserved if it shuts off? Is there an ON/OFF switch? What? No serial port/SD card to upload/download programs??! (just kidding). Nice design!


RE: Hardware Voyager Emulator - agarza - 08-12-2021 03:21 PM

(08-12-2021 02:29 PM)jjohnson873 Wrote:  Very cool....and very geeky! I'd love to build one. Is this a custom LCD display? Some of the annunciators appear to be in a fixed location. You've managed to pack a lot of alpha characters into the small flash memory (32KB) of the ATMEGA328. Very nice display setup. Does it have a timeout to shutoff, if left on? Is the RAM preserved if it shuts off? Is there an ON/OFF switch? What? No serial port/SD card to upload/download programs??! (just kidding). Nice design!

All parts are through hole, so it's easy to solder.
Everything is managed by the ATMEGA328 (no other chips are involved)
The display is a standard SPI 192x64 LCD.
It does have auto-shutdown timer (and the time can be changed on the settings screen)
It also has backlight and auditable feedback (speaker)
Ram is preserved.
I'm working on a new design with serial communication and on a 3d printed case.


RE: Hardware Voyager Emulator - agarza - 08-12-2021 03:23 PM

(08-12-2021 02:35 AM)sa-penguin Wrote:  
(08-12-2021 02:16 AM)agarza Wrote:  I'm working on the 3D printed case.
For the keyboard overlay I'm not sure how tackle it. Ideas are welcome!

May I suggest putting the schematic, PCB design etc. on Github?
I have most of the parts already, building myself would be quicker.

Still need a case and decent keycaps, of course. The custom hardware has the greatest commercial prospects.

Good idea.


RE: Hardware Voyager Emulator - Eddie W. Shore - 08-13-2021 02:18 AM

Very impressive and the indicators in the display are big and readable.


RE: Hardware Voyager Emulator - Ren - 08-13-2021 01:26 PM

Just musing...
Does the AtMega have enough memory space to include the software/firmware for all the Voyager series?
I'm thinking something like a keyboard sequence to switch between Voyager models and then keyboard overlays for each model.
I'm also thinking of what it would take to build my own...
(I'm also thinking that some SMD could be incorporated, but that might scare away others from building their own.)
Do you have the Part Number (source?) for the LCD?
Who made the PCB? Would you be willing to share the Gerbers (or whatever) to allow others to replicate your work? I'm thinking along the lines of OSHPark, and how some of their customers share their work for others to use.
I think it could be made into a neat kit (PCB, LCD, CPU, key switches, battery holder, speaker).
But, I don't want to interfere with the possibility of you making a bit of money for your effort, should it be commercially viable.

Of course, I should just keep my mouth shut until you've included the serial port...
B^)

[edit]: The Mooltipass password safe was made possible through crowd funding and end user input, the Mooltipass group could be a good resource in deciding if this would be economically viable. https://www.mymooltipass.com/


RE: Hardware Voyager Emulator - jjohnson873 - 08-13-2021 03:19 PM

(08-12-2021 03:21 PM)agarza Wrote:  I'm working on a new design with serial communication and on a 3d printed case.

I am using Autodesk Fusion 360 for all of my 3D designs. The program is free for anyone not using it for commercial purposes. I've made a lot of 3D designs using Fusion 360. If you would like to collaborate, I can likely assist if you choose to use Fusion 360.


RE: Hardware Voyager Emulator - TomC - 08-13-2021 08:39 PM

Nice Work! I would like two please.

TomC

(08-10-2021 10:17 PM)agarza Wrote:  So Ive been working on a simple, easy to build hardware emulator for the Voyager series.

I have tested it with HP11, HP12, HP15 and HP16 ROMS. And they all works fine. (HP15 Self test does not work)

Approximately 4~5 times faster than the originals.

It is running on a single chip. A ATMEGA328 8 bit microcontroller @ 8MHz.

It has:
- a real time clock
- sound (only for keypress feedback)
- 192x64 lcd display
- Display Backlight
- Runs on a sigle CR2032 3V battery

Please check out the video and let me know what you think.






RE: Hardware Voyager Emulator - agarza - 08-14-2021 02:10 PM

(08-13-2021 03:19 PM)jjohnson873 Wrote:  
(08-12-2021 03:21 PM)agarza Wrote:  I'm working on a new design with serial communication and on a 3d printed case.

I am using Autodesk Fusion 360 for all of my 3D designs. The program is free for anyone not using it for commercial purposes. I've made a lot of 3D designs using Fusion 360. If you would like to collaborate, I can likely assist if you choose to use Fusion 360.

Thanks for the offer. I am designing the case with FreeCAD. I have never used Fusion 360.

I might take your offer to help with the case. This is were I'm at (see photo):
[Image: comp.jpg]
DM41L for size.

The idea is to print on a acetate sheet and place it on top of the buttons. That is why I made the buttons so short.


RE: Hardware Voyager Emulator - agarza - 08-14-2021 02:12 PM

(08-13-2021 08:39 PM)TomC Wrote:  Nice Work! I would like two please.

TomC

[quote='agarza' pid='151021' dateline='1628633833']

Excellent! This motives me to continue.