micrOSDevToolKit 2.19.0__py3-none-any.whl → 2.21.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of micrOSDevToolKit might be problematic. Click here for more details.

Files changed (69) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +35 -35
  2. micrOS/source/Common.py +5 -13
  3. micrOS/source/Config.py +5 -2
  4. micrOS/source/Espnow.py +101 -45
  5. micrOS/source/Files.py +50 -23
  6. micrOS/source/InterConnect.py +10 -5
  7. micrOS/source/Pacman.py +141 -0
  8. micrOS/source/Shell.py +1 -1
  9. micrOS/source/Tasks.py +59 -54
  10. micrOS/source/modules/LM_buzzer.py +1 -4
  11. micrOS/source/modules/LM_cct.py +2 -4
  12. micrOS/source/modules/LM_dimmer.py +1 -2
  13. micrOS/source/modules/LM_distance.py +1 -3
  14. micrOS/source/modules/LM_i2s_mic.py +1 -2
  15. micrOS/source/modules/LM_keychain.py +1 -2
  16. micrOS/source/modules/LM_light_sensor.py +1 -4
  17. micrOS/source/modules/LM_mqtt_client.py +13 -10
  18. micrOS/source/modules/LM_neopixel.py +1 -2
  19. micrOS/source/modules/LM_oled_ui.py +39 -41
  20. micrOS/source/modules/LM_oledui.py +58 -89
  21. micrOS/source/modules/LM_pacman.py +36 -44
  22. micrOS/source/modules/LM_presence.py +1 -2
  23. micrOS/source/modules/LM_rest.py +1 -2
  24. micrOS/source/modules/LM_rgb.py +1 -2
  25. micrOS/source/modules/LM_roboarm.py +3 -4
  26. micrOS/source/modules/LM_robustness.py +1 -2
  27. micrOS/source/modules/LM_telegram.py +1 -2
  28. micrOS/source/urequests.py +1 -1
  29. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/METADATA +153 -214
  30. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/RECORD +67 -67
  31. toolkit/DevEnvOTA.py +2 -2
  32. toolkit/DevEnvUSB.py +1 -1
  33. toolkit/dashboard_apps/SystemTest.py +17 -14
  34. toolkit/lib/micrOSClient.py +37 -15
  35. toolkit/lib/micrOSClientHistory.py +35 -1
  36. toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  37. toolkit/simulator_lib/uos.py +1 -0
  38. toolkit/workspace/precompiled/Common.mpy +0 -0
  39. toolkit/workspace/precompiled/Config.mpy +0 -0
  40. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  41. toolkit/workspace/precompiled/Files.mpy +0 -0
  42. toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  43. toolkit/workspace/precompiled/Pacman.mpy +0 -0
  44. toolkit/workspace/precompiled/Shell.mpy +0 -0
  45. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  46. toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  47. toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  48. toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  49. toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  50. toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  51. toolkit/workspace/precompiled/modules/LM_keychain.mpy +0 -0
  52. toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  53. toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy +0 -0
  54. toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  55. toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  56. toolkit/workspace/precompiled/modules/LM_oledui.mpy +0 -0
  57. toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  58. toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  59. toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  60. toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  61. toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  62. toolkit/workspace/precompiled/modules/LM_robustness.py +1 -2
  63. toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  64. micrOS/source/modules/LM_pet_feeder.py +0 -78
  65. toolkit/workspace/precompiled/modules/LM_pet_feeder.py +0 -78
  66. {microsdevtoolkit-2.19.0.data → microsdevtoolkit-2.21.0.data}/scripts/devToolKit.py +0 -0
  67. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/WHEEL +0 -0
  68. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/licenses/LICENSE +0 -0
  69. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 2.19.0
3
+ Version: 2.21.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
@@ -497,9 +497,11 @@ Version **3.0.0-0** `micrOS-Autonomous`
497
497
  - urequest module async redesign for rest clients [OK]
498
498
  - LM_telegram (Notify) + server (listener - chatbot) [OK]
499
499
  - (2) ESP-NOW (peer-to-peer communication) integration into InterCon [DONE]
500
+ - Multi command same device improvement (session ID handling) [DONE]
500
501
  - (3) New intercon syntax - command level integration: [DONE]
501
502
  - rgb toggle >>RingLight.local
502
503
  - similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
504
+ - espnow integration into `rgb toggle >>RingLight.local` syntax (when available on target)
503
505
  - (4) Create multi level project structure (curret is flat fs) [DONE]
504
506
  - New micrOS FS structure:
505
507
  - Automatic dir creation at bootup: '/logs', '/web', '/data', '/config', '/modules'
@@ -536,30 +538,66 @@ Version **3.0.0-0** `micrOS-Autonomous`
536
538
  - IO_* (approx.: 5)
537
539
 
538
540
 
539
- - (5) [TODO] Proper mip installer support (/modules or /lib or /web)
540
- - Note: Autonomous package management over wifi (github)
541
- - pacman download [POC][DONE][TODO]
541
+ - (5) [DONE] Universal task creation response: `{taskID: verdict}`
542
+
543
+ - (6) [DONE] Proper mip installer support (/modules or /lib or /web)
544
+ - Note: Autonomous package management over wifi (github)
545
+ - pacman download [DONE]
542
546
  - pacman ls [DONE]
543
547
  - pacman dirtree [DONE]
544
548
  - pacman ...
549
+
550
+ - (7) [DONE] /config/requirements.txt handling (native micropython requirements syntax)
551
+ - pacman download "requirements.txt"
552
+
553
+ - [TODO] General system review and optimization (with Codex AI)
554
+ - memory usage and performance
545
555
  ```
546
556
 
547
- Version **3.1.0-0** `micrOS-SecurePower`
557
+ Version **3.1.0-0** `micrOS-Waterbear`
548
558
 
549
559
  ```
550
560
  Core:
551
- - Async socket servers with SSL/TLS integration (with auth.)
552
- - WebCli (https?), ShellCli (ssocket/sterminal) and InterCon
553
- - Low power mode with ESPNOW + (AP mode?)
561
+ - Low power mode (wake on event, hibernate command)?
554
562
  - Remote controller / Sensor UseCase
555
- - --- client mode (fyi: normally micrOS operates in server mode)
563
+ ```
564
+
565
+
566
+ Version **3.X.0-0** `micrOS-SecurePower`
567
+
568
+ ```
569
+ Core:
570
+ - Async socket servers with SSL/TLS integration (with auth.)
571
+ - ShellCli (with TLS) and InterCon adaptation (default port: 9008, new secure port 9009)
572
+ - WebCli (https) and webUI adaptation
556
573
  - Intercon-Wire (?)
557
574
  - Idea of wired message communication protocol same as Intercon-Shell/Intercon-ESPNow
558
575
  - Possible HW protocols: i2c / onewire / uart BUT it should support bidirectional message transfers
559
- - Goal: CoProcessor easy integration feature - Arduino env support
576
+ - Goal: CoProcessor easy integration feature - Arduino env support
577
+ - Application deployment automation: /config/compose.json
578
+ - enables application deployment: configuration (node_config.json), requirements handling
579
+ - Automatic behaviour in core system if file exists in STA mode
580
+
581
+ Application registry???
582
+ - Applications repository as module registry, structure:
583
+ - micrOSApps repository:
584
+ - engineer:
585
+ - apps.txt (name and short description pairs)
586
+ - app1
587
+ - descriptor.json (targets: /modules, /lib, /web)
588
+ - app.py
589
+ - foo.py
590
+ - bar.html
591
+ - app2
592
+ - descriptor.json
593
+ - app.py
594
+ - engineer2:
595
+ - apps.txt (name and short description pairs)
596
+ - app1
597
+ - descriptor.json (targets: /modules, /lib, /web)
598
+ - app.py
560
599
  ```
561
600
 
562
-
563
601
  <a id="release-note"></a>
564
602
  ## Release notes
565
603
 
@@ -870,212 +908,113 @@ Bye!
870
908
 
871
909
  ## Project structure
872
910
 
873
- ### micrOS resources library
874
-
875
- #### micrOS Core
876
-
877
- ```
878
- Core micrOS resources
879
- 1 154 Time.py (mlint: True) (pylint: 9.17) (ref.: 6)
880
- 2 104 micrOSloader.py (mlint: True) (pylint: 7.59) (ref.: 1)
881
- 3 50 Hooks.py (mlint: True) (pylint: 9.68) (ref.: 1)
882
- 4 418 Server.py (mlint: True) (pylint: 9.29) (ref.: 4)
883
- 5 454 Tasks.py (mlint: True) (pylint: 9.71) (ref.: 13)
884
- 6 185 Config.py (mlint: True) (pylint: 9.44) (ref.: 13)
885
- 7 9 reset.py (mlint: True) (pylint: 8.75) (ref.: 0)
886
- 8 225 Shell.py (mlint: True) (pylint: 9.61) (ref.: 1)
887
- 9 179 Notify.py (mlint: True) (pylint: 9.55) (ref.: 2)
888
- 10 77 Types.py (mlint: True) (pylint: 9.69) (ref.: 11)
889
- 11 157 Common.py (mlint: True) (pylint: 9.1) (ref.: 24)
890
- 12 153 InterConnect.py (mlint: True) (pylint: 9.4) (ref.: 1)
891
- 13 177 Debug.py (mlint: True) (pylint: 8.72) (ref.: 22)
892
- 14 164 Network.py (mlint: True) (pylint: 9.71) (ref.: 10)
893
- 15 183 Scheduler.py (mlint: True) (pylint: 9.61) (ref.: 1)
894
- 16 113 microIO.py (mlint: True) (pylint: 9.08) (ref.: 38)
895
- 17 49 micrOS.py (mlint: True) (pylint: 9.3) (ref.: 1)
896
- 18 113 Interrupts.py (mlint: True) (pylint: 9.05) (ref.: 2)
897
- 19 15 main.py (mlint: True) (pylint: 8.89) (ref.: 0)
898
- 20 117 urequests.py (mlint: True) (pylint: 8.9) (ref.: 4)
899
-
900
- SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 3096
901
- ```
902
-
903
- #### micrOS Load Modules
904
-
905
- ```
906
- micrOS Load Module resources
907
- 1 231 LM_roboarm.py (mlint: True) (pylint: 9.11) (ref.: 0)
908
- 2 122 LM_stepper.py (mlint: True) (pylint: 8.9) (ref.: 1)
909
- 3 118 LM_genIO.py (mlint: True) (pylint: 7.26) (ref.: 1)
910
- 4 498 LM_oled_ui.py (mlint: False) (pylint: 8.83) (ref.: 0)
911
- 5 190 LM_system.py (mlint: True) (pylint: 7.57) (ref.: 3)
912
- 6 63 LM_robustness.py (mlint: True) (pylint: 7.5) (ref.: 0)
913
- 7 115 LM_co2.py (mlint: True) (pylint: 8.42) (ref.: 3)
914
- 8 34 LM_rest.py (mlint: False) (pylint: 7.0) (ref.: 0)
915
- 9 266 LM_oled.py (mlint: True) (pylint: 9.23) (ref.: 3)
916
- 10 72 LM_tinyrgb.py (mlint: True) (pylint: 7.95) (ref.: 0)
917
- 11 96 LM_aht10.py (mlint: True) (pylint: 8.73) (ref.: 0)
918
- 12 293 LM_bme280.py (mlint: True) (pylint: 8.03) (ref.: 0)
919
- 13 37 LM_ph_sensor.py (mlint: True) (pylint: 5.79) (ref.: 0)
920
- 14 241 LM_buzzer.py (mlint: True) (pylint: 8.83) (ref.: 0)
921
- 15 199 LM_switch.py (mlint: True) (pylint: 8.56) (ref.: 2)
922
- 16 113 LM_servo.py (mlint: True) (pylint: 7.73) (ref.: 4)
923
- 17 53 LM_rgbcct.py (mlint: True) (pylint: 8.62) (ref.: 0)
924
- 18 284 LM_oled_sh1106.py (mlint: True) (pylint: 8.79) (ref.: 1)
925
- 19 150 LM_ld2410.py (mlint: True) (pylint: 9.07) (ref.: 0)
926
- 20 273 LM_neopixel.py (mlint: True) (pylint: 7.59) (ref.: 2)
927
- 21 274 LM_cct.py (mlint: True) (pylint: 8.83) (ref.: 1)
928
- 22 38 LM_L9110_DCmotor.py (mlint: True) (pylint: 7.69) (ref.: 0)
929
- 23 256 LM_neoeffects.py (mlint: True) (pylint: 6.91) (ref.: 0)
930
- 24 30 LM_i2c.py (mlint: True) (pylint: 5.71) (ref.: 0)
931
- 25 69 LM_dht22.py (mlint: True) (pylint: 8.0) (ref.: 0)
932
- 26 59 LM_L298N_DCmotor.py (mlint: True) (pylint: 8.78) (ref.: 0)
933
- 27 37 LM_esp32.py (mlint: True) (pylint: 4.38) (ref.: 0)
934
- 28 56 LM_pet_feeder.py (mlint: True) (pylint: 7.88) (ref.: 0)
935
- 29 82 LM_rencoder.py (mlint: True) (pylint: 8.92) (ref.: 0)
936
- 30 247 LM_keychain.py (mlint: False) (pylint: 9.14) (ref.: 0)
937
- 31 69 LM_dht11.py (mlint: True) (pylint: 8.0) (ref.: 0)
938
- 32 74 LM_telegram.py (mlint: False) (pylint: 8.94) (ref.: 0)
939
- 33 177 LM_OV2640.py (mlint: False) (pylint: 9.06) (ref.: 0)
940
- 34 249 LM_rgb.py (mlint: True) (pylint: 8.66) (ref.: 1)
941
- 35 62 LM_distance.py (mlint: True) (pylint: 8.14) (ref.: 0)
942
- 36 313 LM_VL53L0X.py (mlint: True) (pylint: 9.07) (ref.: 0)
943
- 37 107 LM_light_sensor.py (mlint: True) (pylint: 8.94) (ref.: 0)
944
- 38 12 LM_rp2w.py (mlint: True) (pylint: 4.44) (ref.: 0)
945
- 39 190 LM_presence.py (mlint: True) (pylint: 8.75) (ref.: 4)
946
- 40 29 LM_dashboard_be.py (mlint: True) (pylint: 6.5) (ref.: 0)
947
- 41 170 LM_dimmer.py (mlint: True) (pylint: 8.22) (ref.: 0)
948
- 42 66 LM_demo.py (mlint: False) (pylint: 8.21) (ref.: 0)
949
- 43 105 LM_lmpacman.py (mlint: True) (pylint: 8.38) (ref.: 0)
950
- 44 176 LM_gameOfLife.py (mlint: True) (pylint: 9.29) (ref.: 2)
951
- 45 58 LM_catgame.py (mlint: True) (pylint: 8.46) (ref.: 0)
952
- 46 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
953
- 47 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
954
- 48 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
955
-
956
- SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 6822
957
- ```
958
-
959
- > LM (Load Modules) - Application logic - accessable over socket server as a command
960
-
961
- ### micrOS devToolkit resources
962
-
963
- #### DevToolKit Dashboard apps
964
-
965
- > You can easly copy the `Template_app.py`, and create a new socket based app.
966
- [Template_app.py](https://github.com/BxNxM/micrOS/blob/master/toolkit/dashboard_apps/Template_app.py)
967
-
968
- ```
969
- micrOS/toolkit/dashboard_apps
970
- │   ├── AirQualityBME280_app.py
971
- │   ├── AirQualityDHT22_CO2_app.py
972
- │   ├── AnalogCCT_app.py
973
- │   ├── AnalogRGB_app.py
974
- │   ├── CatGame_app.py
975
- │   ├── Dimmer_app.py
976
- │   ├── GetVersion_app.py
977
- │   ├── GetVersion_app.pyc
978
- │   ├── NeopixelTest_app.py
979
- │   ├── RoboArm_app.py
980
- │   ├── SysCheck_app.py
981
- │   ├── Template_app.py
982
- ```
983
-
984
- #### Stored connection data and default node configs
985
-
986
- ```
987
- micrOS/toolkit/user_data
988
- │   ├── device_conn_cache.json <- connection cache
989
- │   └── node_config_archive
990
- │   ├── BigRGB-node_config.json
991
- │   ├── Chillight-node_config.json
992
- │   ├── Kapcsolo230-node_config.json
993
- │   ├── LampController-node_config.json
994
- │   ├── MeasureNode-node_config.json
995
- │   ├── MrGreen-node_config.json
996
- │   ├── RingLamp-node_config.json
997
- │   └── test-node_config.json
998
- ```
999
-
1000
- #### Virtaulenv for development and stored USB-Serial drivers
1001
-
1002
- ```
1003
- micrOS/env/
1004
- ├── __init__.py
1005
- ├── driver_cp210x
1006
- │   ├── CP210x_Universal_Windows_Driver
1007
- │   └── macOS_VCP_Driver
1008
- ├── requirements.txt
1009
- └── venv
1010
- ├── bin
1011
- ├── include
1012
- ├── lib
1013
- └── pyvenv.cfg
1014
- ```
1015
-
1016
- #### Precompiled resources for easy install
1017
-
1018
911
  ```
