denko 0.13.0 → 0.13.2

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 (218) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_avr.yml +2 -4
  3. data/.github/workflows/build_esp32.yml +2 -3
  4. data/.github/workflows/build_esp8266.yml +2 -3
  5. data/.github/workflows/build_megaavr.yml +2 -4
  6. data/.github/workflows/build_ra4m1.yml +57 -0
  7. data/.github/workflows/build_rp2040.yml +2 -4
  8. data/.github/workflows/build_sam3x.yml +1 -3
  9. data/.github/workflows/build_samd.yml +2 -4
  10. data/CHANGELOG.md +60 -0
  11. data/DEPS_CLI.md +8 -6
  12. data/DEPS_IDE.md +9 -7
  13. data/HARDWARE.md +98 -75
  14. data/README.md +48 -59
  15. data/benchmarks/i2c_ssd1306_refresh.rb +74 -0
  16. data/examples/analog_io/ads1115.rb +57 -0
  17. data/examples/analog_io/ads1118.rb +8 -9
  18. data/examples/analog_io/dac_loopback.rb +6 -4
  19. data/examples/analog_io/input.rb +39 -36
  20. data/examples/connection/tcp.rb +1 -1
  21. data/examples/display/hd44780.rb +3 -3
  22. data/examples/display/ssd1306.rb +1 -1
  23. data/examples/pulse_io/buzzer.rb +40 -0
  24. data/examples/sensor/aht20.rb +1 -1
  25. data/lib/denko/analog_io/ads1115.rb +61 -0
  26. data/lib/denko/analog_io/ads1118.rb +10 -120
  27. data/lib/denko/analog_io/ads111x.rb +123 -0
  28. data/lib/denko/analog_io/output.rb +2 -1
  29. data/lib/denko/analog_io.rb +2 -0
  30. data/lib/denko/behaviors/bus_peripheral_addressed.rb +1 -1
  31. data/lib/denko/behaviors/component.rb +1 -1
  32. data/lib/denko/behaviors/input_pin.rb +3 -0
  33. data/lib/denko/behaviors/reader.rb +14 -13
  34. data/lib/denko/behaviors/single_pin.rb +1 -3
  35. data/lib/denko/behaviors/state.rb +1 -0
  36. data/lib/denko/behaviors/subcomponents.rb +2 -2
  37. data/lib/denko/board/core.rb +1 -1
  38. data/lib/denko/board/i2c.rb +1 -4
  39. data/lib/denko/board/map.rb +9 -0
  40. data/lib/denko/board/servo.rb +2 -6
  41. data/lib/denko/board.rb +32 -20
  42. data/lib/denko/connection/board_uart.rb +3 -3
  43. data/lib/denko/connection/flow_control.rb +10 -2
  44. data/lib/denko/digital_io/output.rb +1 -1
  45. data/lib/denko/display/hd44780.rb +18 -18
  46. data/lib/denko/led/seven_segment.rb +18 -19
  47. data/lib/denko/message.rb +6 -14
  48. data/lib/denko/one_wire/bus.rb +1 -1
  49. data/lib/denko/one_wire/{bus_enumeration.rb → bus_enumerator.rb} +16 -8
  50. data/lib/denko/one_wire/helper.rb +1 -1
  51. data/lib/denko/one_wire.rb +1 -1
  52. data/lib/denko/pulse_io/ir_transmitter.rb +1 -2
  53. data/lib/denko/sensor/ds18b20.rb +1 -1
  54. data/lib/denko/version.rb +1 -1
  55. data/lib/denko_cli/packages.rb +7 -1
  56. data/lib/denko_cli/targets.rb +8 -5
  57. data/lib/denko_cli/usage.txt +8 -4
  58. data/src/denko_ethernet.ino +15 -23
  59. data/src/denko_serial.ino +3 -14
  60. data/src/denko_wifi.ino +35 -50
  61. data/src/lib/Denko.cpp +23 -6
  62. data/src/lib/Denko.h +6 -16
  63. data/src/lib/DenkoCoreIO.cpp +3 -3
  64. data/src/lib/DenkoDefines.h +62 -16
  65. data/src/lib/DenkoEEPROM.cpp +9 -1
  66. data/src/lib/DenkoI2C.cpp +11 -9
  67. data/src/lib/DenkoLEDArray.cpp +1 -1
  68. data/target.yml +35 -1
  69. data/test/behaviors/reader_test.rb +8 -1
  70. data/test/board/helper_test.rb +0 -4
  71. data/test/display/hd44780_test.rb +10 -0
  72. data/test/led/seven_segment_test.rb +30 -8
  73. data/test/one_wire/bus_enumerator_test.rb +4 -0
  74. data/test/one_wire/helper_test.rb +5 -5
  75. data/test/sensor/ds18b20_test.rb +10 -0
  76. data/test/test_helper.rb +17 -2
  77. data/vendor/board-maps/.gitmodules +3 -0
  78. data/vendor/board-maps/BoardMap.h +40 -12
  79. data/vendor/board-maps/README.md +1 -0
  80. data/vendor/board-maps/lib/header_parser.rb +30 -5
  81. data/vendor/board-maps/run.rb +11 -1
  82. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3.yml +6 -1
  83. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_NOPSRAM.yml +6 -1
  84. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32_V2.yml +5 -1
  85. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_N4R2.yml +20 -0
  86. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32_PICO.yml +2 -1
  87. data/vendor/board-maps/yaml/ARTRONSHOP_RP2_NANO.yml +32 -0
  88. data/vendor/board-maps/yaml/AVR_CIRCUITPLAY.yml +1 -1
  89. data/vendor/board-maps/yaml/AVR_ESPLORA.yml +1 -1
  90. data/vendor/board-maps/yaml/AVR_INDUSTRIAL101.yml +1 -1
  91. data/vendor/board-maps/yaml/AVR_LEONARDO.yml +1 -1
  92. data/vendor/board-maps/yaml/AVR_LEONARDO_ETH.yml +1 -1
  93. data/vendor/board-maps/yaml/AVR_LILYPAD_USB.yml +1 -1
  94. data/vendor/board-maps/yaml/AVR_LININO_ONE.yml +1 -1
  95. data/vendor/board-maps/yaml/AVR_MICRO.yml +1 -1
  96. data/vendor/board-maps/yaml/AVR_ROBOT_CONTROL.yml +1 -1
  97. data/vendor/board-maps/yaml/AVR_ROBOT_MOTOR.yml +1 -1
  98. data/vendor/board-maps/yaml/AVR_YUN.yml +1 -1
  99. data/vendor/board-maps/yaml/AVR_YUNMINI.yml +1 -1
  100. data/vendor/board-maps/yaml/BPI_LEAF_S3.yml +11 -1
  101. data/vendor/board-maps/yaml/BeeMotionS3.yml +6 -1
  102. data/vendor/board-maps/yaml/Bee_Motion.yml +3 -0
  103. data/vendor/board-maps/yaml/Bee_S3.yml +1 -1
  104. data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI6_BLE_RP2040.yml +42 -0
  105. data/vendor/board-maps/yaml/CYTRON_MAKER_FEATHER_AIOT_S3.yml +4 -1
  106. data/vendor/board-maps/yaml/CoreESP32.yml +5 -1
  107. data/vendor/board-maps/yaml/D1_MINI32.yml +10 -1
  108. data/vendor/board-maps/yaml/DENKY.yml +10 -1
  109. data/vendor/board-maps/yaml/DENKY_PICOV3.yml +10 -1
  110. data/vendor/board-maps/yaml/DENKY_WROOM32.yml +10 -1
  111. data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32E.yml +6 -1
  112. data/vendor/board-maps/yaml/DPU_ESP32.yml +10 -1
  113. data/vendor/board-maps/yaml/D_Duino_32.yml +9 -1
  114. data/vendor/board-maps/yaml/ESP32S2_DEV.yml +11 -1
  115. data/vendor/board-maps/yaml/ESP32S2_THING_PLUS.yml +11 -1
  116. data/vendor/board-maps/yaml/ESP32S2_USB.yml +11 -1
  117. data/vendor/board-maps/yaml/ESP32_DEV.yml +10 -1
  118. data/vendor/board-maps/yaml/ESP32_DEVKIT_LIPO.yml +10 -1
  119. data/vendor/board-maps/yaml/ESP32_IOT_REDBOARD.yml +10 -1
  120. data/vendor/board-maps/yaml/ESP32_PICO.yml +10 -1
  121. data/vendor/board-maps/yaml/ESP32_S3_BOX.yml +4 -1
  122. data/vendor/board-maps/yaml/ESP32_THING.yml +10 -1
  123. data/vendor/board-maps/yaml/ESP32_THING_PLUS.yml +4 -1
  124. data/vendor/board-maps/yaml/ESP32_THING_PLUS_C.yml +4 -1
  125. data/vendor/board-maps/yaml/ESP32_WROOM_DA.yml +10 -1
  126. data/vendor/board-maps/yaml/ESP32_WROVER_KIT.yml +10 -1
  127. data/vendor/board-maps/yaml/ESPECTRO32.yml +10 -1
  128. data/vendor/board-maps/yaml/ESPea32.yml +10 -1
  129. data/vendor/board-maps/yaml/ESPino32.yml +10 -1
  130. data/vendor/board-maps/yaml/FEATHERS2.yml +11 -1
  131. data/vendor/board-maps/yaml/FEATHERS2NEO.yml +2 -1
  132. data/vendor/board-maps/yaml/FEATHERS3.yml +3 -0
  133. data/vendor/board-maps/yaml/FEATHER_ESP32.yml +5 -1
  134. data/vendor/board-maps/yaml/FRANZININHO_WIFI.yml +11 -1
  135. data/vendor/board-maps/yaml/FRANZININHO_WIFI_MSC.yml +11 -1
  136. data/vendor/board-maps/yaml/FROG_ESP32.yml +10 -1
  137. data/vendor/board-maps/yaml/HEALTHYPI_4.yml +10 -1
  138. data/vendor/board-maps/yaml/HONEYLEMON.yml +10 -1
  139. data/vendor/board-maps/yaml/HORNBILL_ESP32_DEV.yml +10 -1
  140. data/vendor/board-maps/yaml/HORNBILL_ESP32_MINIMA.yml +4 -1
  141. data/vendor/board-maps/yaml/IMBRIOS_LOGSENS_V1P1.yml +5 -1
  142. data/vendor/board-maps/yaml/LILYGO_T_DISPLAY_S3.yml +7 -1
  143. data/vendor/board-maps/yaml/LOLIN32.yml +10 -1
  144. data/vendor/board-maps/yaml/LOLIN32_LITE.yml +10 -1
  145. data/vendor/board-maps/yaml/LOLIN_D32.yml +10 -1
  146. data/vendor/board-maps/yaml/LOLIN_D32_PRO.yml +10 -1
  147. data/vendor/board-maps/yaml/LOLIN_S2_MINI.yml +11 -1
  148. data/vendor/board-maps/yaml/LOLIN_S2_PICO.yml +11 -1
  149. data/vendor/board-maps/yaml/LOLIN_S3.yml +9 -1
  150. data/vendor/board-maps/yaml/LOLIN_S3_MINI.yml +9 -1
  151. data/vendor/board-maps/yaml/LOLIN_S3_PRO.yml +9 -1
  152. data/vendor/board-maps/yaml/LoPy.yml +11 -1
  153. data/vendor/board-maps/yaml/LoPy4.yml +11 -1
  154. data/vendor/board-maps/yaml/MAGTAG29_ESP32S2.yml +11 -1
  155. data/vendor/board-maps/yaml/METRO_ESP32S2.yml +11 -1
  156. data/vendor/board-maps/yaml/MGBOT_IOTIK32A.yml +10 -1
  157. data/vendor/board-maps/yaml/MGBOT_IOTIK32B.yml +10 -1
  158. data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32DEVKIT.yml +10 -1
  159. data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32MINIKIT.yml +10 -1
  160. data/vendor/board-maps/yaml/MICROS2.yml +11 -1
  161. data/vendor/board-maps/yaml/MINIMA.yml +15 -0
  162. data/vendor/board-maps/yaml/NANO32.yml +10 -1
  163. data/vendor/board-maps/yaml/Node32s.yml +10 -1
  164. data/vendor/board-maps/yaml/NodeMCU_32S.yml +10 -1
  165. data/vendor/board-maps/yaml/ONEHORSE_ESP32_DEV.yml +11 -1
  166. data/vendor/board-maps/yaml/PIMORONI_PLASMA2040.yml +29 -0
  167. data/vendor/board-maps/yaml/PORTENTA_C33.yml +28 -0
  168. data/vendor/board-maps/yaml/PROS3.yml +6 -1
  169. data/vendor/board-maps/yaml/PYCOM_GPY.yml +11 -1
  170. data/vendor/board-maps/yaml/Piranha.yml +7 -1
  171. data/vendor/board-maps/yaml/Pocket32.yml +10 -1
  172. data/vendor/board-maps/yaml/QUANTUM.yml +10 -1
  173. data/vendor/board-maps/yaml/REDPILL_ESP32S3.yml +11 -1
  174. data/vendor/board-maps/yaml/RMP.yml +11 -1
  175. data/vendor/board-maps/yaml/SAMD_CIRCUITPLAYGROUND_EXPRESS.yml +0 -1
  176. data/vendor/board-maps/yaml/SAM_DUE.yml +3 -1
  177. data/vendor/board-maps/yaml/SONOFF_DUALR3.yml +10 -1
  178. data/vendor/board-maps/yaml/TAMC_TERMOD_S3.yml +11 -1
  179. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1262.yml +6 -1
  180. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1268.yml +6 -1
  181. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1276.yml +6 -1
  182. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1278.yml +6 -1
  183. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1280.yml +6 -1
  184. data/vendor/board-maps/yaml/TBeam.yml +6 -1
  185. data/vendor/board-maps/yaml/TINYPICO.yml +10 -1
  186. data/vendor/board-maps/yaml/TINYS2.yml +11 -1
  187. data/vendor/board-maps/yaml/TTGO_LoRa32_V1.yml +11 -1
  188. data/vendor/board-maps/yaml/TTGO_LoRa32_V2.yml +11 -1
  189. data/vendor/board-maps/yaml/TTGO_LoRa32_v21new.yml +11 -1
  190. data/vendor/board-maps/yaml/TTGO_T1.yml +10 -1
  191. data/vendor/board-maps/yaml/TTGO_T7_V13_Mini32.yml +10 -1
  192. data/vendor/board-maps/yaml/TTGO_T7_V14_Mini32.yml +10 -1
  193. data/vendor/board-maps/yaml/TWATCH_2020_V1.yml +0 -1
  194. data/vendor/board-maps/yaml/TWATCH_2020_V2.yml +0 -1
  195. data/vendor/board-maps/yaml/TWATCH_2020_V3.yml +0 -1
  196. data/vendor/board-maps/yaml/TWATCH_BASE.yml +0 -1
  197. data/vendor/board-maps/yaml/TWatch.yml +0 -1
  198. data/vendor/board-maps/yaml/UBLOX_NINA_W10.yml +10 -1
  199. data/vendor/board-maps/yaml/UNOWIFIR4.yml +17 -0
  200. data/vendor/board-maps/yaml/WIPY3.yml +11 -1
  201. data/vendor/board-maps/yaml/XIAO_ESP32S3.yml +2 -1
  202. data/vendor/board-maps/yaml/connaxio_espoir.yml +7 -1
  203. data/vendor/board-maps/yaml/esp32vn_iot_uno.yml +10 -1
  204. data/vendor/board-maps/yaml/heltec_wifi_32_lora_V3.yml +11 -1
  205. data/vendor/board-maps/yaml/heltec_wifi_kit_32.yml +11 -1
  206. data/vendor/board-maps/yaml/heltec_wifi_kit_32_V3.yml +11 -1
  207. data/vendor/board-maps/yaml/heltec_wifi_lora_32.yml +10 -1
  208. data/vendor/board-maps/yaml/heltec_wifi_lora_32_V2.yml +10 -1
  209. data/vendor/board-maps/yaml/heltec_wireless_stick.yml +10 -1
  210. data/vendor/board-maps/yaml/heltec_wireless_stick_LITE.yml +10 -1
  211. data/vendor/board-maps/yaml/openkb.yml +11 -1
  212. data/vendor/board-maps/yaml/roboheart_hercules.yml +10 -1
  213. data/vendor/board-maps/yaml/sensesiot_weizen.yml +10 -1
  214. data/vendor/board-maps/yaml/uPesy_WROOM.yml +10 -1
  215. data/vendor/board-maps/yaml/uPesy_WROVER.yml +10 -1
  216. data/vendor/board-maps/yaml/unphone8.yml +11 -1
  217. data/vendor/board-maps/yaml/unphone9.yml +11 -1
  218. metadata +15 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d685b8963656392d25464b4728bf3ee2191409ac06001418cdddbd465536983d
