Split ergonomic keyboard project

TDub

14 Apr 2013, 01:02

wasabah wrote:Hey guys,
I received a notice from German customs today. It says "Keyboard parts" with a value of 90 USD.
But I ordered two keyboards and paid a lot more.
I also have to present the bill at the customs. Is this going to be a problem?


Same for me, no Problem though, it was all there. Ordered 1 ergodox minus switches plus extra pcbs, which comes out to 200. Package was marked at 90, but everything was there, der Zoll didn't complain :P

Typing on it right no actually.... very very slowly. But i love it :)

wasabah

14 Apr 2013, 01:09

So you just showed the original bill, right?

User avatar
Kurk

14 Apr 2013, 12:25

My ErgoDox arrived yesterday. The Dutch postal service, who did the custom declaration, categorized it as parts of not further defined musical instruments :lol:

eviltobz

14 Apr 2013, 12:27

sordna wrote:Nice! Yes, you need to push the button on the teensy the first time, so make sure the layout you load has a key (preferably in some layer) that programs the teensy, so you can do it without the actual teensy button going forward. I drilled some holes in my top cover, just in case I need to push that button without opening the case. It came handy when I programmed the teensy blinky program by accident :-)
I've been considering trying to add some extra little switch into one of the unused keys in the matrix to have as the teensy programming button which could then be routed somewhere out of the way to avoid accidental pressing. A pin hole above the teensy sounds like an easier solution :)

heuristicist

14 Apr 2013, 21:33

Kurrk wrote:My ErgoDox arrived yesterday. The Dutch postal service, who did the custom declaration, categorized it as parts of not further defined musical instruments :lol:
Since the declaration reads "keyboard parts" (or at least it did for me), they might have thought that it makes more sense to be buying parts for a musical keyboard (like a digital piano) than for a computer keyboard. Still amusing, but it at least fills in how they got to "musical instruments."

It's also understandable---when I told people that I bought a $1500 keyboard, the response was usually "how did you spend $1500 on a keyboard?!" and I then had to explain that it was a piano-like thing. Sometimes I even explicitly said fully-weighted 88-key keyboard and that didn't help (clearly, my assumption that people would know that a standard keyboard is 104 keys was wrong). But I actually assumed that by giving the price they would figure that it didn't make sense for a computer keyboard to be that expensive (not counting that Optimus keyboard) and resolve the ambiguity to musical keyboard.

I've since learned not to make such assumptions.

TDub

14 Apr 2013, 23:35

wasabah wrote:So you just showed the original bill, right?
Yes I showed them the Invoice from massdrop and they were happy with it. Paid no customs, "only" 19% vat. But I knew I would be paying that.

wasabah

15 Apr 2013, 04:00

Okay, thanks a lot! I will go tomorrow.

bjarven

17 Apr 2013, 00:14

sordna wrote:Nice! Yes, you need to push the button on the teensy the first time, so make sure the layout you load has a key (preferably in some layer) that programs the teensy, so you can do it without the actual teensy button going forward. I drilled some holes in my top cover, just in case I need to push that button without opening the case. It came handy when I programmed the teensy blinky program by accident :-)
That is a nice feature! I've almost dared to put on the top lid again now... I havent accidentally removed the 'teensy bootloader' from a layer yet. But then I haven't been very adventouros with new firmware, I've just used layouts created by the layout-gui at massdrop.

As to second impressions, it feels pretty good. For me it was quite easy to adapt to, since I've used the kinesis advantage before. And the advantage is probably still my favourite, but it's pretty close between them... I'm thinking about modding it with palm keys... I miss them. :P

I'm having problems perfecting the layout though... I've gotten used to having swedish letters on a layer and some ansi-layout buttons on the main layer. This seems hard to do now without using software drivers... As I think the key that will give me 'ä' in a swedish layout just produces the same scancode as the "/'-key does in ansi. And I'd prefer to have them both... Any ideas? Could I modify the firmware to bind a key on a layer to a macro? Then I could bind a key to produce AltGr+something, and map that combination to 'ä' or something else in software. Or bind it to produce alt + the ascii code, but i don't know if that input is accepted everywhere...
Or I could just have one of the more accessible keys be AltGr and do most of the mapping in software... But that seems so inelegant now when the ergodox can be customized in so many ways in hardware.. :P

These problems are very small though, overall very happy with this keyboard! :)

xauser

17 Apr 2013, 00:37

I created my custom layout using the massdrop webgui. I also added a Teensy software button on my first layer. But the only way for my to program the keyboard is to press down the hardware button while connecting the usb plug. When I press the mapped software teensy button that I have on layer 1 the keyboard seems to freeze and I can't program it, the program application is just showing the press hardware button picture.

