-
Notifications
You must be signed in to change notification settings - Fork 128
Build the Hardware
Gbs-control is a replacement controller and firmware for GBS8200 upscaler boards.
It runs on the popular ESP8266 microcontroller and is developed using the Arduino plattform.
GBS8200 upscalers can be bought on Ebay, at prices around $20.
Ebay also has ESP8266 microcontroller boards for about $5.
The ones called "Wemos D1" and NodeMCU work well and are recommended.
The installation requires the GBS upscaler, an ESP8266 board, a bit of cabling and a method (wire link, jumper) for disabling the onboard processor. Power for the ESP8266 can be provided by, for example:
- using the same power supply that powers the GBS > into the MCU boards "Vin" (recommended)
- using the GBS regulated Vcc (3.3V) > into the MCU boards "3.3V" input (not recommended)
- a development PC USB port (not recommended)
Connect the ESP8266 boards ground to a convenient ground point on the GBS.
Connect the two I2C bus wires (SDA, SCL).
- Wemos D1: SDA to D14, SCL to D15
- NodeMCU: SDA to D2, SCL to D1
- Use a jumper to bridge the 2 pins below the first programming port (see pictures)
To enable automatic image position and timing adjustment, the MCU needs to know some timings. Carefully solder a wire from the pictured DebugPin to:
- Wemos D1: pin D6
- NodeMCU: pin D6
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
Every GBS board comes with ~500 Ohm termination on the sync input.
This termination is meant for VGA and most arcade boards. It is unfit for most other sources however.
If you want to use the RGBS input for regular TV level sources (game consoles), the GBS requires one additional 100 Ohm resistor to ground on the sync input.
Together with the factory resistor of ~500 Ohm, this will bring the total termination close to TV levels of 75 Ohm.
Info: The total resistance is closer to 82 Ohm with this extra resistor. This is intentional, as it leaves more headroom.
Better results can be obtained by using a sync stripper, such as the LM1881, that extract the various forms of RGBS sync.
Please build your circuit so that it 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.
The 75 Ohm input resistor is the required termination for the source.
The 470 Ohm series resistor on the CSync output of the LM1881 lowers the voltage to safe levels for the GBS.
Your extracted CSync can now be connected to the "S" (sync input) pin of the GBS.
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
Note that his circuit omits the Rset resistor and capacitor. This does work for CSync generation, but the VSync output will not work.
This is fine however, as we are only interested in the CSync.
Also note that the LM1881 requires 5V to operate, but that the GBS only makes 3.3V easily available.
5V for the LM1881 needs to be sourced elsewhere, from the GBS power input, for example.
I successfully tested the sync stripper at just 3.3V, with the output 470 Ohm resistor removed.
This is not recommended though, and the LM1881 will have a hard time with some signals.
- 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?
- using a sync stripper: Is the source voltage 5V (as required by the LM1881)?
The Arduino IDE serial monitor shows debug information at 115200 baud.
If your MCU is connected to a computer via USB, you can access this to find out more about the issue.