Skip to content

Commit 7a10f8a

Browse files
Merge branch 'main' into feat/add_expander_indev
2 parents 3cd5a6c + 4d05e0f commit 7a10f8a

184 files changed

Lines changed: 15540 additions & 1653 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# see https://editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_style = space
6+
indent_size = 4
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.py]
13+
max_line_length = 119
14+
15+
[{Makefile,**.mk}]
16+
indent_style = tab
17+
insert_final_newline = false
18+
19+
[{*.yaml,*.yml,*.json}]
20+
indent_size = 2

.github/workflows/linux-arm64.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,10 @@ jobs:
8282
- name: Run syntax tests on unix
8383
run: |
8484
./tests/syntax.sh
85-
continue-on-error: true
8685
8786
- name: Run unit tests on unix
8887
run: |
8988
./tests/unittest.sh
90-
continue-on-error: true
9189
9290
9391
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: Build LVGL MicroPython on Linux for special boards like esp32-small, unphone,...
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
workflow_dispatch: # allow manual workflow starts
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-24.04
15+
16+
steps:
17+
- name: Checkout repository with submodules
18+
uses: actions/checkout@v4
19+
with:
20+
submodules: recursive
21+
22+
- name: Install lvgl_micropython dependencies
23+
run: |
24+
sudo apt-get update
25+
sudo apt-get install -y \
26+
build-essential \
27+
libffi-dev \
28+
pkg-config \
29+
cmake \
30+
ninja-build \
31+
gnome-desktop-testing \
32+
libasound2-dev \
33+
libpulse-dev \
34+
libaudio-dev \
35+
libjack-dev \
36+
libsndio-dev \
37+
libx11-dev \
38+
libxext-dev \
39+
libxrandr-dev \
40+
libxcursor-dev \
41+
libxfixes-dev \
42+
libxi-dev \
43+
libxss-dev \
44+
libxkbcommon-dev \
45+
libdrm-dev \
46+
libgbm-dev \
47+
libgl1-mesa-dev \
48+
libgles2-mesa-dev \
49+
libegl1-mesa-dev \
50+
libdbus-1-dev \
51+
libibus-1.0-dev \
52+
libudev-dev \
53+
fcitx-libs-dev \
54+
libpipewire-0.3-dev \
55+
libwayland-dev \
56+
libdecor-0-dev
57+
58+
- name: Install additional MicroPythonOS dependencies
59+
run: |
60+
sudo apt-get update
61+
sudo apt-get install -y libv4l-dev
62+
63+
- name: Extract OS version
64+
id: version
65+
run: |
66+
OS_VERSION=$(grep "release = " internal_filesystem/lib/mpos/build_info.py | cut -d "=" -f 2 | cut -d "#" -f 1 | tr -d " " | tr -d '"')
67+
echo "OS_VERSION=$OS_VERSION" >> $GITHUB_OUTPUT
68+
echo "Extracted version: $OS_VERSION"
69+
70+
- name: Build LVGL MicroPython esp32-small
71+
run: |
72+
./scripts/build_mpos.sh esp32-small
73+
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC-4.bin lvgl_micropython/build/MicroPythonOS_esp32-small_${{ steps.version.outputs.OS_VERSION }}.bin
74+
mv lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC/micropython.bin lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC/MicroPythonOS_esp32-small_${{ steps.version.outputs.OS_VERSION }}.ota
75+
76+
- name: Upload built binary as artifact
77+
uses: actions/upload-artifact@v4
78+
with:
79+
name: MicroPythonOS_esp32-small_${{ steps.version.outputs.OS_VERSION }}.bin
80+
path: lvgl_micropython/build/MicroPythonOS_esp32-small_${{ steps.version.outputs.OS_VERSION }}.bin
81+
retention-days: 7
82+
83+
- name: Upload built binary as artifact
84+
uses: actions/upload-artifact@v4
85+
with:
86+
name: MicroPythonOS_esp32-small_${{ steps.version.outputs.OS_VERSION }}.ota
87+
path: lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC/MicroPythonOS_esp32-small_${{ steps.version.outputs.OS_VERSION }}.ota
88+
retention-days: 7
89+
90+
- name: Build LVGL MicroPython unphone
91+
run: |
92+
./scripts/build_mpos.sh unphone
93+
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-8.bin lvgl_micropython/build/MicroPythonOS_esp32s3-unphone_${{ steps.version.outputs.OS_VERSION }}.bin
94+
mv lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/micropython.bin lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/MicroPythonOS_esp32s3-unphone_${{ steps.version.outputs.OS_VERSION }}.ota
95+
96+
- name: Upload built binary as artifact
97+
uses: actions/upload-artifact@v4
98+
with:
99+
name: MicroPythonOS_esp32s3-unphone_${{ steps.version.outputs.OS_VERSION }}.bin
100+
path: lvgl_micropython/build/MicroPythonOS_esp32s3-unphone_${{ steps.version.outputs.OS_VERSION }}.bin
101+
retention-days: 7
102+
103+
- name: Upload built binary as artifact
104+
uses: actions/upload-artifact@v4
105+
with:
106+
name: MicroPythonOS_esp32s3-unphone_${{ steps.version.outputs.OS_VERSION }}.ota
107+
path: lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/MicroPythonOS_esp32s3-unphone_${{ steps.version.outputs.OS_VERSION }}.ota
108+
retention-days: 7
109+
110+

.github/workflows/linux.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@ jobs:
8282
- name: Run syntax tests on unix
8383
run: |
8484
./tests/syntax.sh
85-
continue-on-error: true
85+
#continue-on-error: true
8686

8787
- name: Run unit tests on unix
8888
run: |
8989
./tests/unittest.sh
90-
continue-on-error: true
90+
#continue-on-error: true
9191

9292
- name: Build LVGL MicroPython esp32
9393
run: |

.github/workflows/macos-intel.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,10 @@ jobs:
4444
- name: Run syntax tests on macOS
4545
run: |
4646
./tests/syntax.sh
47-
continue-on-error: true
4847
4948
- name: Run unit tests on macOS
5049
run: |
5150
./tests/unittest.sh
52-
continue-on-error: true
5351
5452
- name: Upload built binary as artifact
5553
uses: actions/upload-artifact@v4

.github/workflows/macos.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ jobs:
2323
run: |
2424
xcode-select --install || true # already installed on github
2525
brew install pkg-config libffi ninja make SDL2
26+
# After brew install libffi make sdl2 etc.
27+
export LDFLAGS="-L/opt/homebrew/opt/libffi/lib"
28+
export CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
29+
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
2630
2731
- name: Show version numbers
2832
run: |
@@ -44,12 +48,10 @@ jobs:
4448
- name: Run syntax tests on macOS
4549
run: |
4650
./tests/syntax.sh
47-
continue-on-error: true
4851
4952
- name: Run unit tests on macOS
5053
run: |
5154
./tests/unittest.sh
52-
continue-on-error: true
5355
5456
- name: Upload built binary as artifact
5557
uses: actions/upload-artifact@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
.*
22
!.github
3+
!.editorconfig
34
!.gitignore
45

56
trash/

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@
1515
[submodule "micropython-nostr"]
1616
path = micropython-nostr
1717
url = https://github.com/MicroPythonOS/micropython-nostr
18+
[submodule "esp32-component-rvswd"]
19+
path = esp32-component-rvswd
20+
url = https://github.com/Fri3dCamp/esp32-component-rvswd.git

