Goplus dc motor driver

  • Hi

    I've just ordered the new goplus module. In the docs it says it can control 2x dc motors which is great as I want to use it to control a 5v dc blower fan. Is this a valid use case?

    My current approach for controlling the fan has been to use either a relay module (slow infrequent switching I.e on off with delay) or a grove mosfet module (higher frequency pwm)

    Can I remove the relays and mosfets now and use the onboard controllers to control the fan?

    Is there any code for this module with comments that actually tells me whst the code is doing? Ive worked out bits and pieces but it would be nice if the code examples had a bit more info in them.



  • Unfortunately the module is so new that not many of us have got it. but from the LV8548 datasheet the motor driver can only output 20v @ 1amp max so as long as your blower falls within the specifications of the motor driver then you should be ok.
    Please not that you will also need an external power supply for the goplus in order to drive the loads.

  • Thanks.

    Powering the blower fan was my next question.

    Right now when I use the mosfet module my fan is powered separately and isolated from the m5 stack. I use those cheap usb power banks the size of a big pen.



  • what is the fan?

  • Hi

    Yeah it's a 5V blower. Doubt it will be more then 0.5A so should be good here

    You mentioned I will need to power my m5stack externally? Why can't I use one of the bases that has a battery?

    Or do you mean I need to provide separate power to the go plus module itself via the onboard servo power input. If that's the case then it's not that different to providing separate power to fan and using relay or mosfet.

    Anyway it usually takes a week to get to Australia so hopefully I can play with it next week



  • Yes, a separate supply to the gobase for the motors.
    That is the best way to think of it.

    It is wise to provide a separate power supply as trying to draw from the M5Stack own internal supply could damage the device. I'm getting a collection of custom leads now for powering things from a various power supplies.
    I have USB > Grove (for neopixels)
    Lego PF to XT30 for powering the lego module,
    Barrel jack to XT30 for connecting modules to the workshops lab power supply.

  • My goplus arrived yesterday so I'm going to have a play with it over the weekend.

    However I have a question regarding the two dc motor outputs. What physical connection do these use? From the pic I thought they were 2 pin jst but I just tried connecting up a dc blower fan that uses 2pin jst and it wouldn't fit.

    Also regarding the xt30u input for power it says 9v to 24v however I'm not planning on using anything larger then 5v. Is this an issue. In this case I plan on just powering the dc motors with a 5v usb power bank.



  • @rob-biernat I don't have one so I cant guess but there are several different versions of the 2pin JST. In what way does it not fit and can you provide photos of the connections?

  • My blower fan uses what I think is jst ph series which has a 2mm pitch.

    It seems like it's a fraction too large for the m5 stack though.

    Surely someone on this forum knows the specifics?

  • @rob-biernat Normally the fans connections are using the 2.54mm JST PH spacing which would explain the issues.

  • Ok no probs. For now I have stuff going with a jumper wire hack but I can buy some proper jst cables tommorow.

    Is the person who wrote the go plus firmware and sample code on this forum? I can understand most of the code but since the code is not documented and not included in the m5 stack arduino library I need some help understanding the messages that get sent out on the i2c bus and what they do.

  • @rob-biernat Looks like he is but he is not active.
    @zhouyang can you help?

  • Ok so I have the dc motor controller working but when will the sample code be cleaned up and documented. At the moment it's a bit rough with lots of magic numbers scattered through the code. Ideally a proper api

  • Any updates from the bloke who wrote the code?

  • Anything from the programmer?

  • @rob-biernat said in Goplus dc motor driver:

    Anything from the programmer?

    Nope, still waiting.

  • Is this the code in question?

    #include <Arduino.h>
    #include <M5Stack.h>
    #define IrPin 13
    #define PLUS_ADDR 0x62
    int32_t number = 0;
    uint8_t press = 0;
    void setup() {
        M5.begin(true, false, false);
        M5.Lcd.setTextColor(ORANGE, BLACK);
        ledcSetup(1, 38000, 10);
        ledcAttachPin(IrPin, 1);
    void plus_encode() {
        Wire.requestFrom(PLUS_ADDR, 2);
        while(Wire.available()) {
            int8_t encode =;
            uint8_t press_n =;
            number += encode;
            if(press_n == 0xff) {
                press = 0;
            else {
                press = 1;
    void loop() {
        char data[20];
        ledcWrite(1, ledcRead(1) ? 0 : 512);
        sprintf(data, "%d  %d        ", number, press);
        M5.Lcd.setCursor(100, 100);

    I have a feeling the engineer who wrote the code may no longer work at M5Stack but i'll make an enquiry.

  • Ok given the bloke who wrote the code has left can someone please at least document the i2c messages?