ZX-ESPectrum emulator tested with ESP32-SBC-FabGL, The Mensch computer with W65C256 got VGA display and Keyboard

https://github.com/EremusOne/ZX-ESPectrum-IDF is the next repository we try with ESP32-SBC-FabGL.

At first it didn’t build but after Twitter consultation the problem appear with PlatformIO which was searching for obsolete version of ESP32 tools, after adding one line in platformio.ini

[env]
platform_packages = toolchain-riscv32-esp @ 8.4.0+2021r2-patch5

the project compiled and show on the screen, there are still some annoying things like menus not working well and no programs in the slots, but I stopped spending time on it 🙂 a little bit more documentation would be helpful though!

Many people asked when W65C265 computer like AgonLight2 will be available and I reply that even now such computer is available: The Mensch W65C265 computer is available at Mouser for EUR 18!

Today I wired Mensch to ESP32-SBC-FabGL access bus following this schematic:

AccessBus.pin1 +5V to Mensch.J5.pin.3
AccessBus.pin3 GND to Mensch.J5.pin.1
AccessBus.pin5 (TX) to Mensch.J5.pin4 (RX)
AccessBus.pin6 (RX) in series with 220 ohm resistor to Mensch.J5.pin5 (TX)

The 220 ohm resistor is necessary as current limiter as Mensch is working on 5V while ESP32 on 3.3V

ESP32-SBC-FabGL is running the standard FabGL ANSI Termainal example with small modification. Mensch sends only CR but not LF. So the FabGL code should be changed when see CR on Serial port to send CR+LF to the terminal. In serialport.cpp this should be add:

void SerialPortTerminalConnector::rxCallback(void * args, uint8_t value, bool fromISR)
{
  auto obj = (SerialPortTerminalConnector *) args;
  if (obj->m_serialPortRXEnabled) {
    obj->m_terminal->write(value, fromISR);
    if (value == 13)
           obj->m_terminal->write(10, false);
  }
}

and we are set 🙂 now Mensch have VGA display and PS2 keyboard!

New Open Source Hardware design is verified: ESP32-SBC-FabGL single board computer based on FabGL library with PS2 keyboard, mouse and VGA display with many retro computer emulators

I learned about the FabGL library when we started manufacturing AgonLight2. The ESP32 was used as a graphics, sound, and IO keyboard co-processor for Bernardo’s Z80 design.

Upon checking the library, I discovered that the author, Fabrizio Di Vittorio, had already created several emulators for Altair8080, VIC20, and even old DOS PCs!

This is how the idea for ESP32-SBC-FabGL was born. I wanted to create a board that could be used as a graphics/sound/IO co-processor for other retro computers based on different processors.

Here is the ESP32-SBC-FabGL layout 105 x 65 mm board:

ESP32-SBC-FabGL uses ESP32-WROVER with 4MB Flash and 8MB PSRAM.

As you may guess, this will be very convenient platform to create Retro Computers based on same principle as AgonLight2, so some Retro Computers based on this platform will follow, but do not ask when 😉

The Access bus will provide interface to retro processors hats for Graphics, Sound, Keyboard and Mouse.

The LCD hat will allow handheld Game consoles to be created easily.

The LiPo battery charger and connector provide stand alone operation without USB connection.

Today we build the first prototypes and they work as expected.

All FabGL demos works!

Altair8080 with CP/M:

IBM-PC with DOS:

It was quite blast from the past to see Turbo Pascal 3.0 running

Boy it took me a while to remember how to quit the editor 🙂

ESP32-SBC-FabGL will be ready for sale in June.

We will put it on the web with pre-order state this week.

The price will be EUR 15.00.

In this price is included royalties for the Author of FabGL, so by buying this board you will support Fabrizio and his further developments.

Tsvetan