denko 0.13.6 → 0.14.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 (376) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{build_avr.yml → build_atmega_avr.yml} +18 -18
  3. data/.github/workflows/{build_megaavr.yml → build_atmega_megaavr.yml} +18 -18
  4. data/.github/workflows/{build_sam3x.yml → build_atsam3x.yml} +17 -17
  5. data/.github/workflows/{build_samd.yml → build_atsamd21.yml} +18 -18
  6. data/.github/workflows/build_esp32.yml +17 -18
  7. data/.github/workflows/build_esp32c3.yml +57 -0
  8. data/.github/workflows/build_esp32c6.yml +57 -0
  9. data/.github/workflows/build_esp32h2.yml +56 -0
  10. data/.github/workflows/build_esp32s2.yml +57 -0
  11. data/.github/workflows/build_esp32s3.yml +57 -0
  12. data/.github/workflows/build_esp8266.yml +15 -15
  13. data/.github/workflows/build_ra4m1.yml +16 -16
  14. data/.github/workflows/build_rp2040.yml +17 -16
  15. data/.github/workflows/ruby.yml +20 -20
  16. data/CHANGELOG.md +195 -11
  17. data/DEPS_CLI.md +9 -9
  18. data/DEPS_IDE.md +17 -18
  19. data/HARDWARE.md +50 -51
  20. data/README.md +61 -53
  21. data/Rakefile +1 -1
  22. data/benchmarks/analog_listen.rb +49 -0
  23. data/benchmarks/digital_write.rb +28 -0
  24. data/benchmarks/i2c_ssd1306_refresh.rb +13 -6
  25. data/build +1 -1
  26. data/denko.gemspec +5 -2
  27. data/examples/advanced/{m5_env.rb → m5_env3.rb} +12 -14
  28. data/examples/advanced/rotary_encoder_mac_volume.rb +18 -13
  29. data/examples/advanced/ssd1306_time_temp_rh.rb +8 -13
  30. data/examples/analog_io/ads1100.rb +48 -0
  31. data/examples/analog_io/ads1115.rb +2 -2
  32. data/examples/analog_io/ads1118.rb +3 -11
  33. data/examples/analog_io/input.rb +17 -16
  34. data/examples/analog_io/input_smoothing.rb +27 -0
  35. data/examples/analog_io/potentiometer.rb +31 -0
  36. data/examples/connection/binary_echo.rb +34 -0
  37. data/examples/connection/tcp.rb +12 -27
  38. data/examples/digital_io/button.rb +7 -3
  39. data/examples/digital_io/relay.rb +17 -0
  40. data/examples/digital_io/rotary_encoder.rb +21 -11
  41. data/examples/display/hd44780.rb +13 -5
  42. data/examples/display/ssd1306.rb +20 -17
  43. data/examples/display/ssd1306_s2_pico.rb +2 -2
  44. data/examples/i2c/search.rb +10 -26
  45. data/examples/led/apa102_bounce.rb +3 -4
  46. data/examples/led/apa102_fade.rb +44 -0
  47. data/examples/led/builtin_blink.rb +3 -1
  48. data/examples/led/builtin_fade.rb +19 -0
  49. data/examples/led/rgb_led.rb +31 -0
  50. data/examples/led/seven_segment_char_echo.rb +4 -2
  51. data/examples/led/ws2812_bounce.rb +5 -7
  52. data/examples/led/ws2812_builtin_blink.rb +3 -2
  53. data/examples/led/ws2812_fade.rb +43 -0
  54. data/examples/motor/l298.rb +10 -8
  55. data/examples/motor/servo.rb +4 -3
  56. data/examples/motor/stepper.rb +13 -13
  57. data/examples/one_wire/search.rb +32 -0
  58. data/examples/pulse_io/buzzer.rb +8 -3
  59. data/examples/pulse_io/ir_output.rb +51 -0
  60. data/examples/pulse_io/pwm_output.rb +30 -0
  61. data/examples/rtc/ds3231.rb +18 -35
  62. data/examples/sensor/aht10.rb +4 -6
  63. data/examples/sensor/aht20.rb +4 -6
  64. data/examples/sensor/bme280.rb +4 -4
  65. data/examples/sensor/bmp180.rb +9 -5
  66. data/examples/sensor/dht.rb +20 -15
  67. data/examples/sensor/ds18b20.rb +20 -21
  68. data/examples/sensor/generic_pir.rb +4 -2
  69. data/examples/sensor/hcsr04.rb +5 -2
  70. data/examples/sensor/htu21d.rb +9 -20
  71. data/examples/sensor/htu31d.rb +7 -9
  72. data/examples/sensor/neat_tph_readings.rb +15 -9
  73. data/examples/sensor/qmp6988.rb +5 -7
  74. data/examples/sensor/rcwl9620.rb +3 -3
  75. data/examples/sensor/sht3x.rb +4 -6
  76. data/examples/spi/bitbang_loopback.rb +46 -0
  77. data/examples/spi/input_register.rb +9 -19
  78. data/examples/spi/output_register.rb +9 -17
  79. data/examples/spi/ssd_through_registers.rb +28 -0
  80. data/examples/spi/two_registers.rb +18 -24
  81. data/examples/uart/bit_bang_demo.rb +25 -0
  82. data/examples/uart/board_passthrough.rb +19 -13
  83. data/examples/uart/hardware_loopback.rb +1 -1
  84. data/lib/denko/analog_io/ads1100.rb +127 -0
  85. data/lib/denko/analog_io/ads1115.rb +8 -25
  86. data/lib/denko/analog_io/ads1118.rb +10 -25
  87. data/lib/denko/analog_io/ads111x.rb +25 -11
  88. data/lib/denko/analog_io/input.rb +29 -55
  89. data/lib/denko/analog_io/input_helper.rb +42 -0
  90. data/lib/denko/analog_io/output.rb +5 -5
  91. data/lib/denko/analog_io/potentiometer.rb +6 -8
  92. data/lib/denko/analog_io.rb +2 -1
  93. data/lib/denko/behaviors/board_proxy.rb +13 -1
  94. data/lib/denko/behaviors/bus_controller.rb +1 -0
  95. data/lib/denko/behaviors/bus_controller_addressed.rb +1 -0
  96. data/lib/denko/behaviors/bus_peripheral.rb +3 -4
  97. data/lib/denko/behaviors/bus_peripheral_addressed.rb +8 -6
  98. data/lib/denko/behaviors/callbacks.rb +9 -7
  99. data/lib/denko/behaviors/component.rb +16 -14
  100. data/lib/denko/behaviors/input_pin.rb +14 -15
  101. data/lib/denko/behaviors/lifecycle.rb +51 -0
  102. data/lib/denko/behaviors/multi_pin.rb +22 -18
  103. data/lib/denko/behaviors/output_pin.rb +9 -4
  104. data/lib/denko/behaviors/single_pin.rb +1 -0
  105. data/lib/denko/behaviors/state.rb +15 -9
  106. data/lib/denko/behaviors/subcomponents.rb +72 -12
  107. data/lib/denko/behaviors.rb +2 -1
  108. data/lib/denko/board/core.rb +36 -18
  109. data/lib/denko/board/i2c.rb +14 -14
  110. data/lib/denko/board/i2c_bit_bang.rb +49 -0
  111. data/lib/denko/board/infrared.rb +6 -6
  112. data/lib/denko/board/led_array.rb +6 -5
  113. data/lib/denko/board/spi.rb +15 -10
  114. data/lib/denko/board/spi_bit_bang.rb +9 -7
  115. data/lib/denko/board.rb +35 -33
  116. data/lib/denko/connection/binary_echo.rb +17 -0
  117. data/lib/denko/connection/flow_control.rb +11 -15
  118. data/lib/denko/connection/handshake.rb +2 -0
  119. data/lib/denko/digital_io/button.rb +4 -0
  120. data/lib/denko/digital_io/c_bit_bang.rb +15 -0
  121. data/lib/denko/digital_io/input.rb +4 -5
  122. data/lib/denko/digital_io/output.rb +7 -6
  123. data/lib/denko/digital_io/relay.rb +2 -0
  124. data/lib/denko/digital_io/rotary_encoder.rb +78 -60
  125. data/lib/denko/digital_io.rb +1 -0
  126. data/lib/denko/display/hd44780.rb +136 -93
  127. data/lib/denko/display/sh1106.rb +42 -0
  128. data/lib/denko/display/ssd1306.rb +105 -45
  129. data/lib/denko/display.rb +1 -0
  130. data/lib/denko/eeprom/built_in.rb +19 -16
  131. data/lib/denko/i2c/bit_bang.rb +31 -0
  132. data/lib/denko/i2c/bus.rb +8 -36
  133. data/lib/denko/i2c/bus_common.rb +45 -0
  134. data/lib/denko/i2c/peripheral.rb +28 -19
  135. data/lib/denko/i2c.rb +2 -0
  136. data/lib/denko/led/apa102.rb +43 -29
  137. data/lib/denko/led/base.rb +8 -2
  138. data/lib/denko/led/rgb.rb +5 -7
  139. data/lib/denko/led/seven_segment.rb +24 -9
  140. data/lib/denko/led/ws2812.rb +10 -7
  141. data/lib/denko/message.rb +5 -0
  142. data/lib/denko/motor/l298.rb +11 -10
  143. data/lib/denko/motor/servo.rb +22 -10
  144. data/lib/denko/motor/stepper.rb +11 -14
  145. data/lib/denko/mutex_stub.rb +7 -0
  146. data/lib/denko/one_wire/bus.rb +9 -5
  147. data/lib/denko/one_wire/peripheral.rb +0 -3
  148. data/lib/denko/pulse_io/buzzer.rb +9 -3
  149. data/lib/denko/pulse_io/{ir_transmitter.rb → ir_output.rb} +9 -4
  150. data/lib/denko/pulse_io/pwm_output.rb +69 -15
  151. data/lib/denko/pulse_io.rb +3 -3
  152. data/lib/denko/rtc/ds3231.rb +11 -13
  153. data/lib/denko/sensor/aht.rb +22 -21
  154. data/lib/denko/sensor/bme280.rb +60 -63
  155. data/lib/denko/sensor/bmp180.rb +41 -38
  156. data/lib/denko/sensor/dht.rb +22 -5
  157. data/lib/denko/sensor/ds18b20.rb +40 -34
  158. data/lib/denko/sensor/hcsr04.rb +7 -5
  159. data/lib/denko/sensor/helper.rb +37 -0
  160. data/lib/denko/sensor/htu21d.rb +44 -55
  161. data/lib/denko/sensor/htu31d.rb +32 -33
  162. data/lib/denko/sensor/qmp6988.rb +25 -23
  163. data/lib/denko/sensor/rcwl9620.rb +2 -5
  164. data/lib/denko/sensor/sht3x.rb +23 -21
  165. data/lib/denko/sensor.rb +1 -2
  166. data/lib/denko/spi/base_register.rb +22 -22
  167. data/lib/denko/spi/bit_bang.rb +17 -51
  168. data/lib/denko/spi/bus.rb +15 -29
  169. data/lib/denko/spi/bus_common.rb +36 -0
  170. data/lib/denko/spi/input_register.rb +36 -30
  171. data/lib/denko/spi/output_register.rb +25 -40
  172. data/lib/denko/spi/peripheral.rb +93 -24
  173. data/lib/denko/spi.rb +6 -1
  174. data/lib/denko/uart/bit_bang.rb +5 -3
  175. data/lib/denko/uart/hardware.rb +9 -8
  176. data/lib/denko/version.rb +1 -1
  177. data/lib/denko.rb +10 -0
  178. data/lib/denko_cli/generator.rb +2 -2
  179. data/lib/denko_cli/packages.rb +8 -10
  180. data/lib/denko_cli/targets.rb +8 -8
  181. data/lib/denko_cli/targets.txt +4 -4
  182. data/lib/denko_cli/usage.txt +1 -1
  183. data/src/denko_ethernet.ino +0 -14
  184. data/src/denko_serial.ino +0 -14
  185. data/src/denko_wifi.ino +6 -15
  186. data/src/lib/Denko.cpp +39 -3
  187. data/src/lib/Denko.h +42 -26
  188. data/src/lib/DenkoCoreIO.cpp +57 -102
  189. data/src/lib/DenkoDefines.h +36 -31
  190. data/src/lib/DenkoI2C.cpp +54 -45
  191. data/src/lib/DenkoI2CBB.cpp +238 -0
  192. data/src/lib/DenkoIROut.cpp +12 -7
  193. data/src/lib/DenkoLEDArray.cpp +36 -13
  194. data/src/lib/DenkoSPI.cpp +6 -5
  195. data/src/lib/DenkoSPIBB.cpp +7 -6
  196. data/target.yml +37 -2
  197. data/test/analog_io/potentiometer_test.rb +10 -10
  198. data/test/behaviors/board_proxy_test.rb +1 -1
  199. data/test/behaviors/callbacks_test.rb +11 -3
  200. data/test/behaviors/component_test.rb +17 -9
  201. data/test/behaviors/input_pin_test.rb +14 -9
  202. data/test/behaviors/multi_pin_test.rb +14 -4
  203. data/test/behaviors/output_pin_test.rb +11 -8
  204. data/test/behaviors/poller_test.rb +1 -0
  205. data/test/behaviors/reader_test.rb +3 -2
  206. data/test/behaviors/subcomponents_test.rb +22 -2
  207. data/test/board/core_test.rb +15 -11
  208. data/test/board/i2c_test.rb +39 -33
  209. data/test/board/infrared_test.rb +1 -1
  210. data/test/board/message_test.rb +17 -11
  211. data/test/board/spi_test.rb +21 -21
  212. data/test/digital_io/button_test.rb +15 -0
  213. data/test/digital_io/relay_test.rb +18 -0
  214. data/test/digital_io/rotary_encoder_test.rb +80 -60
  215. data/test/eeprom/built_in_test.rb +9 -9
  216. data/test/i2c/bus_test.rb +30 -14
  217. data/test/i2c/peripheral_test.rb +36 -17
  218. data/test/led/base_test.rb +2 -1
  219. data/test/led/rgb_test.rb +6 -6
  220. data/test/led/seven_segment_test.rb +7 -7
  221. data/test/motor/servo_test.rb +1 -1
  222. data/test/motor/stepper_test.rb +2 -2
  223. data/test/one_wire/bus_test.rb +1 -0
  224. data/test/pulse_io/buzzer_test.rb +7 -4
  225. data/test/pulse_io/{ir_transmitter_test.rb → ir_output_test.rb} +10 -10
  226. data/test/pulse_io/pwm_output_test.rb +74 -18
  227. data/test/rtc/ds3231_test.rb +11 -13
  228. data/test/sensor/dht_test.rb +1 -1
  229. data/test/sensor/ds18b20_test.rb +4 -8
  230. data/test/spi/bus_test.rb +7 -7
  231. data/test/spi/input_register_test.rb +15 -15
  232. data/test/spi/output_register_test.rb +10 -28
  233. data/test/spi/peripheral_multi_pin_test.rb +53 -0
  234. data/test/spi/peripheral_single_pin_test.rb +48 -0
  235. data/test/test_helper.rb +36 -33
  236. data/tutorial/02-button/button.rb +5 -4
  237. data/tutorial/03-potentiometer/potentiometer.rb +9 -5
  238. data/tutorial/04-pwm_led/pwm_led.rb +14 -16
  239. data/tutorial/05-rgb_led/rgb_led.rb +6 -6
  240. data/tutorial/05-rgb_led/rgb_mapping.rb +11 -11
  241. data/vendor/board-maps/BoardMap.h +416 -56
  242. data/vendor/board-maps/lib/header_parser.rb +12 -2
  243. data/vendor/board-maps/yaml/ADAFRUIT_CAMERA_ESP32S3.yml +2 -2
  244. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32C6.yml +15 -0
  245. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32_V2.yml +1 -1
  246. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_ADALOGGER.yml +44 -0
  247. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32C3.yml +1 -0
  248. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S2.yml +1 -0
  249. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_N4R2.yml +1 -0
  250. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_NOPSRAM.yml +1 -0
  251. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32_PICO.yml +1 -0
  252. data/vendor/board-maps/yaml/AMKEN_BB.yml +48 -0
  253. data/vendor/board-maps/yaml/AMKEN_ES.yml +48 -0
  254. data/vendor/board-maps/yaml/AMKEN_REVELOP.yml +48 -0
  255. data/vendor/board-maps/yaml/AMKEN_REVELOP_PLUS.yml +48 -0
  256. data/vendor/board-maps/yaml/ASL_CAN_X2.yml +41 -0
  257. data/vendor/board-maps/yaml/BLING.yml +25 -0
  258. data/vendor/board-maps/yaml/BPI_LEAF_S3.yml +1 -0
  259. data/vendor/board-maps/yaml/BRIDGETEK_IDM2040_7A.yml +48 -0
  260. data/vendor/board-maps/yaml/Bee_Motion_Mini.yml +13 -1
  261. data/vendor/board-maps/yaml/Breadstick_Raspberry.yml +31 -0
  262. data/vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32C6.yml +8 -0
  263. data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32C6.yml +20 -0
  264. data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_ESP32.yml +46 -0
  265. data/vendor/board-maps/yaml/DPTECHNICS_WALTER.yml +39 -0
  266. data/vendor/board-maps/yaml/ELECROW_CROWPANEL_7.yml +8 -0
  267. data/vendor/board-maps/yaml/ESP32C2_DEV.yml +12 -0
  268. data/vendor/board-maps/yaml/ESP32C3_DEVKIT_LIPO.yml +14 -0
  269. data/vendor/board-maps/yaml/ESP32C6_DEV.yml +15 -0
  270. data/vendor/board-maps/yaml/ESP32C6_EVB.yml +15 -0
  271. data/vendor/board-maps/yaml/ESP32C6_QWIIC_POCKET.yml +15 -0
  272. data/vendor/board-maps/yaml/ESP32C6_THING_PLUS.yml +15 -0
  273. data/vendor/board-maps/yaml/ESP32H2_DEV.yml +13 -0
  274. data/vendor/board-maps/yaml/ESP32H2_DEVKIT_LIPO.yml +13 -0
  275. data/vendor/board-maps/yaml/ESP32S2_DEV.yml +1 -0
  276. data/vendor/board-maps/yaml/{RMP.yml → ESP32S2_DEVKIT_LIPO.yml} +2 -1
  277. data/vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO_USB.yml +44 -0
  278. data/vendor/board-maps/yaml/ESP32S3_DEVKIT_LIPO.yml +42 -0
  279. data/vendor/board-maps/yaml/ESP32S3_POWERFEATHER.yml +22 -0
  280. data/vendor/board-maps/yaml/ESP32_SBC_FABGL.yml +35 -0
  281. data/vendor/board-maps/yaml/EVN_ALPHA.yml +48 -0
  282. data/vendor/board-maps/yaml/FEATHERS3NEO.yml +32 -0
  283. data/vendor/board-maps/yaml/GEEKBLE_ESP32C3.yml +14 -0
  284. data/vendor/board-maps/yaml/HELTEC_CAPSULE_SENSOR_V3.yml +43 -0
  285. data/vendor/board-maps/yaml/HELTEC_WIFI_LORA_32_V3.yml +42 -0
  286. data/vendor/board-maps/yaml/HELTEC_WIRELESS_BRIDGE.yml +8 -0
  287. data/vendor/board-maps/yaml/HELTEC_WIRELESS_MINI_SHELL.yml +13 -0
  288. data/vendor/board-maps/yaml/HELTEC_WIRELESS_PAPER.yml +42 -0
  289. data/vendor/board-maps/yaml/HELTEC_WIRELESS_SHELL_V3.yml +42 -0
  290. data/vendor/board-maps/yaml/HELTEC_WIRELESS_STICK_LITE_V3.yml +30 -0
  291. data/vendor/board-maps/yaml/HELTEC_WIRELESS_TRACKER.yml +41 -0
  292. data/vendor/board-maps/yaml/HT_DE01.yml +42 -0
  293. data/vendor/board-maps/yaml/IMBRIOS_LOGSENS_V1P1.yml +1 -1
  294. data/vendor/board-maps/yaml/LILYGO_T3S3_LR1121.yml +9 -0
  295. data/vendor/board-maps/yaml/LILYGO_T3S3_SX1262.yml +9 -0
  296. data/vendor/board-maps/yaml/LILYGO_T3S3_SX1276.yml +9 -0
  297. data/vendor/board-maps/yaml/LILYGO_T3S3_SX1278.yml +9 -0
  298. data/vendor/board-maps/yaml/LILYGO_T3S3_SX1280.yml +9 -0
  299. data/vendor/board-maps/yaml/LILYGO_T3S3_SX1280PA.yml +8 -0
  300. data/vendor/board-maps/yaml/LILYGO_T_ETH_LITE.yml +21 -0
  301. data/vendor/board-maps/yaml/LOLIN_C3_PICO.yml +14 -0
  302. data/vendor/board-maps/yaml/LOLIN_S3.yml +1 -0
  303. data/vendor/board-maps/yaml/LOLIN_S3_MINI_PRO.yml +40 -0
  304. data/vendor/board-maps/yaml/Lion_Bit_Dev_Board.yml +0 -2
  305. data/vendor/board-maps/yaml/LoPy.yml +1 -0
  306. data/vendor/board-maps/yaml/LoPy4.yml +1 -0
  307. data/vendor/board-maps/yaml/M5STACK_CAPSULE.yml +8 -0
  308. data/vendor/board-maps/yaml/M5STACK_CARDPUTER.yml +8 -0
  309. data/vendor/board-maps/yaml/M5STACK_DIAL.yml +8 -0
  310. data/vendor/board-maps/yaml/M5STACK_FIRE.yml +0 -1
  311. data/vendor/board-maps/yaml/M5STACK_NANOC6.yml +17 -0
  312. data/vendor/board-maps/yaml/M5STACK_PAPER.yml +9 -0
  313. data/vendor/board-maps/yaml/M5STACK_POE_CAM.yml +5 -0
  314. data/vendor/board-maps/yaml/M5STACK_STAMP_C3.yml +13 -0
  315. data/vendor/board-maps/yaml/M5STACK_STAMP_S3.yml +4 -0
  316. data/vendor/board-maps/yaml/{M5Stick_C.yml → M5STACK_STICKC.yml} +0 -1
  317. data/vendor/board-maps/yaml/M5STACK_STICKC_PLUS.yml +9 -0
  318. data/vendor/board-maps/yaml/M5STACK_STICKC_PLUS2.yml +9 -0
  319. data/vendor/board-maps/yaml/M5STACK_TOUGH.yml +9 -0
  320. data/vendor/board-maps/yaml/M5STACK_UNIT_CAM.yml +10 -0
  321. data/vendor/board-maps/yaml/M5STACK_UNIT_CAMS3.yml +4 -0
  322. data/vendor/board-maps/yaml/M5Stack_ATOM.yml +0 -1
  323. data/vendor/board-maps/yaml/MAKERGO_C3_SUPERMINI.yml +14 -0
  324. data/vendor/board-maps/yaml/MARBLE_PICO.yml +48 -0
  325. data/vendor/board-maps/yaml/METEHOCA_AKANA_R1.yml +46 -0
  326. data/vendor/board-maps/yaml/NAMINO_BIANCO.yml +13 -0
  327. data/vendor/board-maps/yaml/NEBULAS3.yml +0 -1
  328. data/vendor/board-maps/yaml/NEWSAN_ARCHI.yml +48 -0
  329. data/vendor/board-maps/yaml/NOLOGO_ESP32C3_SUPER_MINI.yml +14 -0
  330. data/vendor/board-maps/yaml/NOLOGO_ESP32S3_PICO.yml +12 -0
  331. data/vendor/board-maps/yaml/OLIMEX_RP2040_PICO30_16MB.yml +48 -0
  332. data/vendor/board-maps/yaml/OLIMEX_RP2040_PICO30_2MB.yml +48 -0
  333. data/vendor/board-maps/yaml/OPTA_ANALOG.yml +7 -0
  334. data/vendor/board-maps/yaml/OPTA_DIGITAL.yml +5 -0
  335. data/vendor/board-maps/yaml/PINTRONIX_PINMAX.yml +42 -0
  336. data/vendor/board-maps/yaml/PYCOM_GPY.yml +1 -0
  337. data/vendor/board-maps/yaml/REDPILL_ESP32S3.yml +0 -1
  338. data/vendor/board-maps/yaml/SENSEBOX_MCU_ESP32S2.yml +12 -0
  339. data/vendor/board-maps/yaml/SPARKFUN_MICROMOD_RP2040.yml +48 -0
  340. data/vendor/board-maps/yaml/SPARKFUN_PRO_MICRO_ESP32C3.yml +24 -0
  341. data/vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER.yml +31 -0
  342. data/vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER_C6.yml +15 -0
  343. data/vendor/board-maps/yaml/TINYC6.yml +25 -0
  344. data/vendor/board-maps/yaml/UPESY_EDU_ESP32.yml +28 -0
  345. data/vendor/board-maps/yaml/UPESY_ESP32C3_BASIC.yml +13 -0
  346. data/vendor/board-maps/yaml/UPESY_ESP32C3_MINI.yml +12 -0
  347. data/vendor/board-maps/yaml/UPESY_ESP32S3_BASIC.yml +42 -0
  348. data/vendor/board-maps/yaml/VIRALINK_GATE32_01.yml +6 -0
  349. data/vendor/board-maps/yaml/VIRALINK_GATE32_11.yml +7 -0
  350. data/vendor/board-maps/yaml/WAVESHARE_ESP32S3_TOUCH_LCD_128.yml +8 -0
  351. data/vendor/board-maps/yaml/WAVESHARE_RP2040_MATRIX.yml +48 -0
  352. data/vendor/board-maps/yaml/WAVESHARE_RP2040_ONE.yml +1 -0
  353. data/vendor/board-maps/yaml/WAVESHARE_RP2040_PIZERO.yml +47 -0
  354. data/vendor/board-maps/yaml/WAVESHARE_RP2040_ZERO.yml +1 -0
  355. data/vendor/board-maps/yaml/WEACT_STUDIO_ESP32C3.yml +14 -0
  356. data/vendor/board-maps/yaml/WIPY3.yml +1 -0
  357. data/vendor/board-maps/yaml/WT32_SC01_PLUS.yml +7 -0
  358. data/vendor/board-maps/yaml/WiFiduinoV2.yml +1 -0
  359. data/vendor/board-maps/yaml/XIAO_ESP32C3.yml +0 -1
  360. data/vendor/board-maps/yaml/XIAO_ESP32C6.yml +22 -0
  361. data/vendor/board-maps/yaml/unphone9.yml +8 -0
  362. metadata +169 -30
  363. data/examples/led/apa102_breathe.rb +0 -45
  364. data/examples/pulse_io/ir_transmitter.rb +0 -55
  365. data/examples/spi/ssd_through_register.rb +0 -40
  366. data/examples/uart/bit_bang_read.rb +0 -16
  367. data/examples/uart/bit_bang_write.rb +0 -16
  368. data/lib/denko/analog_io/sensor.rb +0 -6
  369. data/lib/denko/sensor/virtual.rb +0 -42
  370. data/src/lib/DenkoIROutESP.cpp +0 -26
  371. data/vendor/board-maps/yaml/STAMP_S3.yml +0 -8
  372. /data/vendor/board-maps/yaml/{BRIDGETEK_IDM2040-7A.yml → BRIDGETEK_IDM2040_43A.yml} +0 -0
  373. /data/vendor/board-maps/yaml/{heltec_wifi_32_lora_V3.yml → HELTEC_WIRELESS_STICK_V3.yml} +0 -0
  374. /data/vendor/board-maps/yaml/{M5Stack_Core_ESP32.yml → M5STACK_CORE.yml} +0 -0
  375. /data/vendor/board-maps/yaml/{M5Stamp_Pico.yml → M5STACK_STAMP_PICO.yml} +0 -0
  376. /data/vendor/board-maps/yaml/{M5Stack-Timer-CAM.yml → M5STACK_TIMER_CAM.yml} +0 -0
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: denko
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.6
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vickash, Austinbv
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-26 00:00:00.000000000 Z
11
+ date: 2024-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: observer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.2
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rubyserial
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +94,7 @@ dependencies:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0.22'
83
- description: GPIO library for Ruby
97
+ description: Electronics programming in Ruby
84
98
  email:
85
99
  - mail@vickash.com
86
100
  executables:
@@ -88,14 +102,19 @@ executables:
88
102
  extensions: []
89
103
  extra_rdoc_files: []
90
104
  files:
91
- - ".github/workflows/build_avr.yml"
105
+ - ".github/workflows/build_atmega_avr.yml"
106
+ - ".github/workflows/build_atmega_megaavr.yml"
107
+ - ".github/workflows/build_atsam3x.yml"
108
+ - ".github/workflows/build_atsamd21.yml"
92
109
  - ".github/workflows/build_esp32.yml"
110
+ - ".github/workflows/build_esp32c3.yml"
111
+ - ".github/workflows/build_esp32c6.yml"
112
+ - ".github/workflows/build_esp32h2.yml"
113
+ - ".github/workflows/build_esp32s2.yml"
114
+ - ".github/workflows/build_esp32s3.yml"
93
115
  - ".github/workflows/build_esp8266.yml"
94
- - ".github/workflows/build_megaavr.yml"
95
116
  - ".github/workflows/build_ra4m1.yml"
96
117
  - ".github/workflows/build_rp2040.yml"
97
- - ".github/workflows/build_sam3x.yml"
98
- - ".github/workflows/build_samd.yml"
99
118
  - ".github/workflows/ruby.yml"
