denko 0.14.0 → 0.15.0

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 (344) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_atmega_avr.yml +2 -1
  3. data/.github/workflows/build_atmega_megaavr.yml +2 -1
  4. data/.github/workflows/build_atsam3x.yml +1 -0
  5. data/.github/workflows/build_atsamd21.yml +2 -1
  6. data/.github/workflows/build_esp32.yml +4 -2
  7. data/.github/workflows/build_esp32c3.yml +4 -3
  8. data/.github/workflows/build_esp32c6.yml +4 -2
  9. data/.github/workflows/build_esp32h2.yml +4 -2
  10. data/.github/workflows/build_esp32s2.yml +4 -2
  11. data/.github/workflows/build_esp32s3.yml +4 -2
  12. data/.github/workflows/build_esp8266.yml +2 -1
  13. data/.github/workflows/build_ra4m1.yml +1 -0
  14. data/.github/workflows/build_rp2040.yml +4 -3
  15. data/.github/workflows/ruby.yml +1 -1
  16. data/CHANGELOG.md +203 -0
  17. data/DEPS_CLI.md +16 -16
  18. data/DEPS_IDE.md +31 -30
  19. data/MICROCONTROLLERS.md +103 -0
  20. data/PERIPHERALS.md +178 -0
  21. data/README.md +28 -21
  22. data/denko.gemspec +6 -1
  23. data/lib/denko/analog_io/ads1118.rb +5 -5
  24. data/lib/denko/analog_io/ads111x.rb +23 -19
  25. data/lib/denko/analog_io/joystick.rb +87 -0
  26. data/lib/denko/analog_io/potentiometer.rb +1 -5
  27. data/lib/denko/analog_io.rb +22 -8
  28. data/lib/denko/behaviors/bus_controller.rb +2 -1
  29. data/lib/denko/behaviors/bus_peripheral.rb +1 -1
  30. data/lib/denko/behaviors/callbacks.rb +18 -16
  31. data/lib/denko/behaviors/component.rb +0 -4
  32. data/lib/denko/behaviors/lifecycle.rb +1 -1
  33. data/lib/denko/behaviors/listener.rb +9 -3
  34. data/lib/denko/behaviors/multi_pin.rb +4 -6
  35. data/lib/denko/behaviors/poller.rb +11 -2
  36. data/lib/denko/behaviors/reader.rb +109 -21
  37. data/lib/denko/behaviors/single_pin.rb +2 -4
  38. data/lib/denko/behaviors/state.rb +18 -13
  39. data/lib/denko/behaviors/threaded.rb +19 -8
  40. data/lib/denko/behaviors.rb +36 -23
  41. data/lib/denko/board/eeprom.rb +1 -1
  42. data/lib/denko/board/i2c.rb +1 -1
  43. data/lib/denko/board/i2c_bit_bang.rb +9 -5
  44. data/lib/denko/board/map.rb +6 -2
  45. data/lib/denko/board/one_wire.rb +3 -3
  46. data/lib/denko/board/spi.rb +30 -30
  47. data/lib/denko/board/spi_bit_bang.rb +8 -11
  48. data/lib/denko/board.rb +6 -3
  49. data/lib/denko/connection/flow_control.rb +1 -1
  50. data/lib/denko/connection/serial.rb +5 -5
  51. data/lib/denko/digital_io/output.rb +12 -4
  52. data/lib/denko/digital_io/pcf8574.rb +114 -0
  53. data/lib/denko/digital_io/rotary_encoder.rb +10 -6
  54. data/lib/denko/digital_io.rb +24 -6
  55. data/lib/denko/display/canvas.rb +350 -157
  56. data/lib/denko/display/font/bmp_5x7.rb +142 -0
  57. data/lib/denko/display/font/bmp_6x8.rb +142 -0
  58. data/lib/denko/display/font/bmp_8x16.rb +141 -0
  59. data/lib/denko/display/font.rb +22 -0
  60. data/lib/denko/display/hd44780.rb +24 -20
  61. data/lib/denko/display/il0373.rb +186 -0
  62. data/lib/denko/display/mono_oled.rb +193 -0
  63. data/lib/denko/display/pcd8544.rb +154 -0
  64. data/lib/denko/display/pixel_common.rb +83 -0
  65. data/lib/denko/display/sh1106.rb +17 -21
  66. data/lib/denko/display/sh1107.rb +10 -0
  67. data/lib/denko/display/spi_common.rb +35 -0
  68. data/lib/denko/display/spi_epaper_common.rb +30 -0
  69. data/lib/denko/display/ssd1306.rb +6 -228
  70. data/lib/denko/display/ssd1680.rb +14 -0
  71. data/lib/denko/display/ssd1681.rb +8 -0
  72. data/lib/denko/display/ssd168x.rb +227 -0
  73. data/lib/denko/display/st7302.rb +207 -0
  74. data/lib/denko/display/st7565.rb +166 -0
  75. data/lib/denko/display.rb +40 -4
  76. data/lib/denko/eeprom/at24c.rb +67 -0
  77. data/lib/denko/eeprom/board.rb +69 -0
  78. data/lib/denko/eeprom.rb +15 -1
  79. data/lib/denko/helpers/engine_check.rb +13 -0
  80. data/lib/denko/{mutex_stub.rb → helpers/mutex_stub.rb} +6 -0
  81. data/lib/denko/helpers.rb +6 -0
  82. data/lib/denko/i2c/bit_bang.rb +1 -0
  83. data/lib/denko/i2c/bus_common.rb +9 -4
  84. data/lib/denko/i2c/peripheral.rb +5 -1
  85. data/lib/denko/i2c.rb +17 -4
  86. data/lib/denko/led/apa102.rb +1 -3
  87. data/lib/denko/led/base.rb +5 -0
  88. data/lib/denko/led/rgb.rb +16 -10
  89. data/lib/denko/led/seven_segment.rb +1 -1
  90. data/lib/denko/led.rb +17 -8
  91. data/lib/denko/motor/{stepper.rb → a3967.rb} +1 -1
  92. data/lib/denko/motor/servo.rb +16 -6
  93. data/lib/denko/motor.rb +16 -3
  94. data/lib/denko/one_wire/bus.rb +20 -16
  95. data/lib/denko/one_wire/bus_enumerator.rb +25 -14
  96. data/lib/denko/one_wire/helper.rb +4 -2
  97. data/lib/denko/one_wire.rb +18 -5
  98. data/lib/denko/pulse_io/buzzer.rb +2 -6
  99. data/lib/denko/pulse_io/ir_output.rb +1 -5
  100. data/lib/denko/pulse_io/pwm_output.rb +56 -31
  101. data/lib/denko/pulse_io.rb +17 -3
  102. data/lib/denko/rtc/ds3231.rb +4 -3
  103. data/lib/denko/rtc.rb +14 -1
  104. data/lib/denko/sensor/aht.rb +16 -20
  105. data/lib/denko/sensor/bme280.rb +23 -36
  106. data/lib/denko/sensor/bmp180.rb +8 -13
  107. data/lib/denko/sensor/dht.rb +17 -7
  108. data/lib/denko/sensor/ds18b20.rb +5 -4
  109. data/lib/denko/sensor/hdc1080.rb +174 -0
  110. data/lib/denko/sensor/htu21d.rb +17 -6
  111. data/lib/denko/sensor/htu31d.rb +6 -5
  112. data/lib/denko/sensor/jsnsr04t.rb +49 -0
  113. data/lib/denko/sensor/qmp6988.rb +14 -30
  114. data/lib/denko/sensor/rcwl9620.rb +1 -0
  115. data/lib/denko/sensor/sht3x.rb +6 -5
  116. data/lib/denko/sensor/sht4x.rb +125 -0
  117. data/lib/denko/sensor/vl53l0x.rb +58 -0
  118. data/lib/denko/sensor.rb +33 -15
  119. data/lib/denko/spi/base_register.rb +11 -7
  120. data/lib/denko/spi/bus_common.rb +12 -15
  121. data/lib/denko/spi/input_register.rb +6 -6
  122. data/lib/denko/spi/output_register.rb +13 -4
  123. data/lib/denko/spi/peripheral.rb +82 -84
  124. data/lib/denko/spi.rb +20 -10
  125. data/lib/denko/uart/bit_bang.rb +2 -27
  126. data/lib/denko/uart/common.rb +33 -0
  127. data/lib/denko/uart/hardware.rb +1 -26
  128. data/lib/denko/uart.rb +16 -2
  129. data/lib/denko/version.rb +1 -1
  130. data/lib/denko.rb +22 -25
  131. data/lib/denko_cli/targets.rb +7 -7
  132. data/lib/denko_cli/targets.txt +19 -20
  133. data/src/lib/Denko.cpp +26 -13
  134. data/src/lib/Denko.h +4 -4
  135. data/src/lib/DenkoDefines.h +7 -26
  136. data/src/lib/DenkoLEDArray.cpp +1 -8
  137. data/src/lib/DenkoSPI.cpp +31 -29
  138. data/src/lib/DenkoSPIBB.cpp +12 -14
  139. data/test/analog_io/input_test.rb +1 -1
  140. data/test/analog_io/potentiometer_test.rb +2 -2
  141. data/test/behaviors/bus_peripheral_test.rb +4 -4
  142. data/test/behaviors/callbacks_test.rb +20 -10
  143. data/test/behaviors/component_test.rb +18 -8
  144. data/test/board/board_test.rb +9 -9
  145. data/test/board/one_wire_test.rb +25 -14
  146. data/test/board/spi_test.rb +31 -15
  147. data/test/digital_io/input_test.rb +2 -2
  148. data/test/display/canvas_test.rb +306 -0
  149. data/test/display/hd44780_test.rb +34 -7
  150. data/test/eeprom/board_test.rb +45 -0
  151. data/test/helpers/mruby_minitest.rb +95 -0
  152. data/test/helpers/mruby_runner.rb +13 -0
  153. data/test/i2c/bus_test.rb +93 -30
  154. data/test/i2c/peripheral_test.rb +2 -2
  155. data/test/led/apa102_test.rb +24 -0
  156. data/test/led/rgb_test.rb +4 -4
  157. data/test/motor/{stepper_test.rb → a3967_test.rb} +2 -2
  158. data/test/one_wire/bus_enumerator_test.rb +1 -1
  159. data/test/one_wire/bus_test.rb +42 -35
  160. data/test/one_wire/peripheral_test.rb +5 -17
  161. data/test/pulse_io/ir_output_test.rb +5 -0
  162. data/test/pulse_io/pwm_output_test.rb +10 -10
  163. data/test/rtc/ds3231_test.rb +3 -2
  164. data/test/sensor/dht_test.rb +11 -11
  165. data/test/spi/bitbang_test.rb +27 -0
  166. data/test/spi/bus_test.rb +19 -29
  167. data/test/spi/input_register_test.rb +2 -2
  168. data/test/spi/{peripheral_multi_pin_test.rb → peripheral_test.rb} +25 -5
  169. data/test/test_helper.rb +44 -124
  170. data/vendor/board-maps/BoardMap.h +264 -0
  171. data/vendor/board-maps/yaml/ALFREDO_NOU3.yml +2 -0
  172. data/vendor/board-maps/yaml/ATD143_S3.yml +1 -0
  173. data/vendor/board-maps/yaml/BHARATPI_A7672S_4G.yml +14 -0
  174. data/vendor/board-maps/yaml/BHARATPI_LORA.yml +14 -0
  175. data/vendor/board-maps/yaml/BHARATPI_NODE_WIFI.yml +14 -0
  176. data/vendor/board-maps/yaml/BPI_LEAF_S3.yml +0 -1
  177. data/vendor/board-maps/yaml/CEZERIO_DEV_ESP32C6.yml +14 -0
  178. data/vendor/board-maps/yaml/CEZERIO_MINI_DEV_ESP32C6.yml +12 -0
  179. data/vendor/board-maps/yaml/CIRCUITART_ZERO_S3.yml +71 -0
  180. data/vendor/board-maps/yaml/CODECELLC3.yml +13 -0
  181. data/vendor/board-maps/yaml/CYOBOT_V2_ESP32S3.yml +7 -0
  182. data/vendor/board-maps/yaml/EDGES3D.yml +25 -0
  183. data/vendor/board-maps/yaml/ESP32C6_DEV.yml +3 -4
  184. data/vendor/board-maps/yaml/ESP32C6_THING_PLUS.yml +0 -1
  185. data/vendor/board-maps/yaml/ESP32H2_DEV.yml +0 -1
  186. data/vendor/board-maps/yaml/ESP32H2_DEVKIT_LIPO.yml +0 -1
  187. data/vendor/board-maps/yaml/ESP32P4_DEV.yml +35 -0
  188. data/vendor/board-maps/yaml/ESP32S2_DEV.yml +0 -1
  189. data/vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO.yml +0 -1
  190. data/vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO_USB.yml +0 -1
  191. data/vendor/board-maps/yaml/ESP32_2432S028R.yml +14 -0
  192. data/vendor/board-maps/yaml/FEATHERS3.yml +1 -1
  193. data/vendor/board-maps/yaml/FRI3D_2024_ESP32S3.yml +43 -0
  194. data/vendor/board-maps/yaml/GEEKBLE_ESP32C3.yml +0 -1
  195. data/vendor/board-maps/yaml/GEEKBLE_NANO_ESP32S3.yml +25 -0
  196. data/vendor/board-maps/yaml/HELTEC_VISION_MASTER_E290.yml +41 -0
  197. data/vendor/board-maps/yaml/HELTEC_VISION_MASTER_E_213.yml +41 -0
  198. data/vendor/board-maps/yaml/HELTEC_VISION_MASTER_T190.yml +41 -0
  199. data/vendor/board-maps/yaml/HUIDU_HD_WF2.yml +5 -0
  200. data/vendor/board-maps/yaml/HUIDU_HD_WF4.yml +1 -0
  201. data/vendor/board-maps/yaml/LILYGO_LORA_CC1101.yml +6 -0
  202. data/vendor/board-maps/yaml/LILYGO_LORA_LR1121.yml +6 -0
  203. data/vendor/board-maps/yaml/LILYGO_LORA_SI4432.yml +6 -0
  204. data/vendor/board-maps/yaml/LILYGO_LORA_SX1262.yml +6 -0
  205. data/vendor/board-maps/yaml/LILYGO_LORA_SX1280.yml +6 -0
  206. data/vendor/board-maps/yaml/LOLIN_C3_MINI.yml +0 -1
  207. data/vendor/board-maps/yaml/LOLIN_C3_PICO.yml +1 -2
  208. data/vendor/board-maps/yaml/LoPy.yml +0 -1
  209. data/vendor/board-maps/yaml/LoPy4.yml +0 -1
  210. data/vendor/board-maps/yaml/M5STACK_DINMETER.yml +8 -0
  211. data/vendor/board-maps/yaml/M5STACK_FIRE.yml +1 -1
  212. data/vendor/board-maps/yaml/OMGS3.yml +25 -0
  213. data/vendor/board-maps/yaml/PCBCUPID_GLYPHC3.yml +23 -0
  214. data/vendor/board-maps/yaml/PCBCUPID_GLYPHC6.yml +32 -0
  215. data/vendor/board-maps/yaml/PCBCUPID_GLYPHH2.yml +24 -0
  216. data/vendor/board-maps/yaml/PYCOM_GPY.yml +0 -1
  217. data/vendor/board-maps/yaml/SENSEBOX_MCU_ESP32S2.yml +1 -1
  218. data/vendor/board-maps/yaml/SPARKFUN_ESP32S3_THING_PLUS.yml +13 -0
  219. data/vendor/board-maps/yaml/SPARKLEMOTIONMINI_ESP32.yml +12 -0
  220. data/vendor/board-maps/yaml/SPARKLEMOTIONSTICK_ESP32.yml +11 -0
  221. data/vendor/board-maps/yaml/SPARKLEMOTION_ESP32.yml +12 -0
  222. data/vendor/board-maps/yaml/SQUIXL.yml +7 -0
  223. data/vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER_C6.yml +0 -1
  224. data/vendor/board-maps/yaml/T_LORA_PAGER.yml +6 -0
  225. data/vendor/board-maps/yaml/T_WATCH_S3.yml +7 -0
  226. data/vendor/board-maps/yaml/T_WATCH_S3_ULTRA.yml +6 -0
  227. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_LCD_146.yml +41 -0
  228. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_LCD_147.yml +41 -0
  229. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_LCD_169.yml +38 -0
  230. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_LCD_185.yml +41 -0
  231. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_RELAY_6CH.yml +41 -0
  232. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_AMOLED_143.yml +7 -0
  233. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_AMOLED_164.yml +7 -0
  234. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_AMOLED_18.yml +38 -0
  235. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_AMOLED_191.yml +7 -0
  236. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_AMOLED_241.yml +7 -0
  237. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_146.yml +41 -0
  238. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_169.yml +38 -0
  239. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_185.yml +41 -0
  240. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_185_BOX.yml +41 -0
  241. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_21.yml +41 -0
  242. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_28.yml +41 -0
  243. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_4.yml +36 -0
  244. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_43.yml +38 -0
  245. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_43B.yml +38 -0
  246. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_5.yml +38 -0
  247. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_5B.yml +38 -0
  248. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_TOUCH_LCD_7.yml +38 -0
  249. data/vendor/board-maps/yaml/WAVESHARE_ESP32_S3_ZERO.yml +36 -0
  250. data/vendor/board-maps/yaml/WIPY3.yml +0 -1
  251. data/vendor/board-maps/yaml/WS_ESP32_S3_MATRIX.yml +38 -0
  252. data/vendor/board-maps/yaml/XIAO_ESP32S3_PLUS.yml +46 -0
  253. data/vendor/board-maps/yaml/YB_ESP32S3_AMP_V2.yml +28 -0
  254. data/vendor/board-maps/yaml/YB_ESP32S3_AMP_V3.yml +28 -0
  255. data/vendor/board-maps/yaml/YB_ESP32S3_ETH.yml +40 -0
  256. data/vendor/board-maps/yaml/mercury.yml +20 -0
  257. metadata +116 -101
  258. data/.vscode/settings.json +0 -5
  259. data/.vscode/tasks.json +0 -20
  260. data/HARDWARE.md +0 -263
  261. data/benchmarks/analog_listen.rb +0 -49
  262. data/benchmarks/digital_write.rb +0 -28
  263. data/benchmarks/i2c_ssd1306_refresh.rb +0 -91
  264. data/examples/advanced/m5_env3.rb +0 -46
  265. data/examples/advanced/rotary_encoder_mac_volume.rb +0 -53
  266. data/examples/advanced/ssd1306_time_temp_rh.rb +0 -43
  267. data/examples/analog_io/ads1100.rb +0 -48
  268. data/examples/analog_io/ads1115.rb +0 -57
  269. data/examples/analog_io/ads1118.rb +0 -65
  270. data/examples/analog_io/dac_loopback.rb +0 -34
  271. data/examples/analog_io/input.rb +0 -56
  272. data/examples/analog_io/input_smoothing.rb +0 -27
  273. data/examples/analog_io/potentiometer.rb +0 -31
  274. data/examples/connection/binary_echo.rb +0 -34
  275. data/examples/connection/tcp.rb +0 -19
  276. data/examples/digital_io/button.rb +0 -17
  277. data/examples/digital_io/relay.rb +0 -17
  278. data/examples/digital_io/rotary_encoder.rb +0 -36
  279. data/examples/display/hd44780.png +0 -0
  280. data/examples/display/hd44780.rb +0 -47
  281. data/examples/display/ssd1306.rb +0 -43
  282. data/examples/display/ssd1306_s2_pico.rb +0 -29
  283. data/examples/eeprom/built_in.rb +0 -32
  284. data/examples/i2c/search.rb +0 -39
  285. data/examples/led/apa102_bounce.rb +0 -32
  286. data/examples/led/apa102_fade.rb +0 -44
  287. data/examples/led/builtin_blink.rb +0 -14
  288. data/examples/led/builtin_fade.rb +0 -19
  289. data/examples/led/rgb_led.rb +0 -31
  290. data/examples/led/seven_segment_char_echo.rb +0 -17
  291. data/examples/led/ws2812_bounce.rb +0 -30
  292. data/examples/led/ws2812_builtin_blink.rb +0 -22
  293. data/examples/led/ws2812_fade.rb +0 -43
  294. data/examples/motor/l298.rb +0 -45
  295. data/examples/motor/servo.rb +0 -17
  296. data/examples/motor/stepper.png +0 -0
  297. data/examples/motor/stepper.rb +0 -43
  298. data/examples/one_wire/search.rb +0 -32
  299. data/examples/pulse_io/buzzer.rb +0 -35
  300. data/examples/pulse_io/ir_output.rb +0 -51
  301. data/examples/pulse_io/pwm_output.rb +0 -30
  302. data/examples/rtc/ds3231.rb +0 -31
  303. data/examples/sensor/aht10.rb +0 -17
  304. data/examples/sensor/aht20.rb +0 -17
  305. data/examples/sensor/bme280.rb +0 -38
  306. data/examples/sensor/bmp180.rb +0 -26
  307. data/examples/sensor/dht.rb +0 -29
  308. data/examples/sensor/ds18b20.rb +0 -57
  309. data/examples/sensor/generic_pir.rb +0 -27
  310. data/examples/sensor/hcsr04.rb +0 -17
  311. data/examples/sensor/htu21d.rb +0 -43
  312. data/examples/sensor/htu31d.rb +0 -33
  313. data/examples/sensor/neat_tph_readings.rb +0 -32
  314. data/examples/sensor/qmp6988.rb +0 -51
  315. data/examples/sensor/rcwl9620.rb +0 -15
  316. data/examples/sensor/sht3x.rb +0 -32
  317. data/examples/spi/bitbang_loopback.rb +0 -46
  318. data/examples/spi/input_register.rb +0 -40
  319. data/examples/spi/output_register.rb +0 -41
  320. data/examples/spi/ssd_through_registers.rb +0 -28
  321. data/examples/spi/two_registers.rb +0 -40
  322. data/examples/uart/bit_bang_demo.rb +0 -25
  323. data/examples/uart/board_passthrough.rb +0 -40
  324. data/examples/uart/hardware_loopback.rb +0 -16
  325. data/lib/denko/eeprom/built_in.rb +0 -72
  326. data/lib/denko/fonts.rb +0 -106
  327. data/test/eeprom/built_in_test.rb +0 -61
  328. data/test/spi/peripheral_single_pin_test.rb +0 -48
  329. data/tutorial/01-led/led.fzz +0 -0
  330. data/tutorial/01-led/led.pdf +0 -0
  331. data/tutorial/01-led/led.rb +0 -73
  332. data/tutorial/02-button/button.fzz +0 -0
  333. data/tutorial/02-button/button.pdf +0 -0
  334. data/tutorial/02-button/button.rb +0 -65
  335. data/tutorial/03-potentiometer/potentiometer.fzz +0 -0
  336. data/tutorial/03-potentiometer/potentiometer.pdf +0 -0
  337. data/tutorial/03-potentiometer/potentiometer.rb +0 -66
  338. data/tutorial/04-pwm_led/pwm_led.fzz +0 -0
  339. data/tutorial/04-pwm_led/pwm_led.pdf +0 -0
  340. data/tutorial/04-pwm_led/pwm_led.rb +0 -64
  341. data/tutorial/05-rgb_led/rgb_led.fzz +0 -0
  342. data/tutorial/05-rgb_led/rgb_led.pdf +0 -0
  343. data/tutorial/05-rgb_led/rgb_led.rb +0 -58
  344. data/tutorial/05-rgb_led/rgb_mapping.rb +0 -76
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06b2d0c1a2a37d777368cf6120048f704289ad12f8ba95fbec94301965a87837
4
- data.tar.gz: 6c77d10601f30993a68dbaa7bc809e736e90181374d704c88bb374765639bca6
3
+ metadata.gz: 1184d1bdda22c2ad88e4444495cd97b096bc5b84332bb4171ac7e89eb3c74882
4
+ data.tar.gz: 03eb670f333f242dc9e8cf291dcfece972180b32804f506a6208365d967f7d0c
5
5
  SHA512:
6
- metadata.gz: f1396abb35f6198558c403e1972aafd468b656e25fd070f2d6d098fd482fcd9ccc6105d51375a452ee56ee48f9aa2c5e59b12cabfd1d15e338ccb0e8eb85850a
7
- data.tar.gz: 88bd2fe60f17334d948c3b49e0da2e0a1e002e34d8b7ae5d3e1820d7189b1a812ac6687fc2c76b9f195e12c3a836fb435d69819ad0d7530f995db67b77344c57
6
+ metadata.gz: 8cf49610e4616d51e00f471799d7474519d7c1fa3c25053bce4ee5f5b5f9a7a748c6ad258a92fabaa7c073b696493e9e9cf0ed76f5fea432619c99e9ea8366b7
7
+ data.tar.gz: aca71a8c3f7f0a042bbd317019e360c5f8f309048a3f84a3bcc8ecd1dcad9de90487932f526f9b03d8071e0b850d1c6a39296904ce7476680641770ca0241f0f
@@ -34,10 +34,11 @@ jobs:
34
34
  libraries: |
35
35
  - name: Servo
36
36
  - name: IRremote
37
- version: 4.4.1
37
+ version: 4.4.2
38
38
  - name: Ethernet
39
39
  - name: WiFi
40
40
  - name: Adafruit NeoPixel
