Usb 9 Pin Serial Wiring Diagram
Learning about serial communication concept and history. Simple to understand examples and experiment for UART, RS232, Ethernet, Wifi, USB, SPI, I2C. Commodore 6. 4 Keyboard Gets The USB Treatment Thanks to Arduino. Recently Ive been repairing a batch of broken Commodore 6. I scored on e. Bay for cheap. Out of the repairs, two boards were beyond hope but still had some usable parts on them so motherboards became donor boards. That left me with a couple empty cases and keyboards so I decided to make a Commodore 6. Usb 9 Pin Serial Wiring Diagram' title='Usb 9 Pin Serial Wiring Diagram' />USB keyboard. Theres already a nice product called Keyrah that does just this plus a lot more and I recommend you checking it out as it adds Amiga keyboard and joystick support. But if youre like me and want the challenge, I decided to go the maker route. First, I searched for any such projects no sense in re inventing the wheel. Null modem is a communication method to directly connect two DTEs computer, terminal, printer, etc. RS232 serial cable. The name stems from the historical. I found a project by Mikkel Holm Olsen called C6. USB Keyboard. It used an Atmel ATMega 8 chip which Ive learned is very similar to Arduinos 1. P chip. It might work but with some modifications beyond my skill set today. I shelved this project and continued. The keyboard is basically an 88 matrix keypad. Theres already a keypad library for Arduino. A couple of things that I discovered while using this library. One, dont use pin 1. C6. 4 keyboard. Its probably because of the built in resister and LED that causes the pull ups to not work. Sinner Judgement Day Rar. An outside pull up might fix this. Two, the library only supports single keypresses. This is a bummer since you often will press two keys i. But I worked around it. I put together a quick harness that will connect the Commodore 6. Arduino, aligning the rows and columns to the right pins. I like to make my projects the least destructive way so I use a lot of tape, jumpers and breadboards. Getting the Arduino to talk USB makes use of the V USB library which has been ported to Arduino. I really like this implementation because its all handled by the Arduino and needs very little passive glue on the outside to make it work. Below is a diagram of how to hook up USB to the Arduino. The values on the diodes are pretty strict and must be 3. V 5. 00m. W zener diodes although I hear 2. W is better. More information can be found in the V USB documentation. I made a small change to the V USB code and moved the USB data from Arduino pin 4 to pin 3 just edit usbconfig. Usb. Keyboard library. I also commented out the optional connectdisconnect on pin 5 because I simply dont have the pins to spare Connected, the inside looks like this. The pin mapping goes like this C6. Pin Arduino Pin. Column 0 1. USB, short for Universal Serial Bus, is an industry standard that defines cables, connectors and communications protocols for connection, communication, and power. Usb 9 Pin Serial Wiring Diagram' title='Usb 9 Pin Serial Wiring Diagram' />Column 1 1. Column 2 1. 8 6. Column 3 1. Column 4 1. 6 8. Column 5 1. Column 6 1. 4 1. Column 7 2. Row 0 1. 2 1. Row 1 1. This was pin 1. Row 2 1. Analog 0Row 3 5 1. Analog 1Row 4 8 1. Analog 2Row 5 7 1. Analog 3Row 6 6 1. Analog 4Row 7 9 1. Analog 5I power the Arduino via the incoming USB. To get it to be recognized properly by your computer, unplug the USB programming cable from the Arduino and then plug in the USB cable to the V USB side. Otherwise it will not be recognized. It makes for a lot of cable swapping unfortunately while coding. I also powered the C6. LED for nostalgia this may be a good use for pin 1. Speaking of code, I needed to define some key codes that were missing from the Usb. Keyboard library. This was fairly straight forward by looking them up on the USB HID guide chapter 1. I also defined bogus key codes that I could intercept and do something else with. Most keys on the keyboard can be passed straight through. Others, like the arrow keys, F keys, quote, asterisk, etc need a little more help since their locations are different than a standard keyboard. I also hacked together to ability to detect a modifier key shift, control, etc along with another key from the keypad library. The resulting code isnt pretty but I think its easy enough to follow. Its included below for your amusement. This project is far from perfect but its a start. Keypad. h. include lt Usb. Keyboard. h. Define keys that are missing from Usb. Keyboard. h. define KEYESCAPE 4. KEYDELETE 4. 2. define KEYTAB 4. KEYMINUS 4. 5. define KEYEQUAL 4. KEYLEFTBRACKET 4. KEYRIGHTBRACKET 4. KEYBACKSLASH 4. 9. KEYSEMICOLON 5. 1. KEYSINGLEQUOTE 5. KEYBACKTICK 5. 3. KEYCOMMA 5. 4. define KEYPERIOD 5. KEYSLASH 5. 6. define KEYINSERT 7. KEYHOME 7. 4. define KEYPAGEUP 7. KEYPAGEDOWN 7. 8. KEYRIGHTARROW 7. KEYLEFTARROW 8. KEYDOWNARROW 8. 1. KEYUPARROW 8. 2. KEYAT 2. Bogus key codes, intercepted in code below. KEYPLUS 2. 49. define LEFTSHIFT 2. RIGHTSHIFT 2. 51. COMMODORE 2. 52. define CONTROL 2. KEYCOLON 2. 54. define KEYSTAR 2. ROWS 8. const byte COLS 8. Define the Keymap. ROWSCOLS. KEYDELETE, KEYENTER, KEYRIGHTARROW, KEYF7, KEYF1, KEYF3, KEYF5, KEYDOWNARROW. KEY3, KEYW, KEYA, KEY4, KEYZ, KEYS, KEYE, LEFTSHIFT. KEY5, KEYR, KEYD, KEY6, KEYC, KEYF, KEYT, KEYX. KEY7, KEYY, KEYG, KEY8, KEYB, KEYH, KEYU, KEYV. KEY9, KEYI, KEYJ, KEY0, KEYM, KEYK, KEYO, KEYN. KEYPLUS, KEYP, KEYL, KEYMINUS, KEYPERIOD, KEYCOLON, KEYTAB, KEYCOMMA. KEYPAGEDOWN, KEYSTAR, KEYSEMICOLON, KEYHOME, RIGHTSHIFT, KEYEQUAL, KEYBACKSLASH, KEYSLASH. KEY1, KEYBACKTICK, CONTROL, KEY2, KEYSPACE, COMMODORE, KEYQ, KEYESCAPE. PinsCOLS 4,5,6,7,8,9,1. PinsROWS 1. 2,0,1. Create the Keypad. Keypad kpd Keypad make. Keymapkeys, row. Pins, col. Pins, ROWS, COLS. Usb. Keyboard. update. Kludge, find activate modifiers. Moderow. Pins7, OUTPUT. Writerow. Pins7, LOW. Readcol. Pins2 LOW mod mod MODCONTROLLEFT. Readcol. Pins5 LOW mod mod MODALTLEFT. Moderow. Pins7, INPUT. Writerow. Pins7, HIGH. Moderow. Pins1, OUTPUT. Writerow. Pins1, LOW. Readcol. Pins7 LOW mod mod MODSHIFTLEFT. Moderow. Pins1, INPUT. Writerow. Pins1, HIGH. Moderow. Pins6, OUTPUT. Writerow. Pins6, LOW. Readcol. Pins4 LOW mod mod MODSHIFTRIGHT. Moderow. Pins6, INPUT. Writerow. Pins6, HIGH. Usb. Keyboard. send. Key. Stroke0, mod This works, but sends 3 4 times. Key. switch key. KEYSTAR. Usb. Keyboard. Key. StrokeKEY8, MODSHIFTLEFT. KEYAT. Usb. Keyboard. Key. StrokeKEY2, MODSHIFTLEFT. KEYPLUS. Usb. Keyboard. Key. StrokeKEYEQUAL, MODSHIFTLEFT. KEYCOLON. Usb. Keyboard. Key. StrokeKEYSEMICOLON, MODSHIFTLEFT. MODSHIFTLEFT mod MODSHIFTRIGHT. KEY2 key KEYSINGLEQUOTE. KEY7 key KEYSINGLEQUOTE mod 0. KEY6 key KEY7 amp. KEY9 key KEY0. KEY8 key KEY9. KEYDOWNARROW key KEYUPARROW mod 0. KEYRIGHTARROW key KEYLEFTARROW mod 0. KEYF1 key KEYF2 mod 0. KEYF3 key KEYF4 mod 0. KEYF5 key KEYF6 mod 0. KEYF7 key KEYF8 mod 0. Install Linux Dell Venue 8 Pro'>Install Linux Dell Venue 8 Pro. Usb. Keyboard. send. Key. Strokekey, mod.