Skip to content
Rodeo

The board and its pin map

board.h names every pin the motherboard uses, so drivers and apps say board::pin::kSatTx rather than seed::D2. It is plain constants with no libDaisy in it, so host tests include it too, and they check the map against libDaisy’s own pin table: a typo in a port or pin number fails a test instead of driving the wrong pin. The hardware it describes is hardware/rodeo-motherboard/docs/rev-b.md. Every name and value is in the API reference.

Every pin is spoken for

Seed pinlibDaisyUseboard::pin::
1D0Expansion header chip-selectkSpiExtCs
2, 3D1, D2Satellite chain RX, TX (USART3)kSatRx, kSatTx
4D3Second codec resetkCodec2Reset
5–7D4–D6microSD, 1-bitkSdD0, kSdCmd, kSdClk
8D7I/O connector D1kIo[kIoD1]
9–11D8–D10SPI1 to the expansion headerkSpiSck, kSpiMiso, kSpiMosi
12, 13D11, D12I²C1: OLED, battery gauge, four tapskI2cScl, kI2cSda
14, 15D13, D14MIDI (USART1)kMidiTx, kMidiRx
22–28D15–D21I/O connectors A1–A7kIo[kIoA1]…
29, 30D22, D23I/O connectors CV2, CV1kIo[kIoCv2], kIo[kIoCv1]
31–35D24–D28Second codec, SAI2kCodec2Mclk…
36, 37D29, D30USB to the power boardkUsbDm, kUsbDp

The I/O connectors

Ten 3-pin connectors — ground, the signal through 1 kΩ, and 3.3 V — named by their silkscreen and listed in that order in board::kIo:

SilkscreenCan doadcdac
D1Digital in or out——
A1–A7Digital, or analog inseed::A0–A6—
CV1DAC out (0–3.3 V), or analog inseed::A81
CV2DAC out (0–3.3 V), or analog inseed::A72

Two pairs share an external-interrupt line, so only one connector of each pair can be an interrupt input: A3 and A6 (PB1, PC1), and A7 and CV1 (PC4, PA4). board::SharesExti() answers it for any two pins, and a host test fails if the map ever grows another pair.

From board.h to libDaisy

board.h stays host-safe, so the conversion lives in board_daisy.h, which only target code includes:

#include "board_daisy.h"
GPIO gate;
gate.Init(board::ToDaisy(board::kIo[board::kIoD1].pin), GPIO::Mode::INPUT);

Also in board.h

  • I²C addresses: the OLED at 0x3C, the MAX17048 battery gauge at 0x36.
  • Audio: four in, four out at 48 kHz. Channels 1/2 are the Seed’s own codec, 3/4 the CS4272, as on the back panel. The block size is 48 samples, one per millisecond, so a USB audio frame is exactly one block.