Goplus dc motor driver

  • 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.

  • M5Stack

    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.