CPU overclocked from (1x) 150Mhz (1.1v) to (2x) 300Mhz (1.2v), possibly to (3x) 460Mhz (1.5v) – other have driven the RP2350B to over 600Mhz (2v).
DeMon has 16MB flash, 8MB PSRAM (GPIO-8), at boot it programs Razz (FPGA), simulate the SD card from the SG2000. FRAM is accessed via GPIO-0.
This will connect to the SWD port of the “QWM” chip and “Jazz” chip. This will allow it to program those components with their firmware (if it needs updating) and provide hardware debugging for any of the components.
Debug streams will also be sent back from each component and then to the “main processing unit”.
It will be able to reset any of the components remotely. The debug monitor will also control the boot state and act as a watchdog for the SG2000 “main processing unit”.
DeMon can act as an SPI slave for the SG2000, it emulates an SD card interface.
The DeMon is actually a RP2350B chip that has connections to the hardware debug ports of the other chips.
USB host for keyboard, mouse, joypad.
The real-time clock chip is the Microchip MCP74910 (64 bytes battery backed SRAM, 128 bytes EEPROM, 8 bytes protected EEPROM, supports 2001 to 2399).
DeMon has 8MB PSRAM available.
The real-time clock chip is the Microchip MCP74910 (64 bytes battery backed SRAM, 128 bytes EEPROM, 8 bytes protected EEPROM, supports 2001 to 2399, cost is less than £1). The battery is a CR2450 as it has much more power than a standard ”coin” battery, can last up to 20 years!
An ESP-C5-WROOM-1-N16R4 chip will be connected to DeMon. This will bring 2.4Ghz/5Ghz Wifi (802.11b/g/n/ax), Thread 1.3, Zigbee 3.0 and Bluetooth 5.3 (LE) and Bluetooth mesh, Remote "debrick".
Debugging will be supported via the Wifi (2.4Ghz, router needed, up to 54mbps), Bluetooth (2mbps) or ESP Now (2.4Ghz/5Ghz, no router needed, 1mbps), or 62.5Mbps over SPI (in practice this may be closer to 10mbps).
Optional Waveshare Core1262 HF LoRa Module (SX1262) for possible LoraWAN or/and Meshtastic use.
An internal micro SD card provides 256GB (default, replaceable) internal storage.
| Start address | End address | Size | Description |
|---|---|---|---|
| 000000 | 7FFFFF | 800000 | 8MB SRAM |
| 800000 | FFFFFF | 800000 | Reserved |
| GPIO | Function | GPIO | Function |
|---|---|---|---|
| 0 | FRAM | 29 | PWM 6B – Buzzer, input = read on power on, dpdt toggle (side I has a 9k resistor to gnd and side II has a 9k resistor to 3v) |
| 1 | SPI0 CSn - JTAG TMS | 30 | Jazz/QMK/Cart/Sticks RUN (hi = on, lo =off) |
| 2 | SPI0 SCK - JTAG TCK | 31 | Jazz/QMK/Sticks SWD CLK (SM0) |
| 3 | SPI0 TX/MOSI - JTAG TDO | 32 | Jazz SWD IO |
| 4 | SPI0 RX/MISO - JTAG TDI to Razz | 33 | QMK SWD IO |
| 5 | Razz Reconfig | 34 | Sticks UPDI |
| 6 | Razz Ready | 35 | Sticks interrupt/QMK interrupt |
| 7 | Razz Done | 36 | Razz interrupt |
| 8 | PSRAM CSn | 37 | I2C0 interrupt Touch debug |
| 9 | Handshake - ESP-C5 GPIO10 | 38 | LCD + TOUCH RESET |
| 10 | ESP-C5 EN pin (switch on/off wifi) | 39 | LCD CMD/DATA |
| 11 | Boot mode ESP-C5 GPIO28 (autoprogram) | 40 | SPI1 SEL0 |
| 12 | TX0 (or PIO UART) ESP-C5 GPIO12 (RX) | 41 | SPI1 SEL1 |
| 13 | RX0 (or PIO UART) ESP-C5 GPIO11 (TX) | 42 | SPI1 SEL2 |
| 14 | TX0 (or PIO UART) – to SG2000 | 43 | SPI1 TX/MOSI ESP-C5 GPIO2 |
| 15 | RX0 (or PIO UART) – from Jazz | 44 | SPI1 RX/MISO ESP-C5 GPIO7 |
| 16 | PIO SPI0 Cart RX | 45 | SPI1 CSn – multiplexer CS out |
| 17 | PIO SPI0 Cart CSn | 46 | SPI1 SCK - touch screen / ESP-C5 GPIO6 |
| 18 | PIO SPI0 Cart SCK | 47 | PWM 11B LED light |
| 19 | PIO SPI0 Cart TX | SWDIO | ESP32-C5 GPIO26 |
| 20 | SPI0 (SG2000 slave) RX/MOSI SD emulation | SWDCLK | ESP32-C5 GPIO25 |
| 21 | SPI0 (SG2000 slave) CSn | ADCREF | |
| 22 | SPI0 (SG2000 slave) SCK | 3V3 | |
| 23 | SPI0 (SG2000 slave) TX/MISO | BOOTSEL | |
| 24 | I2C0 SDA - RTC (67/6f) / Cart SDA/ NFC ($d4,$d5) | USB D- | Keyboard |
| 25 | I2C0 SCL - RTC / Cart SCL | USB D+ | (12Mbps) |
| 26 | Cartridge DETECT (CD) | RUN | Hardware reset button to 3v3 |
| 27 | RX1 (or PIO UART) Cartridge NFC TX | 3V3 EN | |
| 28 | Neopixel data (8 LEDs) | VBUS |
Using SPI1, and different CSn lines, DeMon controls:
| Value | Selected Device |
|---|---|
| 0 | Sticks |
| 1 | QMK |
| 2 | Jazz |
| 3 | Razz |
| 4 | ESP32-C5 GPIO 10 |
| 5 | Touch TFT |
| 6 | Internal micro-SD |
| 7 | Cartridge |
| Pin | Function | Pin | Function |
|---|---|---|---|
| 1 | GND | 28 | GND |
| 2 | 3v3 | 27 | IO26 - DeMon SWD IO |
| 3 | EN - DeMon GPIO12, resistor to gnd | 26 | IO25 - DeMon SWD CLK |
| 4 | IO2 - SPI Q/MISO - DeMon GP43 (set to 1 via resistor = 48Mhz crystal) | 25 | IO11 - TX to DeMon RXD |
| 5 | IO3 - SX1262 SCK (set to 0 via resistor = 3.3v flash) | 24 | IO12 - RX to DeMon TXD |
| 6 | IO0 – SX1262 MOSI (set to vcc via resistor) | 23 | IO23 - NSS |
| 7 | IO1 – SX1262 MISO | 22 | NC |
| 8 | IO6 SPI CLK - DeMon GP46 | 21 | IO15 SX1262 D0 - Input button |
| 9 | IO7 SPI ID/MISO - DeMon GP44 | 20 | NC |
| 10 | IO8 – Handshake - DeMon GP8 | 19 | NC (using internal PSRAM) |
| 11 | IO9 – SX1262 RF_SW | 18 | IO27 – SX1262 RST |
| 12 | IO10 SPI CS0 (IN) DeMon CS | 17 | *IO4 – SX1262 Busy |
| 13 | IO13 – SX1262 TX (d6) | 16 | *IO5 – SX1262 DIO1 |
| 14 | IO12 - SX1262 RX (d7) | 15 | IO28 - (in) auto-program (Demon GPIO11, set to 1 via resistor) |
A 30-pin edge connector cartridge port (42mm 2.54 pitch wide) is connected to DeMon. If present, then this is booted in preference to the SD card slot. If a cart is inserted or swapped whilst powered on, the Ant64 will normally automatically be rebooted to it (this can be disabled in options). However, a cartridge can safely be removed whilst powered on and the Ant64 will not reboot, reinserting the same cartridge will also not reboot.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| GND | 3.3v | CS | RX/MISO | SCK | TX/MOSI | CD | DeMon ICP SWDCLK | DeMon ICP SWDIO | RESET | DeMon SCL | DeMon SDA | IRQ | 5v | LED |
| CRAM WP | CRAM HOLD | CRAM CS | CRAM MISO | CRAM SCK | CRAM MOSI | Jazz 0 | Jazz 1 | Jazz 2 | Jazz 3 | Jazz SCL | Jazz SDA | Audio in L | Audio in R | GND |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Pins A and 15 on the cartridge will extend further than others. The cartridge has been designed so that a “ROM” cart can be a simple single sided PCB (the letter side), the other side being for enhanced cartridges. The port also allows in-circuit programming of the DeMon chip (the boot system).
CRAM - Cart memory CS, SCK, HOLD, WP, MISO, MOSI – this is like the FRAM interface, but so we can have smart cartridges that can show cartridge mapped to a memory interface. The lines go to the Razz FPGA. Jazz 0-3 functionality depend on the cartridge, this is set by a configuration EEPROM on the Jazz SDA/SCL lines.
| No | Name | Description |
|---|---|---|
| 0 | Power | Off, white during self test, then amber during boot, green when fully booted |
| 1 | Internal micro SD | None=off, blue = detected, green = read/write, red = error |
| 2 | Cartridge (SD) | None=off, blue = detected, green = read/write, red = error |
| 3 | Main (fast) SD | None=off, blue = detected, green = read/write, red = error |
| 4 | Network | None=off, blue = connected, green = read/write, red = error |
| 5 | WiFi | None=off, blue = connected, green = read/write, red = error |
| 6 | Bluetooth | None=off, green = read/write, red = error |
| 7 | Midi | None=off, green = read/write, red = error |
The ESP32 can unbrick DeMon remotely over wifi, or via the ICP cartridge.
Important: The Ant32 and Ant64 are both still at early design and prototype stage, everything you see here is subject to change.