forked from vogelchr/avr_cobalt_panel
-
Notifications
You must be signed in to change notification settings - Fork 0
xamindar/avr_cobalt_panel
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a small project to connect a AVR microcontroller (e.g. an "Arduino") to the LCD/Button panel of a Cobalt RaQ3. I own one of these devices on which the mainboard was unfixably broken, and I decided to use them as a general purpose case. Pinout of the 26pin ribbon connector to the frontpanel, with proposed connection to an AVR Mega168/Arduino: --------:-----------:----------------------------:------------:--------- Button |LCD/245 |Arduino/AVR Ard/AVR|LCD |Button --------:-----------:----------------------------:------------:--------- +-----------+ '245 \OE PB5(13)| ( 2) ( 1) | PB3(11) LCD_E(p6) LCD_VCC(p2) | ( 4) ( 3) | GND LCD_D0(p7) PC0(A0)| ( 6) ( 5) | PC1(A1) LCD_D1(p8) B_Pin B_Left LCD_D2(p9) PC2(A2)| ( 8) ( 7) | PC3(A3) LCD_D3(p10) B_Up B_Down LCD_D4(p11) PC4(A4)| (10) ( 9) | PC5(A5) LCD_D5(p12) B_Right B_E LCD_D6(p13) PD6(6) | (12) (11) | PD7(7) LCD_D7(p14) B_S LCD_RW(p5) GND! | (14) (13) | PB4(12) LCD_RS(p4) n/c | (16) (15) | GND Col (Cath) PD5(5) | (18) (17) | PB0(8) Web (LED Anode) Link(Cath) PD4(4) | (20) (19) | PB1(9) Disk (LED Cath) 100M(Cath) PD3(3) | (22) (21) | n/c TxRx(Cath) PD2(2) | (24) (23) | PB2(10) Logo (NPN base) n/c | (26) (25) | n/c +-----------+ LCD_x are connections to the hd44780-LCD (with pin numbers in parentheses). B_x are connections to the buttons. They are put on the D1..D7 lines when the \OE pin is low (there's a 74HC245 on the frontpanel board). LEDs are all wired up differently: The network LEDs (Col, Link, 100M, TxRx) have their anodes wired up to Vcc and expect to be pulled low with a suitable resistor (say 200Ohms - 1kOhm for 5V). Web has the cathode wired to ground, Disk has the anode wired to Vcc. Resistors are soldered. Serial protocol (on an Arduino, this is the USB emulated serial port /dev/ttyUSBn): By default every character gets sent to the LCD. The following ESC sequences are understood: ESC 'c' -> clear and home ESC 'h' -> home ESC 'p' x y c b -> goto x y, turn on/off cursor and blink x = '0'..'9' and 'a'..'e' -> x-position in hex y = '0'..'1' -> y-position in hex c = '0'..'1' show(1) or hide(0) cursor b = '0'..'1' blink(1) or don't blink (0) ESC 'u' x p0..p7 -> user-define character x = '0'..'7' character number in hex p0..p7 character data in BINARY! A single 5x7 character looks like: p0_bit4 p0_bit3 ... p0_bit0 <--- top p1_bit4 p1_bit3 ... p1_bit0 ... ... p7_bit4 p7_bit3 ... p7_bit0 <--- bottom ESC 'l' a b -> LED, lights up the LEDs corresponding to the mask 0xab where a = '0'..'9','a'..'f' -> high nibble in hex b = '0'..'9','a'..'f' -> low nibble in hex ESC '?' -> inquire, will return the string avr-cobalt-panel\r\n The keys pressed on the front-panel are returned as: Up/Down/Left/Right/S/E -> 'U', 'D', 'L', 'R', 'S', 'E' The sunken button that can only be reached with a *PIN* is returned as the character 'P'. Depending on desired use, you may want to disable the Arduino's auto reset on serial connect: http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection I added a 100uf capacitor between reset and ground and it worked. This allowed sending commands through echo (without it resetting).
About
Interface from a AVR Mega328 (Arduino) to a Cobalt RaQ3 frontpanel.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 80.5%
- C++ 15.0%
- Makefile 4.5%