Skip to main content
Associate II
December 5, 2025
Solved

Can I get true 6-PWM (TIM1 CHx + CHxN) working on the X-NUCLEO-IHM16M1 (STSPIN830)?

  • December 5, 2025
  • 1 reply
  • 1085 views

 

I’m using the X-NUCLEO-IHM16M1 BLDC driver board, which is based on the STSPIN830, together with a NUCLEO-F446RE. In the STSPIN830 datasheet, ST clearly mentions that the device supports both 3-PWM and 6-PWM input modes.

But in practice, on this expansion board:

  • Only INU / INV / INW are connected to the MCU
  • ENU/ENV/ENW are present but “NP” (Not Populated) unless manually soldered
  • None of the INxH / INxL pins (the 6-input mode pins) are routed to the Nucleo connectors
  • TIM1 complementary outputs (CH1N/CH2N/CH3N) have nowhere to go
  • Motor Control Workbench only allows 3-PWM mode for this board

The user manual (UM2415) seems to confirm that the 6-input mode requires hardware changes: removing R12, replacing R11, and populating the NP resistors that route INxH/INxL to the MCU. Out of the box, the board is locked to 3-PWM “direct driving” mode.

My question:
Has anyone actually gotten TRUE 6-PWM complementary drive (TIM1 CHx + CHxN with dead-time) working on the X-NUCLEO-IHM16M1?
Not "6 logic inputs", but actual complementary PWM pairs like you’d use for a 3-phase inverter.

If yes:

  • Which resistors/jumpers did you solder?
  • Which pins did you remap on the Nucleo?
  • Did you modify the board to expose INxH/INxL?
  • Does MCSDK support this configuration at all, or do I need to go full custom firmware?
  • And is the internal interlock/deadtime in STSPIN830 going to interfere with MCU-generated complementary PWM?

If this is fundamentally impossible due to how the board is routed, I’d like to confirm that too before I switch to a different driver (DRV8303/8353, IR2101, L6386, etc.).

Anyone who has tried this, please let me know — ST’s documentation is a bit confusing here!

 

Best answer by GMA

Hello @Jeffrey1,

We are facing an issue on our side on sharing file process.
Create a X-NUCLEO-IHM16M1_HL.json file into the ~user_name\.st_workbench\hardware\board\power directory with following content:

{
 "type": "power",
 "name": "X-NUCLEO-IHM16M1_HL",
 "descVersion": 5,
 "contentVersion": "1.1",
 "PN": "X-NUCLEO-IHM16M1_HL",
 "longDescription": "Three-phase brushless DC motor driver expansion board based on STSPIN830 for STM32 Nucleo",
 "shortDescription": "PMSM & BLDC power board based on STSPIN830 for STM32 Nucleo",
 "link": "https://www.st.com/en/ecosystems/x-nucleo-ihm16m1.html",
 "motorDrives": [
 {
 "name": "M1",
 "minRatedVoltage": 7,
 "maxRatedVoltage": 45,
 "maxRatedCurrent": 2.12,
 "maxRatedPower": 40,
 "connectorType": "morpho",
 "resistorOffset": 1.50,
 "features": [
 {
 "name": "CurrentSensing",
 "type": "CurrentSensing",
 "tRise": 500,
 "hwVariants": [
 {
 "type": "ThreeShunt_AmplifiedCurrents",
 "help": {
				 "en": ["X-NUCLEO-IHM16M1: Check you are still in default config with JP4 and JP7 solder bridge opened at the bottom",
			 "J5 and J6 must be closed (default) to polarize Opamp U2B and select the FOC gain"
						 ]
			 },
			 "cost": 1,
 "signals": {
 "CURRENT_AMPL_U": [
 {
 "name": "ML30",
 "help": "CN7.30. Factory default. Solder R29",
 "cost": 0
 }
 ],
 "CURRENT_AMPL_V": [
 {
 "name": "MR24",
 "help": "CN10.24. Factory default Solder R42. Remove solder R41 if CN10.18 connected to a signal",
 "cost": 10
 },
 {
 "name": "MR18",
 "help": "CN10.18. Factory default Solder R41. Remove solder R42 if CN10.24 connected to a signal",
 "cost": 10
 }
 ],
 "CURRENT_AMPL_W": [
 {
 "name": "ML34",
 "help": "CN7.34. Factory default Solder R36. Remove solder R34 if CN10.15 connected to a signal",
 "cost": 10
 },
 {
 "name": "MR15",
 "help": "CN10.15. Factory default Solder R34. Remove solder R36 if CN7.34 connected to a signal",
 "cost": 10
 }
 ]
 },
 "shuntResistor": 0.33,
 "amplifyingNetworkImax": 3,
 "amplifyingNetworkVm": 3.3,
 "amplifyingNetworkPrating": 1.4,
 "offsetNetworkAttenuation": 0.764,
 "opAmpGain": 2,
 "polarizationOffset": 1.559,
 "metaData": [
 {
 "type": "OpAmp",
 "partNumber": "TSV994"
 }
 ]
 },
 {
 "type": "SingleShunt_AmplifiedCurrents",
 "help": {
				 "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			 " Close J5 and J6 to polarize Opamp U2B and select the FOC gain"
						 ]
			 },
			 "cost": 20,
 "signals": {
 "CURRENT_AMPL": [
 {
 "name": "MR24",
 "help": "CN10.24. Factory default. Solder R42",
 "cost": 0
 },
 {
 "name": "MR18",
 "help": "CN10.18. Factory default. Solder R41.",
 "cost": 0
 }
 ]
 },
 "shuntResistor": 0.11,
 "amplifyingNetworkImax": 3,
 "amplifyingNetworkVm": 3.3,
 "amplifyingNetworkPrating": 1.4,
 "offsetNetworkAttenuation": 0.764,
 "opAmpGain": 2,
 "polarizationOffset": 1.559,
 "metaData": [
 {
 "type": "OpAmp",
 "partNumber": "TSV994"
 }
 ]
 },
 {
 "type": "SingleShunt_AmplifiedCurrents_noOffset",
 "help": {
				 "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			 " Open J5 and J6 to select 6-step Opamp configuration"
						 ]
			 },
			 "cost": 20,
 "signals": {
 "CURRENT_AMPL": [
 {
 "name": "MR24",
 "help": "CN10.24. Factory default. Solder R42",
 "cost": 0
 },
 {
 "name": "MR18",
 "help": "CN10.18. Factory default. Solder R41.",
 "cost": 0
 }
 ]
 },
 "shuntResistor": 0.11,
 "amplifyingNetworkImax": 3,
 "amplifyingNetworkVm": 3.3,
 "amplifyingNetworkPrating": 1.4,
 "opAmpGain": 2,
 "metaData": [
 {
 "type": "OpAmp",
 "partNumber": "TSV994"
 }
 ]
 }
 ]
 },		
 {
 "name": "STSPIN830Protection",
 "type": "DriverProtection",
 "hwVariants": [
 {
 "type": "SingleErrorTrigger_FixedReference",
 "help": "How to enable this variant",
 "signals": {
 "DP_TRIGGER": [
 {
 "name": "MR14",
 "help": "CN10.14. Factory default. Solder R35",
 "cost": 0
 },
 {
 "name": "MR16",
 "help": "CN10.16. Factory default. Solder R37",
 "cost": 0
 }
 ]
 },
			 "DPTriggerFilterDuration": 0,
 "DPSignalPolarity": "Active low"
 }
 ]
 },
 {
 "name": "PhaseVoltageGeneration",
 "type": "PhaseVoltageGeneration",
 "driverName": "Driver or IGBT or MOSFET name",
 "driverPN": "STSPIN830",
 "minDeadTime": 500,
 "maxSwitchingFreq": 100,
 "tNoise": 500,
 "hwVariants": [
 {
 "type": "DrivingHighSidesAndThreeEnables",
 "help": "How to enable this variant",
 "signals": {
 "PWM_CHU_H": [
 {
 "name": "MR23",
 "help": "CN10.23. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHV_H": [
 {
 "name": "MR21",
 "help": "CN10.21. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHW_H": [
 {
 "name": "MR33",
 "help": "CN10.33. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHU_EN": [
 {
 "name": "MR30",
 "help": "CN10.30. Factory Default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
 "cost": 10
 },
 {
 "name": "MR11",
 "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
 "cost": 10
 }
 ],
 "PWM_CHV_EN": [
 {
 "name": "MR28",
 "help": "CN10.28. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
 "cost": 10
 }
 ],
 "PWM_CHW_EN": [
 {
 "name": "MR26",
 "help": "CN10.26. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
 "cost": 10
 }
 ]
 },
 "highSideSwitchesDrivingPolarity": "Active high",
 "enableDrivingPolarity": "Active high",
 "deadTime": 550
 },
 {
 "type": "DrivingHighAndLowSides",
 "help": "Remove R12 resistor. Set R11 to 0ohm.",
 "cost": 10,
 "signals": {
 "PWM_CHU_H": [
 {
 "name": "MR23",
 "help": "CN10.23. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHV_H": [
 {
 "name": "MR21",
 "help": "CN10.21. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHW_H": [
 {
 "name": "MR33",
 "help": "CN10.33. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHU_L": [
 {
 "name": "MR30",
 "help": "CN10.30. Factory Default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
 "cost": 10
 },
 {
 "name": "MR11",
 "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
 "cost": 10
 }
 ],
 "PWM_CHV_L": [
 {
 "name": "MR28",
 "help": "CN10.28. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
 "cost": 10
 }
 ],
 "PWM_CHW_L": [
 {
 "name": "MR26",
 "help": "CN10.26. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
 "cost": 10
 }
 ]
 },
 "highSideSwitchesDrivingPolarity": "Active high",
 "lowSideSwitchesDrivingPolarity": "Active high",
 "deadTime": 650
 }
 ]
 },
 {
 "name": "SpeedAndPositionSensing",
 "type": "SpeedAndPositionSensing",
 "hwVariants": [
 {
 "type": "HallEffectSensor",
 "help": {
				 "en":["X-NUCLEO-IHM16M1: By default Hall signals are connected to pull-up resistors suitable for open-drain interface",
					 "If your Hall sensors signals require a push pull interface, please remove JP3"
					 ]
			 },
			 "cost": 1,
 "signals": {
 "HALLSENSOR_H1": [
 {
 "name": "MR4",
 "help": "CN10.4. Factory default. Solder R81",
 "cost": 0
 },
 {
 "name": "ML17",
 "help": "CN7.17. Factory default. Solder R43",
 "cost": 0
 }
 ],
 "HALLSENSOR_H2": [
 {
 "name": "MR19",
 "help": "CN10.19. Factory default. Solder R85",
 "cost": 0
 },
 {
 "name": "MR31",
 "help": "CN10.31. Factory default. Solder R86",
 "cost": 0
 }
 ],
 "HALLSENSOR_H3": [
 {
 "name": "MR2",
 "help": "CN10.2. Factory default. Solder R87",
 "cost": 0
 },
 {
 "name": "MR25",
 "help": "CN10.25. Factory default. Solder R84",
 "cost": 0
 }
 ]
 }
 },
 {
 "type": "QuadratureEncoderRelative",
 "help": {
				 "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					 "If your Encoder signals require a push pull interface, please remove JP3"
					 ]
			 },
			 "cost": 1,
 "signals": {
 "QENC_A": [
 {
 "name": "MR4",
 "help": "CN10.4. Factory default. Solder R81",
 "cost": 0
 },
 {
 "name": "ML17",
 "help": "CN7.17. Factory default. Solder R43",
 "cost": 0
 }
 ],
 "QENC_B": [
 {
 "name": "MR19",
 "help": "CN10.19. Factory default. Solder R85",
 "cost": 0
 },
 {
 "name": "MR31",
 "help": "CN10.31. Factory default. Solder R86",
 "cost": 0
 }
 ]
 }
 },
 {
 "type": "QuadratureEncoderAbsolute",
 "help": {
				 "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					 "If your Encoder signals require a push pull interface, please remove JP3"
					 ]
			 },
			 "cost": 1,
 "signals": {
 "QENC_A": [
 {
 "name": "MR4",
 "help": "CN10.4. Factory default. Solder R81",
 "cost": 0
 },
 {
 "name": "ML17",
 "help": "CN7.17. Factory default. Solder R43",
 "cost": 0
 }
 ],
 "QENC_B": [
 {
 "name": "MR19",
 "help": "CN10.19. Factory default. Solder R85",
 "cost": 0
 },
 {
 "name": "MR31",
 "help": "CN10.31. Factory default. Solder R86",
 "cost": 0
 }
 ],
 "QENC_Z": [
 {
 "name": "MR2",
 "help": "CN10.2. Factory default. Solder R87",
 "cost": 0
 },
 {
 "name": "MR25",
 "help": "CN10.25. Factory default. Solder R84",
 "cost": 0
 }
 ]
 }
 },
 {
 "type": "BEMFSensingADC",
 "help": "How to enable this variant",
 "signals": {
 "BEMF_U": [
 {
 "name": "ML38",
 "help": "CN7.38",
 "cost": 0
 }
 ],
 "BEMF_V": [
 {
 "name": "ML37",
 "help": "CN7.37",
 "cost": 0
 }
 ],
 "BEMF_W": [
 {
 "name": "ML36",
 "help": "CN7.36",
 "cost": 0
 }
 ],
 "BEMF_DIVIDER": [
 {
 "name": "MR1",
 "help": "CN10.1",
 "cost": 0
 }
 ]
 },
 "dividingNetworkR1": 10000,
 "dividingNetworkR2": 2200
 }
 ]
 },
 {
 "name": "VBusSensing",
 "type": "VBusSensing",
 "busVoltageDivider": 16,
 "hwVariants": [
 {
 "type": "VBusSensing",
 "help": "How to enable this variant",
 "signals": {
 "VBUS": [
 {
 "name": "ML28",
 "help": "CN7.28. Factory default. Solder R33",
 "cost": 0
 },
 {
 "name": "MR6",
 "help": "CN10.6. Factory default. Solder R31",
 "cost": 0
 },
 {
 "name": "MR28",
 "help": "X-NUCLEO-IHM16M1: CN10.28. Solder R88",
 "cost": 10
 }
 ]
 },
 "busVoltageDivider": 16,
 "busVoltageDividerR1": 180,
 "busVoltageDividerR2": 12,
 "busVoltageDividerR3": null
 }
 ]
 },
 {
 "name": "TemperatureSensing",
 "type": "TemperatureSensing",
 "hwVariants": [
 {
 "type": "NTCThermistor",
 "help": "How to enable this variant",
 "signals": {
 "TEMPERATURE_NTC": [
 {
 "name": "MR34",
 "help": "CN10.34. Factory default. Solder R82",
 "cost": 0
 },
 {
 "name": "MR18",
 "help": "X-NUCLEO-IHM16M1: CN10.18. Please Solder R83 with a 0 ohm resistor",
 "cost": 10
 }
 ]
 },
 "v0": 579,
 "t0": 25,
 "gain": 27.4,
 "maxSensorTemperature": 110
 }
 ]
 },
 {
 "name": "Potentiometer",
 "type": "Potentiometer",
 "hwVariants": [
 {
 "type": "Potentiometer",
 "help": "How to enable this variant",
 "signals": {
 "POTENTIOMETER_LEVEL": [
 {
 "name": "ML35",
 "help": "CN7.35",
 "cost": 0
 }
 ]
 },
 "potVm": 3.3,
 "potRmax": 10000,
 "potLevelMin": 0
 }
 ]
 }
 ]
 }
 ]
}

1 reply

GMA
Technical Moderator
December 9, 2025

Hello @Jeffrey1,

The "DrivingHighAndLowSides" hardware variant was missing in the PhaseVoltageGeneration section of the X-NUCLEO-IHM16M1.json description file.
Find an updated version of the json file in the attachment. As mentioned in the IHM16 user manual: remove the R12 resistor, replace the R11 resistor with a 0 Ω resistor.
Add the X-NUCLEO-IHM16M1_HL.json file to the ~user_name\.st_workbench\hardware\board\power directory. Launch MC Workbench, the X-NUCLEO-IHM16M1_HL power board should be available and set.

GMA_0-1765300470683.png

 

If you agree with the answer, please accept it by clicking on 'Accept as solution'.Best regards.GMA
Jeffrey1Author
Associate II
December 10, 2025

Hello @GMA 

Thank you for your response. I understand that there is a json file to enable the 'DrivingHighAndLowSides'. 

I am not able to acces the .zip can you help me in getting the same 

Best regards 
Jeffrey J

Jeffrey1_0-1765334419940.png

 

GMA
GMABest answer
Technical Moderator
December 10, 2025

Hello @Jeffrey1,

We are facing an issue on our side on sharing file process.
Create a X-NUCLEO-IHM16M1_HL.json file into the ~user_name\.st_workbench\hardware\board\power directory with following content:

{
 "type": "power",
 "name": "X-NUCLEO-IHM16M1_HL",
 "descVersion": 5,
 "contentVersion": "1.1",
 "PN": "X-NUCLEO-IHM16M1_HL",
 "longDescription": "Three-phase brushless DC motor driver expansion board based on STSPIN830 for STM32 Nucleo",
 "shortDescription": "PMSM & BLDC power board based on STSPIN830 for STM32 Nucleo",
 "link": "https://www.st.com/en/ecosystems/x-nucleo-ihm16m1.html",
 "motorDrives": [
 {
 "name": "M1",
 "minRatedVoltage": 7,
 "maxRatedVoltage": 45,
 "maxRatedCurrent": 2.12,
 "maxRatedPower": 40,
 "connectorType": "morpho",
 "resistorOffset": 1.50,
 "features": [
 {
 "name": "CurrentSensing",
 "type": "CurrentSensing",
 "tRise": 500,
 "hwVariants": [
 {
 "type": "ThreeShunt_AmplifiedCurrents",
 "help": {
				 "en": ["X-NUCLEO-IHM16M1: Check you are still in default config with JP4 and JP7 solder bridge opened at the bottom",
			 "J5 and J6 must be closed (default) to polarize Opamp U2B and select the FOC gain"
						 ]
			 },
			 "cost": 1,
 "signals": {
 "CURRENT_AMPL_U": [
 {
 "name": "ML30",
 "help": "CN7.30. Factory default. Solder R29",
 "cost": 0
 }
 ],
 "CURRENT_AMPL_V": [
 {
 "name": "MR24",
 "help": "CN10.24. Factory default Solder R42. Remove solder R41 if CN10.18 connected to a signal",
 "cost": 10
 },
 {
 "name": "MR18",
 "help": "CN10.18. Factory default Solder R41. Remove solder R42 if CN10.24 connected to a signal",
 "cost": 10
 }
 ],
 "CURRENT_AMPL_W": [
 {
 "name": "ML34",
 "help": "CN7.34. Factory default Solder R36. Remove solder R34 if CN10.15 connected to a signal",
 "cost": 10
 },
 {
 "name": "MR15",
 "help": "CN10.15. Factory default Solder R34. Remove solder R36 if CN7.34 connected to a signal",
 "cost": 10
 }
 ]
 },
 "shuntResistor": 0.33,
 "amplifyingNetworkImax": 3,
 "amplifyingNetworkVm": 3.3,
 "amplifyingNetworkPrating": 1.4,
 "offsetNetworkAttenuation": 0.764,
 "opAmpGain": 2,
 "polarizationOffset": 1.559,
 "metaData": [
 {
 "type": "OpAmp",
 "partNumber": "TSV994"
 }
 ]
 },
 {
 "type": "SingleShunt_AmplifiedCurrents",
 "help": {
				 "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			 " Close J5 and J6 to polarize Opamp U2B and select the FOC gain"
						 ]
			 },
			 "cost": 20,
 "signals": {
 "CURRENT_AMPL": [
 {
 "name": "MR24",
 "help": "CN10.24. Factory default. Solder R42",
 "cost": 0
 },
 {
 "name": "MR18",
 "help": "CN10.18. Factory default. Solder R41.",
 "cost": 0
 }
 ]
 },
 "shuntResistor": 0.11,
 "amplifyingNetworkImax": 3,
 "amplifyingNetworkVm": 3.3,
 "amplifyingNetworkPrating": 1.4,
 "offsetNetworkAttenuation": 0.764,
 "opAmpGain": 2,
 "polarizationOffset": 1.559,
 "metaData": [
 {
 "type": "OpAmp",
 "partNumber": "TSV994"
 }
 ]
 },
 {
 "type": "SingleShunt_AmplifiedCurrents_noOffset",
 "help": {
				 "en": ["X-NUCLEO-IHM16M1: Close JP4 and JP7 solder bridge at the bottom to select single Shunts",
			 " Open J5 and J6 to select 6-step Opamp configuration"
						 ]
			 },
			 "cost": 20,
 "signals": {
 "CURRENT_AMPL": [
 {
 "name": "MR24",
 "help": "CN10.24. Factory default. Solder R42",
 "cost": 0
 },
 {
 "name": "MR18",
 "help": "CN10.18. Factory default. Solder R41.",
 "cost": 0
 }
 ]
 },
 "shuntResistor": 0.11,
 "amplifyingNetworkImax": 3,
 "amplifyingNetworkVm": 3.3,
 "amplifyingNetworkPrating": 1.4,
 "opAmpGain": 2,
 "metaData": [
 {
 "type": "OpAmp",
 "partNumber": "TSV994"
 }
 ]
 }
 ]
 },		
 {
 "name": "STSPIN830Protection",
 "type": "DriverProtection",
 "hwVariants": [
 {
 "type": "SingleErrorTrigger_FixedReference",
 "help": "How to enable this variant",
 "signals": {
 "DP_TRIGGER": [
 {
 "name": "MR14",
 "help": "CN10.14. Factory default. Solder R35",
 "cost": 0
 },
 {
 "name": "MR16",
 "help": "CN10.16. Factory default. Solder R37",
 "cost": 0
 }
 ]
 },
			 "DPTriggerFilterDuration": 0,
 "DPSignalPolarity": "Active low"
 }
 ]
 },
 {
 "name": "PhaseVoltageGeneration",
 "type": "PhaseVoltageGeneration",
 "driverName": "Driver or IGBT or MOSFET name",
 "driverPN": "STSPIN830",
 "minDeadTime": 500,
 "maxSwitchingFreq": 100,
 "tNoise": 500,
 "hwVariants": [
 {
 "type": "DrivingHighSidesAndThreeEnables",
 "help": "How to enable this variant",
 "signals": {
 "PWM_CHU_H": [
 {
 "name": "MR23",
 "help": "CN10.23. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHV_H": [
 {
 "name": "MR21",
 "help": "CN10.21. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHW_H": [
 {
 "name": "MR33",
 "help": "CN10.33. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHU_EN": [
 {
 "name": "MR30",
 "help": "CN10.30. Factory Default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
 "cost": 10
 },
 {
 "name": "MR11",
 "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
 "cost": 10
 }
 ],
 "PWM_CHV_EN": [
 {
 "name": "MR28",
 "help": "CN10.28. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
 "cost": 10
 }
 ],
 "PWM_CHW_EN": [
 {
 "name": "MR26",
 "help": "CN10.26. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
 "cost": 10
 }
 ]
 },
 "highSideSwitchesDrivingPolarity": "Active high",
 "enableDrivingPolarity": "Active high",
 "deadTime": 550
 },
 {
 "type": "DrivingHighAndLowSides",
 "help": "Remove R12 resistor. Set R11 to 0ohm.",
 "cost": 10,
 "signals": {
 "PWM_CHU_H": [
 {
 "name": "MR23",
 "help": "CN10.23. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHV_H": [
 {
 "name": "MR21",
 "help": "CN10.21. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHW_H": [
 {
 "name": "MR33",
 "help": "CN10.33. Factory default",
 "cost": 0
 }
 ],
 "PWM_CHU_L": [
 {
 "name": "MR30",
 "help": "CN10.30. Factory Default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R74",
 "cost": 10
 },
 {
 "name": "MR11",
 "help": "X-NUCLEO-IHM16M1: CN10.11. Solder R79",
 "cost": 10
 }
 ],
 "PWM_CHV_L": [
 {
 "name": "MR28",
 "help": "CN10.28. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.13. Solder R78",
 "cost": 10
 }
 ],
 "PWM_CHW_L": [
 {
 "name": "MR26",
 "help": "CN10.26. Factory default",
 "cost": 0
 },
 {
 "name": "MR15",
 "help": "X-NUCLEO-IHM16M1: CN10.15. Solder R69",
 "cost": 10
 }
 ]
 },
 "highSideSwitchesDrivingPolarity": "Active high",
 "lowSideSwitchesDrivingPolarity": "Active high",
 "deadTime": 650
 }
 ]
 },
 {
 "name": "SpeedAndPositionSensing",
 "type": "SpeedAndPositionSensing",
 "hwVariants": [
 {
 "type": "HallEffectSensor",
 "help": {
				 "en":["X-NUCLEO-IHM16M1: By default Hall signals are connected to pull-up resistors suitable for open-drain interface",
					 "If your Hall sensors signals require a push pull interface, please remove JP3"
					 ]
			 },
			 "cost": 1,
 "signals": {
 "HALLSENSOR_H1": [
 {
 "name": "MR4",
 "help": "CN10.4. Factory default. Solder R81",
 "cost": 0
 },
 {
 "name": "ML17",
 "help": "CN7.17. Factory default. Solder R43",
 "cost": 0
 }
 ],
 "HALLSENSOR_H2": [
 {
 "name": "MR19",
 "help": "CN10.19. Factory default. Solder R85",
 "cost": 0
 },
 {
 "name": "MR31",
 "help": "CN10.31. Factory default. Solder R86",
 "cost": 0
 }
 ],
 "HALLSENSOR_H3": [
 {
 "name": "MR2",
 "help": "CN10.2. Factory default. Solder R87",
 "cost": 0
 },
 {
 "name": "MR25",
 "help": "CN10.25. Factory default. Solder R84",
 "cost": 0
 }
 ]
 }
 },
 {
 "type": "QuadratureEncoderRelative",
 "help": {
				 "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					 "If your Encoder signals require a push pull interface, please remove JP3"
					 ]
			 },
			 "cost": 1,
 "signals": {
 "QENC_A": [
 {
 "name": "MR4",
 "help": "CN10.4. Factory default. Solder R81",
 "cost": 0
 },
 {
 "name": "ML17",
 "help": "CN7.17. Factory default. Solder R43",
 "cost": 0
 }
 ],
 "QENC_B": [
 {
 "name": "MR19",
 "help": "CN10.19. Factory default. Solder R85",
 "cost": 0
 },
 {
 "name": "MR31",
 "help": "CN10.31. Factory default. Solder R86",
 "cost": 0
 }
 ]
 }
 },
 {
 "type": "QuadratureEncoderAbsolute",
 "help": {
				 "en":["X-NUCLEO-IHM16M1: By default Encoder signals are connected to pull-up resistors suitable for open-drain interface",
					 "If your Encoder signals require a push pull interface, please remove JP3"
					 ]
			 },
			 "cost": 1,
 "signals": {
 "QENC_A": [
 {
 "name": "MR4",
 "help": "CN10.4. Factory default. Solder R81",
 "cost": 0
 },
 {
 "name": "ML17",
 "help": "CN7.17. Factory default. Solder R43",
 "cost": 0
 }
 ],
 "QENC_B": [
 {
 "name": "MR19",
 "help": "CN10.19. Factory default. Solder R85",
 "cost": 0
 },
 {
 "name": "MR31",
 "help": "CN10.31. Factory default. Solder R86",
 "cost": 0
 }
 ],
 "QENC_Z": [
 {
 "name": "MR2",
 "help": "CN10.2. Factory default. Solder R87",
 "cost": 0
 },
 {
 "name": "MR25",
 "help": "CN10.25. Factory default. Solder R84",
 "cost": 0
 }
 ]
 }
 },
 {
 "type": "BEMFSensingADC",
 "help": "How to enable this variant",
 "signals": {
 "BEMF_U": [
 {
 "name": "ML38",
 "help": "CN7.38",
 "cost": 0
 }
 ],
 "BEMF_V": [
 {
 "name": "ML37",
 "help": "CN7.37",
 "cost": 0
 }
 ],
 "BEMF_W": [
 {
 "name": "ML36",
 "help": "CN7.36",
 "cost": 0
 }
 ],
 "BEMF_DIVIDER": [
 {
 "name": "MR1",
 "help": "CN10.1",
 "cost": 0
 }
 ]
 },
 "dividingNetworkR1": 10000,
 "dividingNetworkR2": 2200
 }
 ]
 },
 {
 "name": "VBusSensing",
 "type": "VBusSensing",
 "busVoltageDivider": 16,
 "hwVariants": [
 {
 "type": "VBusSensing",
 "help": "How to enable this variant",
 "signals": {
 "VBUS": [
 {
 "name": "ML28",
 "help": "CN7.28. Factory default. Solder R33",
 "cost": 0
 },
 {
 "name": "MR6",
 "help": "CN10.6. Factory default. Solder R31",
 "cost": 0
 },
 {
 "name": "MR28",
 "help": "X-NUCLEO-IHM16M1: CN10.28. Solder R88",
 "cost": 10
 }
 ]
 },
 "busVoltageDivider": 16,
 "busVoltageDividerR1": 180,
 "busVoltageDividerR2": 12,
 "busVoltageDividerR3": null
 }
 ]
 },
 {
 "name": "TemperatureSensing",
 "type": "TemperatureSensing",
 "hwVariants": [
 {
 "type": "NTCThermistor",
 "help": "How to enable this variant",
 "signals": {
 "TEMPERATURE_NTC": [
 {
 "name": "MR34",
 "help": "CN10.34. Factory default. Solder R82",
 "cost": 0
 },
 {
 "name": "MR18",
 "help": "X-NUCLEO-IHM16M1: CN10.18. Please Solder R83 with a 0 ohm resistor",
 "cost": 10
 }
 ]
 },
 "v0": 579,
 "t0": 25,
 "gain": 27.4,
 "maxSensorTemperature": 110
 }
 ]
 },
 {
 "name": "Potentiometer",
 "type": "Potentiometer",
 "hwVariants": [
 {
 "type": "Potentiometer",
 "help": "How to enable this variant",
 "signals": {
 "POTENTIOMETER_LEVEL": [
 {
 "name": "ML35",
 "help": "CN7.35",
 "cost": 0
 }
 ]
 },
 "potVm": 3.3,
 "potRmax": 10000,
 "potLevelMin": 0
 }
 ]
 }
 ]
 }
 ]
}
If you agree with the answer, please accept it by clicking on 'Accept as solution'.Best regards.GMA