Post Reply 
Hardware Voyager Emulator
08-10-2021, 10:17 PM (This post was last modified: 08-10-2021 10:40 PM by agarza.)
Post: #1
Hardware Voyager Emulator
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.



Find all posts by this user
Quote this message in a reply
08-10-2021, 10:36 PM
Post: #2
RE: Hardware Voyager Emulator
Youtube link is not working.
Find all posts by this user
Quote this message in a reply
08-10-2021, 10:41 PM
Post: #3
RE: Hardware Voyager Emulator
(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
Find all posts by this user
Quote this message in a reply
08-11-2021, 02:00 AM
Post: #4
RE: Hardware Voyager Emulator
Very nice! Congratulations!
Find all posts by this user
Quote this message in a reply
08-11-2021, 07:10 AM
Post: #5
RE: Hardware Voyager Emulator
Nice job there!

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

There are only 10 types of people in this world. Those who understand binary and those who don't.
Find all posts by this user
Quote this message in a reply
08-11-2021, 01:37 PM
Post: #6
RE: Hardware Voyager Emulator
Impressive!
So when are you going to market it with a case, keycaps, and keyboard overlays?
B^)

10B, 10BII, 10C, 11C, 12C, 14B, 15C, 16C, 17B, 18C, 19BII, 20b, 22, 25, 29C, 35, 38G, 39G, 39gs, 41CV, 48G, 97
Find all posts by this user
Quote this message in a reply
08-11-2021, 04:33 PM
Post: #7
RE: Hardware Voyager Emulator
Very nice! Any plans to market them?
Find all posts by this user
Quote this message in a reply
08-12-2021, 02:15 AM
Post: #8
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
08-12-2021, 02:16 AM
Post: #9
RE: Hardware Voyager Emulator
(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!
Find all posts by this user
Quote this message in a reply
08-12-2021, 02:35 AM
Post: #10
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
08-12-2021, 05:52 AM
Post: #11
RE: Hardware Voyager Emulator
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
}
Find all posts by this user
Quote this message in a reply
08-12-2021, 02:29 PM
Post: #12
RE: Hardware Voyager Emulator
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!
Find all posts by this user
Quote this message in a reply
08-12-2021, 03:21 PM
Post: #13
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
08-12-2021, 03:23 PM
Post: #14
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
08-13-2021, 02:18 AM
Post: #15
RE: Hardware Voyager Emulator
Very impressive and the indicators in the display are big and readable.
Visit this user's website Find all posts by this user
Quote this message in a reply
08-13-2021, 01:26 PM (This post was last modified: 08-13-2021 01:31 PM by Ren.)
Post: #16
RE: Hardware Voyager Emulator
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/

10B, 10BII, 10C, 11C, 12C, 14B, 15C, 16C, 17B, 18C, 19BII, 20b, 22, 25, 29C, 35, 38G, 39G, 39gs, 41CV, 48G, 97
Find all posts by this user
Quote this message in a reply
08-13-2021, 03:19 PM
Post: #17
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
08-13-2021, 08:39 PM
Post: #18
RE: Hardware Voyager Emulator
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.



Find all posts by this user
Quote this message in a reply
08-14-2021, 02:10 PM
Post: #19
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
08-14-2021, 02:12 PM
Post: #20
RE: Hardware Voyager Emulator
(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.
Find all posts by this user
Quote this message in a reply
Post Reply 




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