The CDTV is essentially a Commodore Amiga 500 home computer with a CD-ROM drive and a infrared remote control. With the optional keyboard, mouse, and floppy disk drive, it gained the functionality of the regular Amiga. Commodore had overestimated the success of CDTV and pre-ordered many remote controls. That’s why new old-stock remotes are still available at a very reasonable price today.
This fact gave me the idea to develop an adapter which allows to use this infrared remote control on any Amiga model, not only on the Amiga CDTV.
The first step was to analyze and decode the transmitted infrared signal from the CDTV remote control. Technical specifications are hard to find, so I decided to buy a remote control and analyze it with AnalysIR.
After a thorough analysis of all signal information I wrote an interrupt based program for the Atmel ATmega328 microcontroller, which receives the infrared signals, decodes them and sets the corresponding pins on the joystick or mouse ports to low or high accordingly. A switch on the remote control lets you select between mouse and joystick. Generating the mouse signals is a bit more challenging. The Amiga expects a quadrature signal where the mouse speed defines the interval of the signal. I solved this steady signal generation by a interrupt routine which periodically gets called every 2.5 ms. The remaining time, the CPU is busy receiving and decoding the incoming infrared signals.
I have made all project data publicly available on Github:
- CDTV Adaptor PCB (Eagle CAD)
- CDTV Adaptor Part List (BOM)
- CDTV Infrared Protocol Implementation (Arduino Library)
- CDTV Adapter Firmware 1.0.1 (Arduino Sketch)
- 3D Housing Model for 3D Printing (STL File)
- 3D Housing Model für MoI (Moments of Interest)