Hardware
STM32MP157D-DK1 development board.

To be able to use internal ADC, you will need to connect VREF+ to 3.3V. Either fit 0Ω resistor to R74, or connect IOREF (CN16, pin 2) to VREFP (CN13, pin 8).
This development board isn’t fitted with Wi-Fi / Bluetooth module, so you will need ethernet cable. STM32MP157F-DK2 does have this module.
Arduino connectors pinout
| Connector | Pin name | Signal name | STM32 pin | Comment |
|---|---|---|---|---|
| CN16 | 1 | NC | - | NC |
| 2 | 3V3 | - | IOREF 3V3 | |
| 3 | NRST | NRST | NRST | |
| 4 | 3V3 | - | 3V3 | |
| 5 | 5V | - | 5V | |
| 6 | GND | - | GND | |
| 7 | GND | - | GND | |
| 8 | VIN | Not connected | ||
| CN17 | 1 | A0 | PF14 | ADC2_IN6 |
| 2 | A1 | PF13 | ADC2_IN2 | |
| 3 | A2 | ANA0 | ADC1_IN0, ADC2_IN0 | |
| 4 | A3 | ANA1 | ADC2_IN1, ADC1_IN1 | |
| 5 | A4 | PC3/PA12 | ADC1_IN13 (PC3) | |
| 6 | A5 | PF12/PA11 | ADC1_IN6 (PF12) | |
| CN14 | 1 | ARD_D0 | PE7 | USART7_RX |
| 2 | ARD_D1 | PE8 | USART7_TX | |
| 3 | ARD_D2 | PE1 | IO | |
| 4 | ARD_D3 | PD14 | TIM4_CH3 | |
| 5 | ARD_D4 | PE10 | IO | |
| 6 | ARD_D5 | PD15 | TIM4_CH4 | |
| 7 | ARD_D6 | PE9 | TIM4_CH1 | |
| 8 | ARD_D7 | PD1 | IO | |
| CN13 | 1 | ARD_D8 | PG3 | IO |
| 2 | ARD_D9 | PH6 | TIM12_CH1 | |
| 3 | ARD_D10 | PE11 | SPI4_NSS and TIM1_CH2 | |
| 4 | ARD_D11 | PE14 | SPI4_MOSI and TIM1_CH4 | |
| 5 | ARD_D12 | PE13 | SPI4_MISO | |
| 6 | ARD_D13 | PE12 | SPI4_SCK | |
| 7 | GND | - | GND | |
| 8 | VREFP | - | VREF+ | |
| 9 | ARD_D14 | PA12 | I2C5_SDA | |
| 10 | ARD_D15 | PA11 | I2C5_SCL |
Raspberry Pi connectors
| Function | STM32 pin | Pin | Pin | STM32 pin | Function |
|---|---|---|---|---|---|
| 3V3 | - | 1 | 2 | - | 5V |
| GPIO3 / I2C5_SDA | PA12 | 3 | 4 | - | 5V |
| GPIO3 / I2C5_SCL | PA11 | 5 | 6 | - | GND |
| GPIO4 / MCO1 | PA8 | 7 | 8 | PB10 | GPIO14 / USART3_TX |
| GND | - | 9 | 10 | PB12 | GPIO15 / USART3_RX |
| GPIO17 / USART3_RTS | PG8 | 11 | 12 | PI5 | GPIO18 / SAI2_SCKA |
| GPIO27 / SDMMC3_D3 | PD7 | 13 | 14 | - | GND |
| GPIO22 / SDMMC3_CK | PG15 | 15 | 16 | PF1 | GPIO23 / SDMMC3_CMD |
| 3V3 | - | 17 | 18 | PF0 | GPIO24 / SDMMC3_D0 |
| GPIO10 / SPI5_MOSI | PF9 | 19 | 20 | - | GND |
| GPIO9 / SPI5_MISO | PF8 | 21 | 22 | PF4 | GPIO25 / SDMMC3_D1 |
| GPIO11 / SPI5_SCK | PF7 | 23 | 24 | PF6 | GPIO8 / SPI5_NSS |
| GND | - | 25 | 26 | PF3 | GPIO7 |
| I2C1_SDA | PF15 | 27 | 28 | PD12 | I2C1_SCL |
| GPIO5 / MCO2 | PG2 | 29 | 30 | - | GND |
| GPIO6 / TIM5_CH2 | PH11 | 31 | 32 | PD13 | GPIO12 / TIM4_CH2 |
| GPIO13 / TIM3_CH2 | PC7 | 33 | 34 | - | GND |
| GPIO19 / SAI2_FSA | PI7 | 35 | 36 | PB13 | GPIO16 / USART3_CTS |
| GPIO26 / SDMMC3_D2 | PF5 | 37 | 38 | PI6 | DPIO20 / SAI2_SDA |
| GND | - | 39 | 40 | PF11 | GPIO21 / SAI2_SDB |
Arduino CNC shield
WARNING : do not supply 3V3, 5V from Arduino shield

CNC shield connection to STM32MP157D-DK1
Make sure you put on jumpers on D12/A.STP and D13/A.DIR, otherwise you will not be able to controll A-axis from microcontroller.
| Function | STM32 pin | CNC shield |
|---|---|---|
| Enable all motors | PG3 | EN |
| X step | PE1 | X.STEP |
| X direction | PD15 | X.DIR |
| Y step | PD14 | Y.STEP |
| Y direction | PE9 | Y.DIR |
| Z step | PE10 | Z.STEP |
| Z direction | PD1 | Z.DIR |
| A step | PE13 | A.STEP |
| A direction | PE12 | A.DIR |
| X end stop | PH6 | X.LIM |
| Y end stop | PE11 | Y.LIM |
| Z end stop | PE14 | Z.LIM |
| Abort | PF14 | Abort |
| Hold | PF13 | Hold |
| Emergency stop | NRST | E-STOP |
| UART7_TX | PE8 | TX |
| UART7_RX | PE7 | RX |
| SDA pin | PA12 | SDA |
| SCL pin | PA11 | SCL |
DIN rail adaptor
Because you will need to use both Arduino and Raspberry Pi connectors, it is difficult to place the board. So that we can use all the cables, you can 3D print this adaptor for DIN rail and make a connector converter, so all the pins are on bottom side of the board and you can lay the board on top side.