-
-
Notifications
You must be signed in to change notification settings - Fork 115
BlueRetro DIY Build Instructions
- ESP32-DEVKITC-32E with ESP-WROOM-32 (Get it on Digikey or Mouser)
- DB-25 Female connector solder cup (or console plug if hardwired)
-
Install esptool and prerequisites (not required for Windows):
Linux: Install prerequisites.
macOS: Install prerequisites and USB driver (Note: You may need to Allow driver under System Preferences > Security & Privacy, and reboot).
Then run:
pip install esptool
-
Download latest BlueRetro binary from GitHub and flash them on your ESP32.
Linux/macOS: Find your device path which should look like
/dev/tty*
on Linux or/dev/cu.*
on macOS. Then run the following (changing/dev/ttyUSB0
to your actual device):esptool.py -p /dev/ttyUSB0 \ -b 460800 --before default_reset --after hard_reset --chip esp32 \ write_flash --flash_mode dio --flash_size detect --flash_freq 40m \ 0x1000 bootloader/bootloader.bin \ 0x8000 partition_table/partition-table.bin \ 0xd000 ota/ota_data_initial.bin \ 0x10000 BlueRetro_universal_spiffs.bin
Windows: Flashing firmware Windows 10.
-
Install DB25 connector (or direct console plug).
https://github.com/darthcloud/BlueRetroHW/blob/master/DIY/BlueRetroDIY.pdf -
Build target system cable adapter (or use as reference for direct console plug).
https://github.com/darthcloud/BlueRetro/wiki/BlueRetro-Cables-Build-Instructions -
(Optional) Power on system and connect via Web Bluetooth to configure adapter.
The config mode is only available if no controller is connected.
https://blueretro.io -
BlueRetro is always in pairing mode if no controller connected.
Pair via inquiry first (SYNC or pairing mode), on subsequent connection you can simply page (button press or power on button).
See guide for more specific instruction: Pairing Guide -
(Optional) Wire IO17 as follow to get Bluetooth pairing mode status and error notification:
-
(Optional) Port status LED
ESP32 IO Direction Function Note 2 Output Controller port 1 LED 3.3v level 4 Output Controller port 2 LED 3.3v level 12* Output Controller port 3 LED 3.3v level 15* Output Controller port 4 LED 3.3v level *In PlayStation mode pin 12 & 15 are used as the P1 & P2 Analog LED respectively.
All those pin are ESP32 strapping pin. Interface via MOSFET to avoid problem at boot.
8.1. Behavior while in pairing mode
The first available port LED will be pulsing.8.2. Behavior when BT controller connected
Port which got an active BT connection will have it's corresponding LED solid.8.3. Behavior while system reset is pressed (Boot button)
All port LED are used to indicate current switch function.
-
RE notes
- ESP32 RTOS + Bare Metal: Best of Both Worlds?
- Learning Bluetooth Classic (BR/EDR) with HCI traces
- Xbox One Adaptive controller
- Evolution of SEGA's IO Interface from SG-1000 to Saturn
- Famicom & NES controller shift register: Parallel-in, Serial-out
- SNES 2P & Super Multitap
- PlayStation & PlayStation 2 SPI interface
- 3DO interface
- PC-FX interface
- CD-i interface
- PCE & TG16 interface
- Jaguar Interface
-
Deprecated content