Skip to content
Jeffrey edited this page Feb 28, 2022 · 2 revisions

USB to CD-i

This page describes how to build an USB to CD-i convertor using the CD-i controller library.

Materials

  • Arduino Pro Micro 3.3v
  • USB Host Shield Mini
  • Logic Level Shifter (4 pin)

Schematic

The schematic above shows how you need to connect everything. The pins of the Arduino Pro Micro line up with the pins of the USB host shield, so you can use headers to solder them on top of each other. However:

  1. The reset pin of the USB host shield lines up with a GND pin on the Arduino, this one needs to be connected to VCC instead.
  2. By default the VCC is hooked up to the VBUS of the USB connector, which is 3.3V. Most USB devices will work on 3.3V, but in order to get 5V on the VBUS, you need to cut a trace on the board (indicated in the schematic) and hook up the VBUS pad to the RAW pin on the Arduino.

Both of these can be done by soldering two wires on the back of the USB Host shield.

The Logic Level Shifter is needed to convert the 3.3V signals of the Arduino to the 5V which is used by the CD-i player. The pin connections listed in the schematic are made in a way that supports two controllers at once (integrated splitter).

When built in this way the example sketches can be run without any alterations.

Alterations

Compact Design

In order to create a very compact version, I've soldered the Logic Level Shifter (rotated 180 degrees from the schematic) on top of the Arduino Micro, connecting all six pins (LV1 to LV4) to digital outputs on the Arduino (pins 2 to 7) - connecting "LV" to pin 4, and "GND" to pin 5. This does require an alteration to the sketches, namely the following code needs to be added to the top of the setup() function:

pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);

This configures pins 4 and 5 as output, and provides 3.3V on pin 4 and ground on pin 5.

Clone this wiki locally