Mia a 122 soon to be opensource, if it works that is.

zool

31 Mar 2018, 12:50

This is Mia, a keyboard design of mine that I'm building a couple off and preparing package for open source.
Just wanted to see what people thought before I sent it off for fab? And if anyone had any good tips on how to package an open hardware design(as this will be my first open hardware project)?
My main goal is to have a portable RS232 terminal and password manager that will fit in 19" rack tray.
PCB Back.
PCB Back.
miaback.png (1.25 MiB) Viewed 7429 times
PCB
PCB
miapcb.png (114.45 KiB) Viewed 7429 times
mialayout2.png
mialayout2.png (46.52 KiB) Viewed 7429 times
micro is pic32mx470, If your curious about the layout, I guess I am too and I have no idea if the ideas will play well to a general audience, but the general idea is that the top two rows will be for controlling the terminal and some of the ways the keyboard behaves. Putting the screen on gave me a bunch of empty space so I just put some extra switches there. I'm open to ideas.
Last edited by zool on 31 Mar 2018, 17:36, edited 2 times in total.

User avatar
scottc

31 Mar 2018, 13:07

Looks interesting, but the PCB art is not for me :lol: I love when people design big keyboards with different unnecessary extra hardware to fill the gaps.

zool

31 Mar 2018, 14:21

:) Undoubtedly the art is/will not be to every ones taste, but it is to mine. :) I really can't see anyone else wanting to build this exact board, so practically its just for me and a couple of other friends. In general though I would like to see more art on pcb's, I mean you don't really need to see designators for all the diodes and keyboard pcb's have lots of space to tell a story. It just adds a little character and personality imo.

My original idea had a pencil/trinket space, but I added the extra 10 keys to the top left of the pcb for "options", I don't know what those options would be. Macros I guess, I don't really have a lot of use for macros. Its hard enough to get caps for this kinda layout as it is without the top two rows, so blanking plates will definitely be a design option for the case.

User avatar
Myoth

31 Mar 2018, 14:25

It would be nice to add holes for switches where the screen is, for exemple, I could be more interested by a lot more keys than a screen...

by the way, your pcb doesn't support pcb-mounted switches ?

User avatar
ramnes
ПБТ НАВСЕГДА

31 Mar 2018, 14:40

You got me interested with the password manager feature.

zool

31 Mar 2018, 14:51

Myoth wrote: It would be nice to add holes for switches where the screen is, for exemple, I could be more interested by a lot more keys than a screen...

by the way, your pcb doesn't support pcb-mounted switches ?
More switches? Here I was thinking 122 keys was already a lot. :lol: Dropping the screen is not something that works for me. In a lot of ways the screen is the required for what I want.

But an extra header could be added for a key expansion. If I add some 0.1" pins you could saw the top two rows with the controller off and have a more std 1800 layout with separate controller, would bulk up the stack up a little, but might be ok.

I don't use pcb mount switches, a simple footprint swap you get you there though.

zool

31 Mar 2018, 15:19

ramnes wrote: You got me interested with the password manager feature.
There are a couple of usb hid password managers out there, but the selection of password is a bit clunky.

