micrOSDevToolKit 2.1.5__py3-none-any.whl → 2.26.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- env/driver_cp210x/.DS_Store +0 -0
- env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
- env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +17 -1
- micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
- micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
- micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +191 -151
- micrOS/source/Auth.py +37 -0
- micrOS/source/Common.py +376 -102
- micrOS/source/Config.py +55 -25
- micrOS/source/Debug.py +54 -193
- micrOS/source/Espnow.py +404 -0
- micrOS/source/Files.py +207 -0
- micrOS/source/Hooks.py +88 -16
- micrOS/source/InterConnect.py +130 -46
- micrOS/source/Interrupts.py +8 -8
- micrOS/source/Logger.py +131 -0
- micrOS/source/Network.py +41 -21
- micrOS/source/Notify.py +74 -198
- micrOS/source/Pacman.py +326 -0
- micrOS/source/Scheduler.py +18 -55
- micrOS/source/Server.py +84 -217
- micrOS/source/Shell.py +103 -93
- micrOS/source/Tasks.py +239 -173
- micrOS/source/Time.py +21 -22
- micrOS/source/Types.py +89 -54
- micrOS/source/Web.py +485 -0
- micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
- micrOS/source/helpers.py +132 -0
- micrOS/source/micrOS.py +25 -21
- micrOS/source/micrOSloader.py +14 -23
- micrOS/source/microIO.py +94 -57
- toolkit/simulator_lib/LP_darwin.py → micrOS/source/modules/IO_esp32.py +22 -11
- micrOS/source/{IO_esp32c3.py → modules/IO_esp32c3.py} +6 -1
- micrOS/source/modules/IO_esp32c6.py +38 -0
- micrOS/source/{IO_esp32s2.py → modules/IO_esp32s2.py} +6 -1
- micrOS/source/{IO_esp32s3.py → modules/IO_esp32s3.py} +43 -2
- micrOS/source/modules/IO_m5stamp.py +86 -0
- micrOS/source/{IO_qtpy.py → modules/IO_qtpy.py} +28 -18
- micrOS/source/{IO_tinypico.py → modules/IO_tinypico.py} +48 -3
- micrOS/source/modules/LM_L298N.py +161 -0
- {toolkit/workspace/precompiled → micrOS/source/modules}/LM_L9110_DCmotor.py +4 -4
- micrOS/source/{LM_OV2640.py → modules/LM_OV2640.py} +53 -42
- micrOS/source/{LM_VL53L0X.py → modules/LM_VL53L0X.py} +5 -5
- micrOS/source/{LM_aht10.py → modules/LM_aht10.py} +12 -4
- micrOS/source/{LM_bme280.py → modules/LM_bme280.py} +13 -25
- micrOS/source/{LM_buzzer.py → modules/LM_buzzer.py} +42 -40
- micrOS/source/{LM_cct.py → modules/LM_cct.py} +22 -27
- micrOS/source/modules/LM_cluster.py +255 -0
- micrOS/source/{LM_co2.py → modules/LM_co2.py} +13 -6
- micrOS/source/{LM_dht11.py → modules/LM_dht11.py} +13 -29
- micrOS/source/{LM_dht22.py → modules/LM_dht22.py} +13 -28
- micrOS/source/{LM_dimmer.py → modules/LM_dimmer.py} +19 -16
- micrOS/source/modules/LM_distance.py +135 -0
- micrOS/source/{LM_ds18.py → modules/LM_ds18.py} +12 -4
- micrOS/source/{LM_esp32.py → modules/LM_esp32.py} +16 -4
- micrOS/source/modules/LM_espnow.py +53 -0
- micrOS/source/modules/LM_fileserver.py +265 -0
- micrOS/source/{LM_gameOfLife.py → modules/LM_gameOfLife.py} +5 -5
- micrOS/source/{LM_genIO.py → modules/LM_genIO.py} +49 -35
- micrOS/source/modules/LM_haptic.py +111 -0
- micrOS/source/modules/LM_i2c.py +61 -0
- micrOS/source/{LM_i2s_mic.py → modules/LM_i2s_mic.py} +20 -23
- micrOS/source/{LM_ld2410.py → modules/LM_ld2410.py} +3 -3
- micrOS/source/{LM_light_sensor.py → modules/LM_light_sensor.py} +22 -26
- micrOS/source/modules/LM_mh_z19c.py +198 -0
- micrOS/source/modules/LM_neoeffects.py +284 -0
- micrOS/source/{LM_neopixel.py → modules/LM_neopixel.py} +26 -31
- micrOS/source/{LM_oled.py → modules/LM_oled.py} +28 -20
- micrOS/source/{LM_oled_sh1106.py → modules/LM_oled_sh1106.py} +28 -24
- micrOS/source/{LM_oled_ui.py → modules/LM_oled_ui.py} +132 -174
- micrOS/source/modules/LM_pacman.py +320 -0
- micrOS/source/{LM_presence.py → modules/LM_presence.py} +24 -36
- micrOS/source/modules/LM_qmi8658.py +204 -0
- micrOS/source/{LM_rencoder.py → modules/LM_rencoder.py} +40 -11
- micrOS/source/modules/LM_rest.py +81 -0
- micrOS/source/{LM_rgb.py → modules/LM_rgb.py} +25 -34
- micrOS/source/{LM_rgbcct.py → modules/LM_rgbcct.py} +5 -5
- micrOS/source/{LM_roboarm.py → modules/LM_roboarm.py} +37 -45
- micrOS/source/modules/LM_robustness.py +137 -0
- micrOS/source/{LM_rp2w.py → modules/LM_rp2w.py} +3 -0
- micrOS/source/{LM_sdcard.py → modules/LM_sdcard.py} +3 -0
- micrOS/source/{LM_servo.py → modules/LM_servo.py} +4 -4
- micrOS/source/modules/LM_sound_event.py +751 -0
- micrOS/source/{LM_stepper.py → modules/LM_stepper.py} +8 -8
- micrOS/source/{LM_switch.py → modules/LM_switch.py} +21 -18
- micrOS/source/{LM_system.py → modules/LM_system.py} +96 -59
- micrOS/source/modules/LM_tcs3472.py +187 -0
- micrOS/source/modules/LM_telegram.py +388 -0
- micrOS/source/modules/LM_trackball.py +287 -0
- micrOS/source/modules/LM_veml7700.py +159 -0
- micrOS/source/modules/LM_web.py +38 -0
- micrOS/source/urequests.py +204 -91
- {toolkit/workspace/precompiled → micrOS/source/web}/dashboard.html +9 -4
- micrOS/source/web/editor.js +440 -0
- micrOS/source/web/filesui.html +178 -0
- micrOS/source/web/filesui.js +338 -0
- micrOS/source/{index.html → web/index.html} +44 -2
- micrOS/source/web/uapi.js +103 -0
- micrOS/source/web/udashboard.js +129 -0
- micrOS/source/web/ustyle.css +55 -0
- micrOS/source/web/uwidgets.js +172 -0
- micrOS/source/web/uwidgets_pro.js +99 -0
- micrOS/utests/__init__.py +0 -0
- micrOS/utests/test_scheduler.py +435 -0
- {micrOSDevToolKit-2.1.5.data → microsdevtoolkit-2.26.1.data}/scripts/devToolKit.py +47 -4
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info}/METADATA +392 -279
- microsdevtoolkit-2.26.1.dist-info/RECORD +396 -0
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info}/WHEEL +1 -1
- toolkit/DevEnvCompile.py +63 -33
- toolkit/DevEnvOTA.py +72 -22
- toolkit/DevEnvUSB.py +147 -77
- toolkit/Gateway.py +9 -9
- toolkit/LM_to_compile.dat +12 -4
- toolkit/MicrOSDevEnv.py +129 -51
- toolkit/WebRepl.py +73 -0
- toolkit/dashboard_apps/BackupRestore.py +171 -0
- toolkit/dashboard_apps/CCTDemo.py +12 -17
- toolkit/dashboard_apps/CCTTest.py +20 -24
- toolkit/dashboard_apps/CamStream.py +2 -6
- toolkit/dashboard_apps/CatGame.py +14 -16
- toolkit/dashboard_apps/Dimmer.py +11 -21
- toolkit/dashboard_apps/GetVersion.py +11 -19
- toolkit/dashboard_apps/MicrophoneTest.py +2 -7
- toolkit/dashboard_apps/NeoEffectsDemo.py +22 -35
- toolkit/dashboard_apps/NeopixelTest.py +20 -25
- toolkit/dashboard_apps/PresenceTest.py +2 -8
- toolkit/dashboard_apps/QMI8685_GYRO.py +68 -0
- toolkit/dashboard_apps/RGBTest.py +20 -24
- toolkit/dashboard_apps/RoboArm.py +24 -32
- toolkit/dashboard_apps/SED_test.py +10 -14
- toolkit/dashboard_apps/SensorsTest.py +61 -0
- toolkit/dashboard_apps/SystemTest.py +219 -117
- toolkit/dashboard_apps/Template_app.py +12 -19
- toolkit/dashboard_apps/_app_base.py +34 -0
- toolkit/dashboard_apps/_gyro_visualizer.py +78 -0
- toolkit/dashboard_apps/uLightDemo.py +15 -24
- toolkit/index.html +6 -5
- toolkit/lib/LocalMachine.py +6 -1
- toolkit/lib/MicrosFiles.py +46 -0
- toolkit/lib/Repository.py +64 -0
- toolkit/lib/TerminalColors.py +4 -0
- toolkit/lib/macroScript.py +371 -0
- toolkit/lib/micrOSClient.py +124 -51
- toolkit/lib/micrOSClientHistory.py +156 -0
- toolkit/lib/pip_package_installer.py +31 -4
- toolkit/micrOSdashboard.py +16 -21
- toolkit/micrOSlint.py +28 -10
- toolkit/simulator_lib/.DS_Store +0 -0
- micrOS/source/IO_esp32.py → toolkit/simulator_lib/IO_darwin.py +3 -0
- toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
- toolkit/simulator_lib/aioespnow.py +28 -0
- toolkit/simulator_lib/camera.py +84 -0
- toolkit/simulator_lib/dht.py +1 -1
- toolkit/simulator_lib/framebuf.py +49 -1
- toolkit/simulator_lib/machine.py +32 -2
- toolkit/simulator_lib/micropython.py +3 -3
- toolkit/simulator_lib/mip.py +165 -0
- toolkit/simulator_lib/neopixel.py +3 -2
- toolkit/simulator_lib/network.py +2 -1
- toolkit/simulator_lib/node_config.json +2 -3
- toolkit/simulator_lib/ntptime.py +1 -1
- toolkit/simulator_lib/{sim_console.py → sim_common.py} +2 -3
- toolkit/simulator_lib/simgc.py +6 -2
- toolkit/simulator_lib/simulator.py +138 -46
- toolkit/simulator_lib/uasyncio.py +34 -3
- toolkit/simulator_lib/uos.py +147 -0
- toolkit/simulator_lib/urandom.py +4 -0
- toolkit/simulator_lib/usocket.py +5 -1
- toolkit/simulator_lib/view01.jpg +0 -0
- toolkit/simulator_lib/view02.jpg +0 -0
- toolkit/socketClient.py +43 -23
- toolkit/user_data/webhooks/generic.py +1 -1
- toolkit/user_data/webhooks/macro.py +44 -0
- toolkit/user_data/webhooks/template.macro +20 -0
- toolkit/user_data/webhooks/template.py +1 -1
- toolkit/workspace/precompiled/Auth.mpy +0 -0
- toolkit/workspace/precompiled/Common.mpy +0 -0
- toolkit/workspace/precompiled/Config.mpy +0 -0
- toolkit/workspace/precompiled/Debug.mpy +0 -0
- toolkit/workspace/precompiled/Espnow.mpy +0 -0
- toolkit/workspace/precompiled/Files.mpy +0 -0
- toolkit/workspace/precompiled/Hooks.mpy +0 -0
- toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- toolkit/workspace/precompiled/Interrupts.mpy +0 -0
- toolkit/workspace/precompiled/Logger.mpy +0 -0
- toolkit/workspace/precompiled/Network.mpy +0 -0
- toolkit/workspace/precompiled/Notify.mpy +0 -0
- toolkit/workspace/precompiled/Pacman.mpy +0 -0
- toolkit/workspace/precompiled/Scheduler.mpy +0 -0
- toolkit/workspace/precompiled/Server.mpy +0 -0
- toolkit/workspace/precompiled/Shell.mpy +0 -0
- toolkit/workspace/precompiled/Tasks.mpy +0 -0
- toolkit/workspace/precompiled/Time.mpy +0 -0
- toolkit/workspace/precompiled/Types.mpy +0 -0
- toolkit/workspace/precompiled/Web.mpy +0 -0
- toolkit/workspace/precompiled/_mpy.version +1 -1
- toolkit/workspace/precompiled/config/_git.keep +0 -0
- toolkit/workspace/precompiled/helpers.mpy +0 -0
- toolkit/workspace/precompiled/micrOS.mpy +0 -0
- toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
- toolkit/workspace/precompiled/microIO.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
- {micrOS/source → toolkit/workspace/precompiled/modules}/LM_L9110_DCmotor.py +4 -4
- toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
- toolkit/workspace/precompiled/{LM_VL53L0X.py → modules/LM_VL53L0X.py} +5 -5
- toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
- toolkit/workspace/precompiled/{LM_buzzer.mpy → modules/LM_buzzer.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_co2.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
- toolkit/workspace/precompiled/{LM_esp32.py → modules/LM_esp32.py} +16 -4
- toolkit/workspace/precompiled/modules/LM_espnow.py +53 -0
- toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
- toolkit/workspace/precompiled/{LM_gameOfLife.mpy → modules/LM_gameOfLife.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_i2c.py +61 -0
- toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
- toolkit/workspace/precompiled/{LM_ld2410.mpy → modules/LM_ld2410.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_mh_z19c.py +198 -0
- toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_qmi8658.py +204 -0
- toolkit/workspace/precompiled/{LM_rencoder.py → modules/LM_rencoder.py} +40 -11
- toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
- toolkit/workspace/precompiled/{LM_rgbcct.mpy → modules/LM_rgbcct.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_robustness.py +137 -0
- toolkit/workspace/precompiled/{LM_rp2w.py → modules/LM_rp2w.py} +3 -0
- toolkit/workspace/precompiled/{LM_sdcard.py → modules/LM_sdcard.py} +3 -0
- toolkit/workspace/precompiled/{LM_servo.mpy → modules/LM_servo.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_sound_event.mpy +0 -0
- toolkit/workspace/precompiled/{LM_stepper.mpy → modules/LM_stepper.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_tcs3472.py +187 -0
- toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
- toolkit/workspace/precompiled/{LM_tinyrgb.mpy → modules/LM_tinyrgb.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
- toolkit/workspace/precompiled/urequests.mpy +0 -0
- {micrOS/source → toolkit/workspace/precompiled/web}/dashboard.html +9 -4
- toolkit/workspace/precompiled/web/editor.js +440 -0
- toolkit/workspace/precompiled/web/filesui.html +178 -0
- toolkit/workspace/precompiled/web/filesui.js +338 -0
- toolkit/workspace/precompiled/{index.html → web/index.html} +44 -2
- toolkit/workspace/precompiled/web/uapi.js +103 -0
- toolkit/workspace/precompiled/web/udashboard.js +129 -0
- toolkit/workspace/precompiled/web/ustyle.css +55 -0
- toolkit/workspace/precompiled/web/uwidgets.js +172 -0
- toolkit/workspace/precompiled/web/uwidgets_pro.js +99 -0
- env/driver_cp210x/CH34XSER_MAC/CH34X_DRV_INSTALL_INSTRUCTIONS.pdf +0 -0
- env/driver_cp210x/CH34XSER_MAC/CH34xVCPDriver.pkg +0 -0
- micrOS/micropython/esp32-20231005-v1.21.0.bin +0 -0
- micrOS/micropython/esp32c3-GENERIC-20240105-v1.22.1.bin +0 -0
- micrOS/micropython/esp32c3-GENERIC-20240222-v1.22.2.bin +0 -0
- micrOS/micropython/esp32s2-GENERIC-20240105-v1.22.1.bin +0 -0
- micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
- micrOS/micropython/esp32s3-GENERIC-20240105-v1.22.1.bin +0 -0
- micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
- micrOS/micropython/rpi-pico-w-20231005-v1.21.0.uf2 +0 -0
- micrOS/micropython/tinypico-20231005-v1.21.0.bin +0 -0
- micrOS/micropython/tinypico-usbc-UM-20240105-v1.22.1.bin +0 -0
- micrOS/source/LM_L298N_DCmotor.py +0 -86
- micrOS/source/LM_catgame.py +0 -74
- micrOS/source/LM_dashboard_be.py +0 -37
- micrOS/source/LM_demo.py +0 -85
- micrOS/source/LM_distance.py +0 -88
- micrOS/source/LM_i2c.py +0 -44
- micrOS/source/LM_intercon.py +0 -57
- micrOS/source/LM_keychain.py +0 -318
- micrOS/source/LM_lmpacman.py +0 -126
- micrOS/source/LM_neoeffects.py +0 -327
- micrOS/source/LM_pet_feeder.py +0 -76
- micrOS/source/LM_ph_sensor.py +0 -51
- micrOS/source/LM_rest.py +0 -40
- micrOS/source/LM_robustness.py +0 -73
- micrOS/source/LM_telegram.py +0 -96
- micrOS/source/reset.py +0 -11
- micrOS/source/uapi.js +0 -76
- micrOS/source/udashboard.js +0 -137
- micrOS/source/ustyle.css +0 -28
- micrOS/source/uwidgets.js +0 -179
- micrOSDevToolKit-2.1.5.dist-info/RECORD +0 -337
- toolkit/dashboard_apps/AirQualityBME280.py +0 -36
- toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -36
- toolkit/lib/file_extensions.py +0 -16
- toolkit/simulator_lib/__pycache__/LP_darwin.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/LP_darwin.cpython-38.pyc +0 -0
- toolkit/simulator_lib/__pycache__/LP_darwin.cpython-39.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
- toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
- toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
- toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
- toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
- toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
- toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
- toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
- toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
- toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
- toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
- toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
- toolkit/workspace/precompiled/LM_catgame.py +0 -74
- toolkit/workspace/precompiled/LM_cct.mpy +0 -0
- toolkit/workspace/precompiled/LM_co2.mpy +0 -0
- toolkit/workspace/precompiled/LM_dashboard_be.py +0 -37
- toolkit/workspace/precompiled/LM_demo.py +0 -85
- toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
- toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
- toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
- toolkit/workspace/precompiled/LM_distance.py +0 -88
- toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
- toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
- toolkit/workspace/precompiled/LM_i2c.py +0 -44
- toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
- toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
- toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
- toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
- toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
- toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
- toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
- toolkit/workspace/precompiled/LM_oled.mpy +0 -0
- toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
- toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
- toolkit/workspace/precompiled/LM_pet_feeder.py +0 -76
- toolkit/workspace/precompiled/LM_ph_sensor.py +0 -51
- toolkit/workspace/precompiled/LM_presence.mpy +0 -0
- toolkit/workspace/precompiled/LM_rest.mpy +0 -0
- toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
- toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
- toolkit/workspace/precompiled/LM_robustness.py +0 -73
- toolkit/workspace/precompiled/LM_switch.mpy +0 -0
- toolkit/workspace/precompiled/LM_system.mpy +0 -0
- toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
- toolkit/workspace/precompiled/reset.mpy +0 -0
- toolkit/workspace/precompiled/uapi.js +0 -76
- toolkit/workspace/precompiled/udashboard.js +0 -137
- toolkit/workspace/precompiled/ustyle.css +0 -28
- toolkit/workspace/precompiled/uwidgets.js +0 -179
- /toolkit/user_data/node_config_archive/.include → /micrOS/source/config/_git.keep +0 -0
- /micrOS/source/{IO_rp2.py → modules/IO_rp2.py} +0 -0
- /micrOS/source/{LM_tinyrgb.py → modules/LM_tinyrgb.py} +0 -0
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info/licenses}/LICENSE +0 -0
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: micrOSDevToolKit
|
|
3
|
-
Version: 2.1
|
|
3
|
+
Version: 2.26.1
|
|
4
4
|
Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
|
|
5
5
|
Home-page: https://github.com/BxNxM/micrOS
|
|
6
6
|
Author: Marcell Ban
|
|
@@ -19,19 +19,54 @@ Requires-Dist: pylint
|
|
|
19
19
|
Requires-Dist: pyserial
|
|
20
20
|
Requires-Dist: resources
|
|
21
21
|
Requires-Dist: flask
|
|
22
|
-
Requires-Dist:
|
|
22
|
+
Requires-Dist: flask_restful
|
|
23
23
|
Requires-Dist: numpy
|
|
24
24
|
Requires-Dist: json2html
|
|
25
25
|
Requires-Dist: requests
|
|
26
26
|
Requires-Dist: Flask-BasicAuth
|
|
27
27
|
Requires-Dist: soundfile
|
|
28
|
+
Dynamic: author
|
|
29
|
+
Dynamic: author-email
|
|
30
|
+
Dynamic: description
|
|
31
|
+
Dynamic: description-content-type
|
|
32
|
+
Dynamic: home-page
|
|
33
|
+
Dynamic: license
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
Dynamic: project-url
|
|
36
|
+
Dynamic: requires-dist
|
|
37
|
+
Dynamic: summary
|
|
28
38
|
|
|
29
39
|
#  micrOS
|
|
30
40
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-

|
|
44
|
+

|
|
45
|
+

|
|
46
|
+

|
|
47
|
+

|
|
48
|
+

|
|
49
|
+

|
|
50
|
+

|
|
51
|
+

|
|
52
|
+

|
|
53
|
+

|
|
54
|
+

|
|
55
|
+

|
|
56
|
+

|
|
57
|
+

|
|
58
|
+
<br/>
|
|
59
|
+

|
|
60
|
+

|
|
61
|
+

|
|
62
|
+

|
|
63
|
+

|
|
64
|
+

|
|
65
|
+

|
|
66
|
+

|
|
67
|
+

|
|
68
|
+

|
|
69
|
+
<br/>
|
|
35
70
|
|
|
36
71
|
|
|
37
72
|
Thanks for , follow us on:
|
|
@@ -45,7 +80,7 @@ Thanks for , fo
|
|
|
45
80
|
[](https://pypi.org/project/micrOSDevToolKit/)
|
|
46
81
|
|
|
47
82
|
|
|
48
|
-
**micrOS** is a mini **application** execution **platform** with ShellCli (socket) and
|
|
83
|
+
**micrOS** is a [micropython](http://micropython.org) based mini **application** execution **platform** with ShellCli (socket) and WebCli (http) **servers** and several **other** embedded **features**.
|
|
49
84
|
> It uses direct wifi connection to access the exposed functionalities.<br/>
|
|
50
85
|
|
|
51
86
|
In case of any technical comments or requests, please use [](https://github.com/BxNxM/micrOS/discussions).
|
|
@@ -58,17 +93,14 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
58
93
|
----------------------------------------
|
|
59
94
|
----------------------------------------
|
|
60
95
|
|
|
61
|
-
📲 💻 ShellCli: Generic session-based communication API <br/>
|
|
62
|
-
📲 WebCli: Apple shortcuts compatible **REST API** and **
|
|
96
|
+
📲 💻 ShellCli: Generic session-based communication API (OAM Interface) <br/>
|
|
97
|
+
📲 WebCli: Apple shortcuts compatible **REST API** and **HTTP Homepage** <br/>
|
|
63
98
|
✉️ Expose upython module functions - telnet **TCP/IP** and **REST API** <br/>
|
|
64
99
|
⚙️ 📝 Device initialization from user config <br/>
|
|
65
100
|
🧩 Codeless end user experience via phone client <br/>
|
|
66
101
|
⚠️ No external server or service required for client-device communication <br/>
|
|
67
102
|
⚠️ 🛡 Works on Local Network (WiFi-WLAN) <br/>
|
|
68
103
|
🛠 Easy to create custom application(s) aka create your own Load Modules: <br/>
|
|
69
|
-
1. Write **LM_**`<your_app>`**.py** <br/>
|
|
70
|
-
2. Copy (OTA/USB) python script to your device (drag&drop)<br/>
|
|
71
|
-
3. Call any function from **`<your_app>`** module <br/>
|
|
72
104
|
🦾 Built-in scheduling (IRQs):<br/>
|
|
73
105
|
- Time stamp based <br/>
|
|
74
106
|
- Geolocation based clock setup + time tags: sunset, sunrise <br/>
|
|
@@ -78,15 +110,17 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
78
110
|
🚀🎈Lightweight and high performance core system that leaves you space 😎
|
|
79
111
|
|
|
80
112
|
## ◉ Shortcuts:
|
|
81
|
-
1. micrOS Client Application [link](https://github.com/BxNxM/micrOS/#micros-client-application)
|
|
113
|
+
1. 📲 micrOS Client Application [link](https://github.com/BxNxM/micrOS/#micros-client-application)
|
|
82
114
|
2. micrOS Installer [link](https://github.com/BxNxM/micrOS/#installing-micros-with-devtoolkit-esp32-and-more)
|
|
83
|
-
3. micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
|
|
115
|
+
3. ▶️ micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
|
|
84
116
|
4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
|
|
117
|
+
5. 🎮 Built-in app modules: [link](https://htmlpreview.github.io/?https://github.com/BxNxM/micrOS/blob/master/micrOS/client/sfuncman/sfuncman.html)
|
|
85
118
|
5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
|
|
86
|
-
6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
87
|
-
7. micrOS
|
|
88
|
-
8. micrOS
|
|
89
|
-
9.
|
|
119
|
+
6. ⚙️ micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
120
|
+
7. 🧑💻 micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
|
|
121
|
+
8. 📦 micrOS Package Management: [link](https://github.com/BxNxM/micrOSPackages)
|
|
122
|
+
9. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
|
|
123
|
+
10. Release notes: [release-note](https://github.com/BxNxM/micrOS/#release-note)
|
|
90
124
|
|
|
91
125
|
----------------------------------------
|
|
92
126
|
----------------------------------------
|
|
@@ -111,13 +145,21 @@ I would suggest to use micrOS GUI as a primary interface for micrOS development
|
|
|
111
145
|
|
|
112
146
|
<br/>
|
|
113
147
|
|
|
114
|
-
|
|
148
|
+
## 1. Prerequisites
|
|
149
|
+
|
|
150
|
+
### 1.1 Install python3.12+
|
|
115
151
|
|
|
116
|
-
|
|
152
|
+
Download Python 3.12+ [link](https://www.python.org/downloads/release/python-3120/)
|
|
117
153
|
|
|
118
154
|
> Note: **Allow extend system path** with that python version (installation parameter) </br>
|
|
119
155
|
> On **Windows**: RUN AS ADMINISTARTOR
|
|
120
156
|
|
|
157
|
+
Check Python3 version
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
python3 --version
|
|
161
|
+
```
|
|
162
|
+
|
|
121
163
|
----------------------------------------
|
|
122
164
|
|
|
123
165
|
### 2. Install micrOS devToolKit GUI
|
|
@@ -231,62 +273,77 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
231
273
|

|
|
232
274
|
|
|
233
275
|
- 🕯**micrOS loader** - starts micrOS or WEBREPL(update / recovery modes)
|
|
234
|
-
- **OTA update** - push update over wifi (webrepl automation
|
|
276
|
+
- **OTA update** - push update over wifi (webrepl automation: monitor update and auto restart node)
|
|
235
277
|
- 📄**Config handling** - user config - **node_config.json**
|
|
236
|
-
- ⏳**Boot phase** - preload Load Module(s)
|
|
237
|
-
-
|
|
238
|
-
|
|
278
|
+
- ⏳**Boot phase** - preload Load Module(s) - based on node_config
|
|
279
|
+
- Parameter: `boothook` Device initialization (optional), load applications (pinout and last state initialization)
|
|
280
|
+
- It runs **as soon as possible** in the boot sequence (before network setup)
|
|
281
|
+
- Example values: `rgb load; neopixel load`
|
|
282
|
+
- Comments `#` can be used: `#rgb load; neopixel load`, excellect for experimentation.
|
|
239
283
|
- 📡**Network handling** - based on node_config
|
|
240
|
-
-
|
|
241
|
-
- NTP + UTC aka clock setup
|
|
284
|
+
- Parameter: `nwmd` network modes: `STA` Station OR `AP` AccessPoint
|
|
285
|
+
- In STA mode: NTP + UTC aka clock setup
|
|
242
286
|
- API: [ip-api.com](http://ip-api.com/json/?fields=lat,lon,timezone,offset)
|
|
243
287
|
- Static IP configuration, `devip`
|
|
244
288
|
- dhcp hostname setup, `devfid`.local
|
|
289
|
+
- system `uptime` measurement
|
|
245
290
|
- ⚙️**Scheduling / External events** - Interrupt callback - based on node_config
|
|
246
291
|
- Time based
|
|
247
|
-
- ⌛️simple LM task pool execution
|
|
248
|
-
- `
|
|
249
|
-
|
|
250
|
-
- `
|
|
292
|
+
- ⌛️simple LM task pool execution on `Timer(0)`
|
|
293
|
+
- To enable the feature set `timirq` to `True`
|
|
294
|
+
- Set period in milliseconds with `timirqseq` like: `5000`
|
|
295
|
+
- Configure callbalcks with `timirqcbf`
|
|
296
|
+
- Example: `bme280 measure`, so this will measure with the sensor every 5 seconds.
|
|
297
|
+
- Comments `#` can be used in `timirqcbf`
|
|
298
|
+
- 🗓cron [time stump!LM task] pool execution `Timer(1)`
|
|
299
|
+
- To enable this feature set `cron` to `True`
|
|
300
|
+
- Configure callbalcks with `crontasks `
|
|
251
301
|
- timestamp: `WD:H:M:S!LM FUNC`, ranges: `0-6:0-23:0-59:0-59!LM FUNC`
|
|
252
302
|
- example: `*:8:0:0!rgb rgb r=10 g=60 b=100; etc.`, it will set rgb color on analog rgb periphery at 8am every day.
|
|
253
|
-
- `WD: 0...6` 0=Monday, 6=Sunday
|
|
303
|
+
- `WD: 0...6` 0=Monday, 6=Sunday
|
|
304
|
+
- optional **range handling**: 0-2 means Monday to Wednesday
|
|
254
305
|
- tag: `sunset` / `sunrise`
|
|
255
306
|
- example: `sunset!rgb rgb r=10 g=60 b=100; etc.`, it will set rgb color on analog rgb periphery at every sunset, every day.
|
|
256
307
|
- optional minute offset (+/-): sunrise+30
|
|
308
|
+
- Comments cannot be used in `crontasks`! No multiple commands in this mode!
|
|
257
309
|
|
|
258
310
|
- API: [api.sunrise-sunset.org](https://api.sunrise-sunset.org/json?lat={lat}&lng={lon}&date=today&formatted=0)
|
|
259
311
|
- 💣Event based
|
|
260
312
|
- Set trigger event `irqX`
|
|
261
313
|
- Trigger up/down/both `irqX_trig`
|
|
262
314
|
- With LM callback function `irqX_cbf`
|
|
263
|
-
|
|
315
|
+
- Comments `#` can be used in `irqX_cbf`
|
|
316
|
+
- `X` can be = 1, 2, 3 or 4
|
|
264
317
|
|
|
265
|
-
|
|
318
|
+
|
|
319
|
+
- ⚙️**[L]oad [M]odule** aka **application** execution
|
|
266
320
|
- Lot of built-in functions (table below)
|
|
267
321
|
- Create your own module with 3 easy steps
|
|
268
322
|
- Create a python file, naming convention: `LM_<your_app_name>.py`
|
|
269
323
|
- Replace `<your_app_name>` for anything you prefer!
|
|
270
324
|
- Write python functions, you can call any function from that module...
|
|
271
|
-
- Upload modul with "drag&Drop"
|
|
325
|
+
- Upload modul with "drag&Drop" devToolKit GUI `devToolKit.py`
|
|
272
326
|
|
|
273
327
|
- 📨**ShellCli** - wireless communication interface with the nodes
|
|
274
|
-
- **System commands**: `help, version, reboot, webrepl, webrepl --update, etc.`
|
|
275
|
-
- After `webrepl --update` command the micrOS system reboots and waits for ota update in webrepl mode.
|
|
328
|
+
- **System commands**: `help, version, reboot, modules, webrepl, webrepl --update, etc.`
|
|
329
|
+
- After `webrepl --update` command the micrOS system reboots and waits for ota update in webrepl mode about 20 seconds.
|
|
276
330
|
- **Config handling** SET/GET/DUMP - **node_config.json**
|
|
277
331
|
- enter configuration mode: `conf`
|
|
278
|
-
- exit configuration mode:`noconf`
|
|
279
332
|
- Print out all parameters and values: `dump`
|
|
333
|
+
- exit configuration mode:`noconf`
|
|
280
334
|
- **LM** - Load Module function execution (application modules)
|
|
281
335
|
- Example: `system info`
|
|
282
|
-
-
|
|
283
|
-
|
|
336
|
+
- That points to `/modules/LM_system.py` file `info()` function and calls it.
|
|
337
|
+
- 🖇**microIO** pinout handling - lookuptables for each board
|
|
338
|
+
- Predefined pinout modules for esp32, tinyPico, etc. (files under: `modules/IO_*.py`)
|
|
284
339
|
- Create your pinout based on `IO_esp32.py`, naming convencion: `IO_<name>.py`
|
|
285
340
|
- To activate your custom pinout set `cstmpmap` config parameter to `<name>`
|
|
341
|
+
- HINT: to get pin number you can get it by pin label, like: `system pinamp`
|
|
342
|
+
- HINT: with `cstmpmap` you can overwrite pin mapping as well, like: `neop:25` set neop virtual pin to pin 25 real pinout.
|
|
286
343
|
|
|
287
344
|
- 🔄 **Task manager** aka **Async LM jobs**
|
|
288
345
|
- Capable of execute [L]oad [M]odules in the background
|
|
289
|
-
- Invoke with single execution `&` or loop execution `&&`
|
|
346
|
+
- Invoke with single execution `&` or for loop execution `&&`
|
|
290
347
|
- Example:
|
|
291
348
|
- In loop: `system heartbeat &&`
|
|
292
349
|
- Loop frequency conrol: `system heartbeat &&1000`, it will execute every sec
|
|
@@ -294,12 +351,60 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
294
351
|
- Delayed execution (ms): `system heartbeat &1000`, waits 1 sec before execution.
|
|
295
352
|
- Stop task: `task kill system.heartbeat`
|
|
296
353
|
- Show task live ouput: `task show system.heartbeat`
|
|
354
|
+
- List tasks with `task list`:
|
|
355
|
+
|
|
356
|
+
```
|
|
357
|
+
TinyDevBoard $ task list
|
|
358
|
+
---- micrOS top ----
|
|
359
|
+
#queue: 18 #load: 3%
|
|
360
|
+
|
|
361
|
+
#Active #taskID
|
|
362
|
+
Yes server
|
|
363
|
+
Yes idle
|
|
364
|
+
Yes telegram.server_bot
|
|
365
|
+
Yes espnow.server
|
|
366
|
+
```
|
|
297
367
|
|
|
298
368
|
|
|
299
369
|
⌘ DevToolKit CLI feature:
|
|
300
370
|
|
|
301
371
|
- Socket client python plugin - interactive - non interactive mode
|
|
302
372
|
|
|
373
|
+
```bash
|
|
374
|
+
./devToolKit.py --search --connect
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
----------------------
|
|
379
|
+
|
|
380
|
+
### Boards and suggestions
|
|
381
|
+
|
|
382
|
+
There are multiple types of MCU-s (esp32, esp32s3, etc.) available to order, **BUT** to be able to enable **more features** (~2 Load Modules) and **full capable WebUI** interface you need to have more then **190-210kb** of ram (basic boards)(ℹ️).
|
|
383
|
+
|
|
384
|
+
There is a solution ✅, additinal psram: **~2-4-8Mb** boards are available. It used to name as **psram** or **spiram**, even there is a type **octo-psram**, so check it before buy!!! Psram needs to be **supported on micropython** side as well !!!
|
|
385
|
+
|
|
386
|
+
**Suggestions - 🔮futureproof hardware:**
|
|
387
|
+
|
|
388
|
+
**`esp32s3`**: Very fast new espressif module that supports psram detection, so you can freely select any module with this MCU with additinal ram, and micros will work with the best performance, typical ram sizes: **2Mb** (more then enough for everage usage), **4-8Mb** (capacble of image and sound processing tasks and load all GPIO-s 🚀)
|
|
389
|
+
|
|
390
|
+
**`esp32s3-octo`** Same sa normal psram, just uses 8 pins to connect to the MCU, basically faster...
|
|
391
|
+
|
|
392
|
+
**`tinypico`** excellet hardware, bit pricy, with 4Mb of ram.
|
|
393
|
+
|
|
394
|
+
**`esp32cam`** it has a custom image and attached 8Mb of ram.
|
|
395
|
+
|
|
396
|
+
So prefer boards with more psram 2Mb-8Mb, **minumum requirement for the full flatched setup ~400kb** but smallest psram is **2Mb**, in practive:
|
|
397
|
+
|
|
398
|
+
- max measured 4Mb is 3.2% 128kb - oled_ui and lot of things loaded...
|
|
399
|
+
- camera stream can use about 50% of ram, that means about 2Mb of ram usage.
|
|
400
|
+
|
|
401
|
+
ℹ️ With basic 190-210kb of ram you can use the system with ShellCli with no issue, just webUI dashboard cannot be load due to memory limitations..., **under 140kb of system ram the system not reliable**, so these boards are not supported.
|
|
402
|
+
|
|
403
|
+
> Note:
|
|
404
|
+
|
|
405
|
+
**`esp32`** also can be totally fine with ShellCli, WebCli and 1 load module or multiple modules based on module size... just can be limited by the available memory soonor the later ... (WebCli javascript, htmls are quite small but can be few tens of kilobytes, also multiple async tasks in the background can take same, and roughly around 80% of memory usage system can be instable and restarts.) **So if you have a spare one try out micrOS with a range of features :)**
|
|
406
|
+
|
|
407
|
+
----------------------
|
|
303
408
|
|
|
304
409
|
## Built in periphery support
|
|
305
410
|
|
|
@@ -319,14 +424,14 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
319
424
|
|
|
320
425
|
LogicalPin lookup tables:
|
|
321
426
|
|
|
322
|
-
- [tinypico](
|
|
323
|
-
- [esp32](
|
|
324
|
-
- [esp32s2](
|
|
325
|
-
- [esp32s3](
|
|
326
|
-
- [raspberryPicoW](
|
|
427
|
+
- [tinypico](micrOS/source/modules/IO_tinypico.py)
|
|
428
|
+
- [esp32](micrOS/source/modules/IO_esp32.py)
|
|
429
|
+
- [esp32s2](micrOS/source/modules/IO_esp32s2.py)
|
|
430
|
+
- [esp32s3](micrOS/source/modules/IO_esp32s3.py)
|
|
431
|
+
- [raspberryPicoW](micrOS/source/modules/IO_rp2.py) - reset needed after ota update (webrepl limitation)
|
|
327
432
|
- `IO_*.py` [etc.](./micrOS/source)
|
|
328
433
|
|
|
329
|
-
> Note: Good idea to use costant variable for pin map declaration, check the files for more info, These files are also precompiled automatically into byte
|
|
434
|
+
> Note: Good idea to use costant variable for pin map declaration, check the files for more info, These files are also precompiled automatically into byte streams -> `.mpy`
|
|
330
435
|
|
|
331
436
|

|
|
332
437
|
|
|
@@ -351,15 +456,16 @@ These parameters controlls micrOS core functionalities, so you can define an ent
|
|
|
351
456
|
|
|
352
457
|
| Config keys | Default value and type | Reboot required | Description |
|
|
353
458
|
| :-----------------: | :-------------------------: | :-------------: | ----------------------------------------- |
|
|
354
|
-
| **`devfid`** | `node01` `<str>` |
|
|
459
|
+
| **`devfid`** | `node01` `<str>` | No | Device friendly "unique" ID - (1) defines AccessPoint (AP) network name and (2) in Station (STA) network mode the DHCP device name for IP address resolve also (3) this is the ShellCli prompt.
|
|
355
460
|
| **`staessid`** | `your_wifi_name` `<str>` | Yes | Wifi router name to connect (for STA default connection mode). You can list multiple wifi names separated with `;`
|
|
356
461
|
| **`stapwd`** | `your_wifi_passwd` `<str>` | Yes | Wifi router password (for STA default connection mode). You can list multiple wifi passwords separated with `;` connected in order to `staessid` wifi names.
|
|
357
462
|
| **`appwd`** | `ADmin123` `<str>` | Yes | Device system password.: Used in AP password (access point mode) + webrepl password + micrOS auth
|
|
358
|
-
| **`boothook`** | `n/a` `<str>` | Yes | Add Load Module execution(s) to the boot sequence. Separator `;`. Examples: `rgb
|
|
463
|
+
| **`boothook`** | `n/a` `<str>` | Yes | Add Load Module execution(s) to the boot sequence. Separator `;`. Examples: `rgb load; cct load` but you can call any load module function here if you want to run it at boot time.
|
|
359
464
|
| **`webui`** | `False` `bool` | Yes | Launch http rest server on port 80 (in parallel with micrOS shell on port 9008 aka `socport`). It has 2 endpoints: / aka main page (index.html) and /rest aka rest (json) interface for load module execution. Example: `<devfid>.local` or `<devfid>.local/rest` + optional parameters: `/rgb/toggle`. **Apple shortcuts compatible**
|
|
465
|
+
| **`espnow`** | `False` `bool` | Yes | Enable **ESPNow communication protocol**. It starts `espnow.server` task, that can receive espnow messages and execute Load Module commands. It is an extension for **InterCon** feature example: `system heartbeat >>target.local`.
|
|
360
466
|
| | |
|
|
361
467
|
| **`cron`** | `False` `<bool>` | Yes | Enable timestamp based Load Module execution aka Cron scheduler (linux terminology), Timer(1) hardware interrupt enabler.
|
|
362
|
-
| **`crontasks`** | `n/a` `<str>` |
|
|
468
|
+
| **`crontasks`** | `n/a` `<str>` | No | Cron scheduler input, task format: `WD:H:M:S!module function` e.g.: `1:8:0:0!system heartbeat`, task separator in case of multiple tasks: `;`. [WD:0-6, H:0-23, M:0-59, S:0-59] in case of each use: `*`. Instead `WD:H:M:S` you can use suntime tags: `sunset`, `sunrise`, optional offset: `sunset+-<minutes>`, `sunrise+-<minutes>`, example: `sunset-30!system heartbeat`. Range of days: WD can be conrete day number or range like: 0-2 means Monday to Wednesday.
|
|
363
469
|
| | |
|
|
364
470
|
| **`irq1`** | `False` `<bool>` | Yes | External event interrupt enabler - Triggers when desired signal state detected - button press happens / motion detection / etc.
|
|
365
471
|
| **`irq1_cbf`** | `n/a` `<str>` | Yes | `irq1` enabled, calls the given Load Modules, e.x.: `module function optional_parameter(s)` when external trigger happens.
|
|
@@ -378,8 +484,6 @@ These parameters controlls micrOS core functionalities, so you can define an ent
|
|
|
378
484
|
| **`timirq`** | `False` `<bool>` | Yes | Timer(0) interrupt enabler - background "subprocess" like execution, timer based infinite loop for the LoadModule execution.
|
|
379
485
|
| **`timirqcbf`** | `n/a` `<str>` | Yes | if `timirq` enabled, calls the given Load Module(s), e.x.: `module function optional_parameter(s)`, task separator: `;`
|
|
380
486
|
| **`timirqseq`** | `1000` `<int>` | Yes | Timer interrupt period in ms, default: `3000` ms (for `timirq` infinite loop timer value)
|
|
381
|
-
| | |
|
|
382
|
-
| **`telegram`** | `n/a` `str` | No | `TELEGRAM_BOT_TOKEN` to enable micrOS Notifications. **Hint**, to create bot with botfather: [click](https://blog.devgenius.io/how-to-set-up-your-telegram-bot-using-botfather-fd1896d68c02). After enabling this, send `/ping` to telegram chat for chat ID sync.
|
|
383
487
|
|
|
384
488
|
### Advanced parameter options:
|
|
385
489
|
|
|
@@ -394,7 +498,7 @@ These parameters controlls micrOS core functionalities, so you can define an ent
|
|
|
394
498
|
| **`nwmd`** | `n/a` `<str>` | Yes | Prefered network mode - `AP` or `STA`, default is `STA`.
|
|
395
499
|
| **`soctout`** | `30` `<int>` | Yes | Socket server connection timeout. If user is passive for `soctout` sec, and new connection incoming, then close passive connection. So it is time limit per connection in the `aioqueue`.
|
|
396
500
|
| **`socport`** | `9008` `<int>` | Yes | Socket server service port (should not be changed due to client and API inconpatibility).
|
|
397
|
-
| **`auth`** | `False` `<bool>` | Yes | Enables socket password authentication, password: `appwd`. Passwordless functions: `hello`, `version`, `exit`.
|
|
501
|
+
| **`auth`** | `False` `<bool>` | Yes | Enables socket password authentication, password: `appwd`. Passwordless functions: `hello`, `version`, `exit`. Plus access for loaded modules. Auth protects the configuration and new module loads.
|
|
398
502
|
| | |
|
|
399
503
|
| **`dbg`** | `True` `<bool>` | Yes | Debug mode - enable micrOS system printout, server info, etc. + progress LED.
|
|
400
504
|
| **`hwuid`** | `n/a` `<str>` | N/A | USED BY SYSTEM (state storage) - hardware address - dev uid
|
|
@@ -433,48 +537,150 @@ Official [DockerHub](https://hub.docker.com/repository/docker/bxnxm/micros-gatew
|
|
|
433
537
|
|
|
434
538
|
# micrOS Customization
|
|
435
539
|
|
|
436
|
-
[](./
|
|
540
|
+
[](./APPLICATION_GUIDE.md)
|
|
437
541
|
|
|
438
542
|
----------------------------------------
|
|
439
543
|
----------------------------------------
|
|
440
544
|
|
|
441
545
|
|
|
442
|
-
##
|
|
546
|
+
## FUTURE MAIN RELEASE PLANS
|
|
443
547
|
|
|
444
|
-
|
|
548
|
+
Version **3.0.0-0** `micrOS-Autonomous`
|
|
445
549
|
|
|
446
550
|
```
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
551
|
+
Core:
|
|
552
|
+
- (1) Async SSL/TLS integration (micropython 1.22+ required) [DONE]
|
|
553
|
+
- urequest module async redesign for rest clients [OK]
|
|
554
|
+
- LM_telegram (Notify) + server (listener - chatbot) [OK]
|
|
555
|
+
- (2) ESP-NOW (peer-to-peer communication) integration into InterCon [DONE]
|
|
556
|
+
- Multi command same device improvement (session ID handling) [DONE]
|
|
557
|
+
- (3) New intercon syntax - command level integration: [DONE]
|
|
558
|
+
- rgb toggle >>RingLight.local
|
|
559
|
+
- similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
|
|
560
|
+
- espnow integration into `rgb toggle >>RingLight.local` syntax (when available on target)
|
|
561
|
+
- (4) Create multi level project structure (curret is flat fs) [DONE]
|
|
562
|
+
- New micrOS FS structure:
|
|
563
|
+
- Automatic dir creation at bootup: '/logs', '/web', '/data', '/config', '/modules'
|
|
564
|
+
- Automatic sub-dir handling /source and /precompiled
|
|
565
|
+
- Automatic dir creation over USB
|
|
566
|
+
|
|
567
|
+
System Core File Structure:
|
|
568
|
+
- [DONE] root fs (stays untouched (approx.: 24)): /
|
|
569
|
+
- micrOS.py (core)
|
|
570
|
+
- Config.py (core)
|
|
571
|
+
- Tasks.py (core)
|
|
572
|
+
- Shell.py (core)
|
|
573
|
+
- Web.py (core)
|
|
574
|
+
- Server.py (core)
|
|
575
|
+
- etc... (core)
|
|
576
|
+
- [DONE] web folder: /web
|
|
577
|
+
- *.html
|
|
578
|
+
- *.js
|
|
579
|
+
- *.css
|
|
580
|
+
- etc.
|
|
581
|
+
- [DONE][RUNTIME] data folder: /data
|
|
582
|
+
- Dynamic/Runtime (approx.: 0-8):
|
|
583
|
+
- *.pds (LM app cache - persistent data storage)
|
|
584
|
+
- *.dat (Common datalogger output)
|
|
585
|
+
- Or store any application data here
|
|
586
|
+
- [DONE][RUNTIME] logs folder: /logs
|
|
587
|
+
- *.log
|
|
588
|
+
- *.sys.log
|
|
589
|
+
- [DONE] config folder /config
|
|
590
|
+
- node_config.json (core config)
|
|
591
|
+
- *.key files (offloaded core config values, like: guimeta)
|
|
592
|
+
- [DONE] module folder /modules - (mip complient: /modules/lib)
|
|
593
|
+
- LM_* (approx.: 54)
|
|
594
|
+
- IO_* (approx.: 5)
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
- (5) [DONE] Universal task creation response: `{taskID: verdict}`
|
|
598
|
+
|
|
599
|
+
- (6) [DONE] Proper mip installer support (/modules or /lib or /web)
|
|
600
|
+
- Note: Autonomous package management over wifi (github)
|
|
601
|
+
- pacman install <package-url>
|
|
602
|
+
- pacman uninstall <package-name>
|
|
603
|
+
- pacman upgrade <package-name>
|
|
604
|
+
- pacman ls
|
|
605
|
+
- pacman dirtree
|
|
606
|
+
- (7) [DONE] /config/requirements.txt handling (native micropython requirements syntax)
|
|
607
|
+
- pacman install "requirements.txt"
|
|
608
|
+
- (8) [DONE] micrOS/packages - submodule to create individual installable applications for micrOS
|
|
609
|
+
- Application registry (package.json and pacman.json): https://github.com/BxNxM/micrOSPackages
|
|
610
|
+
- micrOS devToolKit micrOS/packages Load Module feature rendering (same as for built-in LMs)
|
|
611
|
+
- sfuncman.json and sfuncman.html - external packages highlight
|
|
612
|
+
|
|
613
|
+
- (9) [DONE] micropython uplift to `1.27`
|
|
614
|
+
- [DONE] fix micrOS USB update config restore issue
|
|
615
|
+
|
|
616
|
+
- (10) [DONE] WebEngine: Web mounts/aliases for /data and /modules
|
|
617
|
+
- Default web mount: /web
|
|
618
|
+
- Extended web mounts (if in this dict logic):
|
|
619
|
+
WEB_MOUNTS = {
|
|
620
|
+
# PATH
|
|
621
|
+
"$modules": "/modules",
|
|
622
|
+
"$data": "/data",
|
|
623
|
+
...
|
|
624
|
+
}
|
|
625
|
+
- Absolute usr input path check (Files.py)
|
|
626
|
+
- Fileserver integration
|
|
627
|
+
- custom listing for /modules (without .mpy files)
|
|
628
|
+
- mount pathes write access handlig
|
|
629
|
+
- mount pathes read (+visibility) access handlig
|
|
630
|
+
|
|
631
|
+
- (11) [DONE] @Auth.sudo decorator
|
|
632
|
+
- Require pwd="<password>" parameter
|
|
633
|
+
- Two modes:
|
|
634
|
+
- Always require
|
|
635
|
+
- Require when force=True (_force_only=(True, 0))
|
|
636
|
+
- Apply this to:
|
|
637
|
+
- pacman rm
|
|
638
|
+
- pacman rmdir
|
|
639
|
+
- pacman uninstall
|
|
640
|
+
- pacman upgrade ... force=True
|
|
641
|
+
- ...
|
|
642
|
+
|
|
643
|
+
[TODO] TESTING + RELEASE `./micrOS/release_info/micrOS_ReleaseInfo`
|
|
644
|
+
- Create release notes (legacy: `release_3.0.0-0_note_esp32.md`)
|
|
645
|
+
- Introduce automatic release metrics generation...
|
|
646
|
+
- `system_analysis_sum.json` and `devices_system_metrics.json`
|
|
647
|
+
|
|
455
648
|
```
|
|
456
649
|
|
|
457
|
-
|
|
650
|
+
Version **3.1.0-0** `micrOS-Waterbear`
|
|
458
651
|
|
|
459
652
|
```
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
653
|
+
Core:
|
|
654
|
+
- Low power mode (wake on event, hibernate command)?
|
|
655
|
+
- Remote controller / Sensor UseCase
|
|
656
|
+
- WebEngine additional path shering:
|
|
657
|
+
- web shared root (already done): /web
|
|
658
|
+
- optional additional pathes:
|
|
659
|
+
- @modules -> /modules
|
|
660
|
+
- @data -> /data
|
|
468
661
|
```
|
|
469
662
|
|
|
470
|
-
|
|
663
|
+
|
|
664
|
+
Version **3.X.0-0** `micrOS-SecurePower`
|
|
471
665
|
|
|
472
666
|
```
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
667
|
+
Core:
|
|
668
|
+
- Async socket servers with SSL/TLS integration (with auth.)
|
|
669
|
+
- ShellCli (with TLS) and InterCon adaptation (default port: 9008, new secure port 9009)
|
|
670
|
+
- WebCli (https) and webUI adaptation
|
|
671
|
+
- Intercon-Wire (?)
|
|
672
|
+
- Idea of wired message communication protocol same as Intercon-Shell/Intercon-ESPNow
|
|
673
|
+
- Possible HW protocols: i2c / onewire / uart BUT it should support bidirectional message transfers
|
|
674
|
+
- Goal: CoProcessor easy integration feature - Arduino env support
|
|
675
|
+
- Application deployment automation: /config/compose.json
|
|
676
|
+
- enables application deployment:
|
|
677
|
+
- configuration (node_config.json) handling - safe parameter injection (boothook and irqs)
|
|
678
|
+
- [done] requirements.txt handling
|
|
679
|
+
- Automatic behaviour in core system if file exists in STA mode
|
|
476
680
|
```
|
|
477
681
|
|
|
682
|
+
<a id="release-note"></a>
|
|
683
|
+
## Release notes
|
|
478
684
|
|
|
479
685
|
| VERSION (TAG) | RELEASE INFO | MICROS CORE MEMORY USAGE | SUPPORTED DEVICE(S) | APP PROFILES | Load Modules | NOTE |
|
|
480
686
|
| :----------: | :----------------: | :------------------------: | :-----------------: | :------------: | :------------:| -------------- |
|
|
@@ -487,6 +693,8 @@ Optimization of new features...
|
|
|
487
693
|
| **v 1.5.0-1** | [release_Info-1.5.0-1](./micrOS/release_info/micrOS_ReleaseInfo/release_1.5.0-1_note_esp32.md) | **58,2%** 64 704 byte | esp32 (tinyPico) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_1.5.0-1.json) | Advanced Timer IRQ based scheduling (cron & timirq), Geolocation based timing features, External IRQs with 4 channel (event filtering), finalized light controls, Device-Device comminucation support, etc.
|
|
488
694
|
| **v 1.21.0-4** | [release_Info-1.21.0-4](./micrOS/release_info/micrOS_ReleaseInfo/release_1.21.0-4_note_esp32.md) | **57.3%** 63 728 byte | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_1.21.0-4.json) | Full async core system with advanced task management and device to device communication, task scheduling and much more ... with more then 30 application/pheriphery support.
|
|
489
695
|
| **v 2.0.0-0** | [release_Info-2.0.0-0](./micrOS/release_info/micrOS_ReleaseInfo/release_2.0.0-0_note_esp32.md) | **45.4%** 68.7 kb | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_2.0.0-0.json) | Optimizations, WebCli with web frontends, Camera support. Micropython 1.21 async maxed out :D
|
|
696
|
+
| **v 2.6.0-0** | [release_Info-2.6.0-0](./micrOS/release_info/micrOS_ReleaseInfo/release_2.6.0-0_note_esp32.md) | **48.3%** 72.6 kb | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_2.6.0-0.json) | WebCli http server enhancements. New webapps: dashboard. Core system official interface finalization towards Load Modules: Common.py, Types.py (frontend generation), microIO.py (pinout handling).
|
|
697
|
+
| **v 3.0.0-0** | [release_Info-3.0.0-0](./micrOS/release_info/micrOS_ReleaseInfo/release_3.0.0-0_note_esp32.md) | **??%** ?? kb | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_3.0.0-0.json) | ... Coming soon ...
|
|
490
698
|
|
|
491
699
|
----------------------------------------
|
|
492
700
|
----------------------------------------
|
|
@@ -642,8 +850,6 @@ devToolKit.py -c -p '--dev BedLamp help'
|
|
|
642
850
|
help
|
|
643
851
|
dht22
|
|
644
852
|
help
|
|
645
|
-
intercon
|
|
646
|
-
help
|
|
647
853
|
robustness
|
|
648
854
|
help
|
|
649
855
|
system
|
|
@@ -681,7 +887,7 @@ devToolKit.py -c -p '--dev BedLamp conf <a> dump'
|
|
|
681
887
|
nwmd : STA
|
|
682
888
|
timirqcbf : system ha_sta
|
|
683
889
|
irq_prell_ms: 300
|
|
684
|
-
boothook : cct
|
|
890
|
+
boothook : cct load
|
|
685
891
|
aioqueue : 3
|
|
686
892
|
auth : False
|
|
687
893
|
timirqseq : 60000
|
|
@@ -773,8 +979,6 @@ BedLamp $ help
|
|
|
773
979
|
help
|
|
774
980
|
dht22
|
|
775
981
|
help
|
|
776
|
-
intercon
|
|
777
|
-
help
|
|
778
982
|
robustness
|
|
779
983
|
help
|
|
780
984
|
system
|
|
@@ -786,206 +990,113 @@ Bye!
|
|
|
786
990
|
|
|
787
991
|
## Project structure
|
|
788
992
|
|
|
789
|
-
### micrOS resources library
|
|
790
|
-
|
|
791
|
-
#### micrOS Core
|
|
792
|
-
|
|
793
|
-
```
|
|
794
|
-
Core micrOS resources
|
|
795
|
-
1 172 Time.py (mlint: True) (pylint: 8.76) (ref.: 6)
|
|
796
|
-
2 123 micrOSloader.py (mlint: True) (pylint: 7.63) (ref.: 1)
|
|
797
|
-
3 53 Hooks.py (mlint: True) (pylint: 9.62) (ref.: 1)
|
|
798
|
-
4 452 Server.py (mlint: True) (pylint: 9.23) (ref.: 4)
|
|
799
|
-
5 516 Tasks.py (mlint: True) (pylint: 9.46) (ref.: 11)
|
|
800
|
-
6 220 Config.py (mlint: True) (pylint: 9.38) (ref.: 12)
|
|
801
|
-
7 9 reset.py (mlint: True) (pylint: 8.75) (ref.: 0)
|
|
802
|
-
8 264 Shell.py (mlint: True) (pylint: 9.4) (ref.: 1)
|
|
803
|
-
9 213 Notify.py (mlint: True) (pylint: 9.57) (ref.: 2)
|
|
804
|
-
10 161 Common.py (mlint: True) (pylint: 8.98) (ref.: 19)
|
|
805
|
-
11 155 InterConnect.py (mlint: True) (pylint: 9.11) (ref.: 1)
|
|
806
|
-
12 204 Debug.py (mlint: True) (pylint: 8.61) (ref.: 23)
|
|
807
|
-
13 214 Network.py (mlint: True) (pylint: 9.64) (ref.: 9)
|
|
808
|
-
14 225 Scheduler.py (mlint: True) (pylint: 9.43) (ref.: 1)
|
|
809
|
-
15 133 microIO.py (mlint: True) (pylint: 9.05) (ref.: 35)
|
|
810
|
-
16 69 micrOS.py (mlint: True) (pylint: 9.3) (ref.: 1)
|
|
811
|
-
17 159 Interrupts.py (mlint: True) (pylint: 9.08) (ref.: 2)
|
|
812
|
-
18 19 main.py (mlint: True) (pylint: 8.89) (ref.: 0)
|
|
813
|
-
19 146 urequests.py (mlint: True) (pylint: 8.79) (ref.: 3)
|
|
814
|
-
|
|
815
|
-
SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 3507
|
|
816
|
-
```
|
|
817
|
-
|
|
818
|
-
#### micrOS Load Modules
|
|
819
|
-
|
|
820
|
-
```
|
|
821
|
-
micrOS Load Module resources
|
|
822
|
-
1 262 LM_roboarm.py (mlint: True) (pylint: 9.18) (ref.: 0)
|
|
823
|
-
2 133 LM_stepper.py (mlint: True) (pylint: 9.04) (ref.: 1)
|
|
824
|
-
3 129 LM_genIO.py (mlint: True) (pylint: 7.42) (ref.: 1)
|
|
825
|
-
4 499 LM_oled_ui.py (mlint: False) (pylint: 8.74) (ref.: 0)
|
|
826
|
-
5 197 LM_system.py (mlint: True) (pylint: 7.48) (ref.: 2)
|
|
827
|
-
6 53 LM_robustness.py (mlint: True) (pylint: 7.04) (ref.: 0)
|
|
828
|
-
7 122 LM_co2.py (mlint: True) (pylint: 8.39) (ref.: 3)
|
|
829
|
-
8 217 LM_oled.py (mlint: True) (pylint: 9.31) (ref.: 1)
|
|
830
|
-
9 85 LM_tinyrgb.py (mlint: True) (pylint: 8.18) (ref.: 0)
|
|
831
|
-
10 104 LM_aht10.py (mlint: False) (pylint: 8.39) (ref.: 0)
|
|
832
|
-
11 299 LM_bme280.py (mlint: True) (pylint: 7.98) (ref.: 0)
|
|
833
|
-
12 39 LM_ph_sensor.py (mlint: True) (pylint: 6.32) (ref.: 0)
|
|
834
|
-
13 240 LM_buzzer.py (mlint: True) (pylint: 8.79) (ref.: 0)
|
|
835
|
-
14 224 LM_switch.py (mlint: True) (pylint: 8.64) (ref.: 2)
|
|
836
|
-
15 124 LM_servo.py (mlint: True) (pylint: 7.87) (ref.: 4)
|
|
837
|
-
16 49 LM_rgbcct.py (mlint: True) (pylint: 8.57) (ref.: 0)
|
|
838
|
-
17 280 LM_oled_sh1106.py (mlint: True) (pylint: 8.88) (ref.: 1)
|
|
839
|
-
18 304 LM_neopixel.py (mlint: True) (pylint: 7.34) (ref.: 2)
|
|
840
|
-
19 317 LM_cct.py (mlint: True) (pylint: 8.65) (ref.: 1)
|
|
841
|
-
20 47 LM_L9110_DCmotor.py (mlint: True) (pylint: 8.08) (ref.: 0)
|
|
842
|
-
21 283 LM_neoeffects.py (mlint: True) (pylint: 6.97) (ref.: 0)
|
|
843
|
-
22 33 LM_i2c.py (mlint: True) (pylint: 6.43) (ref.: 0)
|
|
844
|
-
23 72 LM_dht22.py (mlint: True) (pylint: 7.78) (ref.: 0)
|
|
845
|
-
24 68 LM_L298N_DCmotor.py (mlint: True) (pylint: 9.02) (ref.: 0)
|
|
846
|
-
25 44 LM_esp32.py (mlint: True) (pylint: 5.0) (ref.: 0)
|
|
847
|
-
26 64 LM_pet_feeder.py (mlint: True) (pylint: 7.94) (ref.: 0)
|
|
848
|
-
27 87 LM_rencoder.py (mlint: False) (pylint: 8.24) (ref.: 0)
|
|
849
|
-
28 72 LM_dht11.py (mlint: True) (pylint: 7.78) (ref.: 0)
|
|
850
|
-
29 76 LM_telegram.py (mlint: False) (pylint: 9.15) (ref.: 0)
|
|
851
|
-
30 161 LM_OV2640.py (mlint: False) (pylint: 8.94) (ref.: 0)
|
|
852
|
-
31 282 LM_rgb.py (mlint: True) (pylint: 8.4) (ref.: 2)
|
|
853
|
-
32 70 LM_distance.py (mlint: True) (pylint: 8.37) (ref.: 0)
|
|
854
|
-
33 323 LM_VL53L0X.py (mlint: True) (pylint: 9.14) (ref.: 0)
|
|
855
|
-
34 107 LM_light_sensor.py (mlint: True) (pylint: 8.91) (ref.: 0)
|
|
856
|
-
35 12 LM_rp2w.py (mlint: True) (pylint: 5.56) (ref.: 0)
|
|
857
|
-
36 207 LM_presence.py (mlint: False) (pylint: 8.38) (ref.: 4)
|
|
858
|
-
37 200 LM_dimmer.py (mlint: True) (pylint: 8.32) (ref.: 0)
|
|
859
|
-
38 60 LM_demo.py (mlint: False) (pylint: 8.46) (ref.: 0)
|
|
860
|
-
39 96 LM_lmpacman.py (mlint: True) (pylint: 6.98) (ref.: 0)
|
|
861
|
-
40 60 LM_catgame.py (mlint: True) (pylint: 8.85) (ref.: 0)
|
|
862
|
-
41 46 LM_intercon.py (mlint: True) (pylint: 8.64) (ref.: 3)
|
|
863
|
-
42 54 LM_ds18.py (mlint: True) (pylint: 5.38) (ref.: 0)
|
|
864
|
-
|
|
865
|
-
SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 6201
|
|
866
|
-
```
|
|
867
|
-
|
|
868
|
-
> LM (Load Modules) - Application logic - accessable over socket server as a command
|
|
869
|
-
|
|
870
|
-
### micrOS devToolkit resources
|
|
871
|
-
|
|
872
|
-
#### DevToolKit Dashboard apps
|
|
873
|
-
|
|
874
|
-
> You can easly copy the `Template_app.py`, and create a new socket based app.
|
|
875
|
-
[Template_app.py](https://github.com/BxNxM/micrOS/blob/master/toolkit/dashboard_apps/Template_app.py)
|
|
876
|
-
|
|
877
993
|
```
|
|
878
|
-
micrOS/
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
994
|
+
./micrOS/source
|
|
995
|
+
├── Common.py
|
|
996
|
+
├── Config.py
|
|
997
|
+
├── Debug.py
|
|
998
|
+
├── Espnow.py
|
|
999
|
+
├── Files.py
|
|
1000
|
+
├── Hooks.py
|
|
1001
|
+
├── InterConnect.py
|
|
1002
|
+
├── Interrupts.py
|
|
1003
|
+
├── Logger.py
|
|
1004
|
+
├── Network.py
|
|
1005
|
+
├── Notify.py
|
|
1006
|
+
├── Scheduler.py
|
|
1007
|
+
├── Server.py
|
|
1008
|
+
├── Shell.py
|
|
1009
|
+
├── Tasks.py
|
|
1010
|
+
├── Time.py
|
|
1011
|
+
├── Types.py
|
|
1012
|
+
├── Web.py
|
|
1013
|
+
├── main.py
|
|
1014
|
+
├── micrOS.py
|
|
1015
|
+
├── micrOSloader.py
|
|
1016
|
+
├── reset.py
|
|
1017
|
+
├── urequests.py
|
|
1018
|
+
├── microIO.py
|
|
1019
|
+
├── config
|
|
1020
|
+
│ └── _git.keep
|
|
1021
|
+
├── modules
|
|
1022
|
+
│ ├── IO_esp32.py
|
|
1023
|
+
│ ├── IO_esp32c3.py
|
|
1024
|
+
│ ├── IO_esp32c6.py
|
|
1025
|
+
│ ├── IO_esp32s2.py
|
|
1026
|
+
│ ├── IO_esp32s3.py
|
|
1027
|
+
│ ├── IO_m5stamp.py
|
|
1028
|
+
│ ├── IO_qtpy.py
|
|
1029
|
+
│ ├── IO_rp2.py
|
|
1030
|
+
│ ├── IO_s3matrix.py
|
|
1031
|
+
│ ├── IO_tinypico.py
|
|
1032
|
+
│ ├── LM_L298N.py
|
|
1033
|
+
│ ├── LM_L9110_DCmotor.py
|
|
1034
|
+
│ ├── LM_OV2640.py
|
|
1035
|
+
│ ├── LM_VL53L0X.py
|
|
1036
|
+
│ ├── LM_aht10.py
|
|
1037
|
+
│ ├── LM_bme280.py
|
|
1038
|
+
│ ├── LM_buzzer.py
|
|
1039
|
+
│ ├── LM_cct.py
|
|
1040
|
+
│ ├── LM_cluster.py
|
|
1041
|
+
│ ├── LM_co2.py
|
|
1042
|
+
│ ├── LM_dashboard_be.py
|
|
1043
|
+
│ ├── LM_dht11.py
|
|
1044
|
+
│ ├── LM_dht22.py
|
|
1045
|
+
│ ├── LM_dimmer.py
|
|
1046
|
+
│ ├── LM_distance.py
|
|
1047
|
+
│ ├── LM_ds18.py
|
|
1048
|
+
│ ├── LM_esp32.py
|
|
1049
|
+
│ ├── LM_espnow.py
|
|
1050
|
+
│ ├── LM_gameOfLife.py
|
|
1051
|
+
│ ├── LM_genIO.py
|
|
1052
|
+
│ ├── LM_haptic.py
|
|
1053
|
+
│ ├── LM_i2c.py
|
|
1054
|
+
│ ├── LM_i2s_mic.py
|
|
1055
|
+
│ ├── LM_keychain.py
|
|
1056
|
+
│ ├── LM_ld2410.py
|
|
1057
|
+
│ ├── LM_light_sensor.py
|
|
1058
|
+
│ ├── LM_mqtt_client.py
|
|
1059
|
+
│ ├── LM_neoeffects.py
|
|
1060
|
+
│ ├── LM_neomatrix.py
|
|
1061
|
+
│ ├── LM_neopixel.py
|
|
1062
|
+
│ ├── LM_oled.py
|
|
1063
|
+
│ ├── LM_oled_sh1106.py
|
|
1064
|
+
│ ├── LM_oled_ui.py
|
|
1065
|
+
│ ├── LM_oledui.py
|
|
1066
|
+
│ ├── LM_pacman.py
|
|
1067
|
+
│ ├── LM_presence.py
|
|
1068
|
+
│ ├── LM_qmi8658.py
|
|
1069
|
+
│ ├── LM_rencoder.py
|
|
1070
|
+
│ ├── LM_rest.py
|
|
1071
|
+
│ ├── LM_rgb.py
|
|
1072
|
+
│ ├── LM_rgbcct.py
|
|
1073
|
+
│ ├── LM_roboarm.py
|
|
1074
|
+
│ ├── LM_robustness.py
|
|
1075
|
+
│ ├── LM_rp2w.py
|
|
1076
|
+
│ ├── LM_sdcard.py
|
|
1077
|
+
│ ├── LM_servo.py
|
|
1078
|
+
│ ├── LM_sound_event.py
|
|
1079
|
+
│ ├── LM_stepper.py
|
|
1080
|
+
│ ├── LM_switch.py
|
|
1081
|
+
│ ├── LM_system.py
|
|
1082
|
+
│ ├── LM_tcs3472.py
|
|
1083
|
+
│ ├── LM_telegram.py
|
|
1084
|
+
│ ├── LM_tinyrgb.py
|
|
1085
|
+
│ ├── LM_trackball.py
|
|
1086
|
+
│ └── LM_veml7700.py
|
|
1087
|
+
└── web
|
|
1088
|
+
├── dashboard.html
|
|
1089
|
+
├── index.html
|
|
1090
|
+
├── matrix_draw.html
|
|
1091
|
+
├── uapi.js
|
|
1092
|
+
├── udashboard.js
|
|
1093
|
+
├── ustyle.css
|
|
1094
|
+
├── uwidgets.js
|
|
1095
|
+
└── uwidgets_pro.js
|
|
1096
|
+
|
|
1097
|
+
4 directories, 98 files
|
|
891
1098
|
```
|
|
892
1099
|
|
|
893
|
-
#### Stored connection data and default node configs
|
|
894
|
-
|
|
895
|
-
```
|
|
896
|
-
micrOS/toolkit/user_data
|
|
897
|
-
│ ├── device_conn_cache.json <- connection cache
|
|
898
|
-
│ └── node_config_archive
|
|
899
|
-
│ ├── BigRGB-node_config.json
|
|
900
|
-
│ ├── Chillight-node_config.json
|
|
901
|
-
│ ├── Kapcsolo230-node_config.json
|
|
902
|
-
│ ├── LampController-node_config.json
|
|
903
|
-
│ ├── MeasureNode-node_config.json
|
|
904
|
-
│ ├── MrGreen-node_config.json
|
|
905
|
-
│ ├── RingLamp-node_config.json
|
|
906
|
-
│ └── test-node_config.json
|
|
907
|
-
```
|
|
908
|
-
|
|
909
|
-
#### Virtaulenv for development and stored USB-Serial drivers
|
|
910
|
-
|
|
911
|
-
```
|
|
912
|
-
micrOS/env/
|
|
913
|
-
├── __init__.py
|
|
914
|
-
├── driver_cp210x
|
|
915
|
-
│ ├── CP210x_Universal_Windows_Driver
|
|
916
|
-
│ └── macOS_VCP_Driver
|
|
917
|
-
├── requirements.txt
|
|
918
|
-
└── venv
|
|
919
|
-
├── bin
|
|
920
|
-
├── include
|
|
921
|
-
├── lib
|
|
922
|
-
└── pyvenv.cfg
|
|
923
|
-
```
|
|
924
|
-
|
|
925
|
-
#### Precompiled resources for easy install
|
|
926
|
-
|
|
927
|
-
```
|
|
928
|
-
micrOS/toolkit/workspace/precompiled
|
|
929
|
-
│ ├── BgJob.mpy
|
|
930
|
-
│ ├── Common.mpy
|
|
931
|
-
│ ├── ConfigHandler.mpy
|
|
932
|
-
│ ├── Debug.mpy
|
|
933
|
-
│ ├── Hooks.mpy
|
|
934
|
-
│ ├── InterConnect.mpy
|
|
935
|
-
│ ├── InterpreterCore.mpy
|
|
936
|
-
│ ├── InterpreterShell.mpy
|
|
937
|
-
│ ├── InterruptHandler.mpy
|
|
938
|
-
│ ├── LM_L298N_DCmotor.mpy
|
|
939
|
-
│ ├── LM_L9110_DCmotor.py
|
|
940
|
-
│ ├── LM_VL53L0X.py
|
|
941
|
-
│ ├── LM_bme280.mpy
|
|
942
|
-
│ ├── LM_buzzer.mpy
|
|
943
|
-
│ ├── LM_catgame.py
|
|
944
|
-
│ ├── LM_cct.mpy
|
|
945
|
-
│ ├── LM_co2.mpy
|
|
946
|
-
│ ├── LM_dht11.mpy
|
|
947
|
-
│ ├── LM_dht22.mpy
|
|
948
|
-
│ ├── LM_dimmer.mpy
|
|
949
|
-
│ ├── LM_distance_HCSR04.py
|
|
950
|
-
│ ├── LM_ds18.mpy
|
|
951
|
-
│ ├── LM_esp32.py
|
|
952
|
-
│ ├── LM_genIO.mpy
|
|
953
|
-
│ ├── LM_i2c.py
|
|
954
|
-
│ ├── LM_intercon.mpy
|
|
955
|
-
│ ├── LM_light_sensor.mpy
|
|
956
|
-
│ ├── LM_neoeffects.mpy
|
|
957
|
-
│ ├── LM_neopixel.mpy
|
|
958
|
-
│ ├── LM_oled.mpy
|
|
959
|
-
│ ├── LM_oled_ui.mpy
|
|
960
|
-
│ ├── LM_pet_feeder.py
|
|
961
|
-
│ ├── LM_ph_sensor.py
|
|
962
|
-
│ ├── LM_rgb.mpy
|
|
963
|
-
│ ├── LM_roboarm.mpy
|
|
964
|
-
│ ├── LM_robustness.py
|
|
965
|
-
│ ├── LM_servo.mpy
|
|
966
|
-
│ ├── LM_stepper.mpy
|
|
967
|
-
│ ├── LM_switch.mpy
|
|
968
|
-
│ ├── LM_system.mpy
|
|
969
|
-
│ ├── LM_tinyrgb.mpy
|
|
970
|
-
│ ├── IO_esp32.mpy
|
|
971
|
-
│ ├── IO_tinypico.mpy
|
|
972
|
-
│ ├── LogicalPins.mpy
|
|
973
|
-
│ ├── Network.mpy
|
|
974
|
-
│ ├── Scheduler.mpy
|
|
975
|
-
│ ├── SocketServer.mpy
|
|
976
|
-
│ ├── Time.mpy
|
|
977
|
-
│ ├── TinyPLed.mpy
|
|
978
|
-
│ ├── boot.py
|
|
979
|
-
│ ├── micrOS.mpy
|
|
980
|
-
│ ├── micrOSloader.mpy
|
|
981
|
-
│ └── reset.mpy
|
|
982
|
-
```
|
|
983
|
-
|
|
984
|
-
> Note: From the `micrOS/source/` by default the LMs are not compiling, to extend complied LM list add LM explicitly to the following file:
|
|
985
|
-
|
|
986
|
-
```
|
|
987
|
-
micrOs/toolkit/LM_to_compile.dat
|
|
988
|
-
```
|
|
989
1100
|
|
|
990
1101
|
----------------------------------------
|
|
991
1102
|
|
|
@@ -1008,6 +1119,8 @@ devToolKit.py --linter
|
|
|
1008
1119
|
|
|
1009
1120
|
### micrOS gateway - Linux service template
|
|
1010
1121
|
|
|
1122
|
+
> [BETA] service setup tool: `toolkit/helper_scripts/linux_service/make.bash`
|
|
1123
|
+
|
|
1011
1124
|
- Prerequisite: install micrOS devtoolkit **PiP package**
|
|
1012
1125
|
|
|
1013
1126
|
- Create service: [micrOS gateway service](https://domoticproject.com/creating-raspberry-pi-service/)
|