picocalc-hardware

This skill provides hardware reference data for PicoCalc development. It should be activated automatically when writing code that accesses GPIO pins, SPI buses, I2C interfaces, the 320x320 display, membrane keyboard, SD card, audio PWM, WiFi, or Bluetooth on the Clockwork Pi PicoCalc with Raspberry Pi Pico 2W. Use this skill whenever pin numbers, bus configurations, register addresses, or hardware specifications are needed.

PicoCalc Hardware Reference

Quick reference for all hardware interfaces on the Clockwork Pi PicoCalc with Raspberry Pi Pico 2W (RP2350).

Pin Map

FunctionPin(s)BusNotes
Display CLKGPIO 10SPI125 MHz
Display MOSIGPIO 11SPI1
Display CSGPIO 13SPI1Active low
Display DCGPIO 14GPIOData/Command select
Display RSTGPIO 15GPIOActive low reset
Keyboard SCLGPIO 7I2C110 kHz
Keyboard SDAGPIO 6I2C1
Keyboard Addr--I2C0x1F
SD Card SCKGPIO 18SPI01 MHz default
SD Card MOSIGPIO 19SPI0
SD Card MISOGPIO 16SPI0
SD Card CSGPIO 17SPI0Active low
Audio LeftGPIO 28PWMStereo left channel
Audio RightGPIO 27PWMStereo right channel

Display: ILI9488

  • Resolution: 320x320 pixels
  • Interface: SPI1 at 25 MHz with DMA
  • Default color mode: GS4_HMSB (4-bit grayscale, 16 shades)
  • Framebuffer: 51,200 bytes in GS4 mode (320*320/2)
  • Text: 6x8 pixel font, 53 columns x 40 rows
  • Auto-refresh on Core 1 via multicore_launch_core1()
  • Color modes: GS4_HMSB, RGB565, GS8, GS2_HMSB, MONO_HMSB

Keyboard: I2C MCU at 0x1F

  • Bus: I2C1, SCL=GPIO7, SDA=GPIO6, freq=10000 Hz
  • Registers: KEY(0x04), FIFO(0x09), BACKLIGHT(0x05), BATTERY(0x0B), RESET(0x08)
  • Key states: Idle(0), Press(1), LongPress(2), Release(3)
  • Modifier keys: Shift(0xa2/0xa3), Alt(0xa1), Ctrl(0xa5)
  • Arrow keys: Left(0xB4), Up(0xB5), Down(0xB6), Right(0xB7)
  • Special: ESC(0xB1), HOME(0xD2), END(0xD5), DELETE(0xD4), BACKSPACE(0x08), ENTER(0x0A)
  • WARNING: Do NOT send reset command (register 0x08) on battery boot - keyboard MCU is also the power controller, resetting it causes a power cycle loop

SD Card

  • Bus: SPI0, baudrate=1000000, polarity=0, phase=0
  • Pins: SCK=18, MOSI=19, MISO=16, CS=17
  • Mount point: /sd
  • Scripts: /sd/py_scripts/ (auto-discovered by menu)
  • Format: FAT32
  • Requires 900ms stabilization delay before init

Audio PWM

  • Left: GPIO 28, Right: GPIO 27
  • Control: PWM.freq(hz) for pitch, PWM.duty_u16(0-65535) for volume
  • Always set duty_u16(0) before exit

Additional Resources