Mongoose Os On Esper/bare Esp32
About the project
There are a lot of sites telling how to use Mongoose OS with pre-made development boards but none focus on the bare ESP32. This post does!
Estimated time: 1 hour
Items used in this project
Recently I’ve got my hands on the craved-for IoT ESP32, thanks to DFRobot, and have been tinkering with it ever since. I’m really amazed by it since it packs both Bluetooth and WiFi in a small yet powerful unit. Since I received the MCU rather than the module, so, to use it, I made myself a breakout board named ESPer(because, why not? 😄). Feel free to check out its Instructable:
So, coming back on track, this post is dedicated on how to use it efficiently via Mongoose OS, which in my opinion, is a great firmware to start with for ESP32 beginners, such as me. It provides a good interface for creating, modifying and uploading code. I think its biggest feature is that it allows code modification over the air(OTA) so that you don’t have to flash your device for every small modification.
If you’re more curious about Mongoose OS, check out its official site: Mongoose OS.
To flash your ESPer with Mongoose OS, you’re supposed to have the following things at bay:
- ESPer or ESP32 MCU.
- Arduino(any model) or a USB to TTL Converter
- 5 - Jumper Wires
- 2 - Breadboards (since ESPer doesn’t fit on one)
That’s all for the requirements. Once you’re sure you’ve got all the stuff, boost ahead!
The Mongoose OS website provides an easy-to-use tool for flashing and managing Mongoose OS on devices. This tool also aids in uploading code and in numerous other tasks.
The installation instructions have been documented on the official website here. Since I’m using Lubuntu myself, I had to use the following commands:
sudo add-apt-repository ppa:mongoose-os/mos sudo apt-get update sudo apt-get install mos
Once the tool is downloaded, wire up your ESPer with any USB to TTL Converter since the flashing is to be done via UART.
To keep things applicable to a larger reader-base, I’ll be proceeding with my good 'ol Arduino UNO. It’s possible to use an Arduino as a USB to TTL Converter since it has an in-built CH340G Converter which the Arduino uses for programming the ATmega IC. Now wire up ESPer according to the wiring diagram posted above. Once done it should look something like this.Be careful while making the power connections because ESP32 MCU is not 5V tolerable therefore you might end up burning your MCU if you’re not careful.
Once that’s done, connect your Arduino to your PC or any other device.
Flashing the Firmware
Now that everything’s done, all that’s left to do is to flash the firmware onto the ESPer board. To do that:
Launch the mos tool. In my case, that is Linux, it is opened by entering in
mos in the terminal. This will open up the mos Web UI in your web browser. In the UI, set the Arduino Serial Port, device as esp32 and an app of your choice. Then click on
Flash. Once the message “All done” pops up in the console. Close the web browser and terminate the
mos command by pressing
Ctrl+C in the terminal.
- After a few moments, the UI will attempt to connect to the device. In this interval, you’ll have to get off from your keyboard to the ESPer board. To connect the device to the UI, we’ll have to make it enter Download Mode. This is done by pressing and holding the Boot button, and then the Reset button. After a second, release the Reset button first and then the Boot button. You’ll see that the UI will have begun the flashing process by then.
This concludes the flashing process.
Configuring the WiFi Settings
So we have flashed the Mongoose OS firmware in our ESPer board now, but we still haven’t configured the WiFi Settings which is the most important feature of IoT devices since they have to be connected to the internet. To configure WiFi:
- Press the Reset button on the ESPer board. Wait for a minute or so to let the MCU boot up.
- Launch the mos tool again and select your Arduino Serial Port. You’ll notice that the UI automatically detects that the Mongoose OS firmware is installed on the device and asks you to enter the WiFi settings.
- Enter the WiFi settings and that’s it.
The Sky’s the Limit
Now that you’ve installed an OS on your ESPer board or ESP32, you can do almost anything with it, be it a mini Arduino or a WiFi server, you name it. So go ahead and start coding and making. The video below shows my ESPer flashed with the Blink Code.The video was recorded before this post was published that is why there is no silkscreen on the ESPer board.
So that’s how you install Mongoose OS on your ESPer board. You may refer to the official documentation to get acquainted with the UI and use it effectively in your projects. This is the link: Mongoose OS Documentation
If you feel that I missed something, please use the comments below to let me know. Same goes for the improvement suggestions.
A huge thanks to DFRobot for sending me awesome stuff.
Thanks for reading! You can support me on Patreon if you liked this post.
Sponsored by DFRobot.com
Thanks to Ashish Choudhary for lending his camera.