MDK User Guide: HAT Adapter Board¶
Before you begin...¶
Required Hardware¶
The HAT Adapter Board requires a Moto Z and Reference Moto Mod. If you don't have these, you'll need to buy the required hardware.
Introduction¶
The Raspberry Pi ecosystem contains a wide variety of existing HATs (Hardware Attached on Top) that can be used to start your project, or maybe you have an existing Pi project to port to Moto Mods.
The Moto Mods HAT Adapter Board is Raspberry Pi HAT compatible and allows the use of commercially available HATs. It includes the 40-pin Header, Camera, and Display connectors in the proper locations.
Raspberry Pi is a trademark of the Raspberry Pi Foundation
Software Considerations¶
When working with the Moto Mods HAT adapter board, existing Pi firmware must be ported to the MuC. For example, drivers written for the Raspian OS based on Debian Linux need to be ported to NuttX. In addition tasks and queues may require redesign to operate in the Moto Mods embedded environment.
Electrical Details¶
Overview¶
This section covers:

Raspberry Pi HAT-compliant 40-pin Header¶

Raspberry Pi HAT 40-pin Connector Signal Cross-Reference¶
| MotoMods HAT Adaptor 40-pin Name | Raspberry Pi 40-pin Name | ||
| Pin # | Signal (LS: Level Shifted) | Pin # | rPi Equivalent function |
| 2 | VIO (Refer to Dip switch position) - off : 3P3 (Default) - on : 1P8 |
1 | 3V3 Power |
| 1 | 5P0 | 2 | 5V Power |
| 4 | PB11_LS | 3 | GPIO2 (SDA1) |
| 3 | 5P0 | 4 | 5V Power |
| 6 | PB10_LS | 5 | GPIO3 (SCL1) |
| 5 | GND | 6 | Ground |
| 8 | PB2_LS | 7 | GPIO4 (GPIO_GCLK) |
| 7 | PA2_LS | 8 | GPIO14 (TXD0) |
| 10 | GND | 9 | Ground |
| 9 | PA3_LS | 10 | GPIO15 (RXD0) |
| 12 | PA0_LS | 11 | GPIO17 (GPIO_GEN0) |
| 11 | PC14_LS | 12 | GPIO18 (GPIO_GEN1/PCM_CLK) |
| 14 | PA10_LS | 13 | GPIO27 (GPIO_GEN2) |
| 13 | GND | 14 | Ground |
| 16 | PC12_LS | 15 | GPIO22 (GPIO_GEN3) |
| 15 | PC7_LS | 16 | GPIO23 (GPIO_GEN4) |
| 18 | VIO (Refer to Dip switch position) - off : 3P3 (Default) - on : 1P8 |
17 | 3V3 Power |
| 17 | PC8_LS | 18 | GPIO24 (GPIO_GEN5) |
| 20 | PA7_LS | 19 | GPIO10 (SPI_MOSI) |
| 19 | GND | 20 | Ground |
| 22 | PA6_LS | 21 | GPIO9 (SPI_MISO) |
| 21 | PD6_LS | 22 | GPIO25 (GPIO_GEN6) |
| 24 | PA5_LS | 23 | GPIO11 (SPI_SCLK) |
| 23 | PA4_LS | 24 | GPIO8 (SPI_CE0_N) |
| 26 | GND | 20 | Ground |
| 25 | PA15_LS | 26 | GPIO7 (SPI_CE1_N) |
| 28 | PC1_LS (reserved for I2C) | 27 | GPIO0 (ID_SD) |
| 27 | PC0_LS (reserved for I2C) | 28 | GPIO1 (ID_SC) |
| 30 | PG9_LS | 29 | GPIO5 |
| 29 | GND | 30 | Ground |
| 32 | PG10_LS | 31 | GPIO6 |
| 31 | PG12_LS | 32 | GPIO12 |
| 34 | PH0_LS | 33 | GPIO13 |
| 33 | GND | 34 | Ground |
| 36 | PC15_LS | 35 | GPIO19 (PCM_FS) |
| 35 | PA1_LS | 36 | GPIO16 |
| 38 | PC3_LS | 37 | GPIO26 |
| 37 | PE7_LS | 38 | GPIO20 (PCM_DIN) |
| 40 | GND | 34 | Ground |
| 39 | PD7_LS | 40 | GPIO21 (PCM_DOUT) |
Camera Connector¶
Camera Connector Signal Cross-Reference¶
| MotoMods HAT Adaptor Camera Connector | Raspberry Pi Camera Connector | ||
| Pin # | Signal | Pin # | rPi Equivalent function |
| 15 | GND | 1 | Ground |
| 14 | C_CSI1_D0N | 2 | CAM1_DN0 |
| 13 | C_CSI1_D0P | 3 | CAM1_DP0 |
| 12 | GND | 4 | Ground |
| 11 | C_CSI1_D1N | 5 | CAM1_DN1 |
| 10 | C_CSI1_D1P | 6 | CAM1_DP1 |
| 9 | GND | 7 | Ground |
| 8 | C_CSI1_CN | 8 | CAM1_CN |
| 7 | C_CSI1_CP | 9 | CAM1_CP |
| 6 | GND | 10 | Ground |
| 5 | PC9_3P3 | 11 | CAM_GPIO0 |
| 4 | PA9_3P3 | 12 | CAM_GPIO1 |
| 3 | PC0_LS (reserved for I2C) | 13 | SCL0 |
| 2 | PC1_LS (reserved for I2C) | 14 | SDA0 |
| 1 | 3P3 | 15 | 3V3 |
Display Connector¶
Display Connector Signal Cross-Reference¶
| MotoMods HAT Adaptor Display Connector | Raspberry Pi Display Connector | ||
| Pin # | Signal | Pin # | rPi Equivalent function |
| 15 | GND | 1 | Ground |
| 14 | C_DSI1_D1N | 2 | DSI1_DN1 |
| 13 | C_DSI1_D1P | 3 | DSI1_DP1 |
| 12 | GND | 4 | Ground |
| 11 | C_DSI1_CN | 5 | DSI1_CN |
| 10 | C_DSI1_CP | 6 | DSI1_CP |
| 9 | GND | 7 | Ground |
| 8 | C_DSI1_D0N | 8 | DSI1_DN0 |
| 7 | C_DSI1_D0P | 9 | DSI1_DP0 |
| 6 | GND | 10 | Ground |
| 5 | PC0_LS (reserved for I2C) | 11 | SCL0 |
| 4 | PC1_LS (reserved for I2C) | 12 | SDA0 |
| 3 | GND | 13 | Ground |
| 2 | 3P3 | 14 | 3V3 |
| 1 | 3P3 | 15 | 3V3 |
Configurable Logic Levels¶
The Raspberry Pi HAT Adapter Board contains level shifters to handle logic voltage levels at the 40-pin header. The DIP switch allows you to configure the level shifters for either a 1.8-volt or 3.3-volt interface at the 40-pin header. The MuC in the Reference Moto Mod uses 1.8-volt logic. Therefore, when using an existing Pi HAT set DIP switch to shift voltage levels to/from the Pi standard 3.3 volts.
NOTE: DIP switch settings have no effect on voltages at the display or camera connectors.
Mechanical Details¶
Inserting and Removing Raspberry Pi HAT Adapter Board¶
The physical dimensions and location of the 40-pin header on the Raspberry Pi HAT Adapter Board match the Raspberry Pi 2 Model B.
NOTE: You must insert and remove the Raspberry Pi HAT Adapter Board by performing the following steps, in order to prevent damage from occurring.
Inserting Raspberry Pi HAT Adapter Board Into Reference Moto Mod¶
- Step 1: Toe-in top edge of board under housing tabs.
- Step 2: Press board down to seat the 80 pin connector.

Removing Raspberry Pi HAT Adapter Board from Reference Moto Mod¶
- Step 1: Grip sides of board within two finger scoops.
- Step 2: Pull up to unseat the 80 pin connector.

Securing a Pi HAT to the Raspberry Pi HAT Adapter Board¶
Mounting hardware can be used to physically secure a Pi HAT to the Raspberry Pi HAT Adapter Board. However, fasteners used to secure the Pi HAT to the Raspberry Pi HAT Adapter Board must be 2mm tall or less. Fasteners over 2mm tall will interfere with the Reference Moto Mod during assembly, and may cause damage.
This diagram shows where the mounting hardware is placed within the Raspberry Pi HAT Adapter Board:
