Skip to content
Robert Neumann edited this page May 20, 2018 · 72 revisions

GBS-control hardware guide (wip)

Intro

Gbs-control runs on any one of currently 3 available microcontroller platforms.
They are Arduino, ESP8266 and ESP32.
Arduino was developed first and offers basic functionality, using an Uno or Pro Micro, for example.
ESP8266 and ESP32 extend on that, offering a web browser based user interface (web ui).
I recommend the ESP8266 platform. It offers the web ui and is more stable than the ESP32, simply because the SDK is more mature.
ESP8266 boards can be found on Ebay for about $5. "Wemos D1" boards work well.
Whichever board you choose, it will be called the "MCU board" or just "MCU" from here on.

Common tasks

  • Clone / download the gbs-control software, load it in the Arduino IDE and program your MCU.
  • Use a jumper to connect the 2 pins below the first programming port (see pictures)

Basic Install

The most basic installation requires the MCU, a bit of cabling and a jumper for disabling the onboard processor. The MCU can be powered by:

  • a development PC USB port
  • using the same power supply that powers the GBS > into the MCU boards "Vin"
  • using the GBS regulated Vcc (3.3V) > into the MCU boards "5V" input (Most Arduinos work fine with the lower voltage, ESP8266 and ESP32 boards require 3.3V anyway.)

Connect the MCU boards ground to a convenient ground point on the GBS. Connect the two I2C bus wires (SDA, SCL).

  • Arduino: SDA to pin A4, SCL to pin A5
  • ESP8266: NodeMCU: SDA to D2, SCL to D1 | Wemos D1: SDA to D14, SCL to D15
  • ESP32: ToDo (use the default SDA, SCL pins for your board)

Connect DebugPin

To enable automatic image position and timing adjustment, the MCU needs to know some timings. Carefully solder a wire from the pictured DebugPin to:

  • Arduino > pin 11
  • ESP8266 > pin D6
  • ESP32 > pin D26

DebugPin

ESP8266 (offers Web based control panel)

Installation is similar to the Arduino setup. For these boards, I recommend using the VIN (supply) input.
The supply will be shared between GBS board and ESP8266. It can range from 5V to 10V.
The VSYNC cable has to be connected to one of the 3 available spots on the GBS board (see "Connect VSYNC" section).

SCART RGB to VGA adapter

If you want to build an adapter, here is some good inspiration: https://shmups.system11.org/viewtopic.php?f=6&t=35423

The ArcadeForge Sync Strike is a solution that will work, if you don't want to build an adapter yourself.
http://arcadeforge.net/Scaler-and-Strike-Devices/Sync-Strike::15.html?language=en

Sync

Every GBS board requires at least one additional resistor on Sync-in to ground. That resistor should be from 75 to 150 Ohm, ideally 100 Ohm. Together with the factory resistor of 1000 Ohm, this brings the total resistance down to TV levels of 75 Ohm.

I recommend using a sync stripper to extract and amplify the various forms of RGBS sync.
Unfortunately, quite a few guides show an LM1881 circuit that is missing components.
Please ensure your circuit has a 75 Ohm to ground (termination) resistor on the LM1881 video input, as well as a 470 Ohm series (attenuation) resistor on the sync output.
User viletim shows a good LM1881 circuit here:
https://shmups.system11.org/viewtopic.php?f=6&t=55948&p=1153713#p1153713
https://shmups.system11.org/viewtopic.php?p=1153077#p1153077 Build this circuit (sometimes this is already included in the RGB cable), and connect its sync out (from the 470 Ohm series resistor) to the GBS Sync-in. Make sure the GBS Sync-in has the earlier mentioned ~100 Ohm resistor to ground as well.
Todo: Draw up schematics that show all this

Troubleshooting

No Picture

  • Are SDA / SCL reversed? It's safe to reverse them and try again.
  • Forgot to install the jumper on the GBS?
  • ~100 Ohm resistor to ground on Sync-in is installed?

The Arduino IDE serial monitor shows debug information at 115200 baud. If your MCU (ESP32, ESP8266 or any Arduino) is connected to a computer via USB, you can access this to find out more about the issue.