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.
Files changed (373) hide show
  1. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/PKG-INFO +67 -21
  2. micrOSDevToolKit-2.6.6/micrOSDevToolKit.egg-info/PKG-INFO → microsdevtoolkit-2.7.0/README.md +51 -33
  3. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +48 -28
  4. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Common.py +18 -14
  5. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Hooks.py +20 -0
  6. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32.py +2 -0
  7. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_tinypico.py +4 -2
  8. {micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled → microsdevtoolkit-2.7.0/micrOS/source}/LM_demo.py +3 -3
  9. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_distance.py +47 -4
  10. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_esp32.py +8 -1
  11. microsdevtoolkit-2.7.0/micrOS/source/LM_haptic.py +111 -0
  12. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_i2c.py +19 -3
  13. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_oled_ui.py +1 -1
  14. microsdevtoolkit-2.7.0/micrOS/source/LM_oledui.py +973 -0
  15. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rencoder.py +36 -7
  16. microsdevtoolkit-2.7.0/micrOS/source/LM_sound_event.py +752 -0
  17. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_system.py +41 -19
  18. microsdevtoolkit-2.7.0/micrOS/source/LM_trackball.py +287 -0
  19. microsdevtoolkit-2.7.0/micrOS/source/LM_veml7700.py +159 -0
  20. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Shell.py +1 -1
  21. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Types.py +0 -1
  22. micrOSDevToolKit-2.6.6/README.md → microsdevtoolkit-2.7.0/micrOSDevToolKit.egg-info/PKG-INFO +79 -17
  23. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/SOURCES.txt +11 -1
  24. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/setup.py +1 -1
  25. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/LM_to_compile.dat +6 -0
  26. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/MicrOSDevEnv.py +6 -1
  27. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/macroScript.py +162 -48
  28. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/micrOSlint.py +1 -1
  29. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  30. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  31. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  32. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  33. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/machine.py +4 -0
  34. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/Common.mpy +0 -0
  35. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  36. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
  37. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
  38. {micrOSDevToolKit-2.6.6/micrOS/source → microsdevtoolkit-2.7.0/toolkit/workspace/precompiled}/LM_demo.py +3 -3
  39. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_distance.mpy +0 -0
  40. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_esp32.py +8 -1
  41. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_haptic.mpy +0 -0
  42. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_i2c.py +19 -3
  43. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  44. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  45. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rencoder.py +36 -7
  46. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_sound_event.mpy +0 -0
  47. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_system.mpy +0 -0
  48. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_trackball.mpy +0 -0
  49. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/LM_veml7700.mpy +0 -0
  50. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  51. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Types.mpy +0 -0
  52. microsdevtoolkit-2.7.0/toolkit/workspace/precompiled/node_config.json +1 -0
  53. micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/Common.mpy +0 -0
  54. micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  55. micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
  56. micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/LM_distance.py +0 -96
  57. micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/LM_system.mpy +0 -0
  58. micrOSDevToolKit-2.6.6/toolkit/workspace/precompiled/node_config.json +0 -1
  59. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/LICENSE +0 -0
  60. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/MANIFEST.in +0 -0
  61. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/devToolKit.py +0 -0
  62. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/__init__.py +0 -0
  63. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/.DS_Store +0 -0
  64. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CH34XSER_MAC/CH34X_DRV_INSTALL_INSTRUCTIONS.pdf +0 -0
  65. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CH34XSER_MAC/CH34xVCPDriver.pkg +0 -0
  66. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  67. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  68. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  69. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  70. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  71. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  72. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  73. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  74. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  75. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  76. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  77. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  78. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  79. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/__init__.py +0 -0
  80. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/dnd.png +0 -0
  81. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/logo.png +0 -0
  82. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/logo_mini.png +0 -0
  83. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/usb_port_icon.png +0 -0
  84. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/media/wifi_icon.png +0 -0
  85. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/__init__.py +0 -0
  86. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32-20231005-v1.21.0.bin +0 -0
  87. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32-GENERIC-20240602-v1.23.0.bin +0 -0
  88. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32c3-GENERIC-20240222-v1.22.2.bin +0 -0
  89. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  90. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s2-GENERIC-20240602-v1.23.0.bin +0 -0
  91. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
  92. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin +0 -0
  93. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s3-GENERIC-20240105-v1.22.1.bin +0 -0
  94. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
  95. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/rpi-pico-w-20240602-v1.23.0.uf2 +0 -0
  96. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/tinypico-20231005-v1.21.0.bin +0 -0
  97. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/micropython/tinypico_usbc-UM-20240105-v1.22.1.bin +0 -0
  98. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/.DS_Store +0 -0
  99. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Config.py +0 -0
  100. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Debug.py +0 -0
  101. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32c3.py +0 -0
  102. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32s2.py +0 -0
  103. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_esp32s3.py +0 -0
  104. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_m5stamp.py +0 -0
  105. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_qtpy.py +0 -0
  106. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/IO_rp2.py +0 -0
  107. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/InterConnect.py +0 -0
  108. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Interrupts.py +0 -0
  109. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_L298N_DCmotor.py +0 -0
  110. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_L9110_DCmotor.py +0 -0
  111. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_OV2640.py +0 -0
  112. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_VL53L0X.py +0 -0
  113. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_aht10.py +0 -0
  114. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_bme280.py +0 -0
  115. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_buzzer.py +0 -0
  116. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_catgame.py +0 -0
  117. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_cct.py +0 -0
  118. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_co2.py +0 -0
  119. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dashboard_be.py +0 -0
  120. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dht11.py +0 -0
  121. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dht22.py +0 -0
  122. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_dimmer.py +0 -0
  123. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_ds18.py +0 -0
  124. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_gameOfLife.py +0 -0
  125. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_genIO.py +0 -0
  126. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_i2s_mic.py +0 -0
  127. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_intercon.py +0 -0
  128. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_keychain.py +0 -0
  129. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_ld2410.py +0 -0
  130. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_light_sensor.py +0 -0
  131. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_lmpacman.py +0 -0
  132. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_neoeffects.py +0 -0
  133. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_neopixel.py +0 -0
  134. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_oled.py +0 -0
  135. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_oled_sh1106.py +0 -0
  136. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_pet_feeder.py +0 -0
  137. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_ph_sensor.py +0 -0
  138. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_presence.py +0 -0
  139. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rest.py +0 -0
  140. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rgb.py +0 -0
  141. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rgbcct.py +0 -0
  142. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_roboarm.py +0 -0
  143. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_robustness.py +0 -0
  144. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_rp2w.py +0 -0
  145. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_sdcard.py +0 -0
  146. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_servo.py +0 -0
  147. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_stepper.py +0 -0
  148. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_switch.py +0 -0
  149. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_telegram.py +0 -0
  150. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/LM_tinyrgb.py +0 -0
  151. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Logger.py +0 -0
  152. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Network.py +0 -0
  153. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Notify.py +0 -0
  154. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Scheduler.py +0 -0
  155. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Server.py +0 -0
  156. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Tasks.py +0 -0
  157. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/Time.py +0 -0
  158. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/dashboard.html +0 -0
  159. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/index.html +0 -0
  160. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/main.py +0 -0
  161. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/micrOS.py +0 -0
  162. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/micrOSloader.py +0 -0
  163. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/microIO.py +0 -0
  164. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/reset.py +0 -0
  165. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/uapi.js +0 -0
  166. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/udashboard.js +0 -0
  167. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/urequests.py +0 -0
  168. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/ustyle.css +0 -0
  169. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/uwidgets.js +0 -0
  170. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOS/source/uwidgets_pro.js +0 -0
  171. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  172. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  173. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  174. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/setup.cfg +0 -0
  175. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/DevEnvCompile.py +0 -0
  176. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/DevEnvOTA.py +0 -0
  177. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/DevEnvUSB.py +0 -0
  178. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/Gateway.py +0 -0
  179. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/__init__.py +0 -0
  180. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/AirQualityBME280.py +0 -0
  181. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -0
  182. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  183. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  184. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CCTTest.py +0 -0
  185. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CamStream.py +0 -0
  186. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/CatGame.py +0 -0
  187. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/Dimmer.py +0 -0
  188. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/GetVersion.py +0 -0
  189. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  190. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  191. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  192. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  193. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/RGBTest.py +0 -0
  194. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/RoboArm.py +0 -0
  195. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/SED_test.py +0 -0
  196. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/SystemTest.py +0 -0
  197. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/Template_app.py +0 -0
  198. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/__init__.py +0 -0
  199. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/_capture.py +0 -0
  200. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  201. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  202. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  203. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/img_stream.html +0 -0
  204. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/index.html +0 -0
  205. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/LocalMachine.py +0 -0
  206. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/SafeInput.py +0 -0
  207. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/SearchDevices.py +0 -0
  208. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/SerialDriverHandler.py +0 -0
  209. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/TerminalColors.py +0 -0
  210. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/__init__.py +0 -0
  211. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/file_extensions.py +0 -0
  212. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/micrOSClient.py +0 -0
  213. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/lib/pip_package_installer.py +0 -0
  214. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/micrOSdashboard.py +0 -0
  215. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/.DS_Store +0 -0
  216. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/IO_darwin.py +0 -0
  217. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  218. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  219. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  220. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  221. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  222. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  223. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  224. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  225. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  226. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  227. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  228. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  229. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  230. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  231. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  232. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  233. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  234. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  235. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  236. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  237. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  238. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  239. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  240. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  241. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  242. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  243. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  244. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  245. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  246. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
  247. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
  248. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
  249. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  250. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  251. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  252. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  253. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  254. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  255. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  256. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  257. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  258. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  259. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  260. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  261. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  262. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  263. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  264. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  265. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  266. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  267. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  268. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  269. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  270. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/camera.py +0 -0
  271. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/dht.py +0 -0
  272. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/dotstar.py +0 -0
  273. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ds18x20.py +0 -0
  274. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/esp32.py +0 -0
  275. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/framebuf.py +0 -0
  276. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/micropython.py +0 -0
  277. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/neopixel.py +0 -0
  278. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/network.py +0 -0
  279. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/node_config.json +0 -0
  280. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ntptime.py +0 -0
  281. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/onewire.py +0 -0
  282. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/sim_console.py +0 -0
  283. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/simgc.py +0 -0
  284. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/simulator.py +0 -0
  285. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/tinypico.py +0 -0
  286. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/uasyncio.py +0 -0
  287. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/usocket.py +0 -0
  288. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ussl.py +0 -0
  289. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/ustruct.py +0 -0
  290. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/utime.py +0 -0
  291. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/view01.jpg +0 -0
  292. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/view02.jpg +0 -0
  293. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/simulator_lib/webrepl.py +0 -0
  294. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/socketClient.py +0 -0
  295. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/.include +0 -0
  296. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/generic.py +0 -0
  297. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/macro.py +0 -0
  298. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/template.macro +0 -0
  299. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/user_data/webhooks/template.py +0 -0
  300. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/__init__.py +0 -0
  301. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Config.mpy +0 -0
  302. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  303. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
  304. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
  305. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
  306. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_m5stamp.mpy +0 -0
  307. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
  308. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
  309. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  310. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  311. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
  312. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_L9110_DCmotor.py +0 -0
  313. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
  314. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_VL53L0X.py +0 -0
  315. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
  316. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
  317. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_buzzer.mpy +0 -0
  318. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_catgame.py +0 -0
  319. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_cct.mpy +0 -0
  320. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_co2.mpy +0 -0
  321. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dashboard_be.py +0 -0
  322. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
  323. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
  324. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
  325. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
  326. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_gameOfLife.mpy +0 -0
  327. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
  328. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
  329. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
  330. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
  331. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_ld2410.mpy +0 -0
  332. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  333. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
  334. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
  335. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
  336. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_oled.mpy +0 -0
  337. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
  338. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_pet_feeder.py +0 -0
  339. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_ph_sensor.py +0 -0
  340. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  341. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rest.mpy +0 -0
  342. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
  343. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rgbcct.mpy +0 -0
  344. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
  345. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_robustness.py +0 -0
  346. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_rp2w.py +0 -0
  347. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_sdcard.py +0 -0
  348. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_servo.mpy +0 -0
  349. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_stepper.mpy +0 -0
  350. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_switch.mpy +0 -0
  351. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  352. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/LM_tinyrgb.mpy +0 -0
  353. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Logger.mpy +0 -0
  354. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Network.mpy +0 -0
  355. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  356. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  357. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Server.mpy +0 -0
  358. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  359. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/Time.mpy +0 -0
  360. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/_mpy.version +0 -0
  361. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/dashboard.html +0 -0
  362. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/index.html +0 -0
  363. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/main.py +0 -0
  364. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  365. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  366. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  367. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/reset.mpy +0 -0
  368. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/uapi.js +0 -0
  369. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/udashboard.js +0 -0
  370. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  371. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/ustyle.css +0 -0
  372. {micrOSDevToolKit-2.6.6 → microsdevtoolkit-2.7.0}/toolkit/workspace/precompiled/uwidgets.js +0 -0
  373. {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.6.6
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
  # ![LOGO](./media/logo_mini.png?raw=true) micrOS
16
30
 
17
-
18
- ### micropython based smart edge platform #IoT
31
+ > **"Simple, yet increadbly useful."**
19
32
 
20
33
  ![telnet](https://img.shields.io/badge/wifi-telnet-blue) ![esp32S2](https://img.shields.io/badge/esp32-S2-olive) ![tinypico](https://img.shields.io/badge/esp32-tinypico-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3_RAM-olive) ![PYQT](https://img.shields.io/badge/esp32-PYQT-olive) ![raspberry-pico-w](https://img.shields.io/badge/raspberry-pico_W-critical) ![espCAM-esp-s](https://img.shields.io/badge/esp32-CAM_OV2640-olive) ![esp32-c3](https://img.shields.io/badge/esp32-C3_RISCV-olive) ![OTA](https://img.shields.io/badge/ota-update-blue) ![GPIO](https://img.shields.io/badge/gpio-i2c-success) ![clock](https://img.shields.io/badge/rtc-ntp-success) ![async](https://img.shields.io/badge/async-task_manager-success) ![irq](https://img.shields.io/badge/hardware-IRQs-success) ![socket](https://img.shields.io/badge/socket-STA_or_AP-blue) ![cron](https://img.shields.io/badge/scheduling-cron-success) ![stable](https://img.shields.io/badge/stabile-master_HEAD-success) ![stable](https://img.shields.io/badge/micropython-OS-gold)<br/>
21
34
 
@@ -31,7 +44,7 @@ Thanks for ![GitHub stars](https://img.shields.io/github/stars/BxNxM/micrOS), fo
31
44
  [![PyPI Version](https://img.shields.io/pypi/v/micrOSDevToolKit)](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 [![GitHub Discussions](https://img.shields.io/badge/GitHub-Discussions-green?logo=github&style=flat)](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
  &nbsp;&nbsp; ⚠️ 🛡 Works on Local Network (WiFi-WLAN) <br/>
54
67
  🛠 Easy to create custom application(s) aka create your own Load Modules: <br/>
55
- &nbsp;&nbsp; 1. Write **LM_**`<your_app>`**.py** <br/>
56
- &nbsp;&nbsp; 2. Copy (OTA/USB) python script to your device (drag&drop)<br/>
57
- &nbsp;&nbsp; 3. Call any function from **`<your_app>`** module <br/>
58
68
  🦾 Built-in scheduling (IRQs):<br/>
59
69
  &nbsp;&nbsp; - Time stamp based <br/>
60
70
  &nbsp;&nbsp; - 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 customization with LMs: [link](./APPLICATION_GUIDE.md)
74
- 8. micrOS gateway with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
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 -> optional range handling: 0-2 means Monday to Wednesday
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
- - X = 1, 2, 3 or 4
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** handling
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" with help of devToolKit GUI `devToolKit.py`
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
- - 🖇**Logical IO** pinout handling - lookuptables for each board
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
-
@@ -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
  # ![LOGO](./media/logo_mini.png?raw=true) micrOS
16
2
 
17
-
18
- ### micropython based smart edge platform #IoT
3
+ > **"Simple, yet increadbly useful."**
19
4
 
20
5
  ![telnet](https://img.shields.io/badge/wifi-telnet-blue) ![esp32S2](https://img.shields.io/badge/esp32-S2-olive) ![tinypico](https://img.shields.io/badge/esp32-tinypico-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3_RAM-olive) ![PYQT](https://img.shields.io/badge/esp32-PYQT-olive) ![raspberry-pico-w](https://img.shields.io/badge/raspberry-pico_W-critical) ![espCAM-esp-s](https://img.shields.io/badge/esp32-CAM_OV2640-olive) ![esp32-c3](https://img.shields.io/badge/esp32-C3_RISCV-olive) ![OTA](https://img.shields.io/badge/ota-update-blue) ![GPIO](https://img.shields.io/badge/gpio-i2c-success) ![clock](https://img.shields.io/badge/rtc-ntp-success) ![async](https://img.shields.io/badge/async-task_manager-success) ![irq](https://img.shields.io/badge/hardware-IRQs-success) ![socket](https://img.shields.io/badge/socket-STA_or_AP-blue) ![cron](https://img.shields.io/badge/scheduling-cron-success) ![stable](https://img.shields.io/badge/stabile-master_HEAD-success) ![stable](https://img.shields.io/badge/micropython-OS-gold)<br/>
21
6
 
@@ -31,7 +16,7 @@ Thanks for ![GitHub stars](https://img.shields.io/github/stars/BxNxM/micrOS), fo
31
16
  [![PyPI Version](https://img.shields.io/pypi/v/micrOSDevToolKit)](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 [![GitHub Discussions](https://img.shields.io/badge/GitHub-Discussions-green?logo=github&style=flat)](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
  &nbsp;&nbsp; ⚠️ 🛡 Works on Local Network (WiFi-WLAN) <br/>
54
39
  🛠 Easy to create custom application(s) aka create your own Load Modules: <br/>
55
- &nbsp;&nbsp; 1. Write **LM_**`<your_app>`**.py** <br/>
56
- &nbsp;&nbsp; 2. Copy (OTA/USB) python script to your device (drag&drop)<br/>
57
- &nbsp;&nbsp; 3. Call any function from **`<your_app>`** module <br/>
58
40
  🦾 Built-in scheduling (IRQs):<br/>
59
41
  &nbsp;&nbsp; - Time stamp based <br/>
60
42
  &nbsp;&nbsp; - 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 customization with LMs: [link](./APPLICATION_GUIDE.md)
74
- 8. micrOS gateway with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
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 -> optional range handling: 0-2 means Monday to Wednesday
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
- - X = 1, 2, 3 or 4
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** handling
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" with help of devToolKit GUI `devToolKit.py`
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
- - 🖇**Logical IO** pinout handling - lookuptables for each board
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
- 6
5
+ 7
6
6
  ],
7
7
  "micrOSloader.py": [
8
8
  7.85,
9
9
  1
10
10
  ],
11
11
  "Hooks.py": [
12
- 9.47,
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
- 13
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
- 22
41
+ 28
42
42
  ],
43
43
  "Logger.py": [
44
44
  8.57,
45
45
  4
46
46
  ],
47
47
  "Common.py": [
48
- 9.6,
49
- 26
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
- 17
57
+ 16
58
58
  ],
59
59
  "Network.py": [
60
60
  9.71,
61
- 9
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
- 38
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.83,
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
- 7.65,
105
- 3
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
- 3
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
- 1
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
- 5.71,
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
- 4.38,
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.92,
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.26,
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
- 0
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
- 2
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
- 3
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
- 1
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
- 3167,
306
+ 3184,
287
307
  21
288
308
  ],
289
309
  "load": [
290
- 6814,
291
- 49
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
- 4
319
+ 5
300
320
  ],
301
321
  "core_score": 9.1,
302
- "load_score": 8.08,
303
- "version": "2.6.5-0"
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
- try:
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
- return lm_exec(cmd) if isinstance(cmd, list) else False, "Invalid cmd type, must be list"
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)