geekhack

geekhack Community => Ergonomics => Topic started by: cbf123 on Wed, 16 November 2011, 11:10:39

Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: cbf123 on Wed, 16 November 2011, 11:10:39
Assuming they do indeed ship sometime this year I was wondering if anyone has dug into the SDK posted at their blog (http://www.trulyergonomic.com/blog.html) in the entry called "DIP or double DIP; the technical side of the Truly Ergonomic Keyboard".

I'm curious if we'll be able to modify the firmware update code posted at the vendor to suck off the original firmware for reverse-engineering or just to allow restoring to factory defaults.  I'm planning on taking a look, but haven't had a chance to dig into the datasheet yet.
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: rantenki on Thu, 17 November 2011, 00:46:21
This is just another 8051 based chip, but there are no implementation details on how it interfaces with the keyboard. It really looks like TE just picked a random chipset and tried to make the fact that it has flash programmability into a "DIY feature". Further, the copy on http://www.trulyergonomic.com/benefits.html#Programmability really sounds like they have no clue: "simply plug-in the keyboard and use it with the language of your preference without the need to install any additional software". Really? It runs ruby/erlang?
I cannot believe that after, what, 2 years of "next month honest", people are still waiting on this thing.

/rant
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: Keymonger on Thu, 17 November 2011, 06:39:51
Quote from: rantenki;453773
Further, the copy on http://www.trulyergonomic.com/benefits.html#Programmability really sounds like they have no clue: "simply plug-in the keyboard and use it with the language of your preference without the need to install any additional software". Really? It runs ruby/erlang?

/rant
Derp. They mean the language you speak with.
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: rantenki on Thu, 17 November 2011, 10:10:38
Quote from: Keymonger;453905
Derp. They mean the language you speak with.


Heh, you are probably right, although the context got me when referenced from http://www.trulyergonomic.com/blog.html and talking about the technical docs and details about the MEGAWIN MG84FL54BD MCU. I guess as a developer I always assume programmability means.... programmability (as opposed to configurability).

I suppose I have a bit of a hate on for these guys after so much time failing to ship while promising the moon, and that colors my opinion.

I still stand by my opinion that it ain't gonna ship in a timely manner.
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: cbf123 on Thu, 17 November 2011, 13:45:29
I was originally talking about true programmability as in modifying the firmware to send different codes in hardware.  I ordered the 109-key version and was toying with moving the tilde/backtick back up beside the 1.  However, I'll be using it on linux so it's probably simpler to remap it in software.

I downloaded the SDK and it does indeed give you the opportunity to reflash the MCU via the USB cable.  However, you'd need to reverse engineer how they've connected up the chip I/O pins.  I suspect they probably haven't gone too far from the reference version included in the SDK.  I wonder how hard it would be to dump the existing code and reverse-engineer it--it's written in assembly after all.  I've asked TEK if they'll provide the stock firmware in binary form as a fallback in case someone screws it up, haven't heard back yet.

Also, I contacted Megawin about their evaluation stick in case anyone wants to test stuff out on something other than their keyboard.  They said to go here (http://www.megawin.com.tw/Download_Grid.asp?BigClassName=Development Kit) and quoted me $40 USD including shipping to Canada.
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: BartVB on Fri, 18 November 2011, 06:44:39
I have a bit of experience with microcontrollers (but not a lot with writing KB firmware) but how hard can this be? It should be fairly trivial to figure out which key is mapped to which pin(s), either by asking, by looking at the physical design or by writing a custom firmware that just dumps IO line numbers when a key is pressed. Once that list is known it should be fairly easy to adapt one of the existing open source keyboard firmwares that are floating around the net.

Not sure if I'll need this, using a Mac with ControllerMate but reprogramming it can definitely make things like second layers and media keys much easier.
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: jpc on Fri, 18 November 2011, 06:56:48
This would be a story, had TE actually released anything -- even software.

Nope. It's just a link to the microcontroller manufacturer's SDK. This is not specific to the TE; it is not enough information to develop for the TE. If there is a TE.

Nothing to see here, move along... to the Kinesis store if I may suggest...
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: Keymonger on Fri, 18 November 2011, 14:18:26
Quote from: jpc;454687
If there is a TE.
I see no reason why the model pictured @ link in OP is not a working model. So, yeah. Btw the blank version in that pic looks extremely sexy.
Title: truly ergonomic -- anyone looked at the firmware SDK?
Post by: cbf123 on Mon, 21 November 2011, 00:26:54
Quote from: jpc;454687
This is not specific to the TE; it is not enough information to develop for the TE. If there is a TE.

Actually, the fact that there is an SDK and that they haven't locked the firmware means that there is enough information to develop for the TE.  Worst case, as BartVB says you just download a custom firmware to report back via USB the status of all I/O pins and then just push each key in turn.  Might be a bit tedious, but definitely doable.

I remember debugging 8051 controller code when we had to optically erase them and then reprogram with a programmer.  This should be simpler than that.