tashtari
PIC Whisperer
This project is sort of an offshoot from TashKM but it's got at least one feature that is and will be unique to it, so...
Introducing... TashTrio!
Elevator Pitch
It's an ADB peripheral which appears to the computer as a trio of ADB devices: an extended keyboard, a mouse, and a Global Village TelePort ADB modem, contained entirely within a single Microchip PIC12F1840 (8 pins, ~$1.50) microcontroller.
The behaviors of the emulated ADB keyboard and mouse are directed by a PS/2 keyboard and mouse which are connected to it; the emulated modem's data is transmitted and received to/from a host connected on the PIC's UART. In effect, this allows a broader range of input devices, including ones still widely available as new, to connect to an ADB Mac as well as giving it a third (albeit slow) serial port.
Project Status
Firmware is stable and working on a breadboard, no PCB yet.
Caveats
Emulation of the modem is incomplete; the firmware ignores a lot of commands sent to the modem which are not important for the modem's ability to function as a serial port. The TelePort ADB modem driver does not appear to acknowledge baud rate being set on the serial port that it emulates, so the baud rate of the PIC's UART is set via special key combinations on the keyboard.
The PS/2 keyboard requires power in order to report any keystrokes, therefore a Mac that can be powered on via the power key cannot be powered on using this device.
Because of the way the PIC12F1840's limited pins are used, the PS/2 keyboard and mouse share a clock pin. As far as I know, this is not something that is often (ever?) done, but the protocol seems to allow it and I haven't had any problems with it. The keyboard's data pin is input-only to the PIC, and as such, its LEDs cannot be controlled.
What's Next
Making a PCB, primarily. There are a few minor features that I could implement surrounding the PS/2 mouse, too, such as adjusting its resolution and using the scroll wheel for something, and I may take these on as well.
Code
Introducing... TashTrio!
Elevator Pitch
It's an ADB peripheral which appears to the computer as a trio of ADB devices: an extended keyboard, a mouse, and a Global Village TelePort ADB modem, contained entirely within a single Microchip PIC12F1840 (8 pins, ~$1.50) microcontroller.
The behaviors of the emulated ADB keyboard and mouse are directed by a PS/2 keyboard and mouse which are connected to it; the emulated modem's data is transmitted and received to/from a host connected on the PIC's UART. In effect, this allows a broader range of input devices, including ones still widely available as new, to connect to an ADB Mac as well as giving it a third (albeit slow) serial port.
Project Status
Firmware is stable and working on a breadboard, no PCB yet.
Caveats
Emulation of the modem is incomplete; the firmware ignores a lot of commands sent to the modem which are not important for the modem's ability to function as a serial port. The TelePort ADB modem driver does not appear to acknowledge baud rate being set on the serial port that it emulates, so the baud rate of the PIC's UART is set via special key combinations on the keyboard.
The PS/2 keyboard requires power in order to report any keystrokes, therefore a Mac that can be powered on via the power key cannot be powered on using this device.
Because of the way the PIC12F1840's limited pins are used, the PS/2 keyboard and mouse share a clock pin. As far as I know, this is not something that is often (ever?) done, but the protocol seems to allow it and I haven't had any problems with it. The keyboard's data pin is input-only to the PIC, and as such, its LEDs cannot be controlled.
What's Next
Making a PCB, primarily. There are a few minor features that I could implement surrounding the PS/2 mouse, too, such as adjusting its resolution and using the scroll wheel for something, and I may take these on as well.
Code
GitHub - lampmerchant/tashtrio: Firmware that emulates a trio of devices for Apple's ADB bus: a keyboard, a mouse, and a modem.
Firmware that emulates a trio of devices for Apple's ADB bus: a keyboard, a mouse, and a modem. - lampmerchant/tashtrio
github.com