This month, I received the M5Stack FIRE development kit with a PLC base kit from Banggood to review (see Fig. 1). After using it, I can affirm that the M5Stack takes an alternative approach to ESP32 prototyping, because the resulting projects are almost simultaneously finished products. This is possible because the board is housed in a stylish and robust hosing with graphics display, buttons, microSD card slot, USB-C port and speakers. I tested the M5Stack FIRE development kit, and the board includes also a MPU6050, MAG63110 (MPU9250 on the new versions), BSE3729 and a PSRAM to extend the ESP32 RAM to 4MB. If you are looking for an option for prototyping with the ESP32, the M5Stack is a great solution!
Fig. 1: M5stack FIRE development kit & PLC module
In this list, I included the products reviewed in this post and some additional interesting modules e.g. a LEGO extension!
M5Stack FIRE development kit
The M5Stack FIRE development kit includes everything that you need to start programming: From a USB-C cable, to an allen key and some 'LEGO' parts to connect to your kid toys (see Fig. 2). The box also includes the M5GO bottom base, which has a LiPo battery inside (550mAh@3.7V) and RBG LEDs. An M5GO base is also included, which has only a USB-C connector. This can be used e.g. to charge the battery, if you do not have the M5GO bottom base connected to the core. The FIRE is the only core that includes a 4MB RAM. The other cores (BASIC, PANDA, GRAY etc.) have only 512KB RAM available (see Fig. 3). If you are planning to use MicroPython, you should choose the FIRE core. All (new) cores include a 16MB flash.
Fig. 2: M5Stack FIRE development kit
The concept is very simple: program the M5stack core and extend its hardware functionalities using the stack up modules, bases or units. For that, the CORE module board includes a female 30 pin connector (M-BUS), in which the modules or bases are connected. Additionally, you can use the port A (see Fig. 4) to connect units using cable. You get only I2C or just I/O pins (also 5V and GND). If you extend the core with the M5GO bottom base, then you get the B and C ports as described in Fig. 4. You should know, that the M5GO bottom base included in this kit is also from the M5GO kit, which allows you to extend the core with sensors from the GROVE system or with multiple units. However, the M5GO bottom base blocks the 30 pin connector, and you cannot use the M-BUS anymore.
Fig. 3: M5stack core comparison
As you can see, there are cores, modules, bases and units. Basically, cores can be programmed. They include the ESP32 microcontroller. Modules, bases and units extend the hardware possibilities. Modules can be stacked. They do not block the M-BUS. Bases close the PVC case and block the M-BUS. Finally, units are connected using cables over the A, B and/or C ports.
Fig. 4: M5Stack FIRE schematics
M5stack PLC kit
The kit includes everything that you need to connect the M5stack to a 24V power source, and mount it then on DIN rail. It also includes a 10cm DIN rail, if you do not have any :). If you check Fig. 5, you see that everything is there. From connectors to wire terminations, screw (2 of them are too short!) etc. It also includes a magnet ring and a small board with two ICs: ACS712-5A and SP3585. Then, you can measure current, and/or connect the ESP32 to a RS485 bus system.
Fig. 5: M5Stack PLC base kit
As I mentioned, the M5Stack takes an alternative approach to ESP32 prototyping. It was very easy to program (more posts are coming) and there are a lot of modules, bases and units available, you can see a list of them here. It is also compatible with MicroPython! The ESP32 documentation helps to start with the different kits and readthedocs and docs are also available. The price of the core kits can be a deciding factor (approx. €50 for the FIRE), but if you consider all the sensors on board, the hosing with graphic display, buttons, microSD card slot, battery, LEDs, microphone and speakers that you get, it is not expensive at all. As you may notice, I am really impressed from the kits and the content of the boxes. You can unpack the product and start programming just by connecting a USB-C cable.