4
- data.tar.gz: 19103a6a62a0399f27ca9d525c86c516448e853868d548afc3d6b21ba89e7cd3
3
+ metadata.gz: c1cefcc0106edf784dea04c7217bf8475887402da89aacf0c9b578185ee4c152
4
+ data.tar.gz: '08b1bcaac7973a3eb5b2fbbae7b7227cfbdec9250dffe9d41a95a1fe0a90565b'
5
5
  SHA512:
6
- metadata.gz: 61acf4aabaad137625f3ab32341a991f84b69321fc68db253026beae952e5d2bc69b8afa0126a407810860b69fec0ddbfca755171d02cf5b38a1b224d4c20c99
7
- data.tar.gz: f4f63fa0146b463483c95b4474a97dba6c07b77081dd6576bd7efc1d098431a8967e7b5051aaef0fca9cb4dba484e1c7c3cdb0e29b272158b7dfcfa1f93b8f6a
6
+ metadata.gz: a0344465f58fe0e23fb579d7e903a93ecaf49a923270991c471caf674a34bf5fece80e56598878a2e690966461d2f08db15b49eccd58c09de7d2140803f2f77e
7
+ data.tar.gz: 7395727636ea674940fd84a7fdf55b61a32dde2329cf2f561aea7e73ea177098e8346ea7fd2a5ea0b4d6f035a0b88d2e4386ba33a3356966b9afe4322a53912c
@@ -33,9 +33,8 @@ jobs:
33
33
  - name: arduino:avr