1019
- micrOS/toolkit/workspace/precompiled
1020
- │   ├── BgJob.mpy
1021
- │   ├── Common.mpy
1022
- │   ├── ConfigHandler.mpy
1023
- │   ├── Debug.mpy
1024
- │   ├── Hooks.mpy
1025
- │   ├── InterConnect.mpy
1026
- │   ├── InterpreterCore.mpy
1027
- │   ├── InterpreterShell.mpy
1028
- │   ├── InterruptHandler.mpy
1029
- │   ├── LM_L298N_DCmotor.mpy
1030
- │   ├── LM_L9110_DCmotor.py
1031
- │   ├── LM_VL53L0X.py
1032
- │   ├── LM_bme280.mpy
1033
- │   ├── LM_buzzer.mpy
1034
- │   ├── LM_catgame.py
1035
- │   ├── LM_cct.mpy
1036
- │   ├── LM_co2.mpy
1037
- │   ├── LM_dht11.mpy
1038
- │   ├── LM_dht22.mpy
1039
- │   ├── LM_dimmer.mpy
1040
- │   ├── LM_distance_HCSR04.py
1041
- │   ├── LM_ds18.mpy
1042
- │   ├── LM_esp32.py
1043
- │   ├── LM_genIO.mpy
1044
- │   ├── LM_i2c.py
1045
- │   ├── LM_light_sensor.mpy
1046
- │   ├── LM_neoeffects.mpy
1047
- │   ├── LM_neopixel.mpy
1048
- │   ├── LM_oled.mpy
1049
- │   ├── LM_oled_ui.mpy
1050
- │   ├── LM_pet_feeder.py
1051
- │   ├── LM_ph_sensor.py
1052
- │   ├── LM_rgb.mpy
1053
- │   ├── LM_roboarm.mpy
1054
- │   ├── LM_robustness.py
1055
- │   ├── LM_servo.mpy
1056
- │   ├── LM_stepper.mpy
1057
- │   ├── LM_switch.mpy
1058
- │   ├── LM_system.mpy
1059
- │   ├── LM_tinyrgb.mpy
1060
- │   ├── IO_esp32.mpy
1061
- │   ├── IO_tinypico.mpy
1062
- │   ├── LogicalPins.mpy
1063
- │   ├── Network.mpy
1064
- │   ├── Scheduler.mpy
1065
- │   ├── SocketServer.mpy
1066
- │   ├── Time.mpy
1067
- │   ├── TinyPLed.mpy
1068
- │   ├── boot.py
1069
- │   ├── micrOS.mpy
1070
- │   ├── micrOSloader.mpy
1071
- │   └── reset.mpy
912
+ ./micrOS/source
913
+ ├── Common.py
914
+ ├── Config.py
915
+ ├── Debug.py
916
+ ├── Espnow.py
917
+ ├── Files.py
918
+ ├── Hooks.py
919
+ ├── InterConnect.py
920
+ ├── Interrupts.py
921
+ ├── Logger.py
922
+ ├── Network.py
923
+ ├── Notify.py
924
+ ├── Scheduler.py
925
+ ├── Server.py
926
+ ├── Shell.py
927
+ ├── Tasks.py
928
+ ├── Time.py
929
+ ├── Types.py
930
+ ├── Web.py
931
+ ├── main.py
932
+ ├── micrOS.py
933
+ ├── micrOSloader.py
934
+ ├── reset.py
935
+ ├── urequests.py
936
+ ├── microIO.py
937
+ ├── config
938
+ │   └── _git.keep
939
+ ├── modules
940
+ │   ├── IO_esp32.py
941
+ │   ├── IO_esp32c3.py
942
+ │   ├── IO_esp32c6.py
943
+ │   ├── IO_esp32s2.py
944
+ │   ├── IO_esp32s3.py
945
+ │   ├── IO_m5stamp.py
946
+ │   ├── IO_qtpy.py
947
+ │   ├── IO_rp2.py
948
+ │   ├── IO_s3matrix.py
949
+ │   ├── IO_tinypico.py
950
+ │   ├── LM_L298N.py
951
+ │   ├── LM_L9110_DCmotor.py
952
+ │   ├── LM_OV2640.py
953
+ │   ├── LM_VL53L0X.py
954
+ │   ├── LM_aht10.py
955
+ │   ├── LM_bme280.py
956
+ │   ├── LM_buzzer.py
957
+ │   ├── LM_cct.py
958
+ │   ├── LM_cluster.py
959
+ │   ├── LM_co2.py
960
+ │   ├── LM_dashboard_be.py
961
+ │   ├── LM_dht11.py
962
+ │   ├── LM_dht22.py
963
+ │   ├── LM_dimmer.py
964
+ │   ├── LM_distance.py
965
+ │   ├── LM_ds18.py
966
+ │   ├── LM_esp32.py
967
+ │   ├── LM_espnow.py
968
+ │   ├── LM_gameOfLife.py
969
+ │   ├── LM_genIO.py
970
+ │   ├── LM_haptic.py
971
+ │   ├── LM_i2c.py
972
+ │   ├── LM_i2s_mic.py
973
+ │   ├── LM_keychain.py
974
+ │   ├── LM_ld2410.py
975
+ │   ├── LM_light_sensor.py
976
+ │   ├── LM_mqtt_client.py
977
+ │   ├── LM_neoeffects.py
978
+ │   ├── LM_neomatrix.py
979
+ │   ├── LM_neopixel.py
980
+ │   ├── LM_oled.py
981
+ │   ├── LM_oled_sh1106.py
982
+ │   ├── LM_oled_ui.py
983
+ │   ├── LM_oledui.py
984
+ │   ├── LM_pacman.py
985
+ │   ├── LM_presence.py
986
+ │   ├── LM_qmi8658.py
987
+ │   ├── LM_rencoder.py
988
+ │   ├── LM_rest.py
989
+ │   ├── LM_rgb.py
990
+ │   ├── LM_rgbcct.py
991
+ │   ├── LM_roboarm.py
992
+ │   ├── LM_robustness.py
993
+ │   ├── LM_rp2w.py
994
+ │   ├── LM_sdcard.py
995
+ │   ├── LM_servo.py
996
+ │   ├── LM_sound_event.py
997
+ │   ├── LM_stepper.py
998
+ │   ├── LM_switch.py
999
+ │   ├── LM_system.py
1000
+ │   ├── LM_tcs3472.py
1001
+ │   ├── LM_telegram.py
1002
+ │   ├── LM_tinyrgb.py
1003
+ │   ├── LM_trackball.py
1004
+ │   └── LM_veml7700.py
1005
+ └── web
1006
+ ├── dashboard.html
1007
+ ├── index.html
1008
+ ├── matrix_draw.html
1009
+ ├── uapi.js
1010
+ ├── udashboard.js
1011
+ ├── ustyle.css
1012
+ ├── uwidgets.js
1013
+ └── uwidgets_pro.js
1014
+
1015
+ 4 directories, 98 files
1072
1016
  ```
1073
1017
 
1074
- > Note: From the `micrOS/source/` by default the LMs are not compiling, to extend complied LM list add LM explicitly to the following file:
1075
-
1076
- ```
1077
- micrOs/toolkit/LM_to_compile.dat
1078
- ```
1079
1018
 
1080
1019
  ----------------------------------------
1081
1020