diff --git a/README.md b/README.md index 477a6eca..429f7147 100644 --- a/README.md +++ b/README.md @@ -10,25 +10,37 @@ The architecure is inspired by the Android operating system for smartphones: - 'everything is an app' idea - making it as simple as possible for developers to build new apps +## Installation + +See https://install.MicroPythonOS.com + ## 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) + +Other apps are available in the AppStore. + +See https://apps.MicroPythonOS.com/ ## Supported hardware -- https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-2 +### ESP32 computers +- 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 -- 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 ## 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/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 +- /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 Prepare all the sources: ``` -mkdir ~/sources/ -cd ~/sources/ +mkdir ~/MicroPythonOS +cd ~/MicroPythonOS 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 git clone https://github.com/cnadler86/micropython-camera-API echo 'include("~/sources/lvgl_micropython/build/manifest.py")' >> micropython-camera-API/src/manifest.py -git clone https://github.com/lvgl-micropython/lvgl_micropython -cp ~/sources/MicroPythonOS/patches/lv_conf.h lvgl_micropython/lib/ +git clone https://github.com/MicroPythonOS/lvgl_micropython -cd lvgl_micropython/lib/micropython -patch -p1 < ~/sources/MicroPythonOS/patches/lvgl_micropython*.patch +git clone https://github.com/MicroPythonOS/secp256k1-embedded-ecdh ``` -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: ``` -~/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: ``` -~/sources/MicroPythonOS/scripts/install.sh +./scripts/install.sh ``` Release checklist @@ -111,19 +130,22 @@ Building for desktop 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: -- see https://github.com/lvgl-micropython/ +- see https://github.com/MicroPythonOS/lvgl-micropython/ - sudo apt install libv4l-dev # for webcam.c ...and then run: ``` -~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh unix +cd ~/projects/MicroPythonOS/MicroPythonOS/ + +``` +./scripts/build_lvgl_micropython.sh unix dev ``` or ``` -~/sources/MicroPythonOS/scripts/build_lvgl_micropython.sh macOS +./scripts/build_lvgl_micropython.sh macOS dev ``` Then to run it, do: