If you figure out an easy method of using opto isolation for the bi-directional USB differential data interface, please let me know! But I really don't think it will be a problem for your climate.
I just rebuilt the project and zipped the files and uploaded it to the notebook. Let me know if you are able to import the project and build it. There is an option to select which serial port is active. Currently it is not the USB serial port. If you get far enough to want to try it over the USB serial port, look in the w5uxhMbedKeyer.h file near the top for this section:
//--------------------------------------------------------------------------------
// Only define one of the following UARTS in order to select the serial port to use
// #define USE_SERIAL_OVER_USB
#define USE_SERIAL_OVER_UART1
//--------------------------------------------------------------------------------
#ifdef USE_SERIAL_OVER_USB
#define NVIC_Disable_the_UART_in_use NVIC_DisableIRQ(UART0_IRQn)
#define NVIC_Enable_the_UART_in_use NVIC_EnableIRQ(UART0_IRQn)
#endif
#ifdef USE_SERIAL_OVER_UART1
#define NVIC_Disable_the_UART_in_use NVIC_DisableIRQ(UART1_IRQn)
#define NVIC_Enable_the_UART_in_use NVIC_EnableIRQ(UART1_IRQn)
#endif
#ifdef USE_SERIAL_OVER_UART2
#define NVIC_Disable_the_UART_in_use NVIC_DisableIRQ(UART2_IRQn)
#define NVIC_Enable_the_UART_in_use NVIC_EnableIRQ(UART2_IRQn)
#endif
#ifdef USE_SERIAL_OVER_UART3
#define NVIC_Disable_the_UART_in_use NVIC_DisableIRQ(UART3_IRQn)
#define NVIC_Enable_the_UART_in_use NVIC_EnableIRQ(UART3_IRQn)
#endif
and change the define to USE_SERIAL_OVER_USB. This should give you a console display at 57600 Baud. You of course will not hear any CW without connecting the Piezo for the sidetone. There is a Settings.txt file required to set initial parameters. This is an example file (my current one):
ID=W5UXH
pdlspd=30
kbdspd=50
weight=52
rigena=1
monena=0
curtis=0
You will need to set monena=1 to enable the sidetone so that you will hear it through the Piezo. You should change the speeds to lower values to suit you of course!
I use PuTTY for the console. There may be a few configuration options needed if it does not display properly. The dedicated USB keyboard has all supported functions available. The console keyboard is more limited, but you can change speed and a few other things from the console.
If you have questions later, you can use my email address found on QRZ.com in order to not clutter the forum.
I doubt there is an audience out there with interest in this project, but I wanted to post this notice just in case there are any hams who are working with the mbed and interested in CW.
I am working on migrating my AVR ATmega328P project to the mbed LPC1768. The AVR project uses PS-2 keys. The mbed project uses the USB Host to support a set of USB keys. I might eventually add support for PS-2 keys also as an alternate input. I currently support a serial port interface for both input and console display so in the most basic form the mbed plus a NPN keying transistor circuit (or just a piezo speaker) can be used to play with the project. A 4x20 LCD is also used as a display.
I use a RS-232 converter as the primary console, but a compile time option in a header file is used to select either UART1 or UART0 (the serial over USB port).
I believe the project is currently reasonably functional and robust, but I am not yet using it for daily operation on the air. There is still a lot of work to do. I have used it on the air one time, in a daily QRQ sked when the project was just barely operational.
Information on the project and a zip file of the current state as of today (13 May 2012) can be found on my Notebook page.
I will post a link on the Notebook page later that goes to a video showing a brief demo of the keyboard in use.