News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

GBS8200 RGB to VGA board

Started by The Equalizor, 00:07, 01 August 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

The Equalizor

Hi Everyone,
Despite being a bit of a CPC Expert back in the day (I ran STS Software, and wrote for CPC Attack! and Amstrad Action, as well as making Elite Plus-compatible for the AA Covertape and censoring the Stormlord fairy's um, asetts for another A covertape), I'm having some real problems with my original to modern CPC conversion.This time its with the GBS8200 card thats supposed to convert RGB to VGA so I can display on a normal monitor.99% of the time no signal is detected by the board, and occasionally it will display the CPC screen for a few seconds then vanishes. I've had a look at the signals on my scope and they look right, got a nice strong Sync pulse too, but I cant get this to work reliably.It's a HC-V3.03 revision board and I've even tried ditching the RGB cable that came with it and wiring it up with screened cable but no go.Could it be getting upset with the fact that the RGB levels are TTL perhaps?

I've tried powering off my bench supply and also a 12v battery supply and that makes no difference.

If anyone has experience with this board can they give me some pointers please, and if anyone else who knows or knew of me back in the day wants to get in touch that would be great too!


Cheers

Rob



pelrun

Welcome back to the fold!


GBS8200's are hit and miss. Depending on the firmware in your particular unit, you can have a bunch of issues. Being unable to sync to PAL 50Hz is one of them.


This link claims you can force the scaler to 50Hz mode by putting a jumper on P8:


http://shmups.system11.org/viewtopic.php?t=52172

PulkoMandy

You took a shortcut here. Putting a jumper on P8 will disable the internal CPU on the board. Then, you still need to use something else to program the video conversion chip to produce 50Hz (they did it with a Raspberry Pi or an Arduino).


I wrote my own implementation of this (using some other development board I had at hand): https://github.com/pulkomandy/gembascan


I still plan to implement this as an alternative firmware for the on-board CPU, so it's possible to re-flash the board and enjoy a proper 50Hz output. I also still need to solve compatibility issues with the ZX spectrum (which has strange video timings).


But, I lack time to work on this because I have so many other projects. Help welcome  :laugh:

The Equalizor

Thank you guys, at least I know I'm not going mad.


I'm going to send this board back and order the GBS8220 and see if that's any better. if its not I've found some Arduino code that can reprogram the board modes via 12c and an Arduino Uno and I'll try that instead. I'll update when the new board arrives.


Cheers


Rob

pelrun

Quote from: PulkoMandy on 09:01, 01 August 17
You took a shortcut here. Putting a jumper on P8 will disable the internal CPU on the board.


Yes, but you turn on the board and configure it *before* you put the jumper in, so the CPU sets up the scaler before it gets disabled. It's only a quick kludge, since you have to redo it every time you turn on the board.

HAL6128

#5

Quote from: PulkoMandy on 09:01, 01 August 17
You took a shortcut here. Putting a jumper on P8 will disable the internal CPU on the board. Then, you still need to use something else to program the video conversion chip to produce 50Hz (they did it with a Raspberry Pi or an Arduino).


I wrote my own implementation of this (using some other development board I had at hand): https://github.com/pulkomandy/gembascan

I still plan to implement this as an alternative firmware for the on-board CPU, so it's possible to re-flash the board and enjoy a proper 50Hz output. I also still need to solve compatibility issues with the ZX spectrum (which has strange video timings).

But, I lack time to work on this because I have so many other projects. Help welcome  :laugh:
Hi PulkoMandy,
does this version work on every GBS version? What kind of written artifacts will be avoided?
HAL6128
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

PulkoMandy

The GBS8220 is exactly the same board with just 2 VGA out, I don't expect any difference in behavior.


As for my experiments, well, they work on the two boards I tried them with. As far as I know the hardware of the various GBS8220 and GBS8200 revisions stayed pretty much the same in that regard, so the things should work.


The main problem I wanted to fix is:


SPEED INK 1,1
BORDER 0,16


On the normal board, it will try to de-interlace and this results in horizontal black and white stripes in the border and almost no flickering.
With my device, you get a flashing border as expected.


It removes some of the processing lag as it works in line doubling mode (so just 1 line of delay instead of 2 frames as needed to deinterlace things) - although I havent precisely timed this.


Since the output is at 50Hz, there is almost no frameskip (there is still some because the CPC is at 50.01Hz - but the firmware could be tweaked to use closer timings and reduce it further)


There is no vertical scaling so the output is pixel perfect. Horizontally the resolution is still a bit too low and that could be improved, however:
- I would need to test this with a good VGA display that doesn't add its own blur and filtering - possibly a CRT
- The CTM is not perfectly sharp, either, anyway
- And this is possibly also fixable by changing the timings to use a 16 or 32MHz sampling clock - I just didn't get there yet.


I had other fun ideas for this board. It has an 8-bit CPU, and it has a way to generate OSD display with sprites and everything - why bother to plug another computer to it while it could run some kind of BASIC by itself?  :laugh:  But that's a project for when I have more free time...

HAL6128

Quote from: PulkoMandy on 08:27, 02 August 17
I had other fun ideas for this board. It has an 8-bit CPU, and it has a way to generate OSD display with sprites and everything - why bother to plug another computer to it while it could run some kind of BASIC by itself?  :laugh:  But that's a project for when I have more free time...
Interesting stuff. So the GBS could act as a second computer plugged on the CPC :)

I've read on another site where little hardware replacements are mentioned to gain some picture improvements (https://ianstedman.wordpress.com/gbs-82xx-experiments/).
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

PulkoMandy

The main fix IIRC is to add a resistor to the sync line, which I did in my cable between the CPC and the board instead of modifying the board itself.

The Equalizor

Just to add my 2 cents worth, Its my belief that the board I received marked HC-V3.03 was a Chinese clone of the GBS8200. I ordered another one, but this time the GBS8220 and it came marked as such on the silkscreen and is damn near perfect in terms of how it handles display duties.


Regards


Rob

Gryzor

Can't add much to the discussion, but welcome, mate, and thanks for taking away our pixelly nipples!

Trixster

Quote from: pelrun on 14:01, 01 August 17

Yes, but you turn on the board and configure it *before* you put the jumper in, so the CPU sets up the scaler before it gets disabled. It's only a quick kludge, since you have to redo it every time you turn on the board.


So you place the jumper when the gbs is powered on???!
CPC6128 + M4 | Amiga A1200 + 80Mhz B1260 + 128MB + Indi AGA2 + Ide-fix | Amiga A3000 060 + CV64 + SLC486 | Atari Falcon + CT60e
Amiga A4000 CSMk2 060 + Indi AGA + Mediator + Voodoo3 + Sonnet G3 400Mhz | C64 | Saturn | PS1 | PS2 | MD | SNES | Atari 2600
Arc A3020  | A3000 | BBC B 32K + 128K SWRam + 20K Shadow Ram + RPi0 CoPro | BBC Master Turbo | A420/1 | Atom | Jaguar

pelrun

#12
Yes, that's right. But you have to follow the instructions on the page I linked - just adding the jumper isn't sufficient.

  • Input a 60Hz signal and setup as normal
  • Move the image up with the controls about 5-10%
  • Short Port 8 with a jumper or some wire
  • Input a 50Hz signal and it should work just fine

The microcontroller initialises the scaler chip with different settings depending on what signal you put into the board. Some boards have replaced the 50Hz configuration with one that works for certain arcade machine video signals, so it doesn't work for normal 50Hz ones. So you trick the microcontroller into using the 60Hz configuration (which is a lot closer to the original 50Hz config than the modified one) then disable it with the jumper so it can't change things when you swap the input back to the 50Hz one.

Trixster

Ah, ok, I understand. This is for gbs boards that won't accept a 50hz input. But for a 50hz output you have to modify the firmware like that thread suggests?
CPC6128 + M4 | Amiga A1200 + 80Mhz B1260 + 128MB + Indi AGA2 + Ide-fix | Amiga A3000 060 + CV64 + SLC486 | Atari Falcon + CT60e
Amiga A4000 CSMk2 060 + Indi AGA + Mediator + Voodoo3 + Sonnet G3 400Mhz | C64 | Saturn | PS1 | PS2 | MD | SNES | Atari 2600
Arc A3020  | A3000 | BBC B 32K + 128K SWRam + 20K Shadow Ram + RPi0 CoPro | BBC Master Turbo | A420/1 | Atom | Jaguar

pelrun

Yes. Well, there's no custom firmware (yet), but there are mods to replace the microcontroller with an Arduino or RPi and use them to do the configuration.

issalig

#15
I have tested   https://github.com/pulkomandy/gembascan with GBS8200 V5.0 2015.01.15 and it works good.Thanks a lot, PulkoMandy.
With and without the 100 ohm resistor results are the same
I have tried it on linux, but I needed to install some packages
sudo apt install lm4flash openocd
sudo vim /etc/udev/rules.d/10-local.rules 
#PASTE THIS
ATTR{idVendor}=="15ba", ATTR{idProduct}=="0004", GROUP="plugdev", MODE="0660" # Olimex Ltd. OpenOCD JTAG TINY ATTR{idVendor}=="067b", ATTR{idProduct}=="2303", GROUP="plugdev", MODE="0660" # Prolific Technology, Inc. PL2303 Serial Port ATTR{idVendor}=="10c4", ATTR{idProduct}=="ea60", GROUP="plugdev", MODE="0660" # USB Serial ATTR{idVendor}=="1cbe", ATTR{idProduct}=="00fd", GROUP="plugdev", MODE="0660" # TI Stellaris Launchpad sudo udevadm control --reload-rules

#if you are not in plugdev and dialout
sudo groupadd plugdev sudo usermod -aG plugdev USER #replace USER with your username sudo usermod -aG dialout USER sudo reboot
make
lm4flash  gcc/qs-rgb.bin

I guess it will not be too difficult to port it to ESP8266 because not everybody has access to a LM4F120.
I have not checked the code in detail  but do you think it would be easy to port it?

issalig

Hi all, I managed to make GBS8200 work with an ESP8266.

You have the code at https://github.com/issalig/gbs2cpc

eto

Quote from: issalig on 18:25, 02 April 21
Hi all, I managed to make GBS8200 work with an ESP8266.

You have the code at https://github.com/issalig/gbs2cpc


Interesting... However the "how to use it" section probably requires to be familiar with ESP8266 development, which I am not. So I do not really understand what I have to do to try this out. I have another GBS8200 here where I wanted to install GBSControl. Would the install procedure be identical? Then I can try to follow their instructions.

Maybe you can share screenshots and compare the original output to the new kind of output. That would be interesting too.


issalig

#18
It was just a fast commit, I have now updated "How to build" section
You will need to install Arduino IDE and the repository for ESP8266.
Then, select your board (Wemos D1 Mini or whatever)Select Port, Flash it!
It could probably be done also with an arduino Nano but I have not tried yet.

For a detailed guide you can check https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/

Regarding screenshots, I could not get any frame with "normal" GBS8200, but with @PulkoMandy  initialisation it works although sometimes sync is lost.  With this port to ESP8266, the quality is the same because the configuration sent over I2C is the same.


issalig

And now it works in Arduino Nano, UNO, ...

eto

Quote from: issalig on 13:25, 03 April 21It was just a fast commit, I have now updated "How to build" section

Awesome, thanks, this is great help for someone who has no clue about this. I tried it yesterday and it works well with my CPC. I also tried it with the ST but there I had no luck.

Is there any difference to the line doubling mode of GBScontrol?

issalig

Good you got it working. With Arduino or ESP8266?

I have no idea of what these commands do to GBS8200. I just ported the code from Launchpad to Arduino.The code just sets a valid configuration for the CPC but it is what @PulkoMandy  coded. Maybe he can explain it.

Powered by SMFPacks Menu Editor Mod