Verified 2026-10
m5stack 8-Channel Servo2 I2C Unit (STM32G031)
Eight-channel servo/IO unit on an STM32G031 with I2C 0x25-0x34 set by a rotary switch, 9-24 V barrel input bucked to a 3 A 5 V servo rail and INA199 current sensing, $12.95 USD.
Place this board on a carrier in the editor →
Part & documents
| Source | shop.m5stack.com/products/8-channel-servo2-i2c-unit-stm32g031 → |
|---|
Specs
| MCU | STMicroelectronics STM32G031G8U6 |
|---|
Pinout
8 pads, as the vendor numbers them.
| # | Name | Function | Signals |
|---|---|---|---|
| 1 | GND | IN socket pad 1 - Black wire, ground. | ground |
| 2 | 5V | IN socket pad 2 - Red wire, 5 V from the buck converter. | 5 V servo rail |
| 3 | SDA | IN socket pad 3 - Yellow wire, I2C data. | I2C SDA |
| 4 | SCL | IN socket pad 4 - White wire, I2C clock. | I2C SCL |
| 5 | GND | OUT socket pad 1 - Black wire, ground (same net as IN pad 1). | ground |
| 6 | 5V | OUT socket pad 2 - Red wire, 5 V (same net as IN pad 2). | 5 V servo rail |
| 7 | SDA | OUT socket pad 3 - Yellow wire, I2C data (same net as IN pad 3). | I2C SDA |
| 8 | SCL | OUT socket pad 4 - White wire, I2C clock (same net as IN pad 4). | I2C SCL |
Buses
| Bus | Signals | Pins | Voltage | Note |
|---|---|---|---|---|
| I2C ×1 | SDA, SCL | SDA, SCL |
I²C / bus addresses
| Address | Bus | Device | Note |
|---|---|---|---|
| 0x25-0x34 | I2C | STM32G031G8U6 (16-position rotary switch, 0 = 0x25 to F = 0x34) |
Power
| Input | DC 9-24 V on the barrel jack; 5 V on HY2.0-4P pads 2 and 6 |
|---|---|
| Typical draw | 4.56 mA |
Notes
pins[] covers the two numbered-by-colour HY2.0 sockets (IN 1-4, OUT 5-8). The eight 3-pin servo headers are not numbered by the vendor as pads - they are channels 1-8 in firmware - so they are described in ai_context with their STM32 pins and timer channels rather than given an invented 9-24 sequence. No datasheet_url: the STM32G031's document is served only from st.com, which does not resolve from this host (curl exit 000, measured 2026-10-31); the INA199 data sheet from ti.com is in sources instead, and it is verified application/pdf. Servo signal capacitors and the shunt value are read from the vendor's own SCH_Unit_8Servos2-I2C V0.4 text layer.
AI context
Dense context for pasting into a model prompt — addresses, pinout, voltages, tolerances and the vendor's reference circuit.
PART: M5Stack Unit 8Servos2-I2C, SKU U222, a 56.0 x 24.0 x 11.5 mm (11.6 g) eight-channel servo/IO unit on an STM32G031G8U6 (U5). It is fed from a DC barrel jack (9-24 V, DC6020 6.0 x 2.0 mm centre-positive) and drives eight 3-pin 2.54 mm channels in servo, digital in/out, ADC, RGB or PWM mode. The title carries the MCU, so part is null.\nADDRESSES: I2C 0x25 to 0x34, set by a 16-position SKAR-16 rotary switch, position 0 = 0x25 through position F = 0x34 in order - the full table is in the vendor docs and there is no other address on the bus.\nPINOUT: two HY2.0-4P sockets, both labelled IN and OUT and both I2C: IN is pads 1 GND, 2 5V, 3 SDA, 4 SCL; OUT is pads 5 GND, 6 5V, 7 SDA, 8 SCL. The sockets print no pad numbers, so 1-4 and 5-8 follow the vendor's colour column (Black, Red, Yellow, White). The eight servo channels are 3-pin headers (GND, 5V, SIG) and are numbered only as channels 1-8 in the firmware, not as pads - each one is a separate 2.54 mm connector.\nSUPPLY: DC 9-24 V in on the barrel jack, protected by F1 (SMD1812-200-30, 2 A hold / 4 A trip) and D1 (SMF30CA TVS), then bucked to 5 V by U1 SY8303AIC with L1 FXL0530-6R8-M and 100 uF/35 V bulk input capacitance; the feedback divider is R7 220K/1% and R3 30K/1% against a 0.6 V reference, and the vendor prints the resulting Vout = 5.0 V on the schematic. The 5 V rail feeds all eight servo headers and is rated 3 A total. 3.3 V for the MCU comes from a second regulator (U2, SSP7615-33). Standby draw is 12 V at 4.56 mA; 12 V at 1.6 A with eight servos moving.\nLOGIC: 3.3 V I2C. The unit is a bus slave - the host must supply the pull-ups; the board's own 2.2 kOhm parts are on its internal MCU bus, not on the HY2.0 socket.\nCIRCUIT: the servo signal pins are the STM32's timer channels - PA0 TIM2_CH1, PA1 TIM2_CH2, PA2 TIM2_CH3, PA3 TIM2_CH4, PA6 TIM3_CH1, PA7 TIM3_CH2, PB0 TIM3_CH3, PB1 TIM3_CH4 - each with a 1 nF/50 V capacitor on the signal line. Current sensing is an INA199A1DCKR (U3) across a 10 mOhm/1% shunt (R4), read on ADC1_IN4, and the vendor prints the conversion as I = (V / 50 / 10 mOhm) A. Input voltage is divided by R6 100K/1% and R5 1K/1% onto ADC1_IN16. The two status LEDs are RED (DC input present) and GREEN (undervoltage), green driven through R23 10K/1%. The I2C side of the STM32 is PB6/PB7 (the vendor's own design note: PB7 = SDA/RX1, PB6 = SCL/TX1).\nTRAPS: (1) The board's own servo headers and its HY2.0 sockets are different rails: the 5 V on pads 2 and 6 is the bucked servo rail, so a host powering the unit from the Grove socket is back-feeding a 3 A buck output. (2) The IN and OUT sockets are wired in parallel and 0-ohm links decide the topology - R8/R9 = 0 R with R10/R11 = NC for the Unit interface, and the reverse for Chain - so a board built for Chain does not answer I2C the same way. (3) The address encoder has 16 positions and every one of them is a live address; there is no disable position. (4) 9-24 V on the barrel jack is separate from and unrelated to the 5 V on the Grove sockets.
Provenance
Every figure on this page was read from the 4 sources below and last checked on Oct 31, 2026.
- product M5Stack store product page (price 12.95 USD as measured)
- reference M5Stack docs - Unit 8Servos2-I2C (specification, I2C address table 0x25-0x34, HY2.0 colour PinMap)
- reference Schematic SCH_Unit_8Servos2-I2C V0.4 (buck divider R7/R3, INA199 shunt R4, 1 nF servo signal caps, timer channels, R8-R11 topology links)
- datasheet Texas Instruments INA199 data sheet (current-sense amplifier U3)