You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
Update README.md
This commit is contained in:
@@ -10,25 +10,37 @@ The architecure is inspired by the Android operating system for smartphones:
|
|||||||
- 'everything is an app' idea
|
- 'everything is an app' idea
|
||||||
- making it as simple as possible for developers to build new apps
|
- making it as simple as possible for developers to build new apps
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
See https://install.MicroPythonOS.com
|
||||||
|
|
||||||
## Apps
|
## Apps
|
||||||
|
|
||||||
The operating system comes with a few apps built-in that are necessary to bootstrap:
|
The operating system comes with a few apps built-in that are necessary to bootstrap:
|
||||||
- launcher: to be able to start apps
|
- launcher: to be able to start apps
|
||||||
- wificonf: to be able to connect to the wifi
|
- wificonf: to be able to connect to the wifi
|
||||||
- appstore: to be able to download and install new apps
|
- 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
|
- osupdate: to download and install operating system updates
|
||||||
- camera: to take pictures and videos
|
|
||||||
- imutest: to test the Inertial Measurement Unit (accelerometer)
|
Other apps are available in the AppStore.
|
||||||
|
|
||||||
|
See https://apps.MicroPythonOS.com/
|
||||||
|
|
||||||
## Supported hardware
|
## Supported hardware
|
||||||
|
|
||||||
|
### ESP32 computers
|
||||||
- https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-2
|
- https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-2
|
||||||
|
|
||||||
|
### Desktop computers
|
||||||
|
- Linux desktop (uses SDL)
|
||||||
|
- MacOS should work. Untested.
|
||||||
|
|
||||||
|
### Raspberry Pi
|
||||||
|
- Should work, especially if it's running a Linux desktop like Raspbian. Untested.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
- boot.py: initializes the hardware
|
- boot.py: initializes the hardware on ESP32 / boot_unix.py: initializes the hardware on linux desktop
|
||||||
- main.py: initializes the User Interface, contains helper functions for apps, and starts the launcher app
|
- main.py: initializes the User Interface, contains helper functions for apps, and starts the launcher app
|
||||||
|
|
||||||
## Filesystem layout:
|
## Filesystem layout:
|
||||||
@@ -41,52 +53,59 @@ Furthermore, these apps are also built-in for convenience:
|
|||||||
- /builtin/: read-only filesystem that's compiled in and mounted at boot by main.py
|
- /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/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
|
- /builtin/res/mipmap-mdpi/default_icon_64x64.bin: default icon for apps that don't have one
|
||||||
|
- /data/: place where apps store their data
|
||||||
|
- /data/images/: place where apps (like the camera) store their images
|
||||||
|
- /data/com.example.app1/: storage (usually config.json) specific to com.example.app1
|
||||||
|
|
||||||
# Building
|
# Building
|
||||||
|
|
||||||
Prepare all the sources:
|
Prepare all the sources:
|
||||||
|
|
||||||
```
|
```
|
||||||
mkdir ~/sources/
|
mkdir ~/MicroPythonOS
|
||||||
cd ~/sources/
|
cd ~/MicroPythonOS
|
||||||
|
|
||||||
git clone https://github.com/MicroPythonOS/MicroPythonOS.git
|
git clone https://github.com/MicroPythonOS/MicroPythonOS.git
|
||||||
|
|
||||||
git clone https://github.com/bixb922/freezeFS
|
git clone https://github.com/MicroPythonOS/freezeFS
|
||||||
~/sources/MicroPythonOS/scripts/freezefs_mount_builtin.sh
|
~/sources/MicroPythonOS/scripts/freezefs_mount_builtin.sh
|
||||||
|
|
||||||
git clone https://github.com/cnadler86/micropython-camera-API
|
git clone https://github.com/cnadler86/micropython-camera-API
|
||||||
echo 'include("~/sources/lvgl_micropython/build/manifest.py")' >> micropython-camera-API/src/manifest.py
|
echo 'include("~/sources/lvgl_micropython/build/manifest.py")' >> micropython-camera-API/src/manifest.py
|
||||||
|
|
||||||
git clone https://github.com/lvgl-micropython/lvgl_micropython
|
git clone https://github.com/MicroPythonOS/lvgl_micropython
|
||||||
cp ~/sources/MicroPythonOS/patches/lv_conf.h lvgl_micropython/lib/
|
|
||||||
|
|
||||||
cd lvgl_micropython/lib/micropython
|
git clone https://github.com/MicroPythonOS/secp256k1-embedded-ecdh
|
||||||
patch -p1 < ~/sources/MicroPythonOS/patches/lvgl_micropython*.patch
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Start the build:
|
|
||||||
|
Start the build for ESP32:
|
||||||
|
|
||||||
```
|
```
|
||||||
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh
|
cd ~/projects/MicroPythonOS/MicroPythonOS
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
./scripts/build_lvgl_micropython.sh esp32 prod
|
||||||
```
|
```
|
||||||
|
|
||||||
Or if you want to build for development, so without any preinstalled files, do:
|
Or if you want to build for development, so without any preinstalled files, do:
|
||||||
|
|
||||||
```
|
```
|
||||||
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh devbuild
|
./scripts/build_lvgl_micropython.sh esp32 dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Now install it with:
|
Now make sure your ESP32 is in bootloader mode (long-press the BOOT button if you're already running MicroPythonOS) and install it with:
|
||||||
|
|
||||||
```
|
```
|
||||||
~/sources/MicroPythonOS/scripts/flash_over_usb.sh
|
./scripts/flash_over_usb.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
If you made a 'devbuild', then you probably want to install all files and apps manually:
|
If you made a 'devbuild', then you probably want to install all files and apps manually:
|
||||||
|
|
||||||
```
|
```
|
||||||
~/sources/MicroPythonOS/scripts/install.sh
|
./scripts/install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Release checklist
|
Release checklist
|
||||||
@@ -111,19 +130,22 @@ Building for desktop
|
|||||||
Building to run as an app on the Linux desktop or MacOS (untested) is supported.
|
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:
|
To do so, make sure you have the necessary dependencies:
|
||||||
- see https://github.com/lvgl-micropython/
|
- see https://github.com/MicroPythonOS/lvgl-micropython/
|
||||||
- sudo apt install libv4l-dev # for webcam.c
|
- sudo apt install libv4l-dev # for webcam.c
|
||||||
|
|
||||||
...and then run:
|
...and then run:
|
||||||
|
|
||||||
```
|
```
|
||||||
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh unix
|
cd ~/projects/MicroPythonOS/MicroPythonOS/
|
||||||
|
|
||||||
|
```
|
||||||
|
./scripts/build_lvgl_micropython.sh unix dev
|
||||||
```
|
```
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
```
|
```
|
||||||
~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh macOS
|
./scripts/build_lvgl_micropython.sh macOS dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Then to run it, do:
|
Then to run it, do:
|
||||||
|
|||||||
Reference in New Issue
Block a user