To open the keyboard each time I want to reprogram is really a show stopper for me as long as I haven't found my perfect layout : (

ic07

17 Apr 2013, 00:48

bjarven wrote:Could I modify the firmware to bind a key on a layer to a macro?
The only (completely inadequate) thing I've written so far about macros is the @bisl part of this post over on GH - which probably doesn't mean anything to anyone not already familiar with how the firmware works. I plan to write instructions for macros (using C) sometime, probably this summer after I'm done with rev. 2 of the firmware. The UI (unfinished, last I checked) by Zalusithix on GH might support macros before that.

User avatar
suka
frobiac

17 Apr 2013, 13:00

bjarven wrote:...As I think the key that will give me 'ä' in a swedish layout just produces the same scancode as the "/'-key does in ansi. And I'd prefer to have them both... Any ideas?
I struggled with the exact problem using my custom boards on computers with German keyboard drivers installed - in my own firmware I solved the issue by also storing necessary modifiers for the German driver with the representation of a letter so @ (AltGr+q) and ! (Shift+1) can live on the same layer (and the layer modifiers are completely separate from shift or altgr), but I would need another translation for other OS driver languages.
kweber implemented this in his maltron fork for German/English and PC/Mac via lookup tables, IIRC, but the resulting code was too large for the Teensy 2.0 without further tweaks.

While trying out hasus great tmk_keyboard firmware, I managed to work around the issue there via action macros (see issue 24), but this is a general problem of any firmware that focuses on the english layout where no other modifiers than shift are used - I have no yet looked into the ergodox code deeply enough to know how it is handled there.

xauser

20 Apr 2013, 00:14

Ok, just wanted to say that I finally found my layout. I started with the massdrop webgui, downloaded the resulting source, tweaked the c code some more with vi and compiled it.

The result is a very custom keyboard designed for my needs. Having distance between my hands while typing is a new experience for me that I really enjoy. Same for the thumb cluster! I'm looking forward in ergodox being my daily driver soon.

Some things that don't work for me
* Ergodox won't wake up my pc while hibernating
* Teensy Button for programming does not work for me

I hope both issues are firmware related and will be fixed some day.

Wanna thank all you guys who made this possible!

ic07

20 Apr 2013, 02:31

xauser wrote:Ergodox won't wake up my pc while hibernating
This bugs me too... and it should be fixable. Just haven't had time to do it yet. I'll add an issue on github so I don't forget to at least check it out :) .
xauser wrote:Teensy Button for programming does not work for me
The Teensy (aka jump to boot loader) button works in the default build of the firmware, and I think there have been people saying it worked for them with the massdrop generated layouts too. You might want to double check that you have the key set up correctly - see the leftmost element on this line, this line, and this line of the firmware's default QWERTY layout.

User avatar
sordna

20 Apr 2013, 03:49

I am using the source code downloaded from massdrop's layout configurator, with LED / buzzer mods of my own on top, and the Teensy programming button works fine for me. Here is my layout, I'm using the 2nd layer for F keys and mousekeys, and that's where the Teensy program button is as well.

https://www.massdrop.com/ext/ergodox/?k ... 82534668be

zet13

21 Apr 2013, 17:42

Hey I have ordered one and I would like to know if we can program letters like É or À directly in the firmware, the web gui doesn't allow me to do it .

ic07

21 Apr 2013, 20:50

The short answer is no. The long answer would probably include a discussion on why (with regards to the USB spec), and how, if you're willing to code a bit of C and put up with some inconveniences, you kind of can... a little...

(The current best idea I've heard on how involves platform specific unicode entry macros. This might be a reasonable thing to add at some point, since the concept isn't that hard to deal with and the code probably wouldn't be either - but I'm still hoping to find a cleaner feeling (and platform independent) solution. If one exists.)

jeff

21 Apr 2013, 23:52

On computer side, it's possible to create a layout that handle É or À (see [url]www://bepo.fr[/url]).

For my DIY keyboards I did this on firmware to keep an AZERTY configuration on the computer. I mainly work on windows at my office so I decided to use "alt values". Probably not the simpler and more efficient solution :

Code: Select all

// Keyword definition type :
// 1 : send a caracter
// 2 : send string
// 3 : send ALT code
// 4 : sequence call
// 5 : send a raw key (for non printable caracter)
// 6 : function call

struct KeyWord {
 int type ;
 int key ;
 char* altval ;
 char* string ;
 int fctptr ;
 const struct KeyWord* seq[KEY_SEQ_LENGTH] ;
} ;
for example :