34
34
  libraries: |
35
35
  - name: Servo
36
- - name: LiquidCrystal
37
36
  - name: IRremote
38
- version: 4.0.0
37
+ version: 4.1.2
39
38
  - name: Ethernet
40
39
  - name: WiFi
41
40
  - name: Adafruit NeoPixel
@@ -51,11 +50,10 @@ jobs:
51
50
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
52
51
 
53
52
  - name: Compile Arduino Sketches
54
- uses: arduino/compile-sketches@v1.0.1
53
+ uses: arduino/compile-sketches@v1.1.0
55
54
  with:
56
55
  platforms: ${{ matrix.board.platforms }}
57
56
  fqbn: ${{ matrix.board.fqbn }}
58
57
  libraries: ${{ matrix.board.libraries }}
59
58
  sketch-paths: |
60
59
  - ${{ steps.generate.outputs.path }}
61
-
@@ -33,7 +33,7 @@ jobs:
33
33
  source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
34
34
  libraries: |
35
35
  - name: IRremoteESP8266
36
- version: 2.8.4
36
+ version: 2.8.5
37
37
  - name: ESP32Servo
38
38
  - name: Adafruit NeoPixel
39
39
 
@@ -48,11 +48,10 @@ jobs:
48
48
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
49
49
 
50
50
  - name: Compile Arduino Sketches
51
- uses: arduino/compile-sketches@v1.0.1
51
+ uses: arduino/compile-sketches@v1.1.0
52
52
  with:
53
53
  platforms: ${{ matrix.board.platforms }}
54
54
  fqbn: ${{ matrix.board.fqbn }}
55
55
  libraries: ${{ matrix.board.libraries }}
56
56
  sketch-paths: |
57
57
  - ${{ steps.generate.outputs.path }}
58
-
@@ -33,7 +33,7 @@ jobs:
33
33
  source-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
34
34
  libraries: |
35
35
  - name: IRremoteESP8266
36
- version: 2.8.4
36
+ version: 2.8.5
37
37
  - name: Adafruit NeoPixel
38
38
 
39
39
  steps:
@@ -47,11 +47,10 @@ jobs:
47
47
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
48
48
 
49
49
  - name: Compile Arduino Sketches
50
- uses: arduino/compile-sketches@v1.0.1
50
+ uses: arduino/compile-sketches@v1.1.0
51
51
  with:
52
52
  platforms: ${{ matrix.board.platforms }}
53
53
  fqbn: ${{ matrix.board.fqbn }}
54
54
  libraries: ${{ matrix.board.libraries }}
55
55
  sketch-paths: |
56
56
  - ${{ steps.generate.outputs.path }}
