- Notifications
You must be signed in to change notification settings - Fork12
A complete operating system for microcontrollers like the ESP32, inspired by Android and iOS.
License
MicroPythonOS/MicroPythonOS
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This is an operating system for microcontrollers like the ESP32.
It's written entirely in MicroPython, including device drivers, interrupt handlers, boot code, multitasking, display handling.
The architecure is inspired by the Android operating system for smartphones:
- 'thin' operating system with facilities for apps
- 'everything is an app' idea
- making it as simple as possible for developers to build new apps
The operating system comes with a few apps built-in that are necessary to bootstrap:
- launcher: to be able to start apps
- wificonf: to be able to connect to the wifi
- appstore: to be able to download and install new apps
Furthermore, these apps are also built-in for convenience:
- osupdate: to download and install operating system updates
- camera: to take pictures and videos
- imutest: to test the Inertial Measurement Unit (accelerometer)
- boot.py: initializes the hardware
- main.py: initializes the User Interface, contains helper functions for apps, and starts the launcher app
- /apps: new apps are downloaded and installed here
- /apps/com.example.app1: example app1 installation directory
- /apps/com.example.app1/MANIFEST.MF: info about app1 such as Name, Start-Script
- /apps/com.example.app1/mipmap-mdpi: medium dpi images for app1
- /apps/com.example.app1/mipmap-mdpi/icon_64x64.bin: icon for app1 (64x64 pixels)
- /builtin/: read-only filesystem that's compiled in and mounted at boot by main.py
- /builtin/apps: apps that are builtin and necessary for minimal facilities (launcher, wificonf, appstore etc)
- /builtin/res/mipmap-mdpi/default_icon_64x64.bin: default icon for apps that don't have one
Prepare all the sources:
mkdir ~/sources/cd ~/sources/git clone https://github.com/MicroPythonOS/MicroPythonOS.gitgit clone https://github.com/bixb922/freezeFS~/sources/MicroPythonOS/scripts/freezefs_mount_builtin.shgit clone https://github.com/cnadler86/micropython-camera-APIecho 'include("~/sources/lvgl_micropython/build/manifest.py")' >> micropython-camera-API/src/manifest.pygit clone https://github.com/lvgl-micropython/lvgl_micropythoncp ~/sources/MicroPythonOS/patches/lv_conf.h lvgl_micropython/lib/cd lvgl_micropython/lib/micropythonpatch -p1 < ~/sources/MicroPythonOS/patches/lvgl_micropython*.patchStart the build:
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.shOr if you want to build for development, so without any preinstalled files, do:
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh devbuildNow install it with:
~/sources/MicroPythonOS/scripts/flash_over_usb.shIf you made a 'devbuild', then you probably want to install all files and apps manually:
~/sources/MicroPythonOS/scripts/install.sh- Make sure CURRENT_OS_VERSION in main.py is incremented
- Make sure version numbers of apps that have been changed are incremented:git diff --stat 0.0.4git diff 0.0.4 -- internal_filesystem/apps//META-INF/git diff 0.0.4 -- internal_filesystem/builtin/apps//META-INF/
- Update CHANGELOG
- commit and push all code
- tag MicroPythonOS and external apps like LightningPiggy
- ./scripts/bundle_apps.sh
- ./scripts/build_lvgl_micropython.sh esp32 prod
- copy_apps_to_server.sh
- copy_build_to_server.sh
- copy ~/sources/lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin to webinstaller
- update manifest of webinstaller
- push webinstaller
Building to run as an app on the Linux desktop or MacOS (untested) is supported.
To do so, make sure you have the necessary dependencies:
- seehttps://github.com/lvgl-micropython/
- sudo apt install libv4l-dev # for webcam.c
...and then run:
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh unixor
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh macOSThen to run it, do:
./scripts/run_desktop.shAbout
A complete operating system for microcontrollers like the ESP32, inspired by Android and iOS.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Contributors2
Uh oh!
There was an error while loading.Please reload this page.