PWM on H7 Mid carrier Proto Shield

Hello Community,
Has anybody successfully controlled an ESC with PWM signals on the new Portenta setup with H7 mid carrier and proto shield? Could you please share a working code example and the pin mapping (label on proto shield <> pin identifier in Arduino code). I have tried the standard servo.h with level shifter (tested fine with a stepper motor drivers that also requires 5V) but it seems it does not provide proper PWM signals. Also tried Portenta_H7_PWM and Portenta_H7_Slow_PWM but doesnt compile for above setup bought in June 2025.

Thank you,
Nils

Sorry I don't have one of these Proto Shields, but may not be able to help much.

But if I look at their Schematic I see:

And if I look at an excel document I have where I tried mapping
pins for the GIGA/Portenta H7/some shields, If I look at the Mid
Carrier I have:

J15:09 J2-73 Analog 0 [A0] PA_0C / A0
J15:10 J2-53 SPI0 CS -
J15:11 J2-75 Analog 1 [A1] PA_1C / A1
J15:12 J2-37 SPI0 SCLK -
J15:13 J2-77 Analog 2 [A2[ PC_2C / A2
J15:14 J2-39 SPI0 CIPO -
J15:15 J2-79 Analog 3 [A3[ PC_3C / A3
J15:16 J2-41 SPI0 COPI -
J15:17 J2-74 Analog 4 [A4] PC_2 / A4
J15:18 J2-36 SPI1 CS PI_0 7
J15:19 J2-76 Analog 5 [A5] PC_3 / A5
J15:20 J2-38 SPI1 SCLK PI_1 9
J15:21 J2-78 Analog 6 [A6] PA_4 / A6
J15:22 J2-40 SPI1 CIPO PC_2 10
J15:23 J2-80 Analog 7 [A7] PA_6 / A7
J15:24 J2-42 SPI1 COPI PC_3 8
J15:25 J2-59 PWM0 PA_8 6
J15:26 J1-44 I2C0 SDA PH_15 0
J15:27 J2-61 PWM1 PC_6 5
J15:28 J1-46 I2C0 SCL PI_3
J15:29 J2-63 PWM2 PC_7 4
J15:30 J1-43 I2C1 SDA PB_7
J15:31 J2-65 PWM3 PG_7 3
J15:32 J1-45 I2C1 SCL PB_6
J15:33 J2-67 PWM4 PJ_11 2
J15:34 J2-45 I2C2 SDA PH_12
J15:35 J2-60 PWM5 PK_1 1
J15:36 J2-47 I2C2 SCL PH_11
J15:37 J2-62 PWM6 PH_15
J15:38 J2-49 SAI CLK PI_5
J15:39 J2-64 PWM7 PJ_7
J15:40 J2-51 SAI FS PI_7
J15:41 J2-66 PWM8 PJ_10
J15:42 J2-53 SAI D0 PI_6
J15:43 J2-68 PWM9 PH_6
J15:44 J2-55 SAI D1 -

I have some mappings for the J14 connector.

Also normally I use a test program I have to help ring out pins,
where it tries to set all of the pins into either INPUT_PULLUP or INPUT_PULLDOWN. And then cycles through looking for pin state changes.

So typically I use a jumper wire, one end connected to ground pin, and then touch different pins, where it will hopefully print out the pin number and
with the Portenta pin names... It is up at:
Arduino_GIGA-stuff/sketches/portenta_HiLowTest/portenta_HiLowTest.ino at main · KurtE/Arduino_GIGA-stuff

Not sure what state it is in... But might help.

Good luck

1 Like

Hi Kurt,
Yes thanks that helps. Tried in parallel manual searching for the pins and PWM3 on shield is linked to D3 and PWM2 to D4, which is confirmed by your table. So the remaining mappings will be very helpful!