57
-
@@ -33,9 +33,8 @@ jobs:
33
33
  - name: arduino:megaavr
34
34
  libraries: |
35
35
  - name: Servo
36
- - name: LiquidCrystal
37
36
  - name: IRremote
38
- version: 4.0.0
37
+ version: 4.1.2
39
38
  - name: Ethernet
40
39
  - name: WiFi
41
40
  - name: Adafruit NeoPixel
@@ -51,11 +50,10 @@ jobs:
51
50
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
52
51
 
53
52
  - name: Compile Arduino Sketches
54
- uses: arduino/compile-sketches@v1.0.1
53
+ uses: arduino/compile-sketches@v1.1.0
55
54
  with:
56
55
  platforms: ${{ matrix.board.platforms }}
57
56
  fqbn: ${{ matrix.board.fqbn }}
58
57
  libraries: ${{ matrix.board.libraries }}
59
58
  sketch-paths: |
60
59
  - ${{ steps.generate.outputs.path }}
61
-
@@ -0,0 +1,57 @@
1
+ name: Build / RA4M1
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ pull_request:
7
+ paths:
8
+ - 'src/**'
9
+ - '.github/workflows/build_ra4m1.yml'
10
+
11
+ push:
12
+ paths:
13
+ - 'src/**'
14
+ - '.github/workflows/build_ra4m1.yml'
15
+
16
+ jobs:
17
+ samd-zero:
18
+ name: samd ${{ matrix.sketches.name }}
19
+
20
+ runs-on: ubuntu-latest
21
+
22
+ strategy:
23
+ matrix:
24
+ sketches:
25
+ - name: serial
26
+ - name: ethernet
27
+ - name: wifi
28
+
29
+ board:
30
+ - fqbn: arduino:renesas_uno:minima
31
+ denko-target: ra4m1
32
+ platforms: |
33
+ - name: arduino:renesas_uno
34
+ libraries: |
35
+ - name: Servo
36
+ - name: Ethernet
37
+ - name: WiFi
38
+ - name: Adafruit NeoPixel
39
+
40
+ steps:
41
+ - name: Checkout
42
+ uses: actions/checkout@v3
43
+ with:
44
+ submodules: true
45
+
46
+ - name: Generate
47
+ id: generate
48
+ run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
49
+
50
+ - name: Compile Arduino Sketches
51
+ uses: arduino/compile-sketches@v1.1.0
52
+ with:
53
+ platforms: ${{ matrix.board.platforms }}
54
+ fqbn: ${{ matrix.board.fqbn }}
55
+ libraries: ${{ matrix.board.libraries }}
56
+ sketch-paths: |
57
+ - ${{ steps.generate.outputs.path }}
@@ -34,9 +34,8 @@ 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: LiquidCrystal
38
37
  - name: IRremote