41
+ version: 1.15.1
41
42
 
42
43
  steps:
43
44
  - name: Checkout
@@ -34,10 +34,11 @@ jobs:
34
34
  libraries: |
35
35
  - name: Servo
36
36
  - name: IRremote
37
- version: 4.4.1
37
+ version: 4.4.2
38
38
  - name: Ethernet
39
39
  - name: WiFiNINA
40
40
  - name: Adafruit NeoPixel
41
+ version: 1.15.1
41
42
 
42
43
  steps:
43
44
  - name: Checkout
@@ -36,6 +36,7 @@ jobs:
36
36
  - name: Ethernet
37
37
  - name: WiFi
38
38
  - name: Adafruit NeoPixel
39
+ version: 1.15.1
39
40
 
40
41
  steps:
41
42
  - name: Checkout
@@ -34,10 +34,11 @@ jobs:
34
34
  libraries: |
35
35
  - name: Servo
36
36
  - name: IRremote
37
- version: 4.4.1
37
+ version: 4.4.2
38
38
  - name: Ethernet
39
39
  - name: WiFi
40
40
  - name: Adafruit NeoPixel
41
+ version: 1.15.1
41
42
 
42
43
  steps:
43
44
  - name: Checkout
@@ -32,10 +32,12 @@ jobs:
32
32
  - name: esp32:esp32
