micrOSDevToolKit 2.6.6__tar.gz → 2.7.0__tar.gz
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.
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/PKG-INFO +67 -21
- micrOSDevToolKit-2.6.6/micrOSDevToolKit.egg-info/PKG-INFO → microsdevtoolkit-2.7.0/README.md +51 -33
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +48 -28
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Common.py +18 -14
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Hooks.py +20 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32.py +2 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_tinypico.py +4 -2
- {micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled → microsdevtoolkit-2.7.0/micrOS/source}/LM_demo.py +3 -3
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_distance.py +47 -4
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_esp32.py +8 -1
- microsdevtoolkit-2.7.0/micrOS/source/LM_haptic.py +111 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_i2c.py +19 -3
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_oled_ui.py +1 -1
- microsdevtoolkit-2.7.0/micrOS/source/LM_oledui.py +973 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rencoder.py +36 -7
- microsdevtoolkit-2.7.0/micrOS/source/LM_sound_event.py +752 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_system.py +41 -19
- microsdevtoolkit-2.7.0/micrOS/source/LM_trackball.py +287 -0
- microsdevtoolkit-2.7.0/micrOS/source/LM_veml7700.py +159 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Shell.py +1 -1
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Types.py +0 -1
- micrOSDevToolKit-2.6.6/README.md → microsdevtoolkit-2.7.0/micrOSDevToolKit.egg-info/PKG-INFO +79 -17
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/SOURCES.txt +11 -1
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/setup.py +1 -1
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/LM_to_compile.dat +6 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/MicrOSDevEnv.py +6 -1
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/macroScript.py +162 -48
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/micrOSlint.py +1 -1
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/machine.py +4 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/Common.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/Hooks.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
- {micrOSDevToolKit-2.6.6/micrOS/source → microsdevtoolkit-2.7.0/toolkit/workspace/precompiled}/LM_demo.py +3 -3
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_distance.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_esp32.py +8 -1
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_haptic.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_i2c.py +19 -3
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rencoder.py +36 -7
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_sound_event.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_system.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_trackball.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_veml7700.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Shell.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Types.mpy +0 -0
- microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/node_config.json +1 -0
- micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/Common.mpy +0 -0
- micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/Hooks.mpy +0 -0
- micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
- micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/LM_distance.py +0 -96
- micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/LM_system.mpy +0 -0
- micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/node_config.json +0 -1
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/LICENSE +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/MANIFEST.in +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/devToolKit.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/.DS_Store +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CH34XSER_MAC/CH34X_DRV_INSTALL_INSTRUCTIONS.pdf +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CH34XSER_MAC/CH34xVCPDriver.pkg +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/dnd.png +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/logo.png +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/logo_mini.png +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/usb_port_icon.png +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/wifi_icon.png +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32-20231005-v1.21.0.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32-GENERIC-20240602-v1.23.0.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32c3-GENERIC-20240222-v1.22.2.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s2-GENERIC-20240602-v1.23.0.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s3-GENERIC-20240105-v1.22.1.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/rpi-pico-w-20240602-v1.23.0.uf2 +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/tinypico-20231005-v1.21.0.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/tinypico_usbc-UM-20240105-v1.22.1.bin +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/.DS_Store +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Config.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Debug.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32c3.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32s2.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32s3.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_m5stamp.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_qtpy.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_rp2.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/InterConnect.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Interrupts.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_L298N_DCmotor.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_L9110_DCmotor.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_OV2640.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_VL53L0X.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_aht10.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_bme280.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_buzzer.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_catgame.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_cct.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_co2.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dashboard_be.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dht11.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dht22.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dimmer.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_ds18.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_gameOfLife.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_genIO.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_i2s_mic.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_intercon.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_keychain.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_ld2410.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_light_sensor.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_lmpacman.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_neoeffects.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_neopixel.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_oled.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_oled_sh1106.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_pet_feeder.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_ph_sensor.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_presence.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rgb.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rgbcct.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_roboarm.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_robustness.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rp2w.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_sdcard.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_servo.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_stepper.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_switch.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_telegram.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_tinyrgb.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Logger.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Network.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Notify.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Scheduler.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Server.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Tasks.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Time.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/dashboard.html +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/index.html +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/main.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/micrOS.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/micrOSloader.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/microIO.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/reset.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/uapi.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/udashboard.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/urequests.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/ustyle.css +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/uwidgets.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/uwidgets_pro.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/requires.txt +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/setup.cfg +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/DevEnvCompile.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/DevEnvOTA.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/DevEnvUSB.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/Gateway.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/AirQualityBME280.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/BackupRestore.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CCTDemo.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CCTTest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CamStream.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CatGame.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/Dimmer.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/GetVersion.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/PresenceTest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/RGBTest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/RoboArm.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/SED_test.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/SystemTest.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/Template_app.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/_capture.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/_micPlotting.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/uLightDemo.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/img_stream.html +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/index.html +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/LocalMachine.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/SafeInput.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/SearchDevices.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/SerialDriverHandler.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/TerminalColors.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/file_extensions.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/micrOSClient.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/pip_package_installer.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/micrOSdashboard.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/.DS_Store +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/IO_darwin.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/camera.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/dht.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/dotstar.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ds18x20.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/esp32.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/framebuf.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/micropython.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/neopixel.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/network.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/node_config.json +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ntptime.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/onewire.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/sim_console.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/simgc.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/simulator.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/tinypico.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/uasyncio.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/usocket.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ussl.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ustruct.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/utime.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/view01.jpg +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/view02.jpg +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/webrepl.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/socketClient.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/.include +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/generic.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/macro.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/template.macro +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/template.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/__init__.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Config.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Debug.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_m5stamp.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_L9110_DCmotor.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_VL53L0X.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_buzzer.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_catgame.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_cct.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_co2.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dashboard_be.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_gameOfLife.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_ld2410.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_oled.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_pet_feeder.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_ph_sensor.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rest.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rgbcct.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_robustness.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rp2w.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_sdcard.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_servo.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_stepper.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_switch.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_tinyrgb.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Logger.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Network.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Notify.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Server.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Time.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/_mpy.version +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/dashboard.html +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/index.html +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/main.py +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/microIO.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/reset.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/uapi.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/udashboard.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/urequests.mpy +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/ustyle.css +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/uwidgets.js +0 -0
- {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/uwidgets_pro.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: micrOSDevToolKit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.7.0
|
|
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
|
|
@@ -8,14 +8,27 @@ Author-email: miros.framework@gmail.com
|
|
|
8
8
|
License: MIT
|
|
9
9
|
Project-URL: Bug Tracker, https://github.com/BxNxM/micrOS/issues
|
|
10
10
|
Project-URL: GitHub Discussions, https://github.com/BxNxM/micrOS/discussions
|
|
11
|
-
Platform: UNKNOWN
|
|
12
11
|
Description-Content-Type: text/markdown
|
|
13
12
|
License-File: LICENSE
|
|
13
|
+
Requires-Dist: adafruit-ampy
|
|
14
|
+
Requires-Dist: mpremote
|
|
15
|
+
Requires-Dist: esptool
|
|
16
|
+
Requires-Dist: ipaddress
|
|
17
|
+
Requires-Dist: netaddr
|
|
18
|
+
Requires-Dist: pylint
|
|
19
|
+
Requires-Dist: pyserial
|
|
20
|
+
Requires-Dist: resources
|
|
21
|
+
Requires-Dist: flask
|
|
22
|
+
Requires-Dist: flask_restful
|
|
23
|
+
Requires-Dist: numpy
|
|
24
|
+
Requires-Dist: json2html
|
|
25
|
+
Requires-Dist: requests
|
|
26
|
+
Requires-Dist: Flask-BasicAuth
|
|
27
|
+
Requires-Dist: soundfile
|
|
14
28
|
|
|
15
29
|
#  micrOS
|
|
16
30
|
|
|
17
|
-
|
|
18
|
-
### micropython based smart edge platform #IoT
|
|
31
|
+
> **"Simple, yet increadbly useful."**
|
|
19
32
|
|
|
20
33
|
                 <br/>
|
|
21
34
|
|
|
@@ -31,7 +44,7 @@ Thanks for , fo
|
|
|
31
44
|
[](https://pypi.org/project/micrOSDevToolKit/)
|
|
32
45
|
|
|
33
46
|
|
|
34
|
-
**micrOS** is a mini **application** execution **platform** with ShellCli (socket) and WebCli (http) **servers** and several **other** embedded **features**.
|
|
47
|
+
**micrOS** is a [micropython](http://micropython.org) based mini **application** execution **platform** with ShellCli (socket) and WebCli (http) **servers** and several **other** embedded **features**.
|
|
35
48
|
> It uses direct wifi connection to access the exposed functionalities.<br/>
|
|
36
49
|
|
|
37
50
|
In case of any technical comments or requests, please use [](https://github.com/BxNxM/micrOS/discussions).
|
|
@@ -52,9 +65,6 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
52
65
|
⚠️ No external server or service required for client-device communication <br/>
|
|
53
66
|
⚠️ 🛡 Works on Local Network (WiFi-WLAN) <br/>
|
|
54
67
|
🛠 Easy to create custom application(s) aka create your own Load Modules: <br/>
|
|
55
|
-
1. Write **LM_**`<your_app>`**.py** <br/>
|
|
56
|
-
2. Copy (OTA/USB) python script to your device (drag&drop)<br/>
|
|
57
|
-
3. Call any function from **`<your_app>`** module <br/>
|
|
58
68
|
🦾 Built-in scheduling (IRQs):<br/>
|
|
59
69
|
- Time stamp based <br/>
|
|
60
70
|
- Geolocation based clock setup + time tags: sunset, sunrise <br/>
|
|
@@ -70,8 +80,8 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
70
80
|
4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
|
|
71
81
|
5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
|
|
72
82
|
6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
73
|
-
7. micrOS
|
|
74
|
-
8. micrOS
|
|
83
|
+
7. micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
|
|
84
|
+
8. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
|
|
75
85
|
9. Release notes: [link](https://github.com/BxNxM/micrOS/#relese-note)
|
|
76
86
|
|
|
77
87
|
----------------------------------------
|
|
@@ -222,57 +232,65 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
222
232
|
- ⏳**Boot phase** - preload Load Module(s)
|
|
223
233
|
- For pinout and last state initialization - based on node_config `boothook`
|
|
224
234
|
- Example values: `rgb load; neopixel load`
|
|
235
|
+
- Comments `#` can be used: `#rgb load; neopixel load`, excellect for experimentation.
|
|
225
236
|
- 📡**Network handling** - based on node_config
|
|
226
237
|
- STA / AP network modes, `nwmd`
|
|
227
238
|
- NTP + UTC aka clock setup
|
|
228
239
|
- API: [ip-api.com](http://ip-api.com/json/?fields=lat,lon,timezone,offset)
|
|
229
240
|
- Static IP configuration, `devip`
|
|
230
241
|
- dhcp hostname setup, `devfid`.local
|
|
242
|
+
- system `uptime` measurement
|
|
231
243
|
- ⚙️**Scheduling / External events** - Interrupt callback - based on node_config
|
|
232
244
|
- Time based
|
|
233
245
|
- ⌛️simple LM task pool execution `timirq` & `timirqcbf`
|
|
234
246
|
- `Timer(0)`
|
|
247
|
+
- Comments `#` can be used in `timirqcbf`
|
|
235
248
|
- 🗓cron [time stump!LM task] pool execution `cron` & `crontasks`
|
|
236
249
|
- `Timer(1)`
|
|
237
250
|
- timestamp: `WD:H:M:S!LM FUNC`, ranges: `0-6:0-23:0-59:0-59!LM FUNC`
|
|
238
251
|
- 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.
|
|
239
|
-
- `WD: 0...6` 0=Monday, 6=Sunday
|
|
252
|
+
- `WD: 0...6` 0=Monday, 6=Sunday
|
|
253
|
+
- optional **range handling**: 0-2 means Monday to Wednesday
|
|
240
254
|
- tag: `sunset` / `sunrise`
|
|
241
255
|
- 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.
|
|
242
256
|
- optional minute offset (+/-): sunrise+30
|
|
257
|
+
- Comments cannot be used in `crontasks`! No multiple commands in this mode!
|
|
243
258
|
|
|
244
259
|
- API: [api.sunrise-sunset.org](https://api.sunrise-sunset.org/json?lat={lat}&lng={lon}&date=today&formatted=0)
|
|
245
260
|
- 💣Event based
|
|
246
261
|
- Set trigger event `irqX`
|
|
247
262
|
- Trigger up/down/both `irqX_trig`
|
|
248
263
|
- With LM callback function `irqX_cbf`
|
|
249
|
-
|
|
264
|
+
- Comments `#` can be used in `irqX_cbf`
|
|
265
|
+
- `X` can be = 1, 2, 3 or 4
|
|
266
|
+
|
|
250
267
|
|
|
251
|
-
- ⚙️**[L]oad [M]odule** aka **application**
|
|
268
|
+
- ⚙️**[L]oad [M]odule** aka **application** execution
|
|
252
269
|
- Lot of built-in functions (table below)
|
|
253
270
|
- Create your own module with 3 easy steps
|
|
254
271
|
- Create a python file, naming convention: `LM_<your_app_name>.py`
|
|
255
272
|
- Replace `<your_app_name>` for anything you prefer!
|
|
256
273
|
- Write python functions, you can call any function from that module...
|
|
257
|
-
- Upload modul with "drag&Drop"
|
|
274
|
+
- Upload modul with "drag&Drop" devToolKit GUI `devToolKit.py`
|
|
258
275
|
|
|
259
276
|
- 📨**ShellCli** - wireless communication interface with the nodes
|
|
260
|
-
- **System commands**: `help, version, reboot, webrepl, webrepl --update, etc.`
|
|
261
|
-
- After `webrepl --update` command the micrOS system reboots and waits for ota update in webrepl mode.
|
|
277
|
+
- **System commands**: `help, version, reboot, modules, webrepl, webrepl --update, etc.`
|
|
278
|
+
- After `webrepl --update` command the micrOS system reboots and waits for ota update in webrepl mode about 20 seconds.
|
|
262
279
|
- **Config handling** SET/GET/DUMP - **node_config.json**
|
|
263
280
|
- enter configuration mode: `conf`
|
|
264
|
-
- exit configuration mode:`noconf`
|
|
265
281
|
- Print out all parameters and values: `dump`
|
|
282
|
+
- exit configuration mode:`noconf`
|
|
266
283
|
- **LM** - Load Module function execution (application modules)
|
|
267
284
|
- Example: `system info`
|
|
268
|
-
- 🖇**
|
|
285
|
+
- 🖇**microIO** pinout handling - lookuptables for each board
|
|
269
286
|
- Predefined pinout modules for esp32, tinyPico
|
|
270
287
|
- Create your pinout based on `IO_esp32.py`, naming convencion: `IO_<name>.py`
|
|
271
288
|
- To activate your custom pinout set `cstmpmap` config parameter to `<name>`
|
|
289
|
+
- HINT: to get pin number you can get it by pin label, like: `system pinamp`
|
|
272
290
|
|
|
273
291
|
- 🔄 **Task manager** aka **Async LM jobs**
|
|
274
292
|
- Capable of execute [L]oad [M]odules in the background
|
|
275
|
-
- Invoke with single execution `&` or loop execution `&&`
|
|
293
|
+
- Invoke with single execution `&` or for loop execution `&&`
|
|
276
294
|
- Example:
|
|
277
295
|
- In loop: `system heartbeat &&`
|
|
278
296
|
- Loop frequency conrol: `system heartbeat &&1000`, it will execute every sec
|
|
@@ -286,6 +304,36 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
286
304
|
|
|
287
305
|
- Socket client python plugin - interactive - non interactive mode
|
|
288
306
|
|
|
307
|
+
----------------------
|
|
308
|
+
|
|
309
|
+
### Boards and suggestions
|
|
310
|
+
|
|
311
|
+
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)(ℹ️).
|
|
312
|
+
|
|
313
|
+
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 !!!
|
|
314
|
+
|
|
315
|
+
**Suggestions - 🔮futureproof hardware:**
|
|
316
|
+
|
|
317
|
+
**`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 🚀)
|
|
318
|
+
|
|
319
|
+
**`esp32s3-octo`** Same sa normal psram, just uses 8 pins to connect to the MCU, basically faster...
|
|
320
|
+
|
|
321
|
+
**`tinypico`** excellet hardware, bit pricy, with 4Mb of ram.
|
|
322
|
+
|
|
323
|
+
**`esp32cam`** it has a custom image and attached 8Mb of ram.
|
|
324
|
+
|
|
325
|
+
So prefer boards with more psram 2Mb-8Mb, **minumum requirement for the full flatched setup ~400kb** but smallest psram is **2Mb**, in practive:
|
|
326
|
+
|
|
327
|
+
- max measured 4Mb is 3.2% 128kb - oled_ui and lot of things loaded...
|
|
328
|
+
- camera stream can use about 50% of ram, that means about 2Mb of ram usage.
|
|
329
|
+
|
|
330
|
+
ℹ️ 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.
|
|
331
|
+
|
|
332
|
+
> Note:
|
|
333
|
+
|
|
334
|
+
**`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 :)**
|
|
335
|
+
|
|
336
|
+
----------------------
|
|
289
337
|
|
|
290
338
|
## Built in periphery support
|
|
291
339
|
|
|
@@ -1063,5 +1111,3 @@ gource \
|
|
|
1063
1111
|
|
|
1064
1112
|
git push -u origin master
|
|
1065
1113
|
|
|
1066
|
-
|
|
1067
|
-
|
micrOSDevToolKit-2.6.6/micrOSDevToolKit.egg-info/PKG-INFO → microsdevtoolkit-2.7.0/README.md
RENAMED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: micrOSDevToolKit
|
|
3
|
-
Version: 2.6.6
|
|
4
|
-
Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
|
|
5
|
-
Home-page: https://github.com/BxNxM/micrOS
|
|
6
|
-
Author: Marcell Ban
|
|
7
|
-
Author-email: miros.framework@gmail.com
|
|
8
|
-
License: MIT
|
|
9
|
-
Project-URL: Bug Tracker, https://github.com/BxNxM/micrOS/issues
|
|
10
|
-
Project-URL: GitHub Discussions, https://github.com/BxNxM/micrOS/discussions
|
|
11
|
-
Platform: UNKNOWN
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
|
|
15
1
|
#  micrOS
|
|
16
2
|
|
|
17
|
-
|
|
18
|
-
### micropython based smart edge platform #IoT
|
|
3
|
+
> **"Simple, yet increadbly useful."**
|
|
19
4
|
|
|
20
5
|
                 <br/>
|
|
21
6
|
|
|
@@ -31,7 +16,7 @@ Thanks for , fo
|
|
|
31
16
|
[](https://pypi.org/project/micrOSDevToolKit/)
|
|
32
17
|
|
|
33
18
|
|
|
34
|
-
**micrOS** is a mini **application** execution **platform** with ShellCli (socket) and WebCli (http) **servers** and several **other** embedded **features**.
|
|
19
|
+
**micrOS** is a [micropython](http://micropython.org) based mini **application** execution **platform** with ShellCli (socket) and WebCli (http) **servers** and several **other** embedded **features**.
|
|
35
20
|
> It uses direct wifi connection to access the exposed functionalities.<br/>
|
|
36
21
|
|
|
37
22
|
In case of any technical comments or requests, please use [](https://github.com/BxNxM/micrOS/discussions).
|
|
@@ -52,9 +37,6 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
52
37
|
⚠️ No external server or service required for client-device communication <br/>
|
|
53
38
|
⚠️ 🛡 Works on Local Network (WiFi-WLAN) <br/>
|
|
54
39
|
🛠 Easy to create custom application(s) aka create your own Load Modules: <br/>
|
|
55
|
-
1. Write **LM_**`<your_app>`**.py** <br/>
|
|
56
|
-
2. Copy (OTA/USB) python script to your device (drag&drop)<br/>
|
|
57
|
-
3. Call any function from **`<your_app>`** module <br/>
|
|
58
40
|
🦾 Built-in scheduling (IRQs):<br/>
|
|
59
41
|
- Time stamp based <br/>
|
|
60
42
|
- Geolocation based clock setup + time tags: sunset, sunrise <br/>
|
|
@@ -70,8 +52,8 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
70
52
|
4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
|
|
71
53
|
5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
|
|
72
54
|
6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
73
|
-
7. micrOS
|
|
74
|
-
8. micrOS
|
|
55
|
+
7. micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
|
|
56
|
+
8. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
|
|
75
57
|
9. Release notes: [link](https://github.com/BxNxM/micrOS/#relese-note)
|
|
76
58
|
|
|
77
59
|
----------------------------------------
|
|
@@ -222,57 +204,65 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
222
204
|
- ⏳**Boot phase** - preload Load Module(s)
|
|
223
205
|
- For pinout and last state initialization - based on node_config `boothook`
|
|
224
206
|
- Example values: `rgb load; neopixel load`
|
|
207
|
+
- Comments `#` can be used: `#rgb load; neopixel load`, excellect for experimentation.
|
|
225
208
|
- 📡**Network handling** - based on node_config
|
|
226
209
|
- STA / AP network modes, `nwmd`
|
|
227
210
|
- NTP + UTC aka clock setup
|
|
228
211
|
- API: [ip-api.com](http://ip-api.com/json/?fields=lat,lon,timezone,offset)
|
|
229
212
|
- Static IP configuration, `devip`
|
|
230
213
|
- dhcp hostname setup, `devfid`.local
|
|
214
|
+
- system `uptime` measurement
|
|
231
215
|
- ⚙️**Scheduling / External events** - Interrupt callback - based on node_config
|
|
232
216
|
- Time based
|
|
233
217
|
- ⌛️simple LM task pool execution `timirq` & `timirqcbf`
|
|
234
218
|
- `Timer(0)`
|
|
219
|
+
- Comments `#` can be used in `timirqcbf`
|
|
235
220
|
- 🗓cron [time stump!LM task] pool execution `cron` & `crontasks`
|
|
236
221
|
- `Timer(1)`
|
|
237
222
|
- timestamp: `WD:H:M:S!LM FUNC`, ranges: `0-6:0-23:0-59:0-59!LM FUNC`
|
|
238
223
|
- 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.
|
|
239
|
-
- `WD: 0...6` 0=Monday, 6=Sunday
|
|
224
|
+
- `WD: 0...6` 0=Monday, 6=Sunday
|
|
225
|
+
- optional **range handling**: 0-2 means Monday to Wednesday
|
|
240
226
|
- tag: `sunset` / `sunrise`
|
|
241
227
|
- 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.
|
|
242
228
|
- optional minute offset (+/-): sunrise+30
|
|
229
|
+
- Comments cannot be used in `crontasks`! No multiple commands in this mode!
|
|
243
230
|
|
|
244
231
|
- API: [api.sunrise-sunset.org](https://api.sunrise-sunset.org/json?lat={lat}&lng={lon}&date=today&formatted=0)
|
|
245
232
|
- 💣Event based
|
|
246
233
|
- Set trigger event `irqX`
|
|
247
234
|
- Trigger up/down/both `irqX_trig`
|
|
248
235
|
- With LM callback function `irqX_cbf`
|
|
249
|
-
|
|
236
|
+
- Comments `#` can be used in `irqX_cbf`
|
|
237
|
+
- `X` can be = 1, 2, 3 or 4
|
|
238
|
+
|
|
250
239
|
|
|
251
|
-
- ⚙️**[L]oad [M]odule** aka **application**
|
|
240
|
+
- ⚙️**[L]oad [M]odule** aka **application** execution
|
|
252
241
|
- Lot of built-in functions (table below)
|
|
253
242
|
- Create your own module with 3 easy steps
|
|
254
243
|
- Create a python file, naming convention: `LM_<your_app_name>.py`
|
|
255
244
|
- Replace `<your_app_name>` for anything you prefer!
|
|
256
245
|
- Write python functions, you can call any function from that module...
|
|
257
|
-
- Upload modul with "drag&Drop"
|
|
246
|
+
- Upload modul with "drag&Drop" devToolKit GUI `devToolKit.py`
|
|
258
247
|
|
|
259
248
|
- 📨**ShellCli** - wireless communication interface with the nodes
|
|
260
|
-
- **System commands**: `help, version, reboot, webrepl, webrepl --update, etc.`
|
|
261
|
-
- After `webrepl --update` command the micrOS system reboots and waits for ota update in webrepl mode.
|
|
249
|
+
- **System commands**: `help, version, reboot, modules, webrepl, webrepl --update, etc.`
|
|
250
|
+
- After `webrepl --update` command the micrOS system reboots and waits for ota update in webrepl mode about 20 seconds.
|
|
262
251
|
- **Config handling** SET/GET/DUMP - **node_config.json**
|
|
263
252
|
- enter configuration mode: `conf`
|
|
264
|
-
- exit configuration mode:`noconf`
|
|
265
253
|
- Print out all parameters and values: `dump`
|
|
254
|
+
- exit configuration mode:`noconf`
|
|
266
255
|
- **LM** - Load Module function execution (application modules)
|
|
267
256
|
- Example: `system info`
|
|
268
|
-
- 🖇**
|
|
257
|
+
- 🖇**microIO** pinout handling - lookuptables for each board
|
|
269
258
|
- Predefined pinout modules for esp32, tinyPico
|
|
270
259
|
- Create your pinout based on `IO_esp32.py`, naming convencion: `IO_<name>.py`
|
|
271
260
|
- To activate your custom pinout set `cstmpmap` config parameter to `<name>`
|
|
261
|
+
- HINT: to get pin number you can get it by pin label, like: `system pinamp`
|
|
272
262
|
|
|
273
263
|
- 🔄 **Task manager** aka **Async LM jobs**
|
|
274
264
|
- Capable of execute [L]oad [M]odules in the background
|
|
275
|
-
- Invoke with single execution `&` or loop execution `&&`
|
|
265
|
+
- Invoke with single execution `&` or for loop execution `&&`
|
|
276
266
|
- Example:
|
|
277
267
|
- In loop: `system heartbeat &&`
|
|
278
268
|
- Loop frequency conrol: `system heartbeat &&1000`, it will execute every sec
|
|
@@ -286,6 +276,36 @@ It will install your board via USB with default settings. **Continue with micrOS
|
|
|
286
276
|
|
|
287
277
|
- Socket client python plugin - interactive - non interactive mode
|
|
288
278
|
|
|
279
|
+
----------------------
|
|
280
|
+
|
|
281
|
+
### Boards and suggestions
|
|
282
|
+
|
|
283
|
+
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)(ℹ️).
|
|
284
|
+
|
|
285
|
+
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 !!!
|
|
286
|
+
|
|
287
|
+
**Suggestions - 🔮futureproof hardware:**
|
|
288
|
+
|
|
289
|
+
**`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 🚀)
|
|
290
|
+
|
|
291
|
+
**`esp32s3-octo`** Same sa normal psram, just uses 8 pins to connect to the MCU, basically faster...
|
|
292
|
+
|
|
293
|
+
**`tinypico`** excellet hardware, bit pricy, with 4Mb of ram.
|
|
294
|
+
|
|
295
|
+
**`esp32cam`** it has a custom image and attached 8Mb of ram.
|
|
296
|
+
|
|
297
|
+
So prefer boards with more psram 2Mb-8Mb, **minumum requirement for the full flatched setup ~400kb** but smallest psram is **2Mb**, in practive:
|
|
298
|
+
|
|
299
|
+
- max measured 4Mb is 3.2% 128kb - oled_ui and lot of things loaded...
|
|
300
|
+
- camera stream can use about 50% of ram, that means about 2Mb of ram usage.
|
|
301
|
+
|
|
302
|
+
ℹ️ 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.
|
|
303
|
+
|
|
304
|
+
> Note:
|
|
305
|
+
|
|
306
|
+
**`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 :)**
|
|
307
|
+
|
|
308
|
+
----------------------
|
|
289
309
|
|
|
290
310
|
## Built in periphery support
|
|
291
311
|
|
|
@@ -1063,5 +1083,3 @@ gource \
|
|
|
1063
1083
|
|
|
1064
1084
|
git push -u origin master
|
|
1065
1085
|
|
|
1066
|
-
|
|
1067
|
-
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"files": {
|
|
3
3
|
"Time.py": [
|
|
4
4
|
9.17,
|
|
5
|
-
|
|
5
|
+
7
|
|
6
6
|
],
|
|
7
7
|
"micrOSloader.py": [
|
|
8
8
|
7.85,
|
|
9
9
|
1
|
|
10
10
|
],
|
|
11
11
|
"Hooks.py": [
|
|
12
|
-
9.
|
|
12
|
+
9.41,
|
|
13
13
|
1
|
|
14
14
|
],
|
|
15
15
|
"Server.py": [
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"Config.py": [
|
|
24
24
|
9.44,
|
|
25
|
-
|
|
25
|
+
14
|
|
26
26
|
],
|
|
27
27
|
"reset.py": [
|
|
28
28
|
8.75,
|
|
@@ -38,15 +38,15 @@
|
|
|
38
38
|
],
|
|
39
39
|
"Types.py": [
|
|
40
40
|
8.87,
|
|
41
|
-
|
|
41
|
+
28
|
|
42
42
|
],
|
|
43
43
|
"Logger.py": [
|
|
44
44
|
8.57,
|
|
45
45
|
4
|
|
46
46
|
],
|
|
47
47
|
"Common.py": [
|
|
48
|
-
9.
|
|
49
|
-
|
|
48
|
+
9.49,
|
|
49
|
+
32
|
|
50
50
|
],
|
|
51
51
|
"InterConnect.py": [
|
|
52
52
|
9.4,
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
],
|
|
55
55
|
"Debug.py": [
|
|
56
56
|
8.4,
|
|
57
|
-
|
|
57
|
+
16
|
|
58
58
|
],
|
|
59
59
|
"Network.py": [
|
|
60
60
|
9.71,
|
|
61
|
-
|
|
61
|
+
8
|
|
62
62
|
],
|
|
63
63
|
"Scheduler.py": [
|
|
64
64
|
9.61,
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
],
|
|
67
67
|
"microIO.py": [
|
|
68
68
|
9.26,
|
|
69
|
-
|
|
69
|
+
42
|
|
70
70
|
],
|
|
71
71
|
"micrOS.py": [
|
|
72
72
|
9.29,
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
0
|
|
82
82
|
],
|
|
83
83
|
"urequests.py": [
|
|
84
|
-
8.
|
|
84
|
+
8.94,
|
|
85
85
|
4
|
|
86
86
|
],
|
|
87
87
|
"LM_roboarm.py": [
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
0
|
|
102
102
|
],
|
|
103
103
|
"LM_system.py": [
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
8.31,
|
|
105
|
+
4
|
|
106
106
|
],
|
|
107
107
|
"LM_robustness.py": [
|
|
108
108
|
7.57,
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
],
|
|
119
119
|
"LM_oled.py": [
|
|
120
120
|
9.23,
|
|
121
|
-
|
|
121
|
+
4
|
|
122
122
|
],
|
|
123
123
|
"LM_tinyrgb.py": [
|
|
124
124
|
7.95,
|
|
@@ -154,6 +154,10 @@
|
|
|
154
154
|
],
|
|
155
155
|
"LM_oled_sh1106.py": [
|
|
156
156
|
8.84,
|
|
157
|
+
2
|
|
158
|
+
],
|
|
159
|
+
"LM_haptic.py": [
|
|
160
|
+
9.25,
|
|
157
161
|
1
|
|
158
162
|
],
|
|
159
163
|
"LM_ld2410.py": [
|
|
@@ -162,7 +166,7 @@
|
|
|
162
166
|
],
|
|
163
167
|
"LM_neopixel.py": [
|
|
164
168
|
7.59,
|
|
165
|
-
|
|
169
|
+
2
|
|
166
170
|
],
|
|
167
171
|
"LM_cct.py": [
|
|
168
172
|
8.83,
|
|
@@ -177,7 +181,7 @@
|
|
|
177
181
|
0
|
|
178
182
|
],
|
|
179
183
|
"LM_i2c.py": [
|
|
180
|
-
|
|
184
|
+
7.6,
|
|
181
185
|
0
|
|
182
186
|
],
|
|
183
187
|
"LM_dht22.py": [
|
|
@@ -189,7 +193,11 @@
|
|
|
189
193
|
0
|
|
190
194
|
],
|
|
191
195
|
"LM_esp32.py": [
|
|
192
|
-
|
|
196
|
+
6.52,
|
|
197
|
+
1
|
|
198
|
+
],
|
|
199
|
+
"LM_veml7700.py": [
|
|
200
|
+
7.62,
|
|
193
201
|
0
|
|
194
202
|
],
|
|
195
203
|
"LM_pet_feeder.py": [
|
|
@@ -197,7 +205,7 @@
|
|
|
197
205
|
0
|
|
198
206
|
],
|
|
199
207
|
"LM_rencoder.py": [
|
|
200
|
-
8.
|
|
208
|
+
8.64,
|
|
201
209
|
0
|
|
202
210
|
],
|
|
203
211
|
"LM_keychain.py": [
|
|
@@ -208,6 +216,14 @@
|
|
|
208
216
|
7.94,
|
|
209
217
|
0
|
|
210
218
|
],
|
|
219
|
+
"LM_sound_event.py": [
|
|
220
|
+
8.49,
|
|
221
|
+
0
|
|
222
|
+
],
|
|
223
|
+
"LM_oledui.py": [
|
|
224
|
+
8.52,
|
|
225
|
+
0
|
|
226
|
+
],
|
|
211
227
|
"LM_telegram.py": [
|
|
212
228
|
9.02,
|
|
213
229
|
0
|
|
@@ -221,7 +237,7 @@
|
|
|
221
237
|
1
|
|
222
238
|
],
|
|
223
239
|
"LM_distance.py": [
|
|
224
|
-
8.
|
|
240
|
+
8.89,
|
|
225
241
|
0
|
|
226
242
|
],
|
|
227
243
|
"LM_VL53L0X.py": [
|
|
@@ -240,13 +256,17 @@
|
|
|
240
256
|
8.78,
|
|
241
257
|
4
|
|
242
258
|
],
|
|
259
|
+
"LM_trackball.py": [
|
|
260
|
+
8.43,
|
|
261
|
+
1
|
|
262
|
+
],
|
|
243
263
|
"LM_dashboard_be.py": [
|
|
244
264
|
6.5,
|
|
245
265
|
0
|
|
246
266
|
],
|
|
247
267
|
"LM_dimmer.py": [
|
|
248
268
|
8.33,
|
|
249
|
-
|
|
269
|
+
1
|
|
250
270
|
],
|
|
251
271
|
"LM_demo.py": [
|
|
252
272
|
8.57,
|
|
@@ -258,7 +278,7 @@
|
|
|
258
278
|
],
|
|
259
279
|
"LM_gameOfLife.py": [
|
|
260
280
|
9.29,
|
|
261
|
-
|
|
281
|
+
3
|
|
262
282
|
],
|
|
263
283
|
"LM_catgame.py": [
|
|
264
284
|
8.85,
|
|
@@ -266,7 +286,7 @@
|
|
|
266
286
|
],
|
|
267
287
|
"LM_intercon.py": [
|
|
268
288
|
8.18,
|
|
269
|
-
|
|
289
|
+
4
|
|
270
290
|
],
|
|
271
291
|
"LM_ds18.py": [
|
|
272
292
|
6.0,
|
|
@@ -274,7 +294,7 @@
|
|
|
274
294
|
],
|
|
275
295
|
"LM_i2s_mic.py": [
|
|
276
296
|
8.37,
|
|
277
|
-
|
|
297
|
+
2
|
|
278
298
|
],
|
|
279
299
|
"LM_sdcard.py": [
|
|
280
300
|
7.88,
|
|
@@ -283,12 +303,12 @@
|
|
|
283
303
|
},
|
|
284
304
|
"summary": {
|
|
285
305
|
"core": [
|
|
286
|
-
|
|
306
|
+
3184,
|
|
287
307
|
21
|
|
288
308
|
],
|
|
289
309
|
"load": [
|
|
290
|
-
|
|
291
|
-
|
|
310
|
+
8685,
|
|
311
|
+
54
|
|
292
312
|
],
|
|
293
313
|
"core_dep": [
|
|
294
314
|
true,
|
|
@@ -296,10 +316,10 @@
|
|
|
296
316
|
],
|
|
297
317
|
"load_dep": [
|
|
298
318
|
true,
|
|
299
|
-
|
|
319
|
+
5
|
|
300
320
|
],
|
|
301
321
|
"core_score": 9.1,
|
|
302
|
-
"load_score": 8.
|
|
303
|
-
"version": "2.6.
|
|
322
|
+
"load_score": 8.21,
|
|
323
|
+
"version": "2.6.6-6"
|
|
304
324
|
}
|
|
305
325
|
}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
|
-
micrOS Load Module programming API-s
|
|
2
|
+
micrOS Load Module programming Official API-s
|
|
3
3
|
Designed by Marcell Ban aka BxNxM
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
from Server import SocketServer, WebCli
|
|
7
|
-
from Debug import errlog_add
|
|
7
|
+
from Debug import errlog_add, console_write
|
|
8
8
|
from Logger import logger, log_get
|
|
9
9
|
from microIO import resolve_pin
|
|
10
|
+
from Tasks import TaskBase, Manager, lm_exec
|
|
10
11
|
from machine import Pin, ADC
|
|
11
|
-
|
|
12
|
-
from Tasks import TaskBase, Manager, lm_exec
|
|
13
|
-
except Exception as ie:
|
|
14
|
-
print(f"Import ERROR, TaskManager: {ie}")
|
|
15
|
-
TaskBase, Manager = None, None
|
|
12
|
+
|
|
16
13
|
TELEGRAM = None
|
|
17
14
|
|
|
18
15
|
################## Common LM features ##################
|
|
@@ -81,7 +78,7 @@ class SmartADC:
|
|
|
81
78
|
return {'raw': raw, 'percent': round(percent*100, 1), 'volt': volt}
|
|
82
79
|
|
|
83
80
|
@staticmethod
|
|
84
|
-
def get_singleton(pin):
|
|
81
|
+
def get_singleton(pin): # TODO: rename to get_instance
|
|
85
82
|
if pin in SmartADC.OBJS.keys():
|
|
86
83
|
return SmartADC.OBJS[pin]
|
|
87
84
|
SmartADC.OBJS[pin] = SmartADC(pin)
|
|
@@ -97,10 +94,6 @@ def micro_task(tag, task=None):
|
|
|
97
94
|
[2] tag=taskID: return existing task object by tag
|
|
98
95
|
:param task: coroutine to execute (with built-in overload protection and lcm)
|
|
99
96
|
"""
|
|
100
|
-
# [0] Check dependencies
|
|
101
|
-
if TaskBase is None or Manager is None:
|
|
102
|
-
# RETURN: None - cannot utilize async task functionality
|
|
103
|
-
return None
|
|
104
97
|
if task is None:
|
|
105
98
|
# [1] Task is None -> Get task mode by tag
|
|
106
99
|
# RETURN task obj (access obj.out + obj.done (automatic - with keyword arg))
|
|
@@ -134,13 +127,19 @@ def manage_task(tag, operation):
|
|
|
134
127
|
raise Exception(f"Invalid operation: {operation}")
|
|
135
128
|
|
|
136
129
|
|
|
137
|
-
def exec_cmd(cmd):
|
|
130
|
+
def exec_cmd(cmd, skip_check=False):
|
|
138
131
|
"""
|
|
139
132
|
[LM] Single (sync) LM execution
|
|
140
133
|
:param cmd: command string list
|
|
134
|
+
:param skip_check: skip cmd type check, micropython bug
|
|
141
135
|
return state, output
|
|
142
136
|
"""
|
|
143
|
-
|
|
137
|
+
# [BUG] Solution with isinstance/type is not reliable... micropython 1.22
|
|
138
|
+
# Invalid type, must be list: <class list>" ...
|
|
139
|
+
if skip_check:
|
|
140
|
+
return lm_exec(cmd)
|
|
141
|
+
return lm_exec(cmd) if isinstance(cmd, list) else False, f"Invalid type, must be list: {type(cmd)}"
|
|
142
|
+
|
|
144
143
|
|
|
145
144
|
|
|
146
145
|
def notify(text):
|
|
@@ -217,3 +216,8 @@ def data_logger(f_name, data=None, limit=12, msgobj=None):
|
|
|
217
216
|
def syslog(msg):
|
|
218
217
|
""" Wrapper of errlog_add """
|
|
219
218
|
return errlog_add(f"[U]{msg}")
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def console(msg):
|
|
222
|
+
""" Wrapper of console_write """
|
|
223
|
+
return console_write(msg)
|