The password manager style is the modeled off the unix password manager.(https://www.passwordstore.org/) and Zamek (https://hackaday.io/project/3555-zamek- ... rd-manager) /
The basic idea is that you store your passwords in the keyboard. They are all encrypted and need a master passphrase to decrypt.

The UI:
1. You press the password manager key
2. The keyboard no longer sends keystrokes to the Host or Terminal.
3. You type the title of the password in, (fuzzy search to help in speed of this).
4. You select the one you want.
5. Prompted for master pass phrase.
6. Password is decrypted
7. Password is put into "Password Key" buffer. (wiped after 30seconds or use which ever comes first).
8. Keyboard returns to previous mode, Term/Host.
9. Then when the Password Key is pressed it types your password for you.

Notes:
The host never sees you master pass phrases.
Works on systems/areas without network access.
Password does not get copied to host clipboard.
Adding New passwords is much the same.

I have a prototype of the system working on a rpi zero and a small pic32, and it would be nice to have a safe sync, but I have not got that far. It would be also nice to use a secure memory ic, but not a major concern atm.

zool

31 Mar 2018, 17:05

Myoth wrote: It would be nice to add holes for switches where the screen is, for exemple, I could be more interested by a lot more keys than a screen...

by the way, your pcb doesn't support pcb-mounted switches ?
cutoff header expansion header like this:?
miacutoff.png
miacutoff.png (50.84 KiB) Viewed 7352 times

User avatar
scottc

31 Mar 2018, 18:23

I've recently been thinking about extra add-on hardware I could add to large keyboards like this and specifically thought of:

A rotary encoder, maybe to send vol/brightness up/down keypresses?
Screen Shot 2018-03-31 at 12.06.32.png
Screen Shot 2018-03-31 at 12.06.32.png (254.55 KiB) Viewed 7307 times
A joystick, maybe as a pointing device with extra mouse buttons?
Screen Shot 2018-03-31 at 12.06.42.png
Screen Shot 2018-03-31 at 12.06.42.png (195.45 KiB) Viewed 7307 times
They seem most appropriate on such a huge board.

__red__

31 Mar 2018, 19:06

Tell me about the display you're planning on using. Doesn't looks like it'll do 80x24?

User avatar
juryduty

31 Mar 2018, 20:39

10-sets-A03-dial-knob-MF-A03-bakelite-knob-with-scale-plate-sheet-scale-digital-potentiometer.jpg
10-sets-A03-dial-knob-MF-A03-bakelite-knob-with-scale-plate-sheet-scale-digital-potentiometer.jpg (57.52 KiB) Viewed 7283 times
vintage bakelite potentiometer!

zool

01 Apr 2018, 02:21

__red__ wrote: Tell me about the display you're planning on using. Doesn't looks like it'll do 80x24?
I'm using a generic spi 256x64 graphics 4 bit mono oled (ssd1322), so not an 80 col, only 40x7 with 5x7 font.
It's a compromise, between readability, cost, space and power.

zool

01 Apr 2018, 02:51

scottc wrote: I've recently been thinking about extra add-on hardware I could add to large keyboards like this and specifically thought of:

A rotary encoder, maybe to send vol/brightness up/down keypresses?

A joystick, maybe as a pointing device with extra mouse buttons?

They seem most appropriate on such a huge board.
With the i2c bus header you could certainly do something. I came to the conclusion that using USB HID to control system volume is a bit coarse to warrant an encoder. I do enjoy a good encoder indent tho. :D
My current solution (not this design) is to have media volume keys for -/+5% volume and then with super + volume up/down for -/+1%, but that I pretty sure is OS dependent.
For this design the default keymap:, func + pageUp,pageDown or numpad+/- is media volume +/-.

zool

01 Apr 2018, 03:35

zool wrote:
__red__ wrote: Tell me about the display you're planning on using. Doesn't looks like it'll do 80x24?
I'm using a generic spi 256x64 graphics 4 bit mono oled (ssd1322), so not an 80 col, only 40x7 with 5x7 font.
It's a compromise, between readability, cost, space and power.
here is a rendering of a frame to give you an idea of the resolution:
request.png
request.png (2.64 KiB) Viewed 7230 times

User avatar
DiodeHead

01 Apr 2018, 12:22

Extremely impressive, the password manager i find really interesting and i think is something i need to work on for myself, what i don't see very clear ( provably cos my ignorance ) is the conectors footprints and cutout, when you have a 3d render or the physical thing built i would love to see how the wires conect to the keyboard and what kind of connector are you using.

And the second thing is the batery, what is it for?? are you using a real time clock and if so what for?

thanks :)

zool

01 Apr 2018, 13:29

thanks, It is very unclear as I'm still struggling with a decision to USB C or not to USB C, So for the sake of finding bad/good choices/idea I'm just running with with the keyboard layout and controller for the moment. Get the all the password and ui standing on it legs and work from there.

The other component to the design is an unfinished usb 3 hub and RS232 board. I got some of the parts and am designing one up, but there is no way I can get anyone to build that as a kit from src, the 0.4mm pitch qfn and 0402/0201 is just too fine for most DIYers.

So as a companion there will be some other usb micro/mini/C/B to the 4pin JST1.0 mm pitch connector, similar to the quickfire where I think they have a separate board for the usb connector. I always liked that design of the usb connection being secure by cable way under the board. and as long as the connection is short, the less than perfect 4pin JST cable should be ok, and you can pick up premade 1.0mm JST to JST cables from sparkfun. It is also why there is extra esd protection on the controllers usb line, a redriver might also be needed, but probably not.

Battery is for the RTC, I like clocks and normally put a footprint for a good txco/rtc on most of my designs needed or not. but also has some use for syncing, but it is optional build option, I have no real immediate use for it and at ~$4.00 it is pretty pricey component wise.

anyway here is the state of the hub.
miahub.png
miahub.png (293.61 KiB) Viewed 7184 times
miahub2.png
miahub2.png (57.53 KiB) Viewed 7184 times

User avatar
DiodeHead

01 Apr 2018, 14:10

ok now i completly get the connector situation, very cool i can't wait to see it in action.

I know is provably too early to ask but, what are your thought on the case design and construction?.

__red__

01 Apr 2018, 15:44

zool wrote:there is no way I can get anyone to build that as a kit from src, the 0.4mm pitch qfn and 0402/0201 is just too fine for most DIYers.
So I'm curious. What aspect of the design requires a .4 qfn and such small passives?

I don't see anything in your design (yet) that's that high speed...

Incidentally, I love those displays and I use them a lot. If I can give you a supplier recommendation take a look at buy-display.com.

I've bought around 600 of them from this supplier for my various projects without a single failure.

Sent from my SM-N920V using Tapatalk

__red__

01 Apr 2018, 15:48

Nm, spotted it. It's the USB3 circuit.

My advice, unless you have a compelling reason to do USB3 I'd avoid it. It's tough to get that right without 4-6 layer boards from companies that do capacitance control and certification.

Also, if you do decide to do PnP, to get a reasonable yield from a third party they're going to insist on X-ray inspection which is $$$ in low quantities.



