Skip to content
Robert Neumann edited this page Apr 17, 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.

Basic Arduino Install

The most basic installation requires an Arduino Uno (or similar), a bit of cabling and a jumper for disabling the onboard processor. The Arduino has to be powered separately, usually by the development PC USB port. This setup doesn't require soldering.

  • Clone / download the software, load it in the Arduino IDE and program your Arduino.
  • Use your jumper to connect the 2 pins below the first programming port.
  • Connect Arduino ground to a convenient ground point on the GBS. Make sure the connection is solid.
  • Connect Arduino pin A4 to the GBS SDA pin on the second programming port.
  • Connect Arduino pin A5 to the GBS SCL pin on the second programming port.

Power up the GBS alone. There will be no picture now, confirming that the onboard processor is disabled. Power up your Arduino. You should get a picture after a few seconds. If you don't, head over to Troubleshooting.

Connect VSYNC and DebugPin

To enable automatic image position and timing adjustment, the Arduino needs to know some timings. Choose one of the 3 possible VSYNC points and solder a wire to Arduino input 10. Then carefully solder a pin or a direct wire from the pictured DebugPin to Arduino input 11.

VSYNC

DebugPin

Arduino pin assignment

Note that these assignments could change but I will try to avoid that. Power pins are excluded.

Pin A4: SDA
Pin A5: SCL
Pin 10: VSYNC

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.