Any suggestions would be much appreciated!
My first suggestion would be to try with IDE 0011 rather than 0012 if at all possible. The issue is caused by a change from the 0011 environment in the 0012 environment.
My second suggestion if you need to use 0012 is to try to apply this patch to
UsbKeyboard.h (but be warned it was hacked up late one night as I was trying to meet a deadline--and the final result doesn't work as reliably as previous attempts but at present I am unsure if that is hardware or software related):
--- UsbKeyboard.h~ 2008-09-24 22:45:15.000000000 +1200
+++ UsbKeyboard.h 2008-09-24 23:46:34.000000000 +1200
@@ -10,6 +10,15 @@
#include "usbdrv.h"
+#include <avr/interrupt.h>
+
+#include <string.h>
+
+// #include "WConstants.h"
+typedef uint8_t byte; // avoid int() issue
+
+#include <util/delay.h>
+
#define BUFFER_SIZE 4 // Minimum of 2: 1 for modifiers + 1 for keystroke
@@ -124,7 +133,8 @@
// Control pull-up resistor
usbDeviceDisconnect();
- delay(500);
+ //delay(500);
+ _delay_ms(500);
usbDeviceConnect();
usbInit();
(If you don't know how to interpret the patch formatting I can try resupplying it in a different form.)
Please let me know if this helps you or not.
--Phil.
P.S. As always, I'm keen to learn what people are using the code for. :-)