TinyPS2
Contents
Features
- PS/2 keyboard or mouse to TTL Level Serial converter
- ATTiny85
- 8 KB of flash
- 8-MHz internal RC oscillator that can be used as the default clock
- 512 bytes of EEPROM
- 512 bytes of SRAM
- 115,200 baud
- 49x49mm ODAS form factor
- 4-40 mounting holes
TinyPS2
Connectors
J1 - TTL Serial Connector
- 5V
- SERTX
- N/C
- GND
J2 - PS/2
- Standard PS/2 Mini-DIN-6 connector
H2 - In-System Programming Header
- SPI connector to download ATTiny85
- 2x3 header
- Program ATTiny85 without PS/2 keyboard attached
- Pinout
- KBCLK
- GND
- SERTX
- KBDAT
- RST*
- GND
Firmware
- GitHib Repo for TinyPS2 Firmware
- Add to Prefernces
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
TinyPS2V01
- PJRC PS/2 library
- Read PS/2 print to screen
- Resources (Arduino UNO)
Sketch uses 3334 bytes (10%) of program storage space. Maximum is 32256 bytes. Global variables use 377 bytes (18%) of dynamic memory, leaving 1671 bytes for local variables. Maximum is 2048 bytes.
TinyPS2V02
- Read PS/2 keyboard, write Serial (9600 baud)
- PJRC PS/2 library
- Software Serial library
- Code
- include <SoftwareSerial.h>
- include <PS2Keyboard.h>
const int DataPin = 0; const int IRQpin = 1;
- define rxPin 3
- define txPin 2
// Set up SoftwareSerial and PS/2 objects SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); PS2Keyboard keyboard;
void setup() {
pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); mySerial.begin(9600); keyboard.begin(DataPin, IRQpin);
}
void loop() {
if (keyboard.available()) { // read the next key char c = keyboard.read(); mySerial.write(c); }
}
- Resources (ATTiny85)
Sketch uses 3126 bytes (38%) of program storage space. Maximum is 8192 bytes. Global variables use 241 bytes (47%) of dynamic memory, leaving 271 bytes for local variables. Maximum is 512 bytes.
Other People's Videos
Schematic
Issues
- Missing pull-up resistors on PS/2
- Rev 2 - add pull-up resistors
- Missing C3 cap in sequence
- Rev 2 - change C4 => C3