Sent from my SM-N920V using Tapatalk

__red__

01 Apr 2018, 15:50

Of course, you may already have experience of building high speed boards like this. If so, you'll know better (And almost certainly know first hand why I'm so cautious).

Sent from my SM-N920V using Tapatalk

zool

01 Apr 2018, 16:52

__red__ wrote: Of course, you may already have experience of building high speed boards like this. If so, you'll know better (And almost certainly know first hand why I'm so cautious).

Sent from my SM-N920V using Tapatalk
Not quite usb 3.1/2 speed. The usb C(especially) 3.X hub has so many subtleties, and tangential to the keyboard, it as you say is quite costly which is why I split it off for a future personal project, but leaving myself the option to slot it in to the case. It would be nice to have, but... to much for an open project, I suppose I could do a run but who would really want them? I only really mentioned it to explain the reason why the JST connectors and not a usb connector.

At the moment I happy with a simple single port usb connection modules, ie: just use which ever usb variant that you like and put it where ever you like etc. I know people have preferences for different conns and locations. I'm partial to C and B myself.

zool

01 Apr 2018, 17:14

DiodeHead wrote: ok now i completly get the connector situation, very cool i can't wait to see it in action.

I know is provably too early to ask but, what are your thought on the case design and construction?.
I have a rough model that is constraining some dimensions and mounting points. Its a pretty blocky design atm. Typical three layer construction top, plate and angled base.

Material wise I'm just gonna machine it out of poly ethylene to start with(I have a stack of 50mm pe90 sheet). Then when I sort out the bugs maybe some aluminium, I do have some left over 6160 and 7175 stock.

__red__

01 Apr 2018, 17:22

Can you pull power passively from USB3 or USBC like you can with USB2 our does it always require an IC for negotiation?

Sent from my SM-N920V using Tapatalk

zool

01 Apr 2018, 17:41

__red__ wrote: Can you pull power passively from USB3 or USBC like you can with USB2 our does it always require an IC for negotiation?

Sent from my SM-N920V using Tapatalk
As far as I understand it, you can do passive with usb C 2, if there is no negotiation it should go to 500mA@5V. negotiation is really only there to get more power/volts from the port partner and to swap roles, but I have also read 1.5A@5V. for usb 2 you can just short the D+'s and the D-'s, a couple of pull up/downs on the CC's cable orientation and I think that is about all you have to do. If usb 3 you need a mux/switch to handle the orientation of the SS pairs.

Not mine, but you get the idea:
usbCpassive.png
usbCpassive.png (1006.5 KiB) Viewed 7141 times

zool

02 Apr 2018, 19:14

final v1 art, I included some ideas from here.
mia-v1.jpg
mia-v1.jpg (245.65 KiB) Viewed 7090 times

zool

04 Apr 2018, 13:43

while waiting for boards to arrive thinking about some of your ideas a bit more:
replace E keys with encoders: top right blank, space for one of the cheap oled/tft square 1.69" screens.
I would have to drop one of the uarts, but thats ok.
miaV1.2.png
miaV1.2.png (869.66 KiB) Viewed 7038 times

thokir

04 Apr 2018, 13:55

Hmm... I prefer the design with the bigger screen, as it could be really useful.
Would it be an option to put some of the F keys to the left of the alphas to have more space for the screen?

I'm really interested in how this board is gonna turn out in its final version! :)

zool

04 Apr 2018, 15:12

If I have not messed up the design I'm not going to change anything till I get a working board.

I like the screen too(but kinda pricey in low qnty), but If I design it as a split pcb it could be designed so that people could do what they want with the top rows. It could be both or neither depending. some things are up in the air.

Here are some of the other possible ideas for the top two rows which make sense to me. once again some the keys above the numpad could be encoders.
options.png
options.png (375 KiB) Viewed 7018 times
simple 6/6mil pcbs are getting ridiculously cheap to get. 5off the prototype board was only $50US. :O

User avatar
Phenix
-p

05 Apr 2018, 00:26

really nice design!
Is it possible to add a second rotary encoder? (I could likely find usage for 4 of them.. :) )
Also is trackpoint integrity possible?
And can you please add a split spacebar layout (something iike JP or the clueboard JP layout)?

last question, for convenience will it possible to import passwords from programs like KeePass (windows)?

zool

05 Apr 2018, 03:49

Sure I can have a go at a JP bottom row, but I'm not really the best at deciding on what is important there. It is a reduced length bottom row so idk if it can fit.

I had imagined support for up to 4 encoders., would have to be in the block above the numpad though, or there would be just too many traces to link though between the boards.

Syncing is one thing which is really tricky to get right and portable. really it would be ideal to use public key crypto. have a secure IC to load in your private keys. secure sync could then be straight forward copy. Integration and sync with existing password managers is still gonna be argh!

My first method of storing passwords will be externally on rpi zero using my already working gpg uart app, then plain text, then symmetric, then public key, then cdc ethernet sync to git, then think about other password managers sync methods.

The simplest approach I can think of atm is to have a plain text export/import option from a virtual disk with all the horrible security that would bring.

Long road to bliss.

Post Reply

Return to “Workshop”