What is MicroIDE?
MicroIDE is an Integrated Development Environment for micro controllers
- Completely embedded into the firmware
- Full access and control over internal / external files
- Data visualization and Command Terminal emulation
- Simple to add custom modules for rapid development
- Supports ESP32 chips with WiFi (ESP8622 to follow)
- Integrated Web Server (GET & PUT) for read/write
- Accessible from anywhere via Port Forwarding
- Eliminates special software requirements
- Wireless editing of Code via local website
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
- The software is free for Personal (non-Commercial) use
- It may not be distributed without written permission
- All other rights are reserved
- © Ronny Neufeld 2020
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
- Download the firmware binary
- Download the Flash Download Tool
- Connect the Board to the Computer via USB
- Launch the ESP Flash Tool and install the firmware at 0x0000
- Board will boot and start a WiFi hotspot - SSID: microIDE
- Connect to the hotspot and go to http://192.168.4.1
- Edit boot.py to connect your WiFi / disable the hotspot
- Start developing python code
- 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:
- Frozen file.abc.gz bytecode
- Disk file.abc.gz files
- Disk file.abc files
- Disk file.abc.html files
- Wildcard *file.abc*
These files have been compressed (*.gz) and frozen into the firmware as bytecode:
- ace.js
- chart.js
- microIDE.html
- microIDE.css
- microIDE.js
- favicon.svg
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:
The editor screen:
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?