CHANGELOG.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,94 @@
1+
Future release (next version)
2+
=====
3+
4+
Add changes that have been made to the code but haven't made it into a release here.
5+
6+
Builtin Apps:
7+
- AppStore: fallback to .zip file if no .mpk file found in filelist
8+
- AppStore: fetch new long_description from BadgeHub details API
9+
- Settings - Wi-Fi: don't print password on serial port
10+
11+
Frameworks:
12+
- Add new GPSManager framework
13+
- Add new IRManager framework
14+
- Add new LoRaManager framework
15+
- Add new DeviceManager framework
16+
- Add mpos.ui.change_task_handler() function for improving IR timing accuracy
17+
- AppearanceManager: fix set_light_mode() and set_primary_color()
18+
- AppManager: support .mpk/.zip files with compression and a redundant top-level directory
19+
- AppManager: export 'mpos' global to apps for convenience
20+
- LightsManager: allow changing number of LEDs after initialization
21+
- SettingActivity: add `allow_deselect` option (default False) to radiobuttons
22+
- SharedPreferences: don't print potentially sensitive values on serial port
23+
- WebServer: add basic 'View Screen' functionality to view the device's display remotely
24+
25+
OS:
26+
- aioREPL: use >>> prompt (for ViperIDE)
27+
- drawer menu: reload apps when Launch(er) is (re)started
28+
- export 'lv' and 'mpos' globals to aioREPL and apps for convenience
29+
- LilyGo T-Watch S3 Plus: add support for IR Remote app (TX only)
30+
- Fri3d 2024: add support for IR remote app (RX only)
31+
- Fri3d 2026: add CH32 coprocessor firmware handling (credit @bertouttier)
32+
- Fri3d 2026: add CH32 indev driver (credit @bertouttier)
33+
- Fri3d 2026: add calibrated battery voltage measurements using CH32
34+
35+
36+
0.9.2
37+
=====
38+
39+
Builtin Apps:
40+
- Settings: new Audio subsection to choose default output and input device, for boards with multiple audio devices
41+
42+
Frameworks:
43+
- Activity: add appFullName property
44+
- AudioManager: load and apply configured default_output and default_input devices
45+
- AudioManager: fix final 1-2 seconds of WAV files not being played
46+
- AudioManager: add support for PDM microphones
47+
- AudioManager: fix 24 and 32 bits per sample WAV support
48+
- SensorManager: add BMA423 IMU support
49+
- TimeZone: set Real Time Clock if present
50+
51+
OS:
52+
- Fix lvgl_micropython UI hang when lv.event_handler() throws exception from timers or callbacks
53+
- Fix notification bar hiding after swipe up in Launcher apps
54+
- Increase default heapsize from 8MB to 16MB on desktop to fix sporadic segfault
55+
- Fri3d 2026: don't provide unnecessary SCLK/BCLK to CJC4334 DAC
56+
- LilyGo T-Watch S3 Plus: fix power button sporadically becoming unresponsive
57+
- LilyGo T-Watch S3 Plus: add battery charge level support
58+
- LilyGo T-Watch S3 Plus: add IMU accelerometer support so IMU app works
59+
- LilyGo T-Watch S3 Plus: enable audio input (PDM microphone) and output (I2S speaker)
60+
- LilyGo T-Watch S3 Plus: enable Real Time Clock to keep time when powered off
61+
- LilyGo T-Watch S3 Plus: power down/up display and touch screen upon power button press
62+
63+
64+
0.9.1
65+
=====
66+
67+
Builtin Apps:
68+
- AppStore: use BadgeHub.eu filter mpos_api_0 instead of device-specific hardware ID
69+
- HowTo: add padding
70+
- Settings: add Number Format setting
71+
72+
Frameworks:
73+
- Add new NumberFormat framework for decimal and thousands separators
74+
- DownloadManager: add connection timeout to DownloadManager session.get()
75+
76+
OS:
77+
- New board support: LilyGo T-HMI
78+
- New board support: M5Stack Core2
79+
- LilyGo T-Watch S3 Plus: initialize Power Management Unit at startup
80+
- LilyGo T-Watch S3 Plus: power button short press for display backlight on/off, long press for power down
81+
- Add driver for LoRa SX1262 with lvgl_micropython-style (= split Bus/Device) hardware SPI
82+
- Add drivers for LoRa SX126X with SoftSPI (and default MicroPython hardware SPI)
83+
- Add esp32-component-rvswd and MicroPython bindings to flash WCH's CH32 microcontrollers
84+
- Add glyphs to fonts: diacritics 0x7F-0xFF, Bitcoin symbol ₿ 0x20BF, italic satoshi symbol 丯 0x4E2F and regular satoshi symbol 丰 0x4E30
85+
- Add LVGL symbols to fonts: 0xf002,0xf004,0xf005,0xf00e,0xf010,0xf029,0xf030 for search, heart, star, search-plus, search-minus, qrcode, camera
86+
- Add LVGL symbols to fonts: 0xf15a,0xf164,0xf165,0xf1e0 for btc (without circle), thumbs-up, thumbs-down, share-alt
87+
- Add LVGL symbols to fonts: 0xf2ea,0xf379,0xf58f for undo-alt, bitcoin (in circle), headphones-alt
88+
- Improve handling of 'mpos.main' errors
89+
- Fix empty black window issue on macOS desktop
90+
- Fix macOS/unix desktop build with newer Clang (17+)
91+
192
0.9.0
293
=====
394

CONTRIBUTING.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Contributions, however small they may be, are very much welcomed.
2+
3+
We aim to be a very open and welcoming project, so if you would like to see something improved, go for it!
4+
5+
To make sure we don't forget to check things before merging a pull request, [this merge checklist](https://docs.micropythonos.com/other/merge-checklist/) is used.
6+
7+
So if you're working on a (draft) pull request, take a look to make sure you didn't miss anything that will come up later.
8+
9+
Thank you and welcome!

0 commit comments

Comments
 (0)