100
119
  - ".gitignore"
101
120
  - ".gitmodules"
@@ -109,19 +128,26 @@ files:
109
128
  - LICENSE
110
129
  - README.md
111
130
  - Rakefile
131
+ - benchmarks/analog_listen.rb
132
+ - benchmarks/digital_write.rb
112
133
  - benchmarks/i2c_ssd1306_refresh.rb
113
134
  - bin/denko
114
135
  - build
115
136
  - denko.gemspec
116
- - examples/advanced/m5_env.rb
137
+ - examples/advanced/m5_env3.rb
117
138
  - examples/advanced/rotary_encoder_mac_volume.rb
118
139
  - examples/advanced/ssd1306_time_temp_rh.rb
140
+ - examples/analog_io/ads1100.rb
119
141
  - examples/analog_io/ads1115.rb
120
142
  - examples/analog_io/ads1118.rb
121
143
  - examples/analog_io/dac_loopback.rb
122
144
  - examples/analog_io/input.rb
145
+ - examples/analog_io/input_smoothing.rb
146
+ - examples/analog_io/potentiometer.rb
147
+ - examples/connection/binary_echo.rb
123
148
  - examples/connection/tcp.rb
124
149
  - examples/digital_io/button.rb
150
+ - examples/digital_io/relay.rb
125
151
  - examples/digital_io/rotary_encoder.rb
