Days were spent trying to get an Arduino Uno R3 to act like a USB keyboard. The process was painful but possibly due to impatience and exhaustion. Most work on this aspect was done after regular project work rather than peak time for critical thinking. It was satisfying though.
Arduino Uno R3s used an ATMEGA16U2 processor instead of an FTDI USB↔Serial adapter. FTDI have been used by Arduinos for a long time and are still the defacto for USB↔Serial modules used to program boards like the Arduino Pro Mini. The advantage is that the new converter can emulate a USB keyboard or mouse by reprogramming it. Unfortunately it must be programmed with command line programs instead of the Arduino IDE. Inexperience made this a time consuming task but there were plenty of resources.
Conceptually the chip is reset to place it in loading mode, flashed with a new program, then reset with the new firmware running. In order to program the main Arduino controller the firmware had to be reprogrammed to the default firmware. The firmware I used accepted serial data and relayed that as keyboard commands. As a test volume was changed with one program to see that it was working properly. Arduino software was downloaded for the chording keyboard and tested by bridging a wire to the desired pin.
Reprogrammed Uno with jumper
Without connecting any hardware it was possible to type a few basic characters but a lowercase 'g' appeared before and after each character. This could be a problem because the program was written for a Bluetooth adapter whereas this hardware may not use exactly the same protocol. The serial baud rate was also changed in the Bluetooth code to 9600 in accordance with the adapter's firmware change.
DFU programming and keyboard output
- Secure Ethernet wire with a cable clamp
- Solder Ethernet wire to controller
- Figure a way to mount to wrist
- Figure a way to move hinge pieces
- Make model and OpenSCAD code public
- Write keyboard code
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1.
Completed projects from year 2.
Disclaimer for http://24hourengineer.blogspot.com/
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.
All digital communication regarding the email address email@example.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.
Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
Post a Comment