This is an old revision of the document!
Ergodex created the device in 2005 and released it to the world where it received much praise, especially from left-handed gamers who until now have had to suffer with remapping the keys on every single game they play to the opposite side of the keyboard. Some games, including many popular games, don't even allow keyboard remapping thus forcing their users to struggle to play the games how their narrow minded right-handed developers designed them. The Ergodex is a godsend to left-handed people as it allows you to place up to 50 keys where ever you like on the pad and assign any keys (and macros) to each key and have the pad automatically reconfigure itself depending on the current application in use. It's also great for many other users, for right-handed users it allows you easier (and faster) access to more keys. Many disabled users are also finding it very useful. In fact the device is so good it recevied an award from popular science in 2005 Best of what's new 2005.
Unfortunately Ergodex have not created any drivers for MacOS X or Linux, nor even Windows XP64 bit, now Windows Vista is out and there's still no drivers for these 4 important operating systems! Ergodex will not give ANY information regarding support for these 4 operating systems for which drivers do not exist. Nor will they give ANY information regarding driver updates and new features - not that the existing drivers on Windows XP 32bit don't work, they do, and very well, it's just that we want more from our DX1's than Ergodex seem to be willing to provide.
This site aims to bring together as many developers as possible in order to first document the USB protocol the device uses and second to write new drivers, primarily for Windows XP (32 and 64bit) and Windows Vista (32 and 64bit) while attempting to keep as much of the code as reusable as possible so that it may be used to create MacOS X and Linux drivers too.
This project was started in February 2007, just after the retail release of Windows Vista.
If you want to help with the project please drop me, hydra, an email at this address: hydra at hydras hyphen world dot com
Or, you can join the #ergodex IRC channel on freenode irc://irc.freenode.net/#ergodex.
If you've not used IRC before then grab a copy of HydraIRC (which I, Hydra, also wrote ), install it, start it, create a profile then click the irc: link above to join the channel or use file/connect and paste in the irc: link from above and click “Ok”. Shortly after you should see a connection to irc.freenode.net being made and then a new window will appear for the channel. If the channel is empty just wait and someone will appear. If you want to page me then just say my name (Hydra) in the channel.
HHD USB Monitor
Website: HHD USB Monitor
Instructions on how to capture USB data from the Ergodex DX1
Jungo Windriver
Website: Jungo Windriver
Instructions on how to send and receive test data with the Ergdodex DX1
Here's a list of other open-source projects, the source to which may be very useful when creating the drivers
AutoHotKeys - Macro playback, joystick & mouse button events.
Synergy - Cross-platform code for recording and playing back mouse movement and keyboard events over a network.
QLiner hotkeys - More keyboard/mouse related code.
Donations can be sent to “paypal at hydrairc dot com”. Any amount gladly received and will go towards paying for the hosting of this site.
Many thanks to those that have already donated, your donations have been graciously received - Hydra
Completed reverse engineering the parts of USB protocol that are required in order to write drivers.
A test driver has been written and works on Windows XP 32bit. Recompiling for XP64, Vista 32 and Vista 64 should not present any problem and will be tested and made available for download soon.
Added the Software Components page to the wiki with my ideas on how to implement a software solution that could potentially work with many kinds of HID devices.
Good progress has been made on the design of the pad monitor core.
Some UI code has been written for the Pad Monitor.
C++ code written to build requests for the DX1 pad.
C++ code written to handles responses for the DX1 pad.
C++ code for input steam (including dealing with corrupt data, short reads, etc) has been done.
Excellent progress made on the Pad Monitor core. I now have the lots of nice C++ OO code written for creating command requests, parsing responses, processing command queues, processing input, raising events based on responses, matching responses to commands, matching responses to commands and raising events based on completed commands. All multi-threaded too! The pad data processing thread is separate from the UI thread, enabling rapid processing of “macro key” presses and releases.
Took apart my Ergodex DX1, took photos and created the What's inside an Ergodex DX1 wiki page.
More progress on the Pad Monitor core, some UI interaction and status reporting now in place. Added a screenshot to the new Development Screenshots wiki page.
Uploaded the Doxygen Documentation to the site.
I'm back from my snowboarding holiday now (which was awesome) and have been loaned a second Ergodex DX1 pad which will allow me to implement and test multiple pad support! Many thanks goes to Richard Veitch for the loan of the second DX1.
No information from this site is to be in any commercial projects.
Anyone wanting to use the information from this site for purposes other than the goals of this project should contact the project maintainer first.
All code written will most-likely be licensed under the GPL license.
Images used on this page are copyrighted to their respective owners, if any images are used on this site and shouldn't be please remove them and fill in the edit summary accordingly, provide alternates where possible.