Regular price $25.90

79 In Stock

Standard Shipping Estimated Delivery Time: 7-20 days

BaseX is a special base compatible with LEGO EV3 motor. The structure design is similar to base26, supporting multiple ways of fixation, and an additional LEGO connection base is provided. When building the LEGO structure, Basex can be easily embedded in the work. Basex can be connected to 4-way (RJ11) LEGO motor at the same time, supporting angle / speed reading and control, and perfectly compatible with the original motor functions. In addition, the base provides two servo interfaces, which can directly control the rotation angle of the servo.There is a motherboard PDM microphone for sound collection. In order to adapt to different use scenarios, a UART interface (16 / 17) and a GPIO interface (26 / 36) are provided to make access to various sensors more flexible. A 900mah battery is built in the base, which can be charged through the usb-c interface of m5core to extend the endurance. In order to improve the driving ability of the interface, the base is equipped with a DC power socket, which can be powered by an external 9-12v power supply to provide a stable power supply for the motor.


  • 4-way RJ11 LEGO motor interface (total maximum output current 2A)
  • 2-way servo interface (total maximum output current 2A)
  • 1-way UART
  • 1-way GPIO
  • On board PDM microphone (GOIO 34)
  • On board DC-DC conversion (9 ~ 12V,independent power supply for the motor only)
  • Built in 900mAh battery
  • Multiple fixing methods / LEGO hole connection support

Size and Weight

  • Size:54mm * 54mm * 32mm
  • Weight:64g


  • Encoder motor / servo controller
  • LEGO DIY intelligent control


  • 1x BaseX
  • 1x LEGO base
  • 2x M3 * 5mm 304 Stainless steel hexagon socket bolt
  • 2x M3 * 32mm 304 Stainless steel hexagon socket bolt
  • 1x M3 wrench

I2C Control instructions

I2C Slave address: 0x22

Function Register address Value
SERVO2_ANGLE_ADDR 0x01 0~180
SERVO1_PULSE_ADDR 0x10 (uint16_t) 500~2500
SERVO2_PULSE_ADDR 0x12 (uint16_t)500~2500
MOTOR1_PWM_DUTY_ADDR 0x20 -127~127
MOTOR2_PWM_DUTY_ADDR 0x21 -127~127
MOTOR3_PWM_DUTY_ADDR 0x22 -127~127
MOTOR4_PWM_DUTY_ADDR 0x23 -127~127
MOTOR1_ENCODER_ADDR 0x30 int32_t
MOTOR2_ENCODER_ADDR 0x34 int32_t
MOTOR3_ENCODER_ADDR 0x38 int32_t
MOTOR1_SPEED_ADDR 0x40 -127~127
MOTOR2_SPEED_ADDR 0x41 -127~127
MOTOR3_SPEED_ADDR 0x42 -127~127
MOTOR4_SPEED_ADDR 0x43 -127~127

I2C Motor address:

Motor number Motor Address
MOTOR1 0x50
MOTOR2 0x60
MOTOR3 0x70
MOTOR4 0x80

Mode config method: Motor address + nByte

Byte Value
0 Run mode
1 position-p(3)
2 position-i(1)
3 position-d(15)
4|5|6|7 position-point(Low effective)
8 position-max-speed
9 speed-p
10 speed-i
11 speed-d
12 speed-point
Motor run mode Value
Normal 0X00
Position 0x01



1. Arduino IDE

To get complete code, please click here

Customer Reviews

Based on 1 review
Much more motor control functionality offered in UIFlow than the LEGO+ module

The module is supported by UIFlow and allow LEGO motors to be controlled in SPEED-OPEN-LOOP (they called it "Normal" which is a wrong and misleading name as the control just apply a given PWN duty cycle (0..100%), SPEED-CLOSED-LOOP and POSITION-CLOSED-LOOP control modes, that is a huge advantage compared to LEGO+ module whose fumcionality is limited to SPEED-OPEN-LOOP and trying to implement a hard-time PID closed loop algorithm in micro-Python is very difficul if not impossible (timer jittering is too high and control sysetm and PID knowledge and PID tunning would be necessary. On the other side a big disadvantage compared to the LEGO+ and SERVO modules is that the external 9-12V supply primary intented for the motors DOES NOT CHARGE THE BATTERY, altough they did properly stated that in the documentation, it is really a pain in the a** having to supply also the 5V via USB-C connector i.e for automation applications that need to run 24/7. That is the primary reason i give only 4 starts. Nevertheless one additional negative point is that the long fixation screws when stacking multiple modules never fits my needs; i have stacked BaseX + Communication module + M5 Fire (red) one one case [and Base = Servo + Communcation module + M5 Core (gray)] and the provided screws are never long enough, not even those from the M5 Stack screw kit.