Introduction: Wroombian

Have you ever wanted to work with a real operating system on a microcontroller? Or even tried to develop your own? That's why I'm here!

Wroombian is an attempt to create a working operating system for the ESP-WROOM-32 microcontroller. It is based on slightly modified Micropython and LoBo Micropython firmwares and allows you to create different sorts of projects for various purposes.

Basicly it allows you to create, maintain and run any python script that the device can handle. So you can create as many programs as the memory allows you and run some of them when you need. Or even two of them simultaneously, create a bash script to run them in some sequence and control the whole system over the internet!

And this is not the whole list of features. Wrombian will allow you to create different sort of projects, no matter is it a remote light switch, revolutionary IoT invention or some portable games collection!

Go to our wiki page to learn more about Wroombian!

Supplies

ESP32 development board, PC, usb micro cable

Step 1: Installing Firmware

First of all, download or clone our repository to your computer: https://github.com/Isopodus/Wroombian

To prepare your ESP32 for work you need to erase board flash memory and upload the firmware using flash.sh script:

1. Install Python

2. Install esptool via pip command:

pip install esptool

3. Flash your board:

- Linux

Download or clone repository folder, open /firmware/flash.sh, change FLASH_COMPORT value to your ESP32 port (e.g. /dev/ttyUSB0). Then in terminal type:

./firmware/flash.sh

- Windows

Install Git for Windows, download or clone repository folder, open /firmware/flash.sh, change FLASH_COMPORT value to your ESP32 port (e.g. COM1).

Then in Git bash type:

./firmware/flash.sh

OR

Go to firmware folder and run commands manually (will work for Linux too, do not forget to type in a valid serial port):

esptool --port COM1 erase_flash

esptool --chip esp32 --port COM1 --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader/bootloader.bin 0xf000 phy_init_data.bin 0x10000 MicroPython.bin 0x8000 partitions_mpy.bin 0x8000 partitions_mpy.bin

Done! Now you can go to the next step!

Step 2: Uploading System Files

To make Wroombian work we need to load all the system files to its flash memory. You can use Thonny IDE (or any other Micropython IDE you want) for this.

Download and install Thonny, launch it, then head to Tools > Options > Interpreter and select your board from the devices list. Open the downloaded/cloned project directory in the editor. You should then get the message in the bottom REPL shell similar to the one on the image #1. If you see some errors or strange text – try reloading Thonny with Ctrl + F2 few times until the problem is gone.

Then go to project flash directory (in 'This computer' window), and upload all files and folders one by one (as on the image #2). They should appear on the upper device files window.

Step 3: Start Creating a Better World!

You can use serial, telnet or FTP to connect to the board, so lets use serial connection for the first startup. Download and install Putty, open it, choose Serial conection as its shown on the image, type in your serial port and set 115200 baudrate. Then open the connection!

Wroombian has a quite well described wiki page you can refer to if you have any configuration problems or when creating your own project. Feel free to ask your questions in the Issues section!

The 'help' command will show you all the available commands and their usage.

You can start your journey by running our prewritten blink script like this:

run home/blink.py

And watch your onboard LED blink!

Thanks for the attention! Please visit our github repo to get more information: https://github.com/Isopodus/Wroombian