126
152
  - examples/display/hd44780.png
127
153
  - examples/display/hd44780.rb
@@ -130,17 +156,22 @@ files:
130
156
  - examples/eeprom/built_in.rb
131
157
  - examples/i2c/search.rb
132
158
  - examples/led/apa102_bounce.rb
133
- - examples/led/apa102_breathe.rb
159
+ - examples/led/apa102_fade.rb
134
160
  - examples/led/builtin_blink.rb
161
+ - examples/led/builtin_fade.rb
162
+ - examples/led/rgb_led.rb
135
163
  - examples/led/seven_segment_char_echo.rb
136
164
  - examples/led/ws2812_bounce.rb
137
165
  - examples/led/ws2812_builtin_blink.rb
166
+ - examples/led/ws2812_fade.rb
138
167
  - examples/motor/l298.rb
139
168
  - examples/motor/servo.rb
140
169
  - examples/motor/stepper.png
141
170
  - examples/motor/stepper.rb
171
+ - examples/one_wire/search.rb
142
172
  - examples/pulse_io/buzzer.rb
143
- - examples/pulse_io/ir_transmitter.rb
173
+ - examples/pulse_io/ir_output.rb
174
+ - examples/pulse_io/pwm_output.rb
144
175
  - examples/rtc/ds3231.rb
145
176
  - examples/sensor/aht10.rb
146
177
  - examples/sensor/aht20.rb
@@ -156,23 +187,24 @@ files:
156
187
  - examples/sensor/qmp6988.rb
157
188
  - examples/sensor/rcwl9620.rb
158
189
  - examples/sensor/sht3x.rb
190
+ - examples/spi/bitbang_loopback.rb
159
191
  - examples/spi/input_register.rb
160
192
  - examples/spi/output_register.rb
161
- - examples/spi/ssd_through_register.rb
193
+ - examples/spi/ssd_through_registers.rb
162
194
  - examples/spi/two_registers.rb
163
- - examples/uart/bit_bang_read.rb
164
- - examples/uart/bit_bang_write.rb
195
+ - examples/uart/bit_bang_demo.rb
165
196
  - examples/uart/board_passthrough.rb
166
197
  - examples/uart/hardware_loopback.rb
167
198
  - lib/denko.rb
168
199
  - lib/denko/analog_io.rb
200
+ - lib/denko/analog_io/ads1100.rb
169
201
  - lib/denko/analog_io/ads1115.rb
170
202
  - lib/denko/analog_io/ads1118.rb
171
203
  - lib/denko/analog_io/ads111x.rb
172
204
  - lib/denko/analog_io/input.rb
205
+ - lib/denko/analog_io/input_helper.rb
173
206
  - lib/denko/analog_io/output.rb
174
207
  - lib/denko/analog_io/potentiometer.rb
175
- - lib/denko/analog_io/sensor.rb
176
208
  - lib/denko/behaviors.rb
177
209
  - lib/denko/behaviors/board_proxy.rb
178
210
  - lib/denko/behaviors/bus_controller.rb
@@ -182,6 +214,7 @@ files:
182
214
  - lib/denko/behaviors/callbacks.rb
183
215
  - lib/denko/behaviors/component.rb
184
216
  - lib/denko/behaviors/input_pin.rb
217
+ - lib/denko/behaviors/lifecycle.rb
185
218
  - lib/denko/behaviors/listener.rb
186
219
  - lib/denko/behaviors/multi_pin.rb
187
220
  - lib/denko/behaviors/output_pin.rb
@@ -195,6 +228,7 @@ files:
195
228
  - lib/denko/board/core.rb
196
229
  - lib/denko/board/eeprom.rb
197
230
  - lib/denko/board/i2c.rb
231
+ - lib/denko/board/i2c_bit_bang.rb
198
232
  - lib/denko/board/infrared.rb
199
233
  - lib/denko/board/led_array.rb
200
234
  - lib/denko/board/map.rb
@@ -209,6 +243,7 @@ files:
209
243
  - lib/denko/board/uart_bit_bang.rb
210
244
  - lib/denko/connection.rb
211
245
  - lib/denko/connection/base.rb
246
+ - lib/denko/connection/binary_echo.rb
212
247
  - lib/denko/connection/board_uart.rb
213
248
  - lib/denko/connection/flow_control.rb
214
249
  - lib/denko/connection/handshake.rb
@@ -216,6 +251,7 @@ files:
216
251
  - lib/denko/connection/tcp.rb
217
252
  - lib/denko/digital_io.rb
218
253
  - lib/denko/digital_io/button.rb
254
+ - lib/denko/digital_io/c_bit_bang.rb
219
255
  - lib/denko/digital_io/input.rb
220
256
  - lib/denko/digital_io/output.rb
221
257
  - lib/denko/digital_io/relay.rb
@@ -223,12 +259,15 @@ files:
223
259
  - lib/denko/display.rb
224
260
  - lib/denko/display/canvas.rb
225
261
  - lib/denko/display/hd44780.rb
262
+ - lib/denko/display/sh1106.rb
226
263
  - lib/denko/display/ssd1306.rb
227
264
  - lib/denko/eeprom.rb
228
265
  - lib/denko/eeprom/built_in.rb
229
266
  - lib/denko/fonts.rb
230
267
  - lib/denko/i2c.rb
268
+ - lib/denko/i2c/bit_bang.rb
231
269
  - lib/denko/i2c/bus.rb
270
+ - lib/denko/i2c/bus_common.rb
232
271
  - lib/denko/i2c/peripheral.rb
233
272
  - lib/denko/led.rb
234
273
  - lib/denko/led/apa102.rb
@@ -241,6 +280,7 @@ files:
241
280
  - lib/denko/motor/l298.rb
242
281
  - lib/denko/motor/servo.rb
243
282
  - lib/denko/motor/stepper.rb
283
+ - lib/denko/mutex_stub.rb
244
284
  - lib/denko/one_wire.rb
245
285
  - lib/denko/one_wire/bus.rb
246
286
  - lib/denko/one_wire/bus_enumerator.rb
@@ -249,7 +289,7 @@ files:
249
289
  - lib/denko/one_wire/peripheral.rb
250
290
  - lib/denko/pulse_io.rb
251
291
  - lib/denko/pulse_io/buzzer.rb
252
- - lib/denko/pulse_io/ir_transmitter.rb
292
+ - lib/denko/pulse_io/ir_output.rb
253
293
  - lib/denko/pulse_io/pwm_output.rb
254
294
  - lib/denko/rtc.rb
255
295
  - lib/denko/rtc/ds3231.rb
@@ -261,16 +301,17 @@ files:
261
301
  - lib/denko/sensor/ds18b20.rb
262
302
  - lib/denko/sensor/generic_pir.rb
263
303
  - lib/denko/sensor/hcsr04.rb
304
+ - lib/denko/sensor/helper.rb
264
305
  - lib/denko/sensor/htu21d.rb
265
306
  - lib/denko/sensor/htu31d.rb
266
307
  - lib/denko/sensor/qmp6988.rb
267
308
  - lib/denko/sensor/rcwl9620.rb
268
309
  - lib/denko/sensor/sht3x.rb
269
- - lib/denko/sensor/virtual.rb
270
310
  - lib/denko/spi.rb
271
311
  - lib/denko/spi/base_register.rb
272
312
  - lib/denko/spi/bit_bang.rb
273
313
  - lib/denko/spi/bus.rb
314
+ - lib/denko/spi/bus_common.rb
274
315
  - lib/denko/spi/input_register.rb
275
316
  - lib/denko/spi/output_register.rb
276
317
  - lib/denko/spi/peripheral.rb
@@ -296,8 +337,8 @@ files:
296
337
  - src/lib/DenkoDefines.h
297
338
  - src/lib/DenkoEEPROM.cpp
298
339
  - src/lib/DenkoI2C.cpp
340
+ - src/lib/DenkoI2CBB.cpp
299
341
  - src/lib/DenkoIROut.cpp
300
- - src/lib/DenkoIROutESP.cpp
301
342
  - src/lib/DenkoLEDArray.cpp
302
343
  - src/lib/DenkoOneWire.cpp
303
344
  - src/lib/DenkoPulseInput.cpp
@@ -341,8 +382,10 @@ files:
341
382
  - test/board/tone_test.rb
342
383
  - test/connection/serial_test.rb
343
384
  - test/connection/tcp_test.rb
385
+ - test/digital_io/button_test.rb
344
386
  - test/digital_io/input_test.rb
345
387
  - test/digital_io/output_test.rb
388
+ - test/digital_io/relay_test.rb
346
389
  - test/digital_io/rotary_encoder_test.rb
347
390
  - test/display/hd44780_test.rb
348
391
  - test/eeprom/built_in_test.rb
@@ -358,7 +401,7 @@ files:
358
401
  - test/one_wire/helper_test.rb
359
402
  - test/one_wire/peripheral_test.rb
360
403
  - test/pulse_io/buzzer_test.rb
361
- - test/pulse_io/ir_transmitter_test.rb
404
+ - test/pulse_io/ir_output_test.rb
362
405
  - test/pulse_io/pwm_output_test.rb
363
406
  - test/rtc/ds3231_test.rb
364
407
  - test/sensor/dht_test.rb
@@ -367,6 +410,8 @@ files:
367
410
  - test/spi/bus_test.rb
368
411
  - test/spi/input_register_test.rb
369
412
  - test/spi/output_register_test.rb
413
+ - test/spi/peripheral_multi_pin_test.rb
414
+ - test/spi/peripheral_single_pin_test.rb
370
415
  - test/test_helper.rb
371
416
  - test/uart/bitbang_test.rb
372
417
  - tutorial/01-led/led.fzz
@@ -394,6 +439,7 @@ files:
394
439
  - vendor/board-maps/run.rb
395
440
  - vendor/board-maps/yaml/0XCB_HELIOS.yml
396
441
  - vendor/board-maps/yaml/ADAFRUIT_CAMERA_ESP32S3.yml
442
+ - vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32C6.yml
397
443
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2.yml
398
444
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_REVTFT.yml
399
445
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_TFT.yml
@@ -403,6 +449,7 @@ files:
403
449
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_TFT.yml
404
450
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32_V2.yml
405
451
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040.yml
452
+ - vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_ADALOGGER.yml
406
453
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_CAN.yml
407
454
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_DVI.yml
408
455
  - vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_PROP_MAKER.yml
@@ -425,8 +472,13 @@ files:
425
472
  - vendor/board-maps/yaml/ADAFRUIT_STEMMAFRIEND_RP2040.yml
426
473
  - vendor/board-maps/yaml/ADAFRUIT_TRINKEYQT_RP2040.yml
427
474
  - vendor/board-maps/yaml/ALKS.yml
475
+ - vendor/board-maps/yaml/AMKEN_BB.yml
476
+ - vendor/board-maps/yaml/AMKEN_ES.yml
477
+ - vendor/board-maps/yaml/AMKEN_REVELOP.yml
478
+ - vendor/board-maps/yaml/AMKEN_REVELOP_PLUS.yml
428
479
  - vendor/board-maps/yaml/AMPERKA_WIFI_SLOT.yml
429
480
  - vendor/board-maps/yaml/ARTRONSHOP_RP2_NANO.yml
481
+ - vendor/board-maps/yaml/ASL_CAN_X2.yml
430
482
  - vendor/board-maps/yaml/ATD143_S3.yml
431
483
  - vendor/board-maps/yaml/AVENTEN_S3_SYNC.yml
432
484
  - vendor/board-maps/yaml/AVR_ADK.yml
@@ -460,13 +512,16 @@ files:
460
512
  - vendor/board-maps/yaml/AVR_YUNMINI.yml
461
513
  - vendor/board-maps/yaml/AirM2M_CORE_ESP32C3.yml
462
514
  - vendor/board-maps/yaml/BEE_DATA_LOGGER.yml
515
+ - vendor/board-maps/yaml/BLING.yml
463
516
  - vendor/board-maps/yaml/BPI_BIT.yml
464
517
  - vendor/board-maps/yaml/BPI_LEAF_S3.yml
465
- - vendor/board-maps/yaml/BRIDGETEK_IDM2040-7A.yml
518
+ - vendor/board-maps/yaml/BRIDGETEK_IDM2040_43A.yml
519
+ - vendor/board-maps/yaml/BRIDGETEK_IDM2040_7A.yml
466
520
  - vendor/board-maps/yaml/BeeMotionS3.yml
467
521
  - vendor/board-maps/yaml/Bee_Motion.yml