39
- version: 4.0.0
38
+ version: 4.1.2
40
39
  - name: Ethernet
41
40
  - name: WiFi
42
41
 
@@ -51,11 +50,10 @@ jobs:
51
50
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
52
51
 
53
52
  - name: Compile Arduino Sketches
54
- uses: arduino/compile-sketches@v1.0.1
53
+ uses: arduino/compile-sketches@v1.1.0
55
54
  with:
56
55
  platforms: ${{ matrix.board.platforms }}
57
56
  fqbn: ${{ matrix.board.fqbn }}
58
57
  libraries: ${{ matrix.board.libraries }}
59
58
  sketch-paths: |
60
59
  - ${{ steps.generate.outputs.path }}
61
-
@@ -33,7 +33,6 @@ jobs:
33
33
  - name: arduino:sam
34
34
  libraries: |
35
35
  - name: Servo
36
- - name: LiquidCrystal
37
36
  - name: Ethernet
38
37
  - name: WiFi
39
38
  - name: Adafruit NeoPixel
@@ -49,11 +48,10 @@ jobs:
49
48
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
50
49
 
51
50
  - name: Compile Arduino Sketches
52
- uses: arduino/compile-sketches@v1.0.1
51
+ uses: arduino/compile-sketches@v1.1.0
53
52
  with:
54
53
  platforms: ${{ matrix.board.platforms }}
55
54
  fqbn: ${{ matrix.board.fqbn }}
56
55
  libraries: ${{ matrix.board.libraries }}
57
56
  sketch-paths: |
58
57
  - ${{ steps.generate.outputs.path }}
59
-
@@ -33,9 +33,8 @@ jobs:
33
33
  - name: arduino:samd
34
34
  libraries: |
35
35
  - name: Servo
36
- - name: LiquidCrystal
37
36
  - name: IRremote
38
- version: 4.0.0
37
+ version: 4.1.2
39
38
  - name: Ethernet
40
39
  - name: WiFi
41
40
  - name: Adafruit NeoPixel
@@ -51,11 +50,10 @@ jobs:
51
50
  run: echo "path=$(./bin/denko sketch ${{ matrix.sketches.name }} --target ${{ matrix.board.denko-target }})" >> $GITHUB_OUTPUT
52
51
 
53
52
  - name: Compile Arduino Sketches
54
- uses: arduino/compile-sketches@v1.0.1
53
+ uses: arduino/compile-sketches@v1.1.0
55
54
  with:
56
55
  platforms: ${{ matrix.board.platforms }}
57
56
  fqbn: ${{ matrix.board.fqbn }}
58
57
  libraries: ${{ matrix.board.libraries }}
59
58
  sketch-paths: |
60
59
  - ${{ steps.generate.outputs.path }}
