Hugh's Keyspan Drivers Page
With assistance from Keyspan, I'm working on drivers for their range of USB to serial converters. Models that are supported are the USA-49W, USA-28X, USA-19, USA-18X and USA19W with more to come as they are released. The USA-28 is not supported at present but requires only minor changes to do so.
Discussions are also underway to do a driver for their neat little IR remote control unit. My intention is that this driver would integrate with LIRC.
Thanks to Keyspan for having the foresight to support Linux and for being a pleasure to work with.
The devices mentioned are now supported on 2.4.0-test11 and 2.2.18 and later
kernels. Thanks to Paulus for his help in getting things finalised.
The driver is now integrated into the mainstream kernels. If there are updates they will appear here but at present the kernel is completely up to date.ftp http
Any day to day updates will now appear in my diary as it was becoming a bit daft maintaining two quite similar documents.
For completeness, old entries follow.
Patch against 2.4.0-test4 is available ftp http
Basic character input/output works on the USA-19 but fixed at 9600 baud, close() doesn't work correctly and your machine may catch fire if you use it. Apart from that it's OK.
Got characters going in and out now at 9600 baud, gotta do some state machine logic to ensure close() is handled correctly (ie data gets sent before close completes) Changing baud rates is next on the agenda after that.
First patch went into 2.4.0-test3 just now thanks to Greg. This provides firmware upload support only. I'm working on getting some characters out after a couple of wrong turns...
Here's an exerpt from the release entry:
Linux kernel version 2.4.0-test3 has been released. It is available from:
Sizes in bytes Compressed Uncompressed
Patch 989269 4551810
Full source 21657104 93153280
The following files were changed in this release:
drivers/usb/serial/keyspan.c | 512 ++++
drivers/usb/serial/keyspan_usa18x_fw.h | 406 +++
drivers/usb/serial/keyspan_usa19_fw.h | 299 ++
drivers/usb/serial/keyspan_usa19w_fw.h | 304 ++
drivers/usb/serial/keyspan_usa26msg.h | 248 ++
drivers/usb/serial/keyspan_usa28_fw.h | 462 ++++
drivers/usb/serial/keyspan_usa28msg.h | 212 +
drivers/usb/serial/keyspan_usa28x_fw.h | 406 +++
1105 files changed, 102719 insertions, 16936 deletions
Got "ABCDE" out of a USA-19 at 9600 baud this afternoon.
Finally got a chance to do some hacking on the drivers, now uploads correct firmware for each device and does a renumeration. Plan to work on actually getting some characters out tomorrow!
Keyspan sent over updated firmware a week or so back which has made the ID/renumeration process a bit cleaner. Tested with the four units I have, the logfile only shows three but you get the idea.
Met with the guys from Keyspan this morning, was a very positive meeting and they're really nice folks. Went over some interesting technical issues and they gave an informal roadmap of where they see their driver/firmware heading. The latter was particuarly good as it will allow me to code the driver with these future changes and enhancements in mind. If only all manufacturers were this positive about Linux!
Was able to upload firmware into the 28x from the Linux driver :).
Got firmware image for the USA-28x from Keyspan along with some header files describing the message formats etc. Neato.
Got some of the documentation today, will read it further over the weekend but my initial take is that it's going to be a nice protocol to work with.
Followup discussion with the gentleman at Keyspan this morning, should get the documentation for
the command set later this week via email. There are two different command sets used it seems, one one being for the USA-28 and USA-19, the other for the USA-19W, 28X and 18X.
Got a parcel from Keyspan today with sample adaptors and a MOU to sign and return.
All looks very promising!