v2.0
What's changed:
Version 2.0 has significantly overhauled the structure of MicroHydra to enable multiplatform support, and added a few enhancements.
Here is an incomplete list of changes made:
- Moved the contents of
MicroHydra/
tosrc/
- Added device definitions to
devices/
- Added
tools/parse_files.py
to help with writing device-specific code insrc/
- Replace 'magic' constants with device-specific values
- Use conditional statements to include/exclude code by matching device name or features
- Copying device-specific drivers from
devices/
- Added tools for automatically compiling .mpy and .bin files for each device
- Rewrote
st7789fbuf
intodisplay.st7789
, which is now faster, and can also support a smaller memory framebuffer when needed - Partially rewrote the launcher (again) to use the new display driver, support multiple devices, and use more sensible raw bitmap icons
- Rewrote
keyboard.py
andsmartkeyboard.py
intouserinput
, with device-agnostic keymaps, touchscreen support, and function-key locking. - Added
battlevel.py
- Added
sdcard.py
- Added
hydra.color.py
- Reworked mhconfig (now
hydra.config
) - Turned many classes into singletons to save memory and ease communication between them
- Moved
M5Sound.py
toi2ssound.py
- Added
audio
module for device-agnostic audio control - Added
display
module for device-agnostic display control - Added
device
module to allow multiplatform apps to access device configurations - Completely rewrote
mhoverlay
intohydra.popup
with extended features and a simpler API - Added github actions for building firmware automatically
- Added fancydisplay module for extending graphics functionality
- Created "getapps.py" for getting apps from the apps repo
RealClearwave also added kanji character support, and a terminal for running CLI programs.
And, previously, (in v1.1), h-david-a improved the files.py copy/paste functionality, and added 24h clock support to the launcher.
v2.x is also, unfortunately, less stable (currently, at least) than v1.x when run uncompiled with no psram. Using the .mpy version of the program (at least for the ram-hungry modules) fixes all these issues though, so this is not a big deal in my opinion.
Full Changelog: v1.0...v2.0