61
-
data/CHANGELOG.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.2
4
+
5
+ ### New Boards
6
+
7
+ - Arduino UNO R4 Minima & Wi-Fi (`--target ra4m1`):
8
+ - Mostly working
9
+ - IR-remote and WS2812 libraries do not support this chip. Disabled temporarily.
10
+ - Hardware serial disabled until further testing.
11
+ - Wi-Fi still untested.
12
+
13
+ ### New Components
14
+
15
+ - ADS1115 Analog-to-Digital Converter:
16
+ - Class: `Denko::AnalogIO::ADS1115`.
17
+ - Connects via I2C bus. Driver written in Ruby.
18
+ - Can be used directly by calling `ADS1115#read` with the 2 config register bytes.
19
+ - `#read` automatically waits for conversion before reading result.
20
+ - Implements `BoardProxy` interface, so `AnalogIO::Input` can use it in place of `Board`.
21
+ - For each `AnalogIO::Input` subcomponent:
22
+ - Negative pin (1 or 3) of differential pair can be set with the keyword argument `negative_pin:`
23
+ - Gain can be set with the keyword argument `gain:`
24
+ - Sample rate can be set with the keyword argument `sample_rate:`
25
+ - Sample rate doesn't affect update rate. Higher sample rates oversample for a single reading, increasing resolution.
26
+ - `ADS1115` sets `@volts_per_bit` in the subcomponent, so exact voltages can be calculated.
27
+ - There is no listening interface for subcomponents.
28
+ - Built in comparator not implemented.
29
+ - Basically an I2C version of ADS1118 with the temperature sensor swapped for comparator.
30
+
31
+ ### Optimizations
32
+
33
+ - Boards now declare their serial RX buffer size and maximum I2C transaction size in handshake. This makes it possible to send data as fast as possible without data loss.
34
+ - Added `benchmarks` folder and a simple SSD1306 screen redrawing benchmark, with results for many chips.
35
+ - Changed many instance methods to use keyword args instead of options hash pattern. Better performance everywhere, but will matter most in mruby.
36
+ - Many small performance improvemnts taken from mruby implementation to keep code as similar as possible across both.
37
+
38
+ ### Minor Changes
39
+
40
+ - Improved detection of default serial interface and EEPROM availability at the sketch level.
41
+ - Pins defined as any of `:SDA0, :SCL0, :MISO0, :MOSI0, :SCK0, :SS0` in a loaded board map are automatically copied to the key without the trailing 0, i.e. `:SDA` and so forth. This is convenient for chips like the RP2040 which don't define the "non-zero" pins at all.
42
+ - Simplified handling of Wi-Fi reconnection in that sketch.
43
+ - Wi-Fi sketch now prints its connection details to serial on each reconnect, as well as startup.
44
+ - Updated both IR libraries to latest version.
45
+
46
+ ### Bug Fixes
47
+
48
+ - Display::HD44780 was trying to write 1 and 0 as String instead of Integer to digital output pins.
49
+ - Wi-Fi and Ethernet sketches could get stuck in an endless loop when switching between a TCP client and the Serial interface fallback.
50
+ - SAMD21 could hang on I2C when writing lots of data. This has to do with its serial buffer not being saturated somehow? Fixed though.
51
+ - Board#set_register_divider wouldn't raise the correct ArgumentError if the divider given was out of range.
52
+ - Updated the arduino-yaml-board-maps project to prevent ESP32 chips from wrongly map many of their ADC pins.
53
+ - ESP32 variants, other than the original V1, could try to assign more LEDC (PWM) channels than they actually have.
54
+
55
+ ### Removed
56
+
57
+ - Removed the `:pad` option from Message::pack. Nothing was using it and padding bytes should be handled in the component class anyway.
58
+
59
+ ## 0.13.1
60
+
61
+ Fixes critical 1-Wire bugs introduced when namespace was reorganized for 0.13.0.
62
+
3
63
  ## 0.13.0
4
64
 
5
65
  ### New Features
data/DEPS_CLI.md CHANGED
@@ -14,13 +14,14 @@ arduino-cli core update-index
14
14
  arduino-cli core install arduino:megaavr
15
15
  arduino-cli core install arduino:sam
16
16
  arduino-cli core install arduino:samd
17
+ arduino-cli core install arduino:renesas_uno
17
18
  arduino-cli core install esp8266:esp8266
18
19
  arduino-cli core install esp32:esp32
19
20
  arduino-cli core install rp2040:rp2040
20
21
  arduino-cli lib install Servo
21
22
  arduino-cli lib install Ethernet
22
23
  arduino-cli lib install WiFi
23
- arduino-cli lib install IRremote@4.0.0
24
+ arduino-cli lib install IRremote@4.1.2
24
25
  arduino-cli lib install IRremoteESP8266@2.8.4
25
26
  arduino-cli lib install ESP32Servo
26
27
  arduino-cli lib install "Adafruit NeoPixel"
@@ -33,7 +34,7 @@ arduino-cli core install arduino:megaavr
33
34
  arduino-cli lib install Servo
34
35
  arduino-cli lib install Ethernet
35
36
  arduino-cli lib install WiFi
36
- arduino-cli lib install IRremote@4.0.0
37
+ arduino-cli lib install IRremote@4.1.2
37
38
  arduino-cli lib install "Adafruit NeoPixel"
38
39
  ````
39
40
 
@@ -42,10 +43,11 @@ arduino-cli lib install "Adafruit NeoPixel"
42
43
  arduino-cli core update-index
43
44
  arduino-cli core install arduino:sam
44
45
  arduino-cli core install arduino:samd
46
+ arduino-cli core install arduino:renesas_uno
45
47
  arduino-cli lib install Servo
46
48
  arduino-cli lib install Ethernet
47
49
  arduino-cli lib install WiFi
48
- arduino-cli lib install IRremote@4.0.0
50
+ arduino-cli lib install IRremote@4.1.2
49
51
  arduino-cli lib install "Adafruit NeoPixel"
50
52
  ````
51
53
 
@@ -55,7 +57,7 @@ arduino-cli config init
55
57
  arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
56
58
  arduino-cli core update-index
57
59
  arduino-cli core install esp8266:esp8266
58
- arduino-cli lib install IRremoteESP8266@2.8.4
60
+ arduino-cli lib install IRremoteESP8266@2.8.5
59
61
  arduino-cli lib install "Adafruit NeoPixel"
60
62
  ````
61
63
 
@@ -66,7 +68,7 @@ arduino-cli config add board_manager.additional_urls https://raw.githubuserconte
66
68
  arduino-cli core update-index
67
69
  arduino-cli core install esp32:esp32
68
70
  arduino-cli lib install ESP32Servo
69
- arduino-cli lib install IRremoteESP8266@2.8.4
71
+ arduino-cli lib install IRremoteESP8266@2.8.5
70
72
  arduino-cli lib install "Adafruit NeoPixel"
71
73
  ````
72
74
 
@@ -76,5 +78,5 @@ arduino-cli config init
76
78
  arduino-cli config add board_manager.additional_urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
77
79
  arduino-cli core update-index
78
80
  arduino-cli core install rp2040:rp2040
79
- arduino-cli lib install IRremote@4.0.0
81
+ arduino-cli lib install IRremote@4.1.2
80
82
  ````
data/DEPS_IDE.md CHANGED
@@ -31,6 +31,7 @@ All platforms will require libraries to be installed. To install a library do th
31
31
  Arduino megaAVR Boards
32
32
  Arduino SAM Boards (32-bits ARM Cortex-M3)
33
33
  Arduino SAMD Boards (32-bits ARM Cortex-M0+)
34
+ Arduino UNO R4 Boards
34
35
  ESP8266 Boards
35
36
  ESP32 Boards
36
37
  ````
@@ -39,8 +40,8 @@ All platforms will require libraries to be installed. To install a library do th
39
40
  Servo by Michael Margolis, Arduino
40
41
  Ethernet by Various
41
42
  WiFi by Arduino
42
- IRremote @ v4.0.0 by shirriff, z3to, ArminJo
43
- IRremoteESP82666 @ v2.8.4 by David Conran, Sebastien Warin
43
+ IRremote @ v4.1.2 by shirriff, z3to, ArminJo
44
+ IRremoteESP82666 @ v2.8.5 by David Conran, Sebastien Warin
44
45
  ESP32Servo by Kevin Harrington, John K. Bennett
45
46
  Adafruit NeoPixel by Adafruit
46
47
  ````
@@ -55,7 +56,7 @@ All platforms will require libraries to be installed. To install a library do th
55
56
  Servo by Michael Margolis, Arduino
56
57
  Ethernet by Various
57
58
  WiFi by Arduino
58
- IRremote @ v4.0.0 by shirriff, z3to, ArminJo
59
+ IRremote @ v4.1.2 by shirriff, z3to, ArminJo
59
60
  Adafruit NeoPixel by Adafruit
60
61
  ````
61
62
 
@@ -64,13 +65,14 @@ All platforms will require libraries to be installed. To install a library do th
64
65
  ````
65
66
  Arduino SAM Boards (32-bits ARM Cortex-M3)
66
67
  Arduino SAMD Boards (32-bits ARM Cortex-M0+)
68
+ Arduino UNO R4 Boards
67
69
  ````
68
70
  * Libraries:
69
71
  ````
70
72
  Servo by Michael Margolis, Arduino
71
73
  Ethernet by Various
72
74
  WiFi by Arduino
73
- IRremote @ v4.0.0 by shirriff, z3to, ArminJo
75
+ IRremote @ v4.1.2 by shirriff, z3to, ArminJo
74
76
  Adafruit NeoPixel by Adafruit
75
77
  ````
76
78
 
@@ -85,7 +87,7 @@ All platforms will require libraries to be installed. To install a library do th
85
87
  ````
86
88
  * Libraries:
87
89
  ````
88
- IRremoteESP82666 @ v2.8.4 by David Conran, Sebastien Warin
90
+ IRremoteESP82666 @ v2.8.5 by David Conran, Sebastien Warin
89
91
  Adafruit NeoPixel by Adafruit
90
92
  ````
91
93
 
@@ -100,7 +102,7 @@ All platforms will require libraries to be installed. To install a library do th
100
102
  ````
101
103
  * Libraries (latest version unless specified):
102
104
  ````
103
- IRremoteESP82666 @ v2.8.4 by David Conran, Sebastien Warin
105
+ IRremoteESP82666 @ v2.8.5 by David Conran, Sebastien Warin
104
106
  ESP32Servo by Kevin Harrington, John K. Bennett
105
107
  Adafruit NeoPixel by Adafruit
106
108
  ````
@@ -116,5 +118,5 @@ All platforms will require libraries to be installed. To install a library do th
116
118
  ````
117
119
  * Libraries:
118
120
  ````
119
- IRremote @ v4.0.0 by shirriff, z3to, ArminJo
121
+ IRremote @ v4.1.2 by shirriff, z3to, ArminJo
120
122
  ````