MicroIDE: The embedded code editor

MicroIDE

The embedded code editor

What is MicroIDE?

MicroIDE is an Integrated Development Environment for micro controllers

MicroIDE is currently in Beta

TODO:

  • Documentation & Accessibility
  • Video Tutorials
  • Standardization of plug & play modules
  • ESP8622 support
  • Improvement of Visuals
  • Drag & Drop file uploads
  • Code Clean-up

Feedback and suggestions are greatly appreciated


MicroIDE is Free

Why not open source? Cause this is my first time sharing anything on the internet - babysteps...
Source is now open! setup.py for putting it on any ESP32 (uncompiled) - Web elemets seperate
If you want to pre-compile it into your firmware use this file - it has all web elements incldued
If you want it without the static webfiles this file will work - add your own with the sub_pack.py script

Easy to install

  1. Download the firmware binary
  2. Download the Flash Download Tool
  3. Connect the Board to the Computer via USB
  4. Launch the ESP Flash Tool and install the firmware at 0x0000
  5. Board will boot and start a WiFi hotspot - SSID: microIDE
  6. Connect to the hotspot and go to http://192.168.4.1
  7. Edit boot.py to connect your WiFi / disable the hotspot
  8. Start developing python code
  9. When ready - simply comment out microIDE in boot.py
MicroIDE can be installed on any ESP32 based board. The underlying language is Micropython v1.12

MicroIDE Documentation

Work in Progress - keep asking questions!
The entire interface was build without using a framework to save space, formatting never was my strong suite.
The firmware will open index.html if it is available. If the index does not exist it will redirect to x.x.x.x/microIDE.html
Files are prioritized for file.abc as follows:
  1. Frozen file.abc.gz bytecode
  2. Disk file.abc.gz files
  3. Disk file.abc files
  4. Disk file.abc.html files
  5. Wildcard *file.abc*
These files have been compressed (*.gz) and frozen into the firmware as bytecode: No need to append .gz

The terminal feature uses os.dupterm(index=1) to save all output to an internal ioStream.
WebREPL was still usable (port != 80)

The chart looks for commas in the terminal stream.
Text gets interpreted as labels / Numbers as data.
First collumn is x-axis, Remainder as y-axis

The current time is send to the chip via the xhr request header. It will always increase the time to mach a timestame (but never decrease)
Time is persistent as long as the esp32 has power and is not reset externaly

Note: If the file system corrupts (e.g. power loss during write), micropython's inisetup.fs_corrupted() will launch microIDE and a hotspot.

MicroIDE Interface

The default screen:
Default window

The editor screen:
Editor with main.py open

MicroIDE boards

The firmware works on any esp32 board

Specialized boards are still in the prototype phase

Main purpose is the voltage tolerance and Arduino shield compatibility

Features:

  • Arduino UNO R3 Form factor
  • 5V/12V Tolerant set by IOREF
  • AREF is set by DAC and op amp current supplied
  • Built in SD card & LiPo charging circuit
  • OLED Header for display output
  • Firmware preloaded
  • Plug and Play Arduino shield modules

I'm developing this as i go... any feedback for better ways is welcome


MicroIDE tutorials

TODO: List of tutorials:

These will be a single .pdf file with copy/paste code for tweaking

Planned:

  • "Hello world"
  • Blink
  • ADC / DAC
  • I2C Modules
  • OLED
  • ESP32-CAM capture
  • HTTP IoT

Any suggestions for more pre-made tutorials?

Donations and Support are always welcome
Website designed using w3.css