33
33
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
34
34
  libraries: |
35
- - name: IRremote
36
- version: 4.4.1
37
35
  - name: ESP32Servo
36
+ version: 3.0.6
37
+ - name: IRremote
38
+ version: 4.4.2
38
39
  - name: Adafruit NeoPixel
40
+ version: 1.15.1
39
41
 
40
42
  steps:
41
43
  - name: Checkout
@@ -32,11 +32,12 @@ jobs:
32
32
  - name: esp32:esp32
33
33
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
34
34
  libraries: |
35
- - name: IRremote
36
- version: 4.4.1
37
35
  - name: ESP32Servo
36
+ version: 3.0.6
37
+ - name: IRremote
38
+ version: 4.4.2
38
39
  - name: Adafruit NeoPixel
39
-
40
+ version: 1.15.1
40
41
  steps:
41
42
  - name: Checkout
42
43
  uses: actions/checkout@v4
@@ -32,10 +32,12 @@ jobs:
32
32
  - name: esp32:esp32
33
33
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
34
34
  libraries: |
35
- - name: IRremote
36
- version: 4.4.1
37
35
  - name: ESP32Servo
36
+ version: 3.0.6
37
+ - name: IRremote
38
+ version: 4.4.2
38
39
  - name: Adafruit NeoPixel
40
+ version: 1.15.1
39
41
 
40
42
  steps:
41
43
  - name: Checkout
@@ -31,10 +31,12 @@ jobs:
31
31
  - name: esp32:esp32
32
32
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
33
33
  libraries: |
34
- - name: IRremote
35
- version: 4.4.1
36
34
  - name: ESP32Servo
35
+ version: 3.0.6
36
+ - name: IRremote
37
+ version: 4.4.2
37
38
  - name: Adafruit NeoPixel
39
+ version: 1.15.1
38
40
 
39
41
  steps:
40
42
  - name: Checkout
@@ -32,10 +32,12 @@ jobs:
32
32
  - name: esp32:esp32
33
33
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
34
34
  libraries: |
35
- - name: IRremote
36
- version: 4.4.1
37
35
  - name: ESP32Servo
36
+ version: 3.0.6
37
+ - name: IRremote
38
+ version: 4.4.2
38
39
  - name: Adafruit NeoPixel
40
+ version: 1.15.1
39
41
 
40
42
  steps:
41
43
  - name: Checkout
@@ -32,10 +32,12 @@ jobs:
32
32
  - name: esp32:esp32
33
33
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
34
34
  libraries: |
35
- - name: IRremote
36
- version: 4.4.1
37
35
  - name: ESP32Servo
36
+ version: 3.0.6
37
+ - name: IRremote
38
+ version: 4.4.2
38
39
  - name: Adafruit NeoPixel
40
+ version: 1.15.1
39
41
 
40
42
  steps:
41
43
  - name: Checkout
@@ -33,8 +33,9 @@ jobs:
33
33
  source-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
34
34
  libraries: |
35
35
  - name: IRremote
36
- version: 4.4.1
36
+ version: 4.4.2
37
37
  - name: Adafruit NeoPixel
38
+ version: 1.15.1
38
39
 
39
40
  steps:
40
41
  - name: Checkout
@@ -36,6 +36,7 @@ jobs:
36
36
  - name: Ethernet
37
37
  - name: WiFi
38
38
  - name: Adafruit NeoPixel
39
+ version: 1.15.1
39
40
 
40
41
  steps:
41
42
  - name: Checkout
@@ -34,11 +34,12 @@ jobs:
34
34
  source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
35
35
  libraries: |
36
36
  - name: Servo
37
- - name: IRremote
38
- version: 4.4.1
39
- - name: Adafruit NeoPixel
40
37
  - name: Ethernet
41
38
  - name: WiFi
39
+ - name: IRremote
40
+ version: 4.4.2
41
+ - name: Adafruit NeoPixel
42
+ version: 1.15.1
42
43
 
43
44
  steps:
44
45
  - name: Checkout
@@ -29,7 +29,7 @@ jobs:
29
29
  strategy:
30
30
  matrix:
31
31
  ruby-version:
32
- ["2.7", "3.3", "head", "jruby-9.4.8.0", "truffleruby-24.1.0"]
32
+ ["2.7", "3.4", "head", "jruby-9", "jruby-10", "truffleruby-24"]
33
33
 
34
34
  steps:
35
35
  - name: Checkout
data/CHANGELOG.md CHANGED
@@ -1,5 +1,208 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.15.0
4
+
5
+ ### New Platform
6
+
7
+ Denko now runs on mruby! This means it can run on smaller devices. The first of these is the:
8
+
9
+ - Milk-V Duo
10
+ - Same footprint as Raspberry Pi Pico
11
+ - Runs Buildroot Linux on a 1GHz RISC-V CPU
12
+ - Prebuilt binaries and instructions available [here](https://github.com/denko-rb/mruby-denko-milkv-duo)
13
+ - Limitations:
14
+ - UART not supported yet. Consequently, the `JSNSR04T` sensor won't be fully supported either.
15
+ - Duo has no on-board DAC, but `AnalogIO::Output` should work when support for external DACs is added.
16
+
17
+ ### Updated Platforms
18
+
19
+ - See [denko-piboard](https://github.com/denko-rb/denko-piboard) release notes for its matching 0.15.0 release. This is Denko for "big" Linux SBCs running CRuby.
20
+
21
+ ### New Peripherals
22
+
23
+ - `AnalogIO::Joystick` -
24
+ - MultiPin. Give `x:` and `y:` in `:pins` of initialize. Both must be analog input capable.
25
+ - Inversion configurable, per axis
26
+ - Axes are swappable
27
+ - Deadzone and maxzone configurable, _NOT_ per axis
28
+
29
+ - `DigitalIO::PCF8574` -
30
+ - 8-bit (channel) bi-directional I/O expander over I2C
31
+ - Is a `BoardProxy` so `DigitalIO` components may treat it as `Board`. Not recommended for fast inputs.
32
+ - Common in "backpacks" attached to HD44780 LCDs. See [example](examples/display/hd44780_thru_pcf8574.rb)
33
+
34
+ - `Display::IL0373` :
35
+ - 212 x 104 pixel E-Paper display over SPI
36
+ - Black/White and Black/Red/White versions supported (B/R/W version not tested in hardware)
37
+ - Hardware controls: black channel inversion, H/V reflection, rotation
38
+
39
+ - `Display::PCD8544` -
40
+ - 84 x 48 pixel backlit mono LCD over SPI
41
+ - Old design from Nokia phones in late 90's and early 00's
42
+ - Hardware controls: inversion, contrast (Vop), bias
43
+ - Gotcha: Pixels appear to have an aspect ratio of about 0.8
44
+
45
+ - `Display::SH1107` -
46
+ - 128 x 128 mono OLED over I2C or SPI
47
+
48
+ - `Display::SSD1680` -
49
+ - 296 x 128 pixel E-Paper display over SPI
50
+ - Black/White and Black/Red/White versions supported
51
+ - Hardware controls: black channel inversion, horizontal reflection
52
+
53
+ - `Display::SSD1681` -
54
+ - 200 x 200 pixel variation of SSD1680
55
+
56
+ - `Display::ST7302` -
57
+ - 250 x 122 pixel mono reflective LCD over SPI
58
+ - Hardware controls: inversion, refresh rate
59
+
60
+ - `Display::ST7565` -
61
+ - 128 x 64 pixel backlit LCD over SPI
62
+ - Hardware controls: inversion, H/V reflection, rotation, brightness
63
+
64
+ - `EEPROM::AT24C` -
65
+ - 32, 64 128 or 256 kib EEPROM over I2C
66
+ - Direct read/write with interface similar to Array. `#[]` and `#[]=`
67
+
68
+ - `Sensor::AHT3X` -
69
+ - Temperature + Relative Humidity sensor over I2C
70
+
71
+ - `Sensor::HDC1080` -
72
+ - Temperature + Relative Humidity sensor over I2C
73
+ - Can also monitor battery level. `#battery_low?` is true when VCC < 2.8V.
74
+
75
+ - `Sensor::JSNSR04T` -
76
+ - Waterproof ultrasonic distance sensor, similar to HC-SR04
77
+ - Mode 1 supported by `Sensor::HCSR04` class
78
+ - This new class only supports mode 2 (UART mode)
79
+ - Requires `board:` AND `uart:` in initialize hash
80
+ - UART must be set to 9600 baud beforehand
81
+
82
+ - `Sensor::SHT4X` -
83
+ - Temperature + Relative Humidity sensor over I2C
84
+
85
+ - `Sensor::VL53L0X` -
86
+ - Laser distance sensor over I2C
87
+ - 20 - 2000mm range
88
+ - Only continuous mode implemented. No configuration yet.
89
+ - Has `#smoothing=` and `#smoothing_size=` for moving averages, like `AnalogIO::Input`
90
+
91
+ ### Peripheral Changes
92
+ - `Display::Canvas` -
93
+ - `#print` changed to `#text`
94
+ - `#print_char` changed to `#draw_char`
95
+ - All drawing methods (`#set_pixel`, `#line`, `#circle` etc.) changed to only take keyword arguments
96
+ - Removed all `#filled_*` methods. Give `filled: true` to any shape method for the same result instead.
97
+ - Added `#current_color=` to set the default color for drawing when `color:` not given
98
+ - Fonts can be any size and don't need to align to page boundaries now
99
+ - Unset pixels/bits in fonts are now ignored (effectively transparent)
100
+ - Added more fonts
101
+ - Added integer scaling for fonts
102
+ - Added `#rotate(degrees)`
103
+ - Added `#reflect(axis)`, `#reflect_x`, and `#reflect_y`
104
+ - Optimized `#line` to use only integer math, avoid float
105
+ - Added support for multicolor e-paper displays
106
+ - Handled as array of 1-bit framebuffers, one per ink color
107
+ - __Not__ real multi-bit color yet
108
+
109
+ - `Display::HD44780` -
110
+ - `#print` changed to `#text`, and `#set_cursor` to `#text_cursor` for consistency with `Display::Canvas`
111
+ - Added backlight as a subcomponent
112
+ - Give positive pin (anode) as `backlight:` in `pins:` hash when initializing
113
+ - `HD44780#backlight` is an instance of `Denko::LED::Base`
114
+ - Use like: `lcd.backlight.on` / `lcd.backlight.off`, or (if connected to PWM) `lcd.backlight.duty=`
115
+
116
+ - `Display::MonoOLED` -
117
+ - Removed `rotate:` option from `#initialize`
118
+ - Added `#reflect_x`, `#reflect_y` and `#rotate` methods instead, to match the interface of other displays
119
+ - Affects `SSD1306`, `SH1106` and `SH1107` OLEDs
120
+
121
+ - `EEPROM::Board` -
122
+ - Renamed from `EEPROM::BuiltIn`
123
+ - Simplified interface, matching `EEPROM::AT24C`
124
+ - Only provides `[]` and `[]=`, for individual values or ranges
125
+ - Both block, and read/write hardware immediately, rather than caching state
126
+
127
+ - `LED::RBG` -
128
+ - Changed `#write(r,g,b)` so it takes percentages (0-100)
129
+ - Added `#write_8_bit` that takes an 8 bit range (0-255), regardless of the underlying PWM settings
130
+
131
+ - `Sensor::DHT` reset pulse changed from 20ms to 10ms. Within spec, and appears more reliable in testing.
132
+
133
+ ### Behavior Changes
134
+ - Raw Read Rework
135
+ - `Behavior::State`, `Behavior::Callbacks`, `Behavior::Reader`, `Behavior::Poller`, and `Behavior::Listener` have received a combined rework, allowing "raw_reads".
136
+ - A raw read bypasses the "update pathway": `#pre_callback_filter`, and `#update`, which would run callbacks and update component state.
137
+ - This simplifies development of drivers for things like sensors, where config and calibration data needs to be passed back and forth, but can't hit the update pathway. The old behavior is still available, for actual sensor data.
138
+ - `#_read` is a delegate method. Define it to get a single sensor reading, expected to hit the update pathway.
139
+ - `#_read` should _never_ be called directly now, as it might conflict with raw reads.
140
+ - Use `#read_nb` to trigger an async read instead. It delegates to `#_read` in a way that won't conflict.
141
+ - `#read` is now the same as `#read_nb`, except blocking.
142
+ - `#read_raw` _always_ blocks. Use it to get raw data (no `#pre_callback_filter`), and _not_ hit the update pathway.
143
+ - `#read_raw` _cannot_ be called if the component is currently listening. No way to gaurantee message order. Stop listening first.
144
+ - `#read_raw` takes a method object or Proc. It does _not_ delegate to `#_read`, since it's not meant for sensor data.
145
+
146
+ - Mutex Rework
147
+ - `Mutex#lock` and `Mutex#unlock` now preferred over `Mutex#synchronize`, so mruby doesn't have to pass a block around.
148
+ - `Mutex` instances are all replaced with `MutexStub` instances in mruby, and CRuby.
149
+ - `Component#state` (reading) is no longer protected by a mutex, unless it's a simple Integer.
150
+ - `Component#state=` (writing) is still portected by `@state_mutex`.
151
+
152
+ - `SPI::Peripheral::SinglePin` removed. It's simpler to use `SPI::Peripheral::MultiPin` (now renamed to `SPI::Peripheral`) for everything instead.
153
+
154
+ ### Microcontroller Changes
155
+
156
+ - Arduino Core Version Updates:
157
+ - ESP32 Arduino Core -> 3.2.0
158
+ - NOTE: HW CDC (UART) is still broken when sending large amounts of data both directions. If using an ESP32 board that has a USB port with a USB-UART chip (not native USB), that will be more reliable for now.
159
+ - All other cores -> latest released version
160
+
161
+ - Arduino Library Version Updates:
162
+ - Adafruit NeoPixel -> 1.15.1
163
+ - ESP32Servo -> 3.0.6
164
+ - IRremote -> 4.4.2
165
+
166
+ - Arduino Uno R4 (Minima and Wi-Fi):
167
+ - WS2812 RGB LEDs are now supported by the NeoPixel library on the RA4M1, so enabled for these
168
+
169
+ - ATmega168-based microcontrollers:
170
+ - Removed OneWire support from default build config and replaced with bit-bang UART
171
+
172
+ - AUX_SIZE:
173
+ - AUX_SIZE reduced to 528 bytes for almost all microcontrollers, and still 48 for ATmega168
174
+ - Most implemented interfaces (except infrared) work fine sending/receiving data in chunks. This allows 512 byte chunks, even if using 16 bytes for configuration etc.
175
+
176
+ - SPI transfer size limits:
177
+ - SPI transfer sizes are now sent as 12-bit unsigned integers. This allows for a theoretical limit of 4095 bytes per SPI transaction, but AUX_SIZE is lower by default, so 520 (528 - 8 config bytes) is the practical limit, more than doubling the previous 255.
178
+
179
+ ### Board Interface Changes
180
+
181
+ - `Board` classes must implement `#spi_limit`, which returns the maximum size (in bytes) of a SPI transaction. The same value is used for both reading and writing.
182
+
183
+ - `Board` classes must implement `#pin_is_pwm?(pin)`. This takes a pin number and returns true if __that pin number is muxed to a hardware PWM output that cannot be remuxed__. This is only relevant on Linux, where calling something like `#digital_write` on a hardware PWM output does nothing, so we want to mimic it with PWM values instead.
184
+
185
+ - `Board` classes must implement `#pwm_write(pin, duty)` so that the second argument is always the duty cycle in nanoseconds, not a percentage, or based on PWM timer bit-depth.
186
+ - The only exception is connected microcontrollers on Arduino firmware. PWM period may not always be controllable (or even known), so use values based on PWM timer bit-depth. This is handled conditionally inside `PulseIO::PWMOutput`.
187
+
188
+ - `Board#one_wire_reset` arguments changed from `(pin, read_presence=0)` to `(pin, read_presence=false)`. Any truthy value will update the bus' with the presence result.
189
+
190
+ ### Driver convergence with mruby
191
+ - Many classes had small changes made to avoid using CRuby features not available in mruby. These include:
192
+ - Avoid using `Integer#[]` to get specific bits
193
+ - Avoid using `Array#pack`
194
+ - Avoid using regexes entirely
195
+ - Avoid `super if defined?(super)`
196
+ - Use `begin; super; rescue NoMethodError; end`
197
+
198
+ ### Bug Fixes
199
+ - Fixed bug where `Display::HD44780` would try to call `#board_has_write_bit?` instead of `#board.is_register?`.
200
+ - Fixed a bug with multiple enviro sensors where calling `#state` would reset the values of all keys to `nil`.
201
+ - Fixed bug where `Canvas#polygon` and `#path` were not passing through color to sub-methods.
202
+ - Fixed a bug where `Behavior::MultiPin` would try to convert pins given as `nil` to Integer, creating unnecesary subcomponents on pin `0`.
203
+ - Shortened `Sensor::DHT` reset time to 10ms, which works more reliably.
204
+ - Write twice before rading for `Sensor::RCWL9620`, which works more reliably.
205
+
3
206
  ## 0.14.0
4
207
 
5
208
  ### Known Issues
data/DEPS_CLI.md CHANGED
@@ -16,16 +16,16 @@ arduino-cli core install arduino:sam
16
16
  arduino-cli core install arduino:samd
17
17
  arduino-cli core install arduino:renesas_uno
18
18
  arduino-cli core install esp8266:esp8266
19
- arduino-cli core install esp32:esp32@3.0.5
19
+ arduino-cli core install esp32:esp32@3.2.0
20
20
  arduino-cli core install rp2040:rp2040
21
21
  arduino-cli lib install Servo
22
22
  arduino-cli lib install Ethernet
23
23
  arduino-cli lib install WiFi
24
24
  arduino-cli lib install WiFi101
25
25
  arduino-cli lib install WiFiNINA
26
- arduino-cli lib install IRremote@4.4.1
27
- arduino-cli lib install ESP32Servo
28
- arduino-cli lib install "Adafruit NeoPixel"
26
+ arduino-cli lib install ESP32Servo@3.0.6
27
+ arduino-cli lib install IRremote@4.4.2
28
+ arduino-cli lib install "Adafruit NeoPixel"@1.15.1
29
29
  ````
30
30
 
31
31
  **AVR-based Arduinos & Clones Only:**
@@ -36,8 +36,8 @@ arduino-cli lib install Servo
36
36
  arduino-cli lib install Ethernet
37
37
  arduino-cli lib install WiFi
38
38
  arduino-cli lib install WiFiNINA
39
- arduino-cli lib install IRremote@4.4.1
40
- arduino-cli lib install "Adafruit NeoPixel"
39
+ arduino-cli lib install IRremote@4.4.2
40
+ arduino-cli lib install "Adafruit NeoPixel"@1.15.1
41
41
  ````
42
42
 
43
43
  **ARM-based Arduinos & Clones Only:**
@@ -51,8 +51,8 @@ arduino-cli lib install Ethernet
51
51
  arduino-cli lib install WiFi
52
52
  arduino-cli lib install WiFi101
53
53
  arduino-cli lib install WiFiNINA
54
- arduino-cli lib install IRremote@4.4.1
55
- arduino-cli lib install "Adafruit NeoPixel"
54
+ arduino-cli lib install IRremote@4.4.2
55
+ arduino-cli lib install "Adafruit NeoPixel"@1.15.1
56
56
  ````
57
57
 
58
58
  **ESP8266 Only:**
@@ -61,8 +61,8 @@ arduino-cli config init
61
61
  arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
62
62
  arduino-cli core update-index
63
63
  arduino-cli core install esp8266:esp8266
64
- arduino-cli lib install IRremote@4.4.1
65
- arduino-cli lib install "Adafruit NeoPixel"
64
+ arduino-cli lib install IRremote@4.4.2
65
+ arduino-cli lib install "Adafruit NeoPixel"@1.15.1
66
66
  ````
67
67
 
68
68
  **ESP32 Only:**
@@ -70,10 +70,10 @@ arduino-cli lib install "Adafruit NeoPixel"
70
70
  arduino-cli config init
71
71
  arduino-cli config add board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
72
72
  arduino-cli core update-index
73
- arduino-cli core install esp32:esp32@3.0.5
74
- arduino-cli lib install ESP32Servo
75
- arduino-cli lib install IRremote@4.4.1
76
- arduino-cli lib install "Adafruit NeoPixel"
73
+ arduino-cli core install esp32:esp32@3.2.0
74
+ arduino-cli lib install ESP32Servo@3.0.6
75
+ arduino-cli lib install IRremote@4.4.2
76
+ arduino-cli lib install "Adafruit NeoPixel"@1.15.1
77
77
  ````
78
78
 
79
79
  **RP2040 Only:**
@@ -82,6 +82,6 @@ arduino-cli config init
82
82
  arduino-cli config add board_manager.additional_urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
83
83
  arduino-cli core update-index
84
84
  arduino-cli core install rp2040:rp2040
85
- arduino-cli lib install IRremote@4.4.1
86
- arduino-cli lib install "Adafruit NeoPixel"
85
+ arduino-cli lib install IRremote@4.4.2
86
+ arduino-cli lib install "Adafruit NeoPixel"@1.15.1
87
87
  ````
data/DEPS_IDE.md CHANGED
@@ -33,19 +33,19 @@ All platforms will require libraries to be installed. To install a library do th
33
33
  Arduino SAMD Boards (32-bits ARM Cortex-M0+)
34
34
  Arduino UNO R4 Boards
35
35
  ESP8266 Boards
36
- ESP32 Boards @ v3.0.5
36
+ ESP32 Boards @ 3.2.0
37
37
  Raspberry Pi Pico/RP2040
38
- ````
38
+ ````r
39
39
  * Libraries:
40
40
  ````
41
- Servo by Michael Margolis, Arduino
42
- Ethernet by Various
43
- WiFi by Arduino
44
- WiFi101 by Arduino
45
- WiFiNINA by Arduino
46
- IRremote @ v4.4.1 by shirriff, z3to, ArminJo
47
- ESP32Servo by Kevin Harrington, John K. Bennett
48
- Adafruit NeoPixel by Adafruit
41
+ Servo by Michael Margolis, Arduino
42
+ Ethernet by Various
43
+ WiFi by Arduino
44
+ WiFi101 by Arduino
45
+ WiFiNINA by Arduino
46
+ ESP32Servo by Kevin Harrington, John K. Bennett
47
+ IRremote @ 4.4.2 by shirriff, z3to, ArminJo
48
+ Adafruit NeoPixel @ 1.15.1 by Adafruit
49
49
  ````
50
50
 
51
51
  **AVR-based Arduinos & Clones Only:**
@@ -55,12 +55,12 @@ All platforms will require libraries to be installed. To install a library do th
55
55
  ````
56
56
  * Libraries:
57
57
  ````
58
- Servo by Michael Margolis, Arduino
59
- Ethernet by Various
60
- WiFi by Arduino
61
- WiFiNINA by Arduino
62
- IRremote @ v4.4.1 by shirriff, z3to, ArminJo
63
- Adafruit NeoPixel by Adafruit
58
+ Servo by Michael Margolis, Arduino
59
+ Ethernet by Various
60
+ WiFi by Arduino
61
+ WiFiNINA by Arduino
62
+ IRremote @ 4.4.2 by shirriff, z3to, ArminJo
63
+ Adafruit NeoPixel @ 1.15.1 by Adafruit
64
64
  ````
65
65
 
66
66
  **ARM-based Arduinos & Clones Only:**
@@ -72,13 +72,13 @@ All platforms will require libraries to be installed. To install a library do th
72
72
  ````
73
73
  * Libraries:
74
74
  ````
75
- Servo by Michael Margolis, Arduino
76
- Ethernet by Various
77
- WiFi by Arduino
78
- WiFi101 by Arduino
79
- WiFiNINA by Arduino
80
- IRremote @ v4.4.1 by shirriff, z3to, ArminJo
81
- Adafruit NeoPixel by Adafruit
75
+ Servo by Michael Margolis, Arduino
76
+ Ethernet by Various
77
+ WiFi by Arduino
78
+ WiFi101 by Arduino
79
+ WiFiNINA by Arduino
80
+ IRremote @ 4.4.2 by shirriff, z3to, ArminJo
81
+ Adafruit NeoPixel @ 1.15.1 by Adafruit
82
82
  ````
83
83
 
84
84
  **ESP8266 Only:**
@@ -92,8 +92,8 @@ All platforms will require libraries to be installed. To install a library do th
92
92
  ````
93
93
  * Libraries:
94
94
  ````
95
- IRremote @ v4.4.1 by shirriff, z3to, ArminJo
96
- Adafruit NeoPixel by Adafruit
95
+ IRremote @ 4.4.2 by shirriff, z3to, ArminJo
96
+ Adafruit NeoPixel @ 1.15.1 by Adafruit
97
97
  ````
98
98
 
99
99
  **ESP32 Only:**
@@ -103,13 +103,13 @@ All platforms will require libraries to be installed. To install a library do th
103
103
  ````
104
104
  * Boards (latest version unless specified):
105
105
  ````
106
- ESP32 Boards @ v3.0.5
106
+ ESP32 Boards @ v3.2.0
107
107
  ````
108
108
  * Libraries (latest version unless specified):
109
109
  ````
110
- IRremote @ v4.4.1 by shirriff, z3to, ArminJo
111
- ESP32Servo by Kevin Harrington, John K. Bennett
112
- Adafruit NeoPixel by Adafruit
110
+ ESP32Servo @ 3.0.6 by Kevin Harrington, John K. Bennett
111
+ IRremote @ 4.4.2 by shirriff, z3to, ArminJo
112
+ Adafruit NeoPixel @ 1.15.1 by Adafruit
113
113
  ````
114
114
 
115
115
  **RP2040 Only:**
@@ -123,5 +123,6 @@ All platforms will require libraries to be installed. To install a library do th
123
123
  ````
124
124
  * Libraries:
125
125
  ````
126
- IRremote @ v4.4.1 by shirriff, z3to, ArminJo
126
+ IRremote @ 4.4.2 by shirriff, z3to, ArminJo
127
+ Adafruit NeoPixel @ 1.15.1 by Adafruit
127
128
  ````