“DeMon” – Debug + monitor/watchdog, pronounced “Demon”

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).

This will connect to the SWD port of the “SticKey” chips and “Razz” 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 Duo “main processing unit”.

DeMon can act as an SPI slave for Duo, 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 clock chip is the DS3231, the prototype uses a Raspberry Pi DS3231 clock “module”. From left to right (from above, chip at bottom) 3v3, SDA, SCL, NC, GND. The NC connection has been patched so it’s actually connected to pin 3 of the DS3231 (the INT pin).

DeMon has 8MB PSRAM available.

Radio communication

An ESP-C5-WROOM-1-N8R4 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, with RGB status light, Remote "debrick", FRAM interface 3.

Debugging will be supported via the ESP32's USB-C (12mbps), 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 for possible LoraWAN or/and Meshtastic use, with RGB status light.

FRAM16 map (000000-FFFFFF)

Start address End address Size Description
0000003FFFFF4000004MB SRAM
0400007FFFFF400000Reserved

Hardware reset button to 3v3
GPIO Function GPIO Function
0PSRAM CSn (future QSPI NOR to Razz?) 29SPI1 CSn – ESP-C5 GPIO10
1Duo RESET 30Handshake - ESP-C5 GPIO8
2TX0 (or PIO UART) – to Duo 31Jazz RUN (hi = on, lo =off)
3RX0 (or PIO UART) – from SticKey 32Razz Ready
4I2C0 SDA – clock/temp (68) / Controller 0 33Clock interrupt (pin 3 on DS3231)
5I2C0 SCL – , clock/temp /Controller 0 34Controller 0 detect
6Jazz SWD CLK (SM0) 35Controller 1 detect
7Jazz SWD IO (SM0) 36Touch INTERRUPT
8PWM4A - Buzzer 37PIO RX1 - From Razz (debug text output)
9SPI1 CSn - Jazz slave select 38LCD + TOUCH RESET
10I2C1 SDA (data) – touch (70) / Controller 1 39LCD CMD/DATA
11I2C1 SCL (clock) –touch / Controller 1 40Razz Done
12ESP-C5 EN pin (switch on/off wifi) 41SPI1 CSn – Debug SD card
13Boot mode ESP-C5 GPIO28 (autoprogram) 42Neopixel data (6 LEDs)
14TX0 (or PIO UART) ESP-C5 GPIO12 (RX) 43SPI1 TX/MOSI ESP-C5 GPIO23
15RX0 (or PIO UART) ESP-C5 GPIO11 (TX) 44SPI1 RX/MISO ESP-C5 GPIO15
16SPI0 (Duo slave) RX/MOSI SD emulation 45SPI1 CSn – connects to optional 240x320
17SPI0 (Duo slave) CSn 46SPI1 SCK - touch screen / ESP-C5 GPIO9
18SPI0 (Duo slave) SCK 47PSRAM CSn
19SPI0 (Duo slave) TX/MISO SWDIOESP32-C5 GPIO26
20SPI0 RX/MISO - JTAG TDI to Razz SWDCLKESP32-C5 GPIO25
21SPI0 CSn - JTAG TMS ADCREF
22SPI0 SCK - JTAG TCK 3V3
23SPI0 TX/MOSI - JTAG TDO BOOTSEL
24Razz Reconfig USB D-Keyboard
25SPI1 CSn Cartridge USB D+(12Mbps)
26TX1 (or PIO UART) Cartridge NFC RX RUN
27RX1 (or PIO UART) Cartridge NFC TX 3V3 EN
28Cartridge DETECT (CD) VBUS

Using SPI1, and different CSn lines, DeMon controls:

  • A Jazz SPI slave port
  • The ESP32-C5-WROOM-1-N8R4 Wifi subsystem + optional SX1262 lora subsystem
  • A cartridge port (using spi interface – slow)
  • The debug SD card slot (using spi interface – slow)
  • An optional 240x320 touch screen
  • ESP32-C5-WROOM-1-N8R4 (v1.2 chip layout)

    Pin Function Pin Function
    1GND 28GND
    23v3 27IO26 - DeMon SWD IO
    3EN - DeMon GPIO12, resistor to gnd, button labelled "Unbrick reset" 26IO25 - DeMon SWD CLK
    4IO2 - FRAM/SX1262 MOSI (set to 1 via resistor = 48Mhz crystal) 25IO11 - DeMon TXD
    5IO3 - SX1262 DIO1 (set to 0 via resistor = 3.3v flash) 24IO12 - DeMon RXD
    6IO0 – FRAM CS (set to vcc via resistor) 23IO23 - DeMon Handshake
    7IO1 – SX1262 Busy 22NC
    8*IO6/SPI CLK - SX1262 SCK 21IO15 - DeMon SPI MISO
    9*IO7/SPI D (MISO) - SX1262 MISO 20NC
    10IO8 – DeMon SPI MOSI 19NC (using internal PSRAM)
    11IO9 – DeMon SPI CLK 18IO27 – SX1262 CS (set to vcc via resistor)
    12*IO10/SPI CS0 (IN) DeMon CS 17*IO4 – MTCK/SPI HD
    13IO13 - USB D- USB-C labelled "Debug", only D+/- connected 16*IO5 – MTDO/SPI WP
    14IO12 - USB D+ 15IO28 - (in) auto-program (Demon GPIO13, set to 1 via resistor), button labelled "Unbrick boot", (out) SX1262 Reset
    The ESP32-C5-1-N8R4 has spare connections for a socket for an optional SX1262 (Waveshare Core1262 HF LoRa Module for possible LoraWAN or/and Meshtastic use).

    FRAM16 ESP32-C5 map (000000-FFFFFF)

    Start address End address Size Description
    0000003FFFFF4000004MB SRAM
    0400007FFFFF400000Reserved

    Personality cartridge port

    A 24-pin edge connector cartridge port (37mm 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.

    01234567891011
    GNDTX3.3VJazz HSaCSTX/MOSIRX/MISOCLKJazz HSbCDRXGND
    GNDRXCDJazz HSbCLKRX/MISOTX/MOSICSJazz HSa3.3VTXGND
    121314151617181920212223
    A special NFC "Card cartridge" will have an NFC reader and slot, with an MicroSD card slot for game "cache". The NFC card can have the web location or ID of the game and unique serial number, it could transfer the data and do future loads from the Micro SD in the card slot.

    Pins 0/15, and 11/20 on the cartridge will extend further than others.

    Antibrick built-in:

    The ESP32 can unbrick DeMon remotely over wifi or via USB-C.

    Links

  • JTAG - github.com/kholia/xvc-pico
  • JTAG - github.com/phdussud/pico-dirtyJtag
  • Pico debug - github.com/essele/pico_debug
  • Important: The Ant32 and Ant64 are both still at early design and prototype stage, everything you see here is subject to change.