Myriad Pinout

This document serves as a reference when creating Myriad cards. You don’t need to make your own symbols - we already did that for you

  • Odd pins are on the top, even pins are on the bottom
  • Pins marked with a 🚧 may only be used by controller cards
  • Unless explicitly stated otherwise, all IO pins use 3.3V.
# Group Name Description
01 Power GND Ground
02 Power Shield Case shield
03 USB D- 🚧 USB data
04 USB CC 1 USB current sense
05 USB D+ 🚧 USB data
06 USB CC 2 USB current sense
07 Power GND Ground
08-15 (Unused) Key A Board cutout
16 Power 3V3  
17 Power Raw  
18 Power 3V3  
19 Power Raw  
20 Power 5V  
21 Power Raw  
22 Power 5V  
23 Power Raw  
24-31 (Unused) (Reserved) Leave disconnected
32 GPIO GPIO 1 General-purpose IO
33 (Unused) (Reserved) Leave disconnected
34 GPIO GPIO 2 General-purpose IO
35 (Unused) (Reserved) Leave disconnected
36 GPIO GPIO 3 General-purpose IO
37 (Unused) (Reserved) Leave disconnected
38 GPIO GPIO 4 General-purpose IO
39 (Unused) (Reserved) Leave disconnected
40 Power GND Ground
41 (Unused) (Reserved) Leave disconnected
42 SPI Matrix CS 🚧 Chip Select, keyboard matrix
43 (Unused) (Reserved) Leave disconnected
44 SPI Myriad CS Chip Select, Myriad module
45 (Unused) (Reserved) Leave disconnected
46 Power GND Ground
47 (Unused) (Reserved) Leave disconnected
48 SPI SCK Clock
49 (Unused) (Reserved) Leave disconnected
50 SPI SDI Data, Module to Keyboard
51 (Unused) (Reserved) Leave disconnected
52 SPI SDO Data, Keyboard to Module
53 Misc Split Comm. TX 🚧 Serial link between halves, transmit
54 Power GND Ground
55 Misc Split Comm. RX 🚧 Serial link between halves, receive
56 Serial RTS Request-To-Send, Keyboard to Module
57 Power GND Ground
58 Serial CTS Clear-To-Send, Module to Keyboard
59 Misc Reset Reset keyboard & module
60 Serial RX Data, Module to Keyboard
61 I2C SCL Clock
62 Serial TX Data, Keyboard to Module
63 I2C SDA Data
64 Power GND Ground
65 Misc Controller Disable 🚧 Keyboard controller override
66 PWM PWM 1 Pulse-width modulation
67 Misc Module Present Myriad module inserted
68 PWM PWM 2 Pulse-width modulation
69 Power GND Ground
70 Power GND Ground
71 RGB RGB Out RGB data, Keyboard to Module
72 ADC ADC 1 Analog input
73 RGB RGB In 🚧 RGB data, Module to Keyboard
74 ADC ADC 2 Analog input
75 (Unused) (Reserved) Leave disconnected

Basic IO

Reset

The Myriad module and keyboard share an active-low Reset signal. This can be used both to have a press of the on-keyboard reset button reset hardware placed on the Myriad card, or to have an additional reset button for the keyboard on the Myriad card. The keyboard will provide a pull-up.

Module Presence

All identifiable Myriad cards must short Module Presence to Ground to indicate that a card has been inserted. Leave it floating for cards which cannot be automatically identified.

Automatic identification doesn’t make sense for all cards. For example, a breakout board does not have fixed functionality, so it should not have an EEPROM chip and the Module Presence pin should be left floating.

Signals

# Pin
59 Reset
67 Module presence

GPIO

GPIO pins can be used for general low-speed IO such as reading a push button or controlling a LED. They can be used for both input and output.

GPIO pins have support for internal pullup resistors, but internal pulldown resistors are not guaranteed. If you need pulldown resistors, you have to add them yourself.

Signals

# Pin
32 GPIO 1
34 GPIO 2
36 GPIO 3
38 GPIO 4

PWM

The two PWM pins can be used to output analog-like signals, such as lighting with varying brightness or a speaker.

They can double as additional GPIO outputs if needed.

Signals

# Pin
66 PWM 1
68 PWM 2

ADC

The two ADC pins can be used to read analog signals, for example from potentiometers or joysticks.

They can double as additional GPIO inputs if needed.

Signals

# Pin
72 ADC 1
74 ADC 2

RGB

The Myriad module may have one or more WS2812B-compatible RGB LEDs. It is chained through similar LEDs on the keyboard itself, if any.

Because the RGB data is provided by the previous LED in the chain, this is a 5V signal.

Signals

# Pin
71 RGB Out

Advanced IO

SPI

SPI is the primary high-speed data bus for Myriad. It can transfer data at a rate of over 1Mbps, which should be sufficient for even the most demanding accessories.

Implementation Notes

  • The module may only interact with SDI / SDO when CS is LOW. When CS is HIGH, all signals coming from the keyboard should be ignored and all signals going back to the keyboard should be left in a Hi-Z state as hardware on the keyboard itself might be using the SPI bus.
  • The keyboard will provide a pullup on CS.
  • Phasing, polarity, and clock speed are not specified.

SPI pins should not be reused as additional GPIO.

Signals

# Pin From To
44 CS / SS Keyboard Module
48 SCK / SCLK Keyboard Module
50 SDI / MISO Module Keyboard
52 SDO / MOSI Keyboard Module

I²C

I²C is the primary low-speed data bus for Myriad. It can transfer data at a rate of 100kbps, which is sufficient for undemanding applications.

The I²C bus is primarily used for card identification, although the Myriad module is free to use it for other purposes.

Implementation Notes

  • Address range 1010 000X - 1010 111X is reserved, where X is the R/W bit.
  • Speed is limited to 100kbps.
  • The keyboard may add additional devices to the I²C bus.

I²C pins should not be reused as additional GPIO.

Signals

# Pin
61 Clock
63 Data

Serial

A full serial bus is present to simplify interaction with high-speed hardware which doesn’t support SPI.

They can double as additional GPIO inputs if needed, but signal direction should be respected.

Implementation Notes

  • Baud rate is not specified.
  • Use of RTS/CTS for flow control is optional.

Signals

# Pin From To
56 RTS Keyboard Module
58 CTS Module Keyboard
60 RX Module Keyboard
62 TX Keyboard Module

Controller Cards

A “Controller Card” is a Myriad module which takes over the tasks of the on-keyboard microcontroller. Adding a Controller Card essentially turns the entire board into an io expander.

Several lines on the Myriad connector are reserved for use by Controller Cards, as they will be used by the keyboard’s microcontroller when regular cards are used.

Controller Disable

To indicate the presence of a controller card, the card must short pin 65 to Ground. If a keyboard microcontroller detects this short on bootup, it immediately enters a low-power sleep mode and does not interact with the keyboard hardware.

Regular cards must leave this pin floating.

Signals

# Pin
65 Controller Disable

Power

Wired

Controller cards intended for wired operation should use the regular 3V3 and 5V rails to source their power from the keyboard.

Wireless

Controller cards intended for wireless operation must instead provide power to the keyboard. The card is required to provide 3V3 to the keyboard, and the keyboard shall provide basic functionality with only 3V3 provided.

Additionally, the card may provide 5V. The keyboard may attach high-power functionality (such as RGB LEDs) directly to the 5V bus - they will not be available with cards which only provide 3V3.

The card may use the RAW pins to source battery charging powers - see the Power section.

Wireless cards providing power to the keyboard should take into account the RAW->5V->3V3 power supply already present on the keyboard.

Matrix Data

The controller card can read the current state of the key matrix via the SPI bus. If the keyboard has encoders, their state will also be included. Most keyboards will implement this using cheap shift registers, but other implementations are allowed.

The matrix data is read using the same pins as regular SPI, but their direction is reversed. Note that it uses a different Chip Select pin, though!

Signals

# Pin From To
42 CS / SS Keyboard Module
48 SCK / SCLK Module Keyboard
50 SDI / MISO Keyboard Module
52 SDO / MOSI Module Keyboard

Split Communication

Split keyboards consists of two halves, with a communications link between them. When a controller card is in use, it may use this link to communicate with its partner inserted into the other half.

Implementation Notes

  • The communications link is full-duplex. You must use separate pins for transmit and receive - using a single pin for both does not work as the keyboard may be using a level converter.

Signal Directions

# Pin From To
53 TX This side Other side
55 RX Other side This side

RGB

The keyboard may have one or more chained WS2812B-compatible RGB LEDs which can be driven by a controller card.

Despite it feeding a WS2812B LED, it is a 3V3 signal. Any level conversion is left to the keyboard.

Signals

# Pin
73 RGB In

USB

Controller cards may use the USB bus to communicate with a host computer. Keep in mind that signal quality is likely going to be relatively poor due to routing limitations: Full-speed communication (12Mbps) will work, but High-speed (480Mbps) is not guaranteed.

The USB connector also provides the CC signals needed to sense the absolute power limit.

Signals

# Pin
03 D-
04 CC 1
05 D+
06 CC 2

Known Pin Mappings

The table below describes the physical connectivity between the microcontroller and the Myriad connector of some keyboards implementing Myriad.

Myriad # Name Elora
32 GPIO 1 GP4
34 GPIO 2 GP5
36 GPIO 3 GP6
38 GPIO 4 GP8
44 SPI Myr. CS GP9
48 SPI SCK GP10
50 SPI SDI GP12
52 SPI SDO GP11
56 Ser. RTS GP19
58 Ser. CTS GP18
60 Ser. RX GP17
61 I2C SCL GP1
62 Ser. TX GP16
63 I2C SDA GP0
65 Cont. Disable GP2
66 PWM 1 GP23
67 Mod. Present GP3
68 PWM 2 GP24
71 RGB Out GP15
72 ADC 1 GP26
74 ADC 2 GP27