Product Basics & General Information



  • I have been looking out for a system for controlling several servos on my miniature railway. I found the 'M5 Servo Controller' advertised by Banggood and looking at the description it seemed as though it might be suitable. I looked at the M5 website to get more information and although there is lots on the individual modules, etc. I have not been able to find any basic information on the M5 system and what it can and can't do, e.g. it would seem it has to be connected to an Arduino processor?

    I am not particularly software literate but have done some very basic Arduino programming but the M5 seems to be very complicated, e.g. having to use ‘Easyloader’, and download CP210x and follow very complex programming instructions, etc. Also, I can’t find any information on how to connect the M5 Servo Controller to either an Arduino or a PC to facilitate programming for getting it to control my servos.

    Is there any very basic information available which would allow a novice to be able to understand what the M5 System is, what it can and cannot do, and guide me with very simple instructions as to how I could use the product/system to simply allow me to have 12 buttons each of which commanded a servo to move in a pre-programmed way?



  • The M5Stack, M5Stick and M5Atom are stand alone programmable cores and can be used with M5Stacks UIFlow Programming enviroment which is a visual programming system that uses building blocks.


  • M5Stack

    @steamysteve the EasyLoader just a simple tool. it can help user fast to upload firmware. it not complex. M5Stack can use Arduino IDE to programing.

    if you want use Arduino IDE to programing M5Stack, maybe below tutorial can help you to setup.

    link: https://docs.m5stack.com/#/en/arduino/arduino_development


  • M5Stack

    Hi @Steamysteve you can check out this video to see how you would control servos with the M5Stack core https://www.youtube.com/watch?v=pm3xhhnIi5M&t=33s easyloader is only necessary if you want to flash a demo program. It is necessary to install cp210x if you want to program the device over usb but not if you are only going to program over wifi using the uiflow website. The M5Stack core takes the place of the Arduino, you do not need an arduino if you have an M5Stack core, recommended to get the gray or basic core if you are already used to using jumper wires to connect things. Hope that clears a few things up, any more questions feel free to ask



  • m5stack and lukasmaximus. Thanks for your responses. I have followed the instructions from the link and hopefully have loaded everything required, including the CP210 x64 Driver but ‘lukasmaximus’ suggests I might not need it. There was one point where I had to put my thinking cap on – at point 5. There are options for M5Core and M5Stick, M5StickC, Atom Matrix/Lite, and then in larger type ‘M5Stack Library’. After this there are options for M5Core and M5Stick, M5Stick-C, etc. but as the M5Core section called for selecting M5Stack I searched for that and installed it.
    I followed the page on: https://docs.m5stack.com/#/en/quick_start/m5core/m5stack_core_get_started_Arduino_Windows?id=1-click-windows-zip-file-for-non-admin-install-to-download-arduino-ide and loaded the Example – ‘Factory Test’ (although it might not be of much use if I don’t have the right display shield). It seemed to compile OK but when I uploaded it I got the message:
    Arduino: 1.8.12 (Windows 10), Board: "M5Stack-Core-ESP32, QIO, 80MHz, Default, 921600, None"
    Sketch uses 954114 bytes (72%) of program storage space. Maximum is 1310720 bytes.
    Global variables use 40936 bytes (12%) of dynamic memory, leaving 286744 bytes for local variables. Maximum is 327680 bytes.
    esptool.py v2.6
    Serial port COM5
    Connecting........
    ........................._.....____An error occurred while uploading the sketch
    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.
    I followed this latter suggestion and the Fatal Error re-occurred with 40 pages of error messages none of which help me! I am now at a loss as to how to proceed – HELP!!!
    Lukasmaximus, you suggest there are alternative ways to communicate with the Servo module. I have not been able to find any information yet on the architecture for connecting to the M5Stack system. Assuming I can get the Arduino to work, where do I find info on how to connect it to the M5 Servo Driver Module. I see six pins in the side of the module which aren’t for servos but have not yet found which does what. Another point, there is some different info on what voltage should be connected to the Module. I see the Banggood advert shows ‘6-24V’ then specifies ‘5-7.2V’. The M5Stack website spec. for the Servo Module quotes ‘6-12V’! Any help would be much appreciated. Thanks.


  • M5Stack

    @steamysteve try to remove the battery bottom or set low the baud to 115200 then upload the program again. about the servo module input valtage we suggest you use " 5-7.2V", this does not mean that you cannot use other voltage values, just that the work may be more stable in this range



  • @m5stack. Thanks. I am able to do is connect my Arduino Uno to my PC and attempt to upload a program. I have tried reducing the speed to 115200 and the upload still failed.
    Even if I had been able to successfully upload a program I have still have not been able to find any information on how to connect the Arduino to the Servo Module (I can see there is an ISP port but with no information anywhere on how it connects to an Arduino).
    Thank you for your help but because there is a total lack of basic guidance for the novice user I have decided to abandon the idea of using M5Stack and will seek another way of achieving control of my servos.


  • M5Stack

    @steamysteve sorry, we don't know you are using the Arduino Uno. you should find some fit Arduino Uno setup tutorial and learn how to setup. thi also. the servo module is use I2C communicate protocol. so you can connect the G21/22 PIN to your Arduino Device. then refer our provided Arduino Example code(for ESP32) to programing your Arduino Uno.



  • @m5stack Thanks. If the other solution I am looking at does not work out I will do as you suggest. Thanks again.