This shows you the differences between two versions of the page.
start [2009/06/25 13:11] 84.9.60.50 |
start [2014/10/13 17:21] (current) hydra removing spam status update |
||
---|---|---|---|
Line 6: | Line 6: | ||
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 [[http://www.popsci.com/popsci/bown2005/computing/8cccc18872927010vgnvcm1000004eecbccdrcrd.html|Best of what's new 2005]]. | 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 [[http://www.popsci.com/popsci/bown2005/computing/8cccc18872927010vgnvcm1000004eecbccdrcrd.html|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. | + | 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 offical 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 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 7, Windows Vista and Windows XP and (all 64 and 32bit editions) 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. | + | Thanks to my (Hydra's) work in reverse engineering the USB protocol other developers were able to write Linux drivers and also port them to OSX, they're on the [[downloads|downloads page]] the linux and osx driver offer no GUIs or macro support. Rob Povey over at Polygon hell also has created some UMDF drivers for Windows XP, Vista (32 and 64bit), you can find them here: http://polygonalhell.blogspot.com/2009/01/new-32-and-64-bit-ergodex-dx1-drivers.html and there's an open-source project for them here too: http://code.google.com/p/ew-ergodex-dx1-driver/ |
+ | The primary focus is to provide KMDF based Windows 7 64bit drivers (as opposed to Rob's UDMF drivers or Erogdex's WDM drivers). Only KMDF (Kernel Mode Driver Framework) or MDL can provide the lowest latency macro support which is crucial for advanced macro usage, especially duing cpu intensive tasks (like playing games/video editing). | ||
+ | |||
+ | This project was started in February 2007, just after the retail release of Windows Vista. | ||
===== Join In ===== | ===== Join In ===== | ||
- | If you want to help with the project please drop me, hydra, an email at this address: hydra at hydras hyphen world dot com | + | If you want to help with the project please drop me, hydra, an email at this address: me at dominicclifton dot name |
+ | |||
+ | Please note, due to excessive edits by spammers all wiki accounts have NO write access until they are verified personally by me, please email me if you'd like your account verified or just email me with any changes you'd like to see added if that's too much trouble. Sorry about this, damn spammers! | ||
Or, you can join the #ergodex IRC channel on freenode [[irc://irc.freenode.net/#ergodex]]. | 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 [[http://www.HydraIRC.com|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. | If you've not used IRC before then grab a copy of [[http://www.HydraIRC.com|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. | ||
- | |||
- | |||
- | |||
Line 73: | Line 75: | ||
[[http://qliner.com/hotkeys/|QLiner hotkeys]] - More keyboard/mouse related code. | [[http://qliner.com/hotkeys/|QLiner hotkeys]] - More keyboard/mouse related code. | ||
+ | [[https://launchpad.net/pystromo|Pystromo]] - Originally only targeted at improving Linux support for the Belkin Nostromo n52 with arbitrary macros, it was expanded to cover any USB device in linux | ||
===== Donations ===== | ===== Donations ===== | ||
Line 81: | Line 83: | ||
Many thanks to those that have already donated, your donations have been graciously received - Hydra | Many thanks to those that have already donated, your donations have been graciously received - Hydra | ||
===== Current Status ===== | ===== Current Status ===== | ||
+ | |||
+ | * 2009/10/17 - Hydra | ||
+ | |||
+ | I played my first game of Team Fortress 2 using my Ergodex programmed with a test keymap! The keymap is currently hard coded into the padcontroller command line utility. | ||
+ | |||
+ | * 2009/10/13 - Hydra | ||
+ | |||
+ | While waiting for MS to hurry up and give me a product key I *cough* installed a *cough* test version of Window s7 on my main box which now no-longer has Windows XP on it. Now there's a milestone if there ever was one. | ||
+ | |||
+ | * 2009/10/05 - Hydra | ||
+ | |||
+ | I ordered Windows 7 64bit and I'll be upgrading my main machine to use Windows 7 as soon as possible. I'm going to try and get very basic drivers before Windows 7 comes out but progress should be good once my main box is upgraded as i can't live without my ergodex. | ||
+ | |||
+ | * 2009/07/15 - Hydra | ||
+ | |||
+ | The drivers can now sends data received from the device to the app that wants read notification. Driver wise there's not much left to do now, application wise there's lots to do! | ||
+ | |||
+ | * 2009/07/02 - Hydra | ||
+ | |||
+ | An app can now send write requests to the driver, the test tool now successfully issues the 'get device information' command using the new code. | ||
+ | |||
+ | * 2009/07/01 - Hydra | ||
+ | |||
+ | More significant progress! An application can request that the driver notify the app when the driver recieves data from the device, the priority of the application is also boosted when notification is sent. This means that there is now device->application communication where as before all other communication was app->driver. | ||
+ | |||
+ | I also decided to keep the driver dumber that I was previously going to in order to keep the amount of code in the driver itself as small as possible. The main reasons for this are: code duplication of things like keymap processing in non-dx1 drivers, it's simpler, less driver code to maintain, kernel mode code is time consuming to create, debug and maintain, you can't use OO (no C++ in KMDF), there's no IDE integration for Visual Studio for KMDF code, my lack of expertise in kernel-land is a time-sink and I'll make faster progress, more reusable cross-platform C++ classes (i.e. the ones I wrote back in 2007!). | ||
+ | |||
+ | * 2009/06/29 - Hydra | ||
+ | |||
+ | Added the ability to enable/disable the test mode and set the led's to indicate a test mode. | ||
+ | |||
+ | * 2009/06/28 - Hydra | ||
+ | |||
+ | Made good progress today, my new WDMF driver can continuously read data from one or more (tested with 2) DX1 pads and dump it to a kernel debug console. The command line tool can be used to trigger various actions within the driver and I'm very happy at being at this stage as it's quite an accompishment for me as until know I didn't really know much about writing drivers, real kernel debugging, the differences between WDM, KMDF, UMDF and how PnP power management, io requests, usb device management and configuration really worked, now I do! I also managed to leverage some features of KMDF which made implementing 4 parallel IO read requests *very* simple indeed. I must also say that there's some great whitepapers and documentation on MSDN regarding kernel device driver data flow, objects and such like. Thanks Microsoft tech dudes!!! | ||
+ | |||
+ | * 2009/06/26 - Hydra | ||
+ | |||
+ | I had big issues getting my drivers working again after I changed the .inx/.inf files which has taken me all morning to solve. I did find and bookmark some good documents on the subject of device driver installation, driver stores, driver signing and pnputil so it wasn't a total waste of time. Right, now back to coding | ||
* 2009/06/25 - Hydra | * 2009/06/25 - Hydra | ||
Line 86: | Line 126: | ||
The name for the driver project has been decided - 'Pad Controller'. The idea being that the software will support multiple pads, and will (maybe) later support other kinds of pads (like Nostromo n52's, etc). | The name for the driver project has been decided - 'Pad Controller'. The idea being that the software will support multiple pads, and will (maybe) later support other kinds of pads (like Nostromo n52's, etc). | ||
- | I have created a subversion repository for the new source code and a trac project, the url for which is this: http://dev.padcontroller.hydraproductions.com/ | + | I have created a subversion repository for the new source code and a trac project, the url for which is this: http://dev.padcontroller.hydraproductions.com/ (Offline as on 26/August/2011 due to server move). |
* 2009/06/24 - Hydra | * 2009/06/24 - Hydra |