Code: Select all

const PROGMEM KeyWord K_A_C8 = { 1,GRAVE_ACCENT_BITS + KEY_E + SHIFT_MASK ,"","È",0,NULL};
const PROGMEM KeyWord K_S_006 = { 2,0 ,"","ORDER BY DESC ",0,NULL};
const PROGMEM KeyWord K_A_C9 = { 3,0,"0201","É",0,NULL};
const PROGMEM KeyWord K_L_1 = { 4,0,"","[ ]",0,{ &K_A_5B,&K_A_5D,&K_LEFT }};
const PROGMEM KeyWord K_F6 = { 5,63,"","F6" ,0,NULL};
Not portable, a similar solution has to be found on other OS (type 7, 8 ...).

A real unicode keyboard managment would be a great improvement.

User avatar
Spharx

22 Apr 2013, 00:08

Why is n1 posting pic's ?? Did I miss the extra thread for that ??

zet13

22 Apr 2013, 08:19

Bingo jeff, I'm using bépo everyday and I use a TM 2030. That's why I'm interested in the keyboard, but yes we can just make it azerty, and use a driver to enable bépo on it.

zet13

23 Apr 2013, 17:54

How is that possible ? With the ergodox layout configurator I can't even create a proper azerty layout !!!

wasabah

25 Apr 2013, 21:03

Okay, apparently it's not so easy to implement international layouts.
Is there a way to get the German Umlaute öäü on this keyboard?

User avatar
Icarium

25 Apr 2013, 21:04

Of course there is; if you set the language to German in your operating system (or to something international) and then you have to send the appropriate keycodes. The massdrop software will probably be useless in this case.

User avatar
Kurk

25 Apr 2013, 22:26

Keyboards don't send characters, they send scan codes. The keyboard driver on your computer converts those to the appropriate characters.
E.g., the same scan code that is translated to a semicolon (;) by an US keyboard driver is translated to an ö by a German keyboard driver.

wasabah

25 Apr 2013, 22:29

I see, thanks for the explanation. I'll try to fiddle with the code..

wasabah

26 Apr 2013, 00:06

Okay, I got it to work. Thanks! :)

I got one question though: if I use the standard qwerty layout and press the Num key, the keys of the right hand keyboard become the numpad, right?
But in my case it only uses the secondary functions of the numpad (left/right/up/down arrow, etc) and not the actual numbers. Why is this and how can I change it?

ic07

26 Apr 2013, 00:37

With the Massdrop generated layouts, they chose to separate the "numpad layer" key and the "numlock" key. As with a regular number pad, if you use it with numlock off it will perform those alternate functions (which are actually the primary functions of the keys if you think about it, though that design doesn't make a whole bunch of sense to me... lol).

If you want one key to do both at the same time (put you on the numpad layer and press numlock) take a look at one of the default layouts on github (specifically the topleft key of the right hand on layers 0 and 3). There may be a way to do it without modifying the C and compiling yourself, but to be honest I haven't played with the massdrop configurator enough to know.

Alternately, you can assign "numlock" to a different key (probably on the numpad layer), leave the "numpad layer" key the way it is, and just always leave "numlock" on. That means that (unless you change it in the source) the "numlock" LED will always be on too, so that's not my favorite solution, but I think some people have been doing it that way.

wasabah

26 Apr 2013, 10:12

ic07 wrote:Alternately, you can assign "numlock" to a different key (probably on the numpad layer), leave the "numpad layer" key the way it is, and just always leave "numlock" on. That means that (unless you change it in the source) the "numlock" LED will always be on too, so that's not my favorite solution, but I think some people have been doing it that way.
This is what I did now. I put numlock on a key and use the numpad layer from the default layout.
But this way, I have to push the numlock key at least once every time and also push the numpad layer key.
How can I activate numlock by default?

zet13

26 Apr 2013, 10:30

Kurrk wrote:Keyboards don't send characters, they send scan codes. The keyboard driver on your computer converts those to the appropriate characters.
E.g., the same scan code that is translated to a semicolon (;) by an US keyboard driver is translated to an ö by a German keyboard driver.
So this means, as the keyboard can store different layouts, that for the same pressed key, you can send a different scan code to the computer ?

ic07

26 Apr 2013, 11:28

wasabah wrote:How can I activate numlock by default?
I thought that was usually an option in the BIOS, though there might be (platform specific) ways to do it in the OS. Sorry I can't be more specific, I haven't had to do it in years...

wasabah

26 Apr 2013, 11:57

Ah, stupid me. I think you are right. I'll check it next reboot!
Thank you guys! :)

Post Reply

Return to “Workshop”