468
522
  - vendor/board-maps/yaml/Bee_Motion_Mini.yml
469
523
  - vendor/board-maps/yaml/Bee_S3.yml
524
+ - vendor/board-maps/yaml/Breadstick_Raspberry.yml
470
525
  - vendor/board-maps/yaml/CHALLENGER_2040_LORA_RP2040.yml
471
526
  - vendor/board-maps/yaml/CHALLENGER_2040_LTE_RP2040.yml
472
527
  - vendor/board-maps/yaml/CHALLENGER_2040_NFC_RP2040.yml
@@ -492,11 +547,15 @@ files:
492
547
  - vendor/board-maps/yaml/DENKY_PICOV3.yml
493
548
  - vendor/board-maps/yaml/DENKY_WROOM32.yml
494
549
  - vendor/board-maps/yaml/DEPARTMENT_OF_ALCHEMY_MINIMAIN_ESP32S2.yml
550
+ - vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32C6.yml
495
551
  - vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32_C3.yml
496
552
  - vendor/board-maps/yaml/DFROBOT_BEETLE_RP2040.yml
553
+ - vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32C6.yml
497
554
  - vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32E.yml
498
555
  - vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32S3.yml
556
+ - vendor/board-maps/yaml/DFROBOT_FIREBEETLE_ESP32.yml
499
557
  - vendor/board-maps/yaml/DFROBOT_ROMEO_ESP32S3.yml
558
+ - vendor/board-maps/yaml/DPTECHNICS_WALTER.yml
500
559
  - vendor/board-maps/yaml/DPU_ESP32.yml
501
560
  - vendor/board-maps/yaml/DYDK.yml
502
561
  - vendor/board-maps/yaml/DYDK1A.yml
@@ -505,15 +564,28 @@ files:
505
564
  - vendor/board-maps/yaml/DYM.yml
506
565
  - vendor/board-maps/yaml/DYMv2.yml
507
566
  - vendor/board-maps/yaml/D_Duino_32.yml
567
+ - vendor/board-maps/yaml/ELECROW_CROWPANEL_7.yml
508
568
  - vendor/board-maps/yaml/ELECTRONICCATS_HUNTERCAT_NFC.yml
509
569
  - vendor/board-maps/yaml/ESP320.yml
570
+ - vendor/board-maps/yaml/ESP32C2_DEV.yml
510
571
  - vendor/board-maps/yaml/ESP32C3_DEV.yml
572
+ - vendor/board-maps/yaml/ESP32C3_DEVKIT_LIPO.yml
511
573
  - vendor/board-maps/yaml/ESP32C3_M1_I_KIT.yml
574
+ - vendor/board-maps/yaml/ESP32C6_DEV.yml
575
+ - vendor/board-maps/yaml/ESP32C6_EVB.yml
576
+ - vendor/board-maps/yaml/ESP32C6_QWIIC_POCKET.yml
577
+ - vendor/board-maps/yaml/ESP32C6_THING_PLUS.yml
578
+ - vendor/board-maps/yaml/ESP32H2_DEV.yml
579
+ - vendor/board-maps/yaml/ESP32H2_DEVKIT_LIPO.yml
512
580
  - vendor/board-maps/yaml/ESP32S2_DEV.yml
581
+ - vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO.yml
582
+ - vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO_USB.yml
513
583
  - vendor/board-maps/yaml/ESP32S2_THING_PLUS.yml
514
584
  - vendor/board-maps/yaml/ESP32S2_USB.yml
515
585
  - vendor/board-maps/yaml/ESP32S3_CAM_LCD.yml
516
586
  - vendor/board-maps/yaml/ESP32S3_DEV.yml
587
+ - vendor/board-maps/yaml/ESP32S3_DEVKIT_LIPO.yml
588
+ - vendor/board-maps/yaml/ESP32S3_POWERFEATHER.yml
517
589
  - vendor/board-maps/yaml/ESP32_DEV.yml
518
590
  - vendor/board-maps/yaml/ESP32_DEVKIT_LIPO.yml
519
591
  - vendor/board-maps/yaml/ESP32_EVB.yml
@@ -529,6 +601,7 @@ files:
529
601
  - vendor/board-maps/yaml/ESP32_S3R8N16.yml
530
602
  - vendor/board-maps/yaml/ESP32_S3_BOX.yml
531
603
  - vendor/board-maps/yaml/ESP32_S3_USB_OTG.yml
604
+ - vendor/board-maps/yaml/ESP32_SBC_FABGL.yml
532
605
  - vendor/board-maps/yaml/ESP32_THING.yml
533
606
  - vendor/board-maps/yaml/ESP32_THING_PLUS.yml
534
607
  - vendor/board-maps/yaml/ESP32_THING_PLUS_C.yml
@@ -574,58 +647,96 @@ files:
574
647
  - vendor/board-maps/yaml/ESPea32.yml
575
648
  - vendor/board-maps/yaml/ESPino32.yml
576
649
  - vendor/board-maps/yaml/ET-Board.yml
650
+ - vendor/board-maps/yaml/EVN_ALPHA.yml
577
651
  - vendor/board-maps/yaml/EXTREMEELEXTRONICS_RC2040.yml
578
652
  - vendor/board-maps/yaml/Edgebox-ESP-100.yml
579
653
  - vendor/board-maps/yaml/FEATHERS2.yml
580
654
  - vendor/board-maps/yaml/FEATHERS2NEO.yml
581
655
  - vendor/board-maps/yaml/FEATHERS3.yml
656
+ - vendor/board-maps/yaml/FEATHERS3NEO.yml
582
657
  - vendor/board-maps/yaml/FEATHER_ESP32.yml
583
658
  - vendor/board-maps/yaml/FLYBOARD2040_CORE.yml
584
659
  - vendor/board-maps/yaml/FRANZININHO_WIFI.yml
585
660
  - vendor/board-maps/yaml/FRANZININHO_WIFI_MSC.yml
586
661
  - vendor/board-maps/yaml/FROG_ESP32.yml
587
662
  - vendor/board-maps/yaml/FUNHOUSE_ESP32S2.yml
663
+ - vendor/board-maps/yaml/GEEKBLE_ESP32C3.yml
588
664
  - vendor/board-maps/yaml/GEN4_IOD.yml
589
665
  - vendor/board-maps/yaml/GENERIC_RP2040.yml
590
666
  - vendor/board-maps/yaml/HEALTHYPI_4.yml
667
+ - vendor/board-maps/yaml/HELTEC_CAPSULE_SENSOR_V3.yml
668
+ - vendor/board-maps/yaml/HELTEC_WIFI_LORA_32_V3.yml
669
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_BRIDGE.yml
670
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_MINI_SHELL.yml
671
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_PAPER.yml
672
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_SHELL_V3.yml
673
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_STICK_LITE_V3.yml
674
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_STICK_V3.yml
675
+ - vendor/board-maps/yaml/HELTEC_WIRELESS_TRACKER.yml
591
676
  - vendor/board-maps/yaml/HONEYLEMON.yml
592
677
  - vendor/board-maps/yaml/HORNBILL_ESP32_DEV.yml
593
678
  - vendor/board-maps/yaml/HORNBILL_ESP32_MINIMA.yml
679
+ - vendor/board-maps/yaml/HT_DE01.yml
594
680
  - vendor/board-maps/yaml/ILABS_2040_RPICO32_RP2040.yml
595
681
  - vendor/board-maps/yaml/IMBRIOS_LOGSENS_V1P1.yml
596
682
  - vendor/board-maps/yaml/INTOROBOT_ESP32_DEV.yml
597
683
  - vendor/board-maps/yaml/IOXESP32.yml
598
684
  - vendor/board-maps/yaml/IOXESP32PS.yml
685
+ - vendor/board-maps/yaml/LILYGO_T3S3_LR1121.yml
686
+ - vendor/board-maps/yaml/LILYGO_T3S3_SX1262.yml
687
+ - vendor/board-maps/yaml/LILYGO_T3S3_SX1276.yml
688
+ - vendor/board-maps/yaml/LILYGO_T3S3_SX1278.yml
689
+ - vendor/board-maps/yaml/LILYGO_T3S3_SX1280.yml
690
+ - vendor/board-maps/yaml/LILYGO_T3S3_SX1280PA.yml
599
691
  - vendor/board-maps/yaml/LILYGO_T_DISPLAY.yml
600
692
  - vendor/board-maps/yaml/LILYGO_T_DISPLAY_S3.yml
693
+ - vendor/board-maps/yaml/LILYGO_T_ETH_LITE.yml
601
694
  - vendor/board-maps/yaml/LIONBITS3_DEV.yml
602
695
  - vendor/board-maps/yaml/LOLIN32.yml
603
696
  - vendor/board-maps/yaml/LOLIN32_LITE.yml
604
697
  - vendor/board-maps/yaml/LOLIN_C3_MINI.yml
698
+ - vendor/board-maps/yaml/LOLIN_C3_PICO.yml
605
699
  - vendor/board-maps/yaml/LOLIN_D32.yml
606
700
  - vendor/board-maps/yaml/LOLIN_D32_PRO.yml
607
701
  - vendor/board-maps/yaml/LOLIN_S2_MINI.yml
608
702
  - vendor/board-maps/yaml/LOLIN_S2_PICO.yml
609
703
  - vendor/board-maps/yaml/LOLIN_S3.yml
610
704
  - vendor/board-maps/yaml/LOLIN_S3_MINI.yml
705
+ - vendor/board-maps/yaml/LOLIN_S3_MINI_PRO.yml
611
706
  - vendor/board-maps/yaml/LOLIN_S3_PRO.yml
612
707
  - vendor/board-maps/yaml/Lion_Bit_Dev_Board.yml
613
708
  - vendor/board-maps/yaml/LoPy.yml
614
709
  - vendor/board-maps/yaml/LoPy4.yml
710
+ - vendor/board-maps/yaml/M5STACK_CAPSULE.yml
711
+ - vendor/board-maps/yaml/M5STACK_CARDPUTER.yml
712
+ - vendor/board-maps/yaml/M5STACK_CORE.yml
615
713
  - vendor/board-maps/yaml/M5STACK_CORES3.yml
616
714
  - vendor/board-maps/yaml/M5STACK_Core2.yml
715
+ - vendor/board-maps/yaml/M5STACK_DIAL.yml
617
716
  - vendor/board-maps/yaml/M5STACK_FIRE.yml
618
- - vendor/board-maps/yaml/M5Stack-Timer-CAM.yml
717
+ - vendor/board-maps/yaml/M5STACK_NANOC6.yml
718
+ - vendor/board-maps/yaml/M5STACK_PAPER.yml
719
+ - vendor/board-maps/yaml/M5STACK_POE_CAM.yml
720
+ - vendor/board-maps/yaml/M5STACK_STAMP_C3.yml
721
+ - vendor/board-maps/yaml/M5STACK_STAMP_PICO.yml
722
+ - vendor/board-maps/yaml/M5STACK_STAMP_S3.yml
723
+ - vendor/board-maps/yaml/M5STACK_STICKC.yml
724
+ - vendor/board-maps/yaml/M5STACK_STICKC_PLUS.yml
725
+ - vendor/board-maps/yaml/M5STACK_STICKC_PLUS2.yml
726
+ - vendor/board-maps/yaml/M5STACK_TIMER_CAM.yml
727
+ - vendor/board-maps/yaml/M5STACK_TOUGH.yml
728
+ - vendor/board-maps/yaml/M5STACK_UNIT_CAM.yml
729
+ - vendor/board-maps/yaml/M5STACK_UNIT_CAMS3.yml
619
730
  - vendor/board-maps/yaml/M5Stack_ATOM.yml
620
731
  - vendor/board-maps/yaml/M5Stack_ATOMS3.yml
621
732
  - vendor/board-maps/yaml/M5Stack_CoreInk.yml
622
- - vendor/board-maps/yaml/M5Stack_Core_ESP32.yml
623
733
  - vendor/board-maps/yaml/M5Stack_Station.yml
624
- - vendor/board-maps/yaml/M5Stamp_Pico.yml
625
- - vendor/board-maps/yaml/M5Stick_C.yml
626
734
  - vendor/board-maps/yaml/MAGTAG29_ESP32S2.yml
735
+ - vendor/board-maps/yaml/MAKERGO_C3_SUPERMINI.yml
736
+ - vendor/board-maps/yaml/MARBLE_PICO.yml
627
737
  - vendor/board-maps/yaml/MELOPERO_COOKIE_RP2040.yml
628
738
  - vendor/board-maps/yaml/MELOPERO_SHAKE_RP2040.yml
739
+ - vendor/board-maps/yaml/METEHOCA_AKANA_R1.yml
629
740
  - vendor/board-maps/yaml/METRO_ESP32S2.yml
630
741
  - vendor/board-maps/yaml/METRO_ESP32S3.yml
631
742
  - vendor/board-maps/yaml/MGBOT_IOTIK32A.yml
@@ -637,6 +748,7 @@ files:
637
748
  - vendor/board-maps/yaml/MOD_WIFI_ESP8266.yml
638
749
  - vendor/board-maps/yaml/Metro.yml
639
750
  - vendor/board-maps/yaml/NAMINO_ARANCIO.yml
751
+ - vendor/board-maps/yaml/NAMINO_BIANCO.yml
640
752
  - vendor/board-maps/yaml/NAMINO_ROSSO.yml
641
753
  - vendor/board-maps/yaml/NANO32.yml
642
754
  - vendor/board-maps/yaml/NANOS3.yml
@@ -644,15 +756,23 @@ files:
644
756
  - vendor/board-maps/yaml/NANO_RP2040_CONNECT.yml
645
757
  - vendor/board-maps/yaml/NEBULAS3.yml
646
758
  - vendor/board-maps/yaml/NEKOSYSTEMS_BL2040_MINI.yml
759
+ - vendor/board-maps/yaml/NEWSAN_ARCHI.yml
760
+ - vendor/board-maps/yaml/NOLOGO_ESP32C3_SUPER_MINI.yml
761
+ - vendor/board-maps/yaml/NOLOGO_ESP32S3_PICO.yml
647
762
  - vendor/board-maps/yaml/NULLBITS_BIT_C_PRO.yml
648
763
  - vendor/board-maps/yaml/Node32s.yml
649
764
  - vendor/board-maps/yaml/NodeMCU_32S.yml
650
765
  - vendor/board-maps/yaml/ODROID_ESP32.yml
766
+ - vendor/board-maps/yaml/OLIMEX_RP2040_PICO30_16MB.yml
767
+ - vendor/board-maps/yaml/OLIMEX_RP2040_PICO30_2MB.yml
651
768
  - vendor/board-maps/yaml/ONEHORSE_ESP32_DEV.yml
769
+ - vendor/board-maps/yaml/OPTA_ANALOG.yml
770
+ - vendor/board-maps/yaml/OPTA_DIGITAL.yml
652
771
  - vendor/board-maps/yaml/OROCA_EDUBOT.yml
653
772
  - vendor/board-maps/yaml/PIMORONI_PGA2040.yml
654
773
  - vendor/board-maps/yaml/PIMORONI_PLASMA2040.yml
655
774
  - vendor/board-maps/yaml/PIMORONI_TINY2040.yml
775
+ - vendor/board-maps/yaml/PINTRONIX_PINMAX.yml
656
776
  - vendor/board-maps/yaml/PORTENTA_C33.yml
657
777
  - vendor/board-maps/yaml/PROS3.yml
658
778
  - vendor/board-maps/yaml/PYCOM_GPY.yml
@@ -666,7 +786,6 @@ files:
666
786
  - vendor/board-maps/yaml/REDPILL_ESP32S3.yml
667
787
  - vendor/board-maps/yaml/REDSCORP_RP2040_EINS.yml
668
788
  - vendor/board-maps/yaml/REDSCORP_RP2040_PROMINI.yml
669
- - vendor/board-maps/yaml/RMP.yml
670
789
  - vendor/board-maps/yaml/SAMD_CIRCUITPLAYGROUND_EXPRESS.yml
671
790
  - vendor/board-maps/yaml/SAMD_MKR1000.yml
672
791
  - vendor/board-maps/yaml/SAMD_MKRFox1200.yml
@@ -685,12 +804,14 @@ files:
685
804
  - vendor/board-maps/yaml/SEA_PICRO.yml
686
805
  - vendor/board-maps/yaml/SEEED_INDICATOR_RP2040.yml
687
806
  - vendor/board-maps/yaml/SEEED_XIAO_RP2040.yml
807
+ - vendor/board-maps/yaml/SENSEBOX_MCU_ESP32S2.yml
688
808
  - vendor/board-maps/yaml/SILICOGNITION_RP2040_SHIM.yml
689
809
  - vendor/board-maps/yaml/SOLDERPARTY_RP2040_STAMP.yml
690
810
  - vendor/board-maps/yaml/SONOFF_DUALR3.yml
811
+ - vendor/board-maps/yaml/SPARKFUN_MICROMOD_RP2040.yml
691
812
  - vendor/board-maps/yaml/SPARKFUN_PROMICRO_RP2040.yml
813
+ - vendor/board-maps/yaml/SPARKFUN_PRO_MICRO_ESP32C3.yml
692
814
  - vendor/board-maps/yaml/SPARKFUN_THINGPLUS_RP2040.yml
693
- - vendor/board-maps/yaml/STAMP_S3.yml
694
815
  - vendor/board-maps/yaml/TAMC_TERMOD_S3.yml
695
816
  - vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1262.yml
696
817
  - vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1268.yml
@@ -698,6 +819,9 @@ files:
698
819
  - vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1278.yml
699
820
  - vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1280.yml
700
821
  - vendor/board-maps/yaml/TBeam.yml
822
+ - vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER.yml
823
+ - vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER_C6.yml
824
+ - vendor/board-maps/yaml/TINYC6.yml
701
825
  - vendor/board-maps/yaml/TINYPICO.yml
702
826
  - vendor/board-maps/yaml/TINYS2.yml
703
827
  - vendor/board-maps/yaml/TINYS3.yml
@@ -718,19 +842,29 @@ files:
718
842
  - vendor/board-maps/yaml/UBLOX_NINA_W10.yml
719
843
  - vendor/board-maps/yaml/UBLOX_NORA_W10.yml
720
844
  - vendor/board-maps/yaml/UNOWIFIR4.yml
845
+ - vendor/board-maps/yaml/UPESY_EDU_ESP32.yml
846
+ - vendor/board-maps/yaml/UPESY_ESP32C3_BASIC.yml
847
+ - vendor/board-maps/yaml/UPESY_ESP32C3_MINI.yml
848
+ - vendor/board-maps/yaml/UPESY_ESP32S3_BASIC.yml
721
849
  - vendor/board-maps/yaml/UPESY_RP2040_DEVKIT.yml
722
850
  - vendor/board-maps/yaml/VALTRACK_V4_MFW_ESP32_C3.yml
723
851
  - vendor/board-maps/yaml/VALTRACK_V4_VTS_ESP32_C3.yml
852
+ - vendor/board-maps/yaml/VIRALINK_GATE32_01.yml
853
+ - vendor/board-maps/yaml/VIRALINK_GATE32_11.yml
724
854
  - vendor/board-maps/yaml/VIYALAB_MIZU_RP2040.yml
725
855
  - vendor/board-maps/yaml/WATCHY.yml
726
856
  - vendor/board-maps/yaml/WATCHY_V10.yml
727
857
  - vendor/board-maps/yaml/WATCHY_V15.yml
728
858
  - vendor/board-maps/yaml/WATCHY_V20.yml
859
+ - vendor/board-maps/yaml/WAVESHARE_ESP32S3_TOUCH_LCD_128.yml
729
860
  - vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_0_96.yml
730
861
  - vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_1_28.yml
862
+ - vendor/board-maps/yaml/WAVESHARE_RP2040_MATRIX.yml
731
863
  - vendor/board-maps/yaml/WAVESHARE_RP2040_ONE.yml
864
+ - vendor/board-maps/yaml/WAVESHARE_RP2040_PIZERO.yml
732
865
  - vendor/board-maps/yaml/WAVESHARE_RP2040_PLUS.yml
733
866
  - vendor/board-maps/yaml/WAVESHARE_RP2040_ZERO.yml
867
+ - vendor/board-maps/yaml/WEACT_STUDIO_ESP32C3.yml
734
868
  - vendor/board-maps/yaml/WESP32.yml
735
869
  - vendor/board-maps/yaml/WIDORA_AIR.yml
736
870
  - vendor/board-maps/yaml/WIFIDUINO_ESP8266.yml
@@ -740,17 +874,18 @@ files:
740
874
  - vendor/board-maps/yaml/WIZNET_5500_EVB_PICO.yml
741
875
  - vendor/board-maps/yaml/WIZNET_WIZFI360_EVB_PICO.yml
742
876
  - vendor/board-maps/yaml/WT32_ETH01.yml
877
+ - vendor/board-maps/yaml/WT32_SC01_PLUS.yml
743
878
  - vendor/board-maps/yaml/WiFiduino32S3.yml
744
879
  - vendor/board-maps/yaml/WiFiduinoV2.yml
745
880
  - vendor/board-maps/yaml/Wifiduino32.yml
746
881
  - vendor/board-maps/yaml/XIAO_ESP32C3.yml
882
+ - vendor/board-maps/yaml/XIAO_ESP32C6.yml
747
883
  - vendor/board-maps/yaml/XIAO_ESP32S3.yml
748
884
  - vendor/board-maps/yaml/YD_RP2040.yml
749
885
  - vendor/board-maps/yaml/atmegazero_esp32s2.yml
750
886
  - vendor/board-maps/yaml/connaxio_espoir.yml
751
887
  - vendor/board-maps/yaml/esp32vn_iot_uno.yml
752
888
  - vendor/board-maps/yaml/fm_devkit.yml
753
- - vendor/board-maps/yaml/heltec_wifi_32_lora_V3.yml
754
889
  - vendor/board-maps/yaml/heltec_wifi_kit_32.yml
755
890
  - vendor/board-maps/yaml/heltec_wifi_kit_32_V3.yml
756
891
  - vendor/board-maps/yaml/heltec_wifi_lora_32.yml
@@ -777,17 +912,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
777
912
  requirements:
778
913
  - - ">="
779
914
  - !ruby/object:Gem::Version
780
- version: '0'
915
+ version: 2.7.8
781
916
  required_rubygems_version: !ruby/object:Gem::Requirement
782
917
  requirements:
783
918
  - - ">="
784
919
  - !ruby/object:Gem::Version
785
920
  version: '0'
786
921
  requirements: []
787
- rubygems_version: 3.5.9
922
+ rubygems_version: 3.5.20
788
923
  signing_key:
789
924
  specification_version: 4
790
- summary: Use GPIO, I2C, SPI, UART and more on a connected microcontroller
925
+ summary: Use GPIO, PWM, I2C, SPI, and more, on a connected microcontroller, or single-board-computer
791
926
  test_files:
792
927
  - test/analog_io/input_test.rb
793
928
  - test/analog_io/output_test.rb
@@ -822,8 +957,10 @@ test_files:
822
957
  - test/board/tone_test.rb
823
958
  - test/connection/serial_test.rb
824
959
  - test/connection/tcp_test.rb
960
+ - test/digital_io/button_test.rb
825
961
  - test/digital_io/input_test.rb
826
962
  - test/digital_io/output_test.rb
963
+ - test/digital_io/relay_test.rb
827
964
  - test/digital_io/rotary_encoder_test.rb
828
965
  - test/display/hd44780_test.rb
829
966
  - test/eeprom/built_in_test.rb
@@ -839,7 +976,7 @@ test_files:
839
976
  - test/one_wire/helper_test.rb
840
977
  - test/one_wire/peripheral_test.rb
841
978
  - test/pulse_io/buzzer_test.rb
842
- - test/pulse_io/ir_transmitter_test.rb
979
+ - test/pulse_io/ir_output_test.rb
843
980
  - test/pulse_io/pwm_output_test.rb
844
981
  - test/rtc/ds3231_test.rb
845
982
  - test/sensor/dht_test.rb
@@ -848,5 +985,7 @@ test_files:
848
985
  - test/spi/bus_test.rb
849
986
  - test/spi/input_register_test.rb
850
987
  - test/spi/output_register_test.rb
988
+ - test/spi/peripheral_multi_pin_test.rb
989
+ - test/spi/peripheral_single_pin_test.rb
851
990
  - test/test_helper.rb
852
991
  - test/uart/bitbang_test.rb
@@ -1,45 +0,0 @@
1
- #
2
- # Walk a single pixel along the length of an APA102 strip and back,
3
- # changing color each time it returns to position 0.
4
- #
5
- require 'bundler/setup'
6
- require 'denko'
7
-
8
- RED = [255, 0, 0]
9
- GREEN = [0, 255, 0]
10
- BLUE = [0, 0, 255]
11
- WHITE = [255, 255, 255]
12
- COLORS = [RED, GREEN, BLUE, WHITE]
13
- PIXELS = 3
14
-
15
- # Get all the brightness values as an array.
16
- brightness_steps = (0..31).to_a
17
-
18
- board = Denko::Board.new(Denko::Connection::Serial.new)
19
-
20
- # Use the default hardware SPI bus.
21
- bus = Denko::SPI::Bus.new(board: board)
22
- strip = Denko::LED::APA102.new(bus: bus, length: PIXELS)
23
-
24
- # Test global brightness control first.
25
- strip[0] = RED
26
- strip[1] = GREEN
27
- strip[2] = BLUE
28
-
29
- # Fade up from 0 brightness then back down.
30
- (brightness_steps + brightness_steps.reverse).each do |value|
31
- strip.brightness = value
32
- strip.show
33
- sleep 0.05
34
- end
35
-
36
- # Test per-pixel brightness by fading different pixels different directions.
37
- loop do
38
- (brightness_steps + brightness_steps.reverse).each do |value|
39
- strip[0] = RED + [value]
40
- strip[1] = GREEN + [31 - value]
41
- strip[2] = BLUE + [value]
42
- strip.show
43
- sleep 0.1
44
- end
45
- end