GOEX r4
24/02/2021 [All informations done here are tested well]



'GOEX on pills' is modern floppy drive replacement with even more extras in a single device.
It can be purchased at centuriontech.eu
So, if you want to have it !, simple...buy it to Centuriontech ;)
This webpage is ONLY for study.

Slick, tailored specifically for Amiga 500, 600 and 1200 systems.
GOEX drive is fully compatible with FlashFloppy firmware and entire Gotek HW eco-system, while it provides numerous advantages over plain Gotek drives.
More information in centuriontech web site. (see link above).

FlashFloppy is a floppy-drive emulator for the ubiquitous Gotek hardware.
Connect to retro machines just like a real floppy drive but use disk images on a modern USB stick!
FlashFloppy is free software. For more information see the license.

Table of Contents
 
PCB SCAN...........................................1
READ CONSOLE FROM OSD FIRMWARE.....................2
READ 'OSD FIRMWARE' from STM32 LQPF48..............3
READ 'FLASH FLOPPY' FIRMWARE from STM32LQFP64......4
ENTER FF OSD CONFIGURATION.........................5
FLASH WITH THE LAST FF FIRMWARE....................6
HARDWARE PART......................................7
PCB................................................8
SCHEMATIC..........................................9
COMMUNICATION.....................................10
OSD with STM32 LQFP48.............................11
ROTARY............................................12
REASSEMBLY........................................13
ADDON USB.........................................14
DFU...............................................15
UPGRADE FF FIRMWARE WITH USB KEY (or SD CARD).....16
EXTRA.............................................17


PCB SCAN



Click On picture below to see in HQ
        



READ 'CONSOLE' FROM OSD FIRMWARE



Use Serial Dongle (RS232 clone) to Read/Write STM32 chips.
And connect from Goex board TO USB dongle (RX->TX, TX->RX, GND->GND, VCC->5V)






In my case :


Of course, connect the Dongle to your USB port, Here detected to COM3


Start Putty and configure it to COM3 and 115200 Speed in Serial Connection type.


Once connected you will see the 'console' of OSD FlashFloppy firmware.
Here the 1.8 release of OSD firmware





READ 'OSD FIRMWARE' from STM32 LQPF48


Always with the same H/W configuration, but you need to connect a jumper on BOOT and 3.3BV pin on Goex
And you need The software 'STMFlashLoader demo'



Be sure to use the good port (for me always COM3) and the 9600 speed (not 115200)
Click on Next. The chip is detected. Click again Next.
If not, you can connect ponctually the RESET pin to GND.

    

Be sure the the 64K is selected, click Next
On the Upload from device box, click to choose your destination file.
And click Next.
    

Check all Page is selected and so
    
Validate it by clicking on OK
And then, finaly, clik to NEXT to start the Dump.


    


Close the software and open the file.


Now, try to re-create the BINARY file from this dump.
We mus remove the last BYTE, it's a CRC for each Line and some Lines are NOT DATA (easily recognizable, they are not long)
So...under linux, this can be simply done with some command line :

cat Dump.hex |egrep -v "^:02000004|^:020000020000F" |while read LINE; do echo "${LINE}" |cut -c10-73 >> Dump.txt ; done
cat Dump.txt |tr -d "\n" > DumpOSD.map ; xxd -r -p DumpOSD.map DumpOSD.bin

Let's compare with the original OSD FlashFloppy Firmware
The original file is available on download section : https://github.com/keirf/FF_OSD/wiki/Downloads
The Binary File is (under the zip archive) : FF_OSD-v1.8.bin, It's size is 13276 Bytes
We have Dump ALLL the 64K bank, we need to cut our dump to the good size (to compare).

dd if=DumpOSD.bin of=DumpOSD.bin.cut bs=13276 count=1

Now, time to check :)

root:/tmp# crc32 DumpOSD.bin.cut
a7c41962

root:/tmp# crc32 FF_OSD-v1.8.bin
a7c41962

root:/tmp# diff -qs DumpOSD.bin.cut DumpOSD.bin.cut
Files DumpOSD.bin.cut and DumpOSD.bin.cut are identical


It's exactly the SAME file.



READ 'FLASH FLOPPY' FIRMWARE from STM32LQFP64



Always with the SERIAL USB DONGLE and the 'new' connector. (see below)



Let's rock'n roll again but, for 128K flash Size Now.
Don't forget to put jumper on BOOT pin.



    

    

    

    

    


DONE ! Close the software and open the new file.


We'll come back to that later.



ENTER FlashFloppy OSD CONFIGURATION


I think so, but I'm not sure ;)
It would be a good idea to log in to see how it works.
According to the information on keirf github. Below a picture to see Goex connected to my A500 rev8 on Green RGB signal (E432),
_Csync on DENISE (pin 32), _KBCLOCK and _KBDATA on CIA-A (pin 40 & 39).
Without forgetting a serial connection to the OSD pinout on Goex to my USB serial Dongle.(see above)

    

And of course, the display on my TV
So here, FlashFloppy 3.23 release


To enter in the FlashFloppy OSD configuration we have several choices.


FIRST, with the Serial console Let's take a look into putty.



Here the 'OSD firmware' can be configured using <SPACE>, O & P keys
We can see here the default configuration. Sync Polarity Low, 15 kHz outpout vidéo of course, and it use the PB15/SPI2 output (wired on Goex)
H.Off(set) and V.Off are used to move the display.
We can Modify, Reset factory, Test each configurations.
To do this, just Push the <SPACE> key in putty (so in PC keyboard O_O') to enter in the Configuration mode.
We can use P and O key to move/choice configuration and <SPACE> to validate.
You can see the modification directly on your TV

Below, each possibility :

Sync Polarity[Low|High|Auto] 
Pixel Timing[15kHz|VGA|Auto] 
Display Height[Normal|Double] 
Display Output[PB15/SPI2|PA7/SPI1] 
Display Enable[None|PA15 Act.HIGH|PA15 Act.LOW] 
H.Off (1-199)[1->199]175 goes out of the display'
V.Off (1-299)[1->200] 
Save New Config?[Save+Reset|Use|Discard|Factory Reset|Save]We can use here the 'Factory Reset' if we made a mistake'



SECOND
We can use Amiga Keyboard (if we have connected KB_DATA & KB_CLOCK (see above))
IMPORTANT: Blue Pill pins A0-A1 must be jumpered for keyboard controls to be forwarded to the Gotek. On the Goex, it's the case.

To enter in the OSD menu with your Amiga Keyboard, just press : L.Ctrl + L.Alt + Help
Now we can see on your TV exactly the same menu have seen before into Putty

    

To naviguate we can use :

L.Ctrl + L.Alt + Left Arrow= Prev
L.Ctrl + L.Alt + Right Arrow= Next
L.Ctrl + L.Alt + Up Arrow= Select
L.Ctrl + L.Alt + DEL= Toggle OSD On/Off
L.Ctrl + L.Alt + RETURN= Steals the keyboard

IMPORTANT : L.Ctrl + L.Alt + Return
steals the keyboard: hot keys will now work without needing to continue holding L.Ctrl and L.Alt.
Press the same three-key combination to release the keyboard back to the Amiga.




THIRD, we can use directly the gotek
- Remove any inserted USB stick from the Goex.

- Press rotary encoder.
- Select and confirm the option Configure FF OSD
- Your Goex buttons and/or rotary encoder are now passed through to FF OSD until you power off, or eject your USB drive or SD card.



FLASH your Goex with the last FF firmware


Like on gotek, we can flash with the last FlashFloppy Firmware.(FF and OSD_FF)
We can use Serial Port to do this with Flash Loader of ST like before for the both firmware.

Same process see below. But we use the
'Download to device'
instead of 'Upload from device'



- Or, simply, juste use the 'firmware update process'

- Remove all old *.upd files from the root of the SD card.
- Copy the *.upd file from the root of the release archive to the root of the SD card.
- Insert the SD card into the Goex and power on with rotary pressed.
- You should now be in the bootloader (display shows "UPD" or "FF Update Flash").
- Release Rotary.
- The latest firmware will be programmed and the Goex will reboot into it.
- Success!

NOTE :To update OSD_FF_Firmware on Goex we can ONLY use the serial method.

https://github.com/keirf/FF_OSD/wiki/Downloads
https://github.com/keirf/FlashFloppy/wiki/Downloads


HARDWARE PART



Component List :

C422 uF 10V Radial capacitor électrolytic polarised
C310 uF 16V Radial capacitor électrolytic polarised
Q1Cristal Quartz 8Mhz
Q3Cristal Quartz 8Mhz
Q22N7002 MOFSET SMD
R14,7 Kohm SMD 805
R222 ohm SMD 805 [optional]
R322 ohm SMD 805 [Optional]
F10 ohm SMD 805 [Optional]
R54,7 Kohm SMD 805
R64,7 Kohm SMD 805
R74,7 Kohm SMD 805
R8270 ohm SMD 805
RN19A102G DIP exclusion 9pin 1K
RN29A102G DIP exclusion 9pin 1K
C5100 nF SMD 805 ceramic
C6100 nF SMD 805 cermaic
C7100 nF SMD 805 ceramic
C8100 nF SMD 805 ceramic
C9100 nF SMD 805 ceramic
C101uF SMD 0805 ceramic
C122 pF SMD 805 ceramic
C222 pF SMD 805 ceramic
C1122 pF SMD 805 ceramic
C1222 pF SMD 805 ceramic
C13100 nF SMD 805 ceramic
C14100 nF SMD 805 ceramic
U1STM32F105RBT6
7B873 93 PHL 7B 725 [SMD LQFP-64]
U2STM32F103C8T6
GH206 93 CHN 551 [SMD LQFP-48]
U374LS07 SMD SOP14
U43.3V Regulator GH27G (or 1117)

OTHER part :
- Generic Molex SD CARD connector SMD
- SMD Rotary_With_Button (like PANASONIC EVQ-WKA001)
- Mini speaker piezo 12mm
- Molex Floppy connector
- Double 34 pin header 90°
- 4 Single Row Male Pin Header
- 6 Single Row Male Pin Header
- SMD LED 3.1 x 1,6mm



PCB

Done !





SCHEMATIC






COMMUNICATION

As expected (identical to the gotek schema), we find our communication signals at the same pins of the chipset.
This is completely normal.

    
IDSIGNALGOTEKGOTEK
PROG MAIN (ak FF)TXPIN 49 (PA9)USART1_TX (PIN 49)
RXPIN 43 (PA10)USART1_RX PIN(43)
RSTPIN 7 (NRST)NRST (PIN 7)
BOOT0PIN 60 (BOOT0)BOOT_0 J3 (PIN 60)


OSD with STM32 LQFP48

As also expected (same OSD original connection), we find all our signals.
R8 to 270 ohm, same to OSD_FF schematic
R5 and R7 to 4.7Kohm, same to OSD_FF schematic too



And for keyboard control, it's Identical to a OSD_FF schema.


As indicated here : IMPORTANT: Blue Pill pins A0-A1 must be jumpered for keyboard controls to be forwarded to the Gotek.

We can find this two signals on PCB, RED and BLUE in the picture below.
Ofcourse, already solder.


Now the following key bindings take effect when L.Ctrl and L.Alt are held:
- Left Arrow = Prev
- Right Arrow = Next
- Up Arrow = Select
- Help = FF OSD Configuration Menu
- Del = Toggle OSD On/Off


ROTARY

According to Rotary schemah and gotek schema, Rotary Encoder Connection.



  
Original link here

It's Identical to OSD MOD FF

SIGNALOn GoexOn Gotek
SELECTPC6_Pin37JUMPER_JA (STM32=Pin37)
DTPC6_Pin52J7_Pin1 (STM32=Pin37)
CLKPC6_Pin51J7_Pin2 (STM32=Pin37)





REASSEMBLY

Well, that's not all, but it has to be reassembled. :)

First, the STM32 and the Rotary
  

Then, the second STM32
  

And some SMD and regulator
  



And the all other components.
  
  

Time to check, Ok. Seems no problem.
Now, time to check on real Amiga
And... YES, it's working :)


ADDON USB

As we can see on the bottom of PCB, we can ADD usb connector, so let's do it

  
  

To do this work, we need add 22 Ohm for R2 and R3 and just 0 Ohm for F1
  

Time to test and... it's working.
  


DFU MODE

As written here, we can also read or write the Main STM32 chipset (so the FlashFloppy Firmware).
We need to do a USB-A to USB-A cable or just use older USB cable.

  

WARNING : Don't forget to put jumpers to Boot-3V and Tx-5V.
Then, connect the USB cable on yout computer.
    

And start DfuSeDemo Software, click on Choosen in the 'upgrade or verifiy' section.
Select your DFU file (In this example : FF_Gotek-3.22.dfu), Valide it.

Note : You can also Uploading the current firmware and save it to your computer with the 'Upload Action' Section.
  

Click on Upgrad button and click on YES on the next window.
  

Wait the end of the flashing process.
    

Time to check, we need to remove the two jumper on the board (TX and BOOT)
And of course re-connect the Goex on your Amiga.

Done !




Upgrade FlashFloppy Firmware with USB Key (or SD CARD)

It always possible to upgrade/downgrad your FlashFloppy firmware.
Just put the UPD file (example : FF_Gotek-v3.23.upd) on the root of your SD card.



(1) Push the Rotary button (and keep it pushed)
(2) PowerOn Your Amiga, wait 2 secondes and release the Rotary Button
(3) The flashing process beging.


After that, the board reboot and you can see the new version printed on your TV.



EXTRA

According to Board Identifier, it exist an 'enhanced Gotek'.

On an enhanced Gotek PC12-15 are selectively connected to VSS (GND).
The four inputs PC[15:12] form a four-bit board identifier:
0000: Enhanced Gotek, no SD card connector
0001: Enhanced Gotek, with SD card connector
1111: Standard Gotek (no enhancements)

Four Lines are used to identify the card : PC12, PC13, PC14 and PC15
On Goex we are on 0001 ID, take a look to shematic to see this.



RESETING THE OSD CONFIGURATION :

We can see in top of OSD console output (seen in 'ENTER FlashFloppy OSD CONFIGURATION' chapter) : A1-A2

Jumpered: Resetting to Factory Defaults
If you accidentally Save a bad configuration, you can reset to Factory Defaults by placing a jumper across A1-A2 and reset or power cycle FF OSD

It has been implemented since v1.4 - 25 September 2019, see : https://github.com/keirf/FF_OSD/blob/master/RELEASE_NOTES
So we can also reset to factory defaults in hardware.




You can also make a factory_reset in blind mode :

(1) PUSH_ROTARY
(2) ROTARY_UP (2 times)
(3) PUSH_BUTTON (10 times)
(4) ROTARY_UP
(5) PUSH_BUTTON
[AMIGA_REBOOT]


For more information :

ACTIONDISPLAY CONFIGURATIONDEFAULT VALUE
PUSH_BUTTON**Main Menu** 
ROTARY_UPExit 
ROTARY_UPConfigure FF OSD 
PUSH_BUTTONConfirm OSD Cnf? 
PUSH_BUTTONFlash Config 
PUSH_BUTTONSync PolarityLow
PUSH_BUTTONPixel Timing15Khz
PUSH_BUTTONDisplay Heightnormal
PUSH_BUTTONDisplay OutputPB15/SPI2
PUSH_BUTTONDisplay EnableNone
PUSH_BUTTONH.Off42
PUSH_BUTTONV.Off50
PUSH_BUTTONSave New Config ?save
ROTARY_UPFactory Reset 
PUSH_BUTTON[AMIGA_REBOOT] 




Well, and the OLED Display work ?
Yes, of course.
You only need to connect the pins of the OLED display directly to the Goex PCB. [GND-VCC-SCL-SDA]