denko 0.13.2 → 0.13.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (422) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_megaavr.yml +1 -1
  3. data/CHANGELOG.md +40 -0
  4. data/DEPS_CLI.md +5 -0
  5. data/DEPS_IDE.md +5 -0
  6. data/HARDWARE.md +20 -12
  7. data/README.md +1 -1
  8. data/benchmarks/i2c_ssd1306_refresh.rb +7 -2
  9. data/examples/pulse_io/buzzer.rb +0 -40
  10. data/lib/denko/board/led_array.rb +3 -6
  11. data/lib/denko/message.rb +1 -1
  12. data/lib/denko/version.rb +1 -1
  13. data/src/denko_wifi.ino +38 -3
  14. data/src/lib/Denko.cpp +0 -9
  15. data/src/lib/Denko.h +1 -2
  16. data/src/lib/DenkoDefines.h +14 -6
  17. data/src/lib/DenkoLEDArray.cpp +4 -10
  18. data/target.yml +1 -35
  19. data/test/analog_io/input_test.rb +3 -3
  20. data/test/analog_io/output_test.rb +1 -1
  21. data/test/analog_io/potentiometer_test.rb +2 -2
  22. data/test/behaviors/bus_peripheral_addressed.rb +1 -1
  23. data/test/behaviors/bus_peripheral_test.rb +1 -1
  24. data/test/behaviors/callbacks_test.rb +4 -4
  25. data/test/behaviors/component_test.rb +2 -2
  26. data/test/behaviors/listener_test.rb +3 -3
  27. data/test/behaviors/poller_test.rb +3 -3
  28. data/test/behaviors/reader_test.rb +4 -4
  29. data/test/behaviors/subcomponents_test.rb +1 -1
  30. data/test/behaviors/threaded_test.rb +7 -7
  31. data/test/board/board_test.rb +8 -8
  32. data/test/board/core_test.rb +12 -12
  33. data/test/board/eeprom_test.rb +2 -2
  34. data/test/board/i2c_test.rb +5 -5
  35. data/test/board/infrared_test.rb +1 -1
  36. data/test/board/message_test.rb +1 -1
  37. data/test/board/one_wire_test.rb +4 -4
  38. data/test/board/pulse_test.rb +2 -2
  39. data/test/board/servo_test.rb +3 -3
  40. data/test/board/spi_test.rb +3 -3
  41. data/test/board/tone_test.rb +2 -2
  42. data/test/connection/serial_test.rb +13 -13
  43. data/test/digital_io/input_test.rb +7 -7
  44. data/test/digital_io/output_test.rb +5 -5
  45. data/test/digital_io/rotary_encoder_test.rb +4 -4
  46. data/test/display/hd44780_test.rb +1 -1
  47. data/test/eeprom/built_in_test.rb +1 -1
  48. data/test/i2c/bus_test.rb +5 -5
  49. data/test/i2c/peripheral_test.rb +4 -4
  50. data/test/led/base_test.rb +2 -2
  51. data/test/led/rgb_test.rb +6 -6
  52. data/test/led/seven_segment_test.rb +8 -8
  53. data/test/motor/servo_test.rb +6 -6
  54. data/test/motor/stepper_test.rb +5 -5
  55. data/test/one_wire/bus_test.rb +9 -9
  56. data/test/one_wire/peripheral_test.rb +17 -17
  57. data/test/pulse_io/buzzer_test.rb +4 -4
  58. data/test/pulse_io/ir_transmitter_test.rb +2 -2
  59. data/test/pulse_io/pwm_output_test.rb +4 -4
  60. data/test/rtc/ds3231_test.rb +4 -4
  61. data/test/sensor/dht_test.rb +3 -3
  62. data/test/sensor/ds18b20_test.rb +9 -9
  63. data/test/spi/bus_test.rb +4 -4
  64. data/test/spi/input_register_test.rb +8 -8
  65. data/test/spi/output_register_test.rb +4 -4
  66. data/test/uart/bitbang_test.rb +3 -3
  67. metadata +2 -357
  68. data/vendor/board-maps/.gitignore +0 -56
  69. data/vendor/board-maps/.gitmodules +0 -24
  70. data/vendor/board-maps/BoardMap.h +0 -1392
  71. data/vendor/board-maps/README.md +0 -52
  72. data/vendor/board-maps/lib/boards_parser.rb +0 -66
  73. data/vendor/board-maps/lib/header_parser.rb +0 -189
  74. data/vendor/board-maps/run.rb +0 -57
  75. data/vendor/board-maps/yaml/0XCB_HELIOS.yml +0 -48
  76. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2.yml +0 -25
  77. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_REVTFT.yml +0 -25
  78. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_TFT.yml +0 -27
  79. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3.yml +0 -34
  80. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_NOPSRAM.yml +0 -34
  81. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_REVTFT.yml +0 -25
  82. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_TFT.yml +0 -27
  83. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32_V2.yml +0 -34
  84. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040.yml +0 -48
  85. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_CAN.yml +0 -48
  86. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_DVI.yml +0 -48
  87. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_PROP_MAKER.yml +0 -48
  88. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_RFM.yml +0 -48
  89. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_SCORPIO.yml +0 -48
  90. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_THINKINK.yml +0 -48
  91. data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_USB_HOST.yml +0 -48
  92. data/vendor/board-maps/yaml/ADAFRUIT_ITSYBITSY_ESP32.yml +0 -24
  93. data/vendor/board-maps/yaml/ADAFRUIT_ITSYBITSY_RP2040.yml +0 -48
  94. data/vendor/board-maps/yaml/ADAFRUIT_KB2040_RP2040.yml +0 -48
  95. data/vendor/board-maps/yaml/ADAFRUIT_MACROPAD_RP2040.yml +0 -48
  96. data/vendor/board-maps/yaml/ADAFRUIT_MATRIXPORTAL_ESP32S3.yml +0 -16
  97. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32C3.yml +0 -12
  98. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S2.yml +0 -22
  99. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_N4R2.yml +0 -20
  100. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_NOPSRAM.yml +0 -20
  101. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32_PICO.yml +0 -28
  102. data/vendor/board-maps/yaml/ADAFRUIT_QTPY_RP2040.yml +0 -48
  103. data/vendor/board-maps/yaml/ADAFRUIT_STEMMAFRIEND_RP2040.yml +0 -48
  104. data/vendor/board-maps/yaml/ADAFRUIT_TRINKEYQT_RP2040.yml +0 -48
  105. data/vendor/board-maps/yaml/ALKS.yml +0 -34
  106. data/vendor/board-maps/yaml/AMPERKA_WIFI_SLOT.yml +0 -16
  107. data/vendor/board-maps/yaml/ARTRONSHOP_RP2_NANO.yml +0 -32
  108. data/vendor/board-maps/yaml/AVR_ADK.yml +0 -24
  109. data/vendor/board-maps/yaml/AVR_BT.yml +0 -16
  110. data/vendor/board-maps/yaml/AVR_CIRCUITPLAY.yml +0 -14
  111. data/vendor/board-maps/yaml/AVR_DUEMILANOVE.yml +0 -16
  112. data/vendor/board-maps/yaml/AVR_ESPLORA.yml +0 -20
  113. data/vendor/board-maps/yaml/AVR_ETHERNET.yml +0 -16
  114. data/vendor/board-maps/yaml/AVR_FIO.yml +0 -16
  115. data/vendor/board-maps/yaml/AVR_GEMMA.yml +0 -6
  116. data/vendor/board-maps/yaml/AVR_INDUSTRIAL101.yml +0 -20
  117. data/vendor/board-maps/yaml/AVR_LEONARDO.yml +0 -20
  118. data/vendor/board-maps/yaml/AVR_LEONARDO_ETH.yml +0 -20
  119. data/vendor/board-maps/yaml/AVR_LILYPAD.yml +0 -16
  120. data/vendor/board-maps/yaml/AVR_LILYPAD_USB.yml +0 -20
  121. data/vendor/board-maps/yaml/AVR_LININO_ONE.yml +0 -20
  122. data/vendor/board-maps/yaml/AVR_MEGA.yml +0 -24
  123. data/vendor/board-maps/yaml/AVR_MEGA2560.yml +0 -24
  124. data/vendor/board-maps/yaml/AVR_MICRO.yml +0 -20
  125. data/vendor/board-maps/yaml/AVR_MINI.yml +0 -16
  126. data/vendor/board-maps/yaml/AVR_NANO.yml +0 -16
  127. data/vendor/board-maps/yaml/AVR_NANO_EVERY.yml +0 -22
  128. data/vendor/board-maps/yaml/AVR_NG.yml +0 -16
  129. data/vendor/board-maps/yaml/AVR_PRO.yml +0 -16
  130. data/vendor/board-maps/yaml/AVR_ROBOT_CONTROL.yml +0 -22
  131. data/vendor/board-maps/yaml/AVR_ROBOT_MOTOR.yml +0 -19
  132. data/vendor/board-maps/yaml/AVR_UNO.yml +0 -16
  133. data/vendor/board-maps/yaml/AVR_UNO_WIFI_DEV_ED.yml +0 -16
  134. data/vendor/board-maps/yaml/AVR_UNO_WIFI_REV2.yml +0 -22
  135. data/vendor/board-maps/yaml/AVR_YUN.yml +0 -20
  136. data/vendor/board-maps/yaml/AVR_YUNMINI.yml +0 -20
  137. data/vendor/board-maps/yaml/AirM2M_CORE_ESP32C3.yml +0 -14
  138. data/vendor/board-maps/yaml/BEE_DATA_LOGGER.yml +0 -39
  139. data/vendor/board-maps/yaml/BPI_BIT.yml +0 -9
  140. data/vendor/board-maps/yaml/BPI_LEAF_S3.yml +0 -41
  141. data/vendor/board-maps/yaml/BRIDGETEK_IDM2040-7A.yml +0 -48
  142. data/vendor/board-maps/yaml/BeeMotionS3.yml +0 -45
  143. data/vendor/board-maps/yaml/Bee_Motion.yml +0 -30
  144. data/vendor/board-maps/yaml/Bee_Motion_Mini.yml +0 -1
  145. data/vendor/board-maps/yaml/Bee_S3.yml +0 -38
  146. data/vendor/board-maps/yaml/CHALLENGER_2040_LORA_RP2040.yml +0 -39
  147. data/vendor/board-maps/yaml/CHALLENGER_2040_LTE_RP2040.yml +0 -38
  148. data/vendor/board-maps/yaml/CHALLENGER_2040_NFC_RP2040.yml +0 -32
  149. data/vendor/board-maps/yaml/CHALLENGER_2040_SDRTC_RP2040.yml +0 -36
  150. data/vendor/board-maps/yaml/CHALLENGER_2040_SUBGHZ_RP2040.yml +0 -39
  151. data/vendor/board-maps/yaml/CHALLENGER_2040_UWB_RP2040.yml +0 -39
  152. data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI6_BLE_RP2040.yml +0 -42
  153. data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI_BLE_RP2040.yml +0 -42
  154. data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI_RP2040.yml +0 -38
  155. data/vendor/board-maps/yaml/CHALLENGER_NB_2040_WIFI_RP2040.yml +0 -38
  156. data/vendor/board-maps/yaml/CRABIK_SLOT_ESP32_S3.yml +0 -19
  157. data/vendor/board-maps/yaml/CYTRON_MAKER_FEATHER_AIOT_S3.yml +0 -29
  158. data/vendor/board-maps/yaml/CYTRON_MAKER_NANO_RP2040.yml +0 -48
  159. data/vendor/board-maps/yaml/CYTRON_MAKER_PI_RP2040.yml +0 -48
  160. data/vendor/board-maps/yaml/CoreESP32.yml +0 -53
  161. data/vendor/board-maps/yaml/D1_MINI32.yml +0 -45
  162. data/vendor/board-maps/yaml/D1_UNO32.yml +0 -28
  163. data/vendor/board-maps/yaml/DATANOISETV_PICOADK.yml +0 -48
  164. data/vendor/board-maps/yaml/DENKY.yml +0 -35
  165. data/vendor/board-maps/yaml/DENKY_PICOV3.yml +0 -35
  166. data/vendor/board-maps/yaml/DENKY_WROOM32.yml +0 -35
  167. data/vendor/board-maps/yaml/DEPARTMENT_OF_ALCHEMY_MINIMAIN_ESP32S2.yml +0 -26
  168. data/vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32_C3.yml +0 -14
  169. data/vendor/board-maps/yaml/DFROBOT_BEETLE_RP2040.yml +0 -48
  170. data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32E.yml +0 -49
  171. data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32S3.yml +0 -38
  172. data/vendor/board-maps/yaml/DFROBOT_ROMEO_ESP32S3.yml +0 -7
  173. data/vendor/board-maps/yaml/DPU_ESP32.yml +0 -35
  174. data/vendor/board-maps/yaml/DYDK.yml +0 -38
  175. data/vendor/board-maps/yaml/DYDK1A.yml +0 -37
  176. data/vendor/board-maps/yaml/DYDK1Av2.yml +0 -45
  177. data/vendor/board-maps/yaml/DYG.yml +0 -20
  178. data/vendor/board-maps/yaml/DYM.yml +0 -40
  179. data/vendor/board-maps/yaml/DYMv2.yml +0 -39
  180. data/vendor/board-maps/yaml/D_Duino_32.yml +0 -37
  181. data/vendor/board-maps/yaml/ELECTRONICCATS_HUNTERCAT_NFC.yml +0 -44
  182. data/vendor/board-maps/yaml/ESP320.yml +0 -8
  183. data/vendor/board-maps/yaml/ESP32C3_DEV.yml +0 -14
  184. data/vendor/board-maps/yaml/ESP32C3_M1_I_KIT.yml +0 -13
  185. data/vendor/board-maps/yaml/ESP32S2_DEV.yml +0 -43
  186. data/vendor/board-maps/yaml/ESP32S2_THING_PLUS.yml +0 -44
  187. data/vendor/board-maps/yaml/ESP32S2_USB.yml +0 -43
  188. data/vendor/board-maps/yaml/ESP32S3_CAM_LCD.yml +0 -7
  189. data/vendor/board-maps/yaml/ESP32S3_DEV.yml +0 -38
  190. data/vendor/board-maps/yaml/ESP32_DEV.yml +0 -35
  191. data/vendor/board-maps/yaml/ESP32_DEVKIT_LIPO.yml +0 -35
  192. data/vendor/board-maps/yaml/ESP32_EVB.yml +0 -7
  193. data/vendor/board-maps/yaml/ESP32_GATEWAY.yml +0 -13
  194. data/vendor/board-maps/yaml/ESP32_GATEWAY_C.yml +0 -13
  195. data/vendor/board-maps/yaml/ESP32_GATEWAY_E.yml +0 -13
  196. data/vendor/board-maps/yaml/ESP32_GATEWAY_F.yml +0 -13
  197. data/vendor/board-maps/yaml/ESP32_IOT_REDBOARD.yml +0 -36
  198. data/vendor/board-maps/yaml/ESP32_MICROMOD.yml +0 -24
  199. data/vendor/board-maps/yaml/ESP32_PICO.yml +0 -35
  200. data/vendor/board-maps/yaml/ESP32_POE.yml +0 -7
  201. data/vendor/board-maps/yaml/ESP32_POE_ISO.yml +0 -7
  202. data/vendor/board-maps/yaml/ESP32_S3_BOX.yml +0 -19
  203. data/vendor/board-maps/yaml/ESP32_S3_USB_OTG.yml +0 -11
  204. data/vendor/board-maps/yaml/ESP32_THING.yml +0 -36
  205. data/vendor/board-maps/yaml/ESP32_THING_PLUS.yml +0 -33
  206. data/vendor/board-maps/yaml/ESP32_THING_PLUS_C.yml +0 -33
  207. data/vendor/board-maps/yaml/ESP32_WROOM_DA.yml +0 -35
  208. data/vendor/board-maps/yaml/ESP32_WROVER_KIT.yml +0 -35
  209. data/vendor/board-maps/yaml/ESP8266_ADAFRUIT_HUZZAH.yml +0 -9
  210. data/vendor/board-maps/yaml/ESP8266_AGRUMINO_LEMON_V4.yml +0 -8
  211. data/vendor/board-maps/yaml/ESP8266_ARDUINO_PRIMO.yml +0 -7
  212. data/vendor/board-maps/yaml/ESP8266_ARDUINO_STAR_OTTO.yml +0 -7
  213. data/vendor/board-maps/yaml/ESP8266_ARDUINO_UNOWIFI.yml +0 -9
  214. data/vendor/board-maps/yaml/ESP8266_ESP01.yml +0 -9
  215. data/vendor/board-maps/yaml/ESP8266_ESP07.yml +0 -20
  216. data/vendor/board-maps/yaml/ESP8266_ESP12.yml +0 -20
  217. data/vendor/board-maps/yaml/ESP8266_ESP13.yml +0 -17
  218. data/vendor/board-maps/yaml/ESP8266_ESP210.yml +0 -9
  219. data/vendor/board-maps/yaml/ESP8266_ESPECTRO_CORE.yml +0 -9
  220. data/vendor/board-maps/yaml/ESP8266_ESPINO_ESP12.yml +0 -9
  221. data/vendor/board-maps/yaml/ESP8266_ESPINO_ESP13.yml +0 -9
  222. data/vendor/board-maps/yaml/ESP8266_ESPRESSO_LITE_V1.yml +0 -9
  223. data/vendor/board-maps/yaml/ESP8266_ESPRESSO_LITE_V2.yml +0 -9
  224. data/vendor/board-maps/yaml/ESP8266_GENERIC.yml +0 -9
  225. data/vendor/board-maps/yaml/ESP8266_INVENT_ONE.yml +0 -22
  226. data/vendor/board-maps/yaml/ESP8266_NODEMCU_ESP12.yml +0 -20
  227. data/vendor/board-maps/yaml/ESP8266_NODEMCU_ESP12E.yml +0 -20
  228. data/vendor/board-maps/yaml/ESP8266_OAK.yml +0 -9
  229. data/vendor/board-maps/yaml/ESP8266_PHOENIX_V1.yml +0 -9
  230. data/vendor/board-maps/yaml/ESP8266_PHOENIX_V2.yml +0 -9
  231. data/vendor/board-maps/yaml/ESP8266_SCHIRMILABS_EDUINO_WIFI.yml +0 -25
  232. data/vendor/board-maps/yaml/ESP8266_SONOFF_BASIC.yml +0 -9
  233. data/vendor/board-maps/yaml/ESP8266_SONOFF_S20.yml +0 -9
  234. data/vendor/board-maps/yaml/ESP8266_SONOFF_SV.yml +0 -9
  235. data/vendor/board-maps/yaml/ESP8266_SONOFF_TH.yml +0 -9
  236. data/vendor/board-maps/yaml/ESP8266_THING.yml +0 -9
  237. data/vendor/board-maps/yaml/ESP8266_THING_DEV.yml +0 -9
  238. data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINI.yml +0 -18
  239. data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINILITE.yml +0 -18
  240. data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINIPRO.yml +0 -18
  241. data/vendor/board-maps/yaml/ESP8266_WEMOS_D1R1.yml +0 -25
  242. data/vendor/board-maps/yaml/ESP8266_WEMOS_D1WROOM02.yml +0 -18
  243. data/vendor/board-maps/yaml/ESP8266_WIO_LINK.yml +0 -9
  244. data/vendor/board-maps/yaml/ESP8266_XINABOX_CW01.yml +0 -9
  245. data/vendor/board-maps/yaml/ESPECTRO32.yml +0 -36
  246. data/vendor/board-maps/yaml/ESPea32.yml +0 -36
  247. data/vendor/board-maps/yaml/ESPino32.yml +0 -36
  248. data/vendor/board-maps/yaml/ET-Board.yml +0 -26
  249. data/vendor/board-maps/yaml/EXTREMEELEXTRONICS_RC2040.yml +0 -46
  250. data/vendor/board-maps/yaml/Edgebox-ESP-100.yml +0 -7
  251. data/vendor/board-maps/yaml/FEATHERS2.yml +0 -43
  252. data/vendor/board-maps/yaml/FEATHERS2NEO.yml +0 -31
  253. data/vendor/board-maps/yaml/FEATHERS3.yml +0 -32
  254. data/vendor/board-maps/yaml/FEATHER_ESP32.yml +0 -32
  255. data/vendor/board-maps/yaml/FLYBOARD2040_CORE.yml +0 -48
  256. data/vendor/board-maps/yaml/FRANZININHO_WIFI.yml +0 -43
  257. data/vendor/board-maps/yaml/FRANZININHO_WIFI_MSC.yml +0 -43
  258. data/vendor/board-maps/yaml/FROG_ESP32.yml +0 -35
  259. data/vendor/board-maps/yaml/FUNHOUSE_ESP32S2.yml +0 -22
  260. data/vendor/board-maps/yaml/GEN4_IOD.yml +0 -9
  261. data/vendor/board-maps/yaml/GENERIC_RP2040.yml +0 -48
  262. data/vendor/board-maps/yaml/HEALTHYPI_4.yml +0 -36
  263. data/vendor/board-maps/yaml/HONEYLEMON.yml +0 -36
  264. data/vendor/board-maps/yaml/HORNBILL_ESP32_DEV.yml +0 -36
  265. data/vendor/board-maps/yaml/HORNBILL_ESP32_MINIMA.yml +0 -19
  266. data/vendor/board-maps/yaml/ILABS_2040_RPICO32_RP2040.yml +0 -47
  267. data/vendor/board-maps/yaml/IMBRIOS_LOGSENS_V1P1.yml +0 -23
  268. data/vendor/board-maps/yaml/INTOROBOT_ESP32_DEV.yml +0 -34
  269. data/vendor/board-maps/yaml/LILYGO_T_DISPLAY_S3.yml +0 -32
  270. data/vendor/board-maps/yaml/LOLIN32.yml +0 -36
  271. data/vendor/board-maps/yaml/LOLIN32_LITE.yml +0 -36
  272. data/vendor/board-maps/yaml/LOLIN_C3_MINI.yml +0 -14
  273. data/vendor/board-maps/yaml/LOLIN_D32.yml +0 -36
  274. data/vendor/board-maps/yaml/LOLIN_D32_PRO.yml +0 -36
  275. data/vendor/board-maps/yaml/LOLIN_S2_MINI.yml +0 -44
  276. data/vendor/board-maps/yaml/LOLIN_S2_PICO.yml +0 -44
  277. data/vendor/board-maps/yaml/LOLIN_S3.yml +0 -40
  278. data/vendor/board-maps/yaml/LOLIN_S3_MINI.yml +0 -40
  279. data/vendor/board-maps/yaml/LOLIN_S3_PRO.yml +0 -40
  280. data/vendor/board-maps/yaml/Lion_Bit_Dev_Board.yml +0 -18
  281. data/vendor/board-maps/yaml/LoPy.yml +0 -37
  282. data/vendor/board-maps/yaml/LoPy4.yml +0 -37
  283. data/vendor/board-maps/yaml/M5STACK_CORES3.yml +0 -8
  284. data/vendor/board-maps/yaml/M5STACK_Core2.yml +0 -9
  285. data/vendor/board-maps/yaml/M5STACK_FIRE.yml +0 -10
  286. data/vendor/board-maps/yaml/M5Stack-Timer-CAM.yml +0 -10
  287. data/vendor/board-maps/yaml/M5Stack_ATOM.yml +0 -10
  288. data/vendor/board-maps/yaml/M5Stack_ATOMS3.yml +0 -7
  289. data/vendor/board-maps/yaml/M5Stack_CoreInk.yml +0 -9
  290. data/vendor/board-maps/yaml/M5Stack_Core_ESP32.yml +0 -10
  291. data/vendor/board-maps/yaml/M5Stack_Station.yml +0 -10
  292. data/vendor/board-maps/yaml/M5Stick_C.yml +0 -10
  293. data/vendor/board-maps/yaml/MAGTAG29_ESP32S2.yml +0 -31
  294. data/vendor/board-maps/yaml/MELOPERO_COOKIE_RP2040.yml +0 -48
  295. data/vendor/board-maps/yaml/MELOPERO_SHAKE_RP2040.yml +0 -48
  296. data/vendor/board-maps/yaml/METRO_ESP32S2.yml +0 -44
  297. data/vendor/board-maps/yaml/MGBOT_IOTIK32A.yml +0 -36
  298. data/vendor/board-maps/yaml/MGBOT_IOTIK32B.yml +0 -36
  299. data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32DEVKIT.yml +0 -36
  300. data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32MINIKIT.yml +0 -36
  301. data/vendor/board-maps/yaml/MICROS2.yml +0 -44
  302. data/vendor/board-maps/yaml/MINIMA.yml +0 -15
  303. data/vendor/board-maps/yaml/MOD_WIFI_ESP8266.yml +0 -9
  304. data/vendor/board-maps/yaml/Metro.yml +0 -8
  305. data/vendor/board-maps/yaml/NANO32.yml +0 -36
  306. data/vendor/board-maps/yaml/NANO_RP2040_CONNECT.yml +0 -35
  307. data/vendor/board-maps/yaml/NEBULAS3.yml +0 -33
  308. data/vendor/board-maps/yaml/NEKOSYSTEMS_BL2040_MINI.yml +0 -48
  309. data/vendor/board-maps/yaml/NULLBITS_BIT_C_PRO.yml +0 -48
  310. data/vendor/board-maps/yaml/Node32s.yml +0 -36
  311. data/vendor/board-maps/yaml/NodeMCU_32S.yml +0 -36
  312. data/vendor/board-maps/yaml/ODROID_ESP32.yml +0 -10
  313. data/vendor/board-maps/yaml/ONEHORSE_ESP32_DEV.yml +0 -34
  314. data/vendor/board-maps/yaml/OROCA_EDUBOT.yml +0 -33
  315. data/vendor/board-maps/yaml/PIMORONI_PGA2040.yml +0 -48
  316. data/vendor/board-maps/yaml/PIMORONI_PLASMA2040.yml +0 -29
  317. data/vendor/board-maps/yaml/PORTENTA_C33.yml +0 -28
  318. data/vendor/board-maps/yaml/PROS3.yml +0 -33
  319. data/vendor/board-maps/yaml/PYCOM_GPY.yml +0 -37
  320. data/vendor/board-maps/yaml/Piranha.yml +0 -22
  321. data/vendor/board-maps/yaml/Pocket32.yml +0 -36
  322. data/vendor/board-maps/yaml/QUANTUM.yml +0 -35
  323. data/vendor/board-maps/yaml/RASPBERRY_PI_PICO.yml +0 -48
  324. data/vendor/board-maps/yaml/RASPBERRY_PI_PICO_W.yml +0 -48
  325. data/vendor/board-maps/yaml/REDPILL_ESP32S3.yml +0 -42
  326. data/vendor/board-maps/yaml/RMP.yml +0 -43
  327. data/vendor/board-maps/yaml/SAMD_CIRCUITPLAYGROUND_EXPRESS.yml +0 -11
  328. data/vendor/board-maps/yaml/SAMD_MKR1000.yml +0 -20
  329. data/vendor/board-maps/yaml/SAMD_MKRFox1200.yml +0 -19
  330. data/vendor/board-maps/yaml/SAMD_MKRGSM1400.yml +0 -15
  331. data/vendor/board-maps/yaml/SAMD_MKRNB1500.yml +0 -15
  332. data/vendor/board-maps/yaml/SAMD_MKRVIDOR4000.yml +0 -19
  333. data/vendor/board-maps/yaml/SAMD_MKRWAN1300.yml +0 -18
  334. data/vendor/board-maps/yaml/SAMD_MKRWAN1310.yml +0 -18
  335. data/vendor/board-maps/yaml/SAMD_MKRWIFI1010.yml +0 -19
  336. data/vendor/board-maps/yaml/SAMD_MKRZERO.yml +0 -19
  337. data/vendor/board-maps/yaml/SAMD_NANO_33_IOT.yml +0 -13
  338. data/vendor/board-maps/yaml/SAMD_TIAN.yml +0 -15
  339. data/vendor/board-maps/yaml/SAMD_ZERO.yml +0 -14
  340. data/vendor/board-maps/yaml/SAM_DUE.yml +0 -28
  341. data/vendor/board-maps/yaml/SAM_ZERO.yml +0 -15
  342. data/vendor/board-maps/yaml/SEEED_INDICATOR_RP2040.yml +0 -47
  343. data/vendor/board-maps/yaml/SEEED_XIAO_RP2040.yml +0 -29
  344. data/vendor/board-maps/yaml/SOLDERPARTY_RP2040_STAMP.yml +0 -48
  345. data/vendor/board-maps/yaml/SONOFF_DUALR3.yml +0 -35
  346. data/vendor/board-maps/yaml/SPARKFUN_PROMICRO_RP2040.yml +0 -48
  347. data/vendor/board-maps/yaml/SPARKFUN_THINGPLUS_RP2040.yml +0 -48
  348. data/vendor/board-maps/yaml/STAMP_S3.yml +0 -4
  349. data/vendor/board-maps/yaml/TAMC_TERMOD_S3.yml +0 -41
  350. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1262.yml +0 -28
  351. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1268.yml +0 -28
  352. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1276.yml +0 -28
  353. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1278.yml +0 -28
  354. data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1280.yml +0 -28
  355. data/vendor/board-maps/yaml/TBeam.yml +0 -28
  356. data/vendor/board-maps/yaml/TINYPICO.yml +0 -35
  357. data/vendor/board-maps/yaml/TINYS2.yml +0 -43
  358. data/vendor/board-maps/yaml/TINYS3.yml +0 -25
  359. data/vendor/board-maps/yaml/TTGO-T-OI-PLUS_DEV.yml +0 -11
  360. data/vendor/board-maps/yaml/TTGO_LoRa32_V1.yml +0 -38
  361. data/vendor/board-maps/yaml/TTGO_LoRa32_V2.yml +0 -38
  362. data/vendor/board-maps/yaml/TTGO_LoRa32_v21new.yml +0 -38
  363. data/vendor/board-maps/yaml/TTGO_T1.yml +0 -36
  364. data/vendor/board-maps/yaml/TTGO_T7_V13_Mini32.yml +0 -36
  365. data/vendor/board-maps/yaml/TTGO_T7_V14_Mini32.yml +0 -36
  366. data/vendor/board-maps/yaml/TWATCH_2020_V1.yml +0 -9
  367. data/vendor/board-maps/yaml/TWATCH_2020_V2.yml +0 -9
  368. data/vendor/board-maps/yaml/TWATCH_2020_V3.yml +0 -9
  369. data/vendor/board-maps/yaml/TWATCH_BASE.yml +0 -9
  370. data/vendor/board-maps/yaml/TWatch.yml +0 -9
  371. data/vendor/board-maps/yaml/Trueverit_ESP32_Universal_IoT_Driver.yml +0 -18
  372. data/vendor/board-maps/yaml/Trueverit_ESP32_Universal_IoT_Driver_MK_II.yml +0 -18
  373. data/vendor/board-maps/yaml/UBLOX_NINA_W10.yml +0 -57
  374. data/vendor/board-maps/yaml/UBLOX_NORA_W10.yml +0 -43
  375. data/vendor/board-maps/yaml/UNOWIFIR4.yml +0 -17
  376. data/vendor/board-maps/yaml/UPESY_RP2040_DEVKIT.yml +0 -48
  377. data/vendor/board-maps/yaml/VALTRACK_V4_MFW_ESP32_C3.yml +0 -23
  378. data/vendor/board-maps/yaml/VALTRACK_V4_VTS_ESP32_C3.yml +0 -23
  379. data/vendor/board-maps/yaml/VIYALAB_MIZU_RP2040.yml +0 -48
  380. data/vendor/board-maps/yaml/WATCHY.yml +0 -7
  381. data/vendor/board-maps/yaml/WATCHY_V10.yml +0 -7
  382. data/vendor/board-maps/yaml/WATCHY_V15.yml +0 -7
  383. data/vendor/board-maps/yaml/WATCHY_V20.yml +0 -7
  384. data/vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_0_96.yml +0 -47
  385. data/vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_1_28.yml +0 -47
  386. data/vendor/board-maps/yaml/WAVESHARE_RP2040_ONE.yml +0 -47
  387. data/vendor/board-maps/yaml/WAVESHARE_RP2040_PLUS.yml +0 -48
  388. data/vendor/board-maps/yaml/WAVESHARE_RP2040_ZERO.yml +0 -47
  389. data/vendor/board-maps/yaml/WESP32.yml +0 -17
  390. data/vendor/board-maps/yaml/WIDORA_AIR.yml +0 -34
  391. data/vendor/board-maps/yaml/WIFIDUINO_ESP8266.yml +0 -23
  392. data/vendor/board-maps/yaml/WIFINFO.yml +0 -20
  393. data/vendor/board-maps/yaml/WIPY3.yml +0 -37
  394. data/vendor/board-maps/yaml/WIZNET_5100S_EVB_PICO.yml +0 -48
  395. data/vendor/board-maps/yaml/WIZNET_5500_EVB_PICO.yml +0 -48
  396. data/vendor/board-maps/yaml/WIZNET_WIZFI360_EVB_PICO.yml +0 -48
  397. data/vendor/board-maps/yaml/WT32_ETH01.yml +0 -8
  398. data/vendor/board-maps/yaml/WiFiduino32S3.yml +0 -27
  399. data/vendor/board-maps/yaml/WiFiduinoV2.yml +0 -27
  400. data/vendor/board-maps/yaml/Wifiduino32.yml +0 -40
  401. data/vendor/board-maps/yaml/XIAO_ESP32C3.yml +0 -22
  402. data/vendor/board-maps/yaml/XIAO_ESP32S3.yml +0 -37
  403. data/vendor/board-maps/yaml/YD_RP2040.yml +0 -48
  404. data/vendor/board-maps/yaml/atmegazero_esp32s2.yml +0 -30
  405. data/vendor/board-maps/yaml/connaxio_espoir.yml +0 -24
  406. data/vendor/board-maps/yaml/esp32vn_iot_uno.yml +0 -31
  407. data/vendor/board-maps/yaml/fm_devkit.yml +0 -15
  408. data/vendor/board-maps/yaml/heltec_wifi_32_lora_V3.yml +0 -41
  409. data/vendor/board-maps/yaml/heltec_wifi_kit_32.yml +0 -38
  410. data/vendor/board-maps/yaml/heltec_wifi_kit_32_V3.yml +0 -42
  411. data/vendor/board-maps/yaml/heltec_wifi_lora_32.yml +0 -36
  412. data/vendor/board-maps/yaml/heltec_wifi_lora_32_V2.yml +0 -36
  413. data/vendor/board-maps/yaml/heltec_wireless_stick.yml +0 -36
  414. data/vendor/board-maps/yaml/heltec_wireless_stick_LITE.yml +0 -36
  415. data/vendor/board-maps/yaml/openkb.yml +0 -37
  416. data/vendor/board-maps/yaml/roboheart_hercules.yml +0 -26
  417. data/vendor/board-maps/yaml/sensesiot_weizen.yml +0 -35
  418. data/vendor/board-maps/yaml/uPesy_WROOM.yml +0 -36
  419. data/vendor/board-maps/yaml/uPesy_WROVER.yml +0 -36
  420. data/vendor/board-maps/yaml/unphone8.yml +0 -42
  421. data/vendor/board-maps/yaml/unphone9.yml +0 -42
  422. data/vendor/board-maps/yaml/wifi_kit_8.yml +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c1cefcc0106edf784dea04c7217bf8475887402da89aacf0c9b578185ee4c152
4
- data.tar.gz: '08b1bcaac7973a3eb5b2fbbae7b7227cfbdec9250dffe9d41a95a1fe0a90565b'
3
+ metadata.gz: '082654ef6ccaec931c9cba643db7c528cc8b20d33e969af6a101a735078b7c02'
4
+ data.tar.gz: 780397a81acfa1a44591deb0c1beedb6f39071b606fb108914c79af334e47847
5
5
  SHA512:
6
- metadata.gz: a0344465f58fe0e23fb579d7e903a93ecaf49a923270991c471caf674a34bf5fece80e56598878a2e690966461d2f08db15b49eccd58c09de7d2140803f2f77e
7
- data.tar.gz: 7395727636ea674940fd84a7fdf55b61a32dde2329cf2f561aea7e73ea177098e8346ea7fd2a5ea0b4d6f035a0b88d2e4386ba33a3356966b9afe4322a53912c
6
+ metadata.gz: 58e7ec2753368aa202a63792c6f142bd150a386c95d37605ee4c1985022d4c06e552108f504675c599effcde0e0438b7d1029d0c700ec7fee40fffdffc60d1f4
7
+ data.tar.gz: fec058bef713c8f5c7e84eed3dd87a84db93267e921abb27d3c4966b40bf66a223a3a76442559742bec04a58665e18d3d8d30cd3954fdb846148e5d1fb3b0cd2
@@ -36,7 +36,7 @@ jobs:
36
36
  - name: IRremote
37
37
  version: 4.1.2
38
38
  - name: Ethernet
39
- - name: WiFi
39
+ - name: WiFiNINA
40
40
  - name: Adafruit NeoPixel
41
41
 
42
42
  steps:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.3
4
+
5
+ ### Board Updates / Fixes
6
+
7
+ - Arduino UNO R4 Minima & Wi-Fi (`--target ra4m1`):
8
+ - RA4M1 fully tested
9
+ - Only IR-remote and WS2812 libraries not working. Disabled temporarily.
10
+
11
+ - Arduino Nano Every
12
+ - ATmega4809 fully tested and issues fixed
13
+ - Works similarly to the regular AVR chips
14
+
15
+ - SAMD21
16
+ - Changed serial acknowledgement threshold to 128 instead of 64. More stable, but might be slightly slower performing.
17
+
18
+ ### Network Chip Updates / Fixes
19
+
20
+ - WINC1500
21
+ - Added support for WiFi101 library
22
+ - Tested on Arduino MKR 1000
23
+
24
+ - NINA-W102
25
+ - Added conditions to select the WiFiNINA library on appropriate hardware.
26
+ - Untested in hardware
27
+
28
+ ### API Changes
29
+
30
+ - Default aux message size is now 784 bytes (768 + 16) instead of (512 + 16)
31
+
32
+ ### Component Changes
33
+
34
+ - WS2812
35
+ - Larger aux message size now allows up to 256 pixels (3 bytes per pixel) on a strip
36
+
37
+ ### Bug Fixes
38
+
39
+ - Fixed a bug with WS2812 strips where it would try to memcpy 3x the number of necessary bytes. Fixed this by just sending the total number of bytes to write to the strip, rather than number of pixels * bytes per pxiel.
40
+ - The `val` variable in Arduino is now 16-bit instead of 8-bit.
41
+ - Fixed instances where `Minitest` was referred to as `MiniTest`, causing tests to fail.
42
+
3
43
  ## 0.13.2
4
44
 
5
45
  ### New Boards
data/DEPS_CLI.md CHANGED
@@ -21,6 +21,8 @@ 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
+ arduino-cli lib install WiFi101
25
+ arduino-cli lib install WiFiNINA
24
26
  arduino-cli lib install IRremote@4.1.2
25
27
  arduino-cli lib install IRremoteESP8266@2.8.4
26
28
  arduino-cli lib install ESP32Servo
@@ -34,6 +36,7 @@ arduino-cli core install arduino:megaavr
34
36
  arduino-cli lib install Servo
35
37
  arduino-cli lib install Ethernet
36
38
  arduino-cli lib install WiFi
39
+ arduino-cli lib install WiFiNINA
37
40
  arduino-cli lib install IRremote@4.1.2
38
41
  arduino-cli lib install "Adafruit NeoPixel"
39
42
  ````
@@ -47,6 +50,8 @@ arduino-cli core install arduino:renesas_uno
47
50
  arduino-cli lib install Servo
48
51
  arduino-cli lib install Ethernet
49
52
  arduino-cli lib install WiFi
53
+ arduino-cli lib install WiFi101
54
+ arduino-cli lib install WiFiNINA
50
55
  arduino-cli lib install IRremote@4.1.2
51
56
  arduino-cli lib install "Adafruit NeoPixel"
52
57
  ````
data/DEPS_IDE.md CHANGED
@@ -40,6 +40,8 @@ All platforms will require libraries to be installed. To install a library do th
40
40
  Servo by Michael Margolis, Arduino
41
41
  Ethernet by Various
42
42
  WiFi by Arduino
43
+ WiFi101 by Arduino
44
+ WiFiNINA by Arduino
43
45
  IRremote @ v4.1.2 by shirriff, z3to, ArminJo
44
46
  IRremoteESP82666 @ v2.8.5 by David Conran, Sebastien Warin
45
47
  ESP32Servo by Kevin Harrington, John K. Bennett
@@ -56,6 +58,7 @@ All platforms will require libraries to be installed. To install a library do th
56
58
  Servo by Michael Margolis, Arduino
57
59
  Ethernet by Various
58
60
  WiFi by Arduino
61
+ WiFiNINA by Arduino
59
62
  IRremote @ v4.1.2 by shirriff, z3to, ArminJo
60
63
  Adafruit NeoPixel by Adafruit
61
64
  ````
@@ -72,6 +75,8 @@ All platforms will require libraries to be installed. To install a library do th
72
75
  Servo by Michael Margolis, Arduino
73
76
  Ethernet by Various
74
77
  WiFi by Arduino
78
+ WiFi101 by Arduino
79
+ WiFiNINA by Arduino
75
80
  IRremote @ v4.1.2 by shirriff, z3to, ArminJo
76
81
  Adafruit NeoPixel by Adafruit
77
82
  ````
data/HARDWARE.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  :green_heart: Full support :yellow_heart: Partial support :heart: Planned. No support yet :question: Works in theory. Untested in real hardware.
4
4
 
5
- ### AVR/MegaAVR Based in Arduino Products (and Clones)
5
+ ### AVR/MegaAVR Based Arduino Products (and Clones)
6
6
  [![AVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_avr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_avr.yml)
7
7
  [![MegaAVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_megaavr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_megaavr.yml)
8
8
 
@@ -13,7 +13,7 @@
13
13
  | ATmega32u4 | :green_heart: | Leonardo, Micro, Leonardo ETH, Esplora, LilyPad USB |
14
14
  | ATmega1280 | :green_heart: | Mega |
15
15
  | ATmega2560 | :green_heart: | Mega2560, Arduino Mega ADK |
16
- | ATmega4809 | :question: | Nano Every, Uno WiFi Rev2 | No hardware to test, but should work
16
+ | ATmega4809 | :green_heart: | Nano Every, Uno WiFi Rev2 |
17
17
 
18
18
  **Note:** Only USB boards listed. Any board with a supported chip should work, once you can flash it and connect to serial.
19
19
 
@@ -25,16 +25,17 @@
25
25
  | Chip | Status | Products | Notes |
26
26
  | :-------- | :------: | :--------------- |------ |
27
27
  | ATSAM3X8E | :yellow_heart: | Due | Native USB port. Tone, and IR Out don't work.
28
- | ATSAMD21 | :green_heart: | Zero, M0, M0 Pro | Native USB port
29
- | RA4M1 | :yellow_heart: | Uno R4 Minima, Uno R4 WiFi | IR Out and WS2812 unsupported. UART & Wi-Fi untested
28
+ | ATSAMD21 | :green_heart: | Zero, M0 Series, Nano 33 IOT, MKR WiFi 1010 | Native USB
29
+ | RA4M1 | :yellow_heart: | Uno R4 Minima, Uno R4 WiFi | IR and WS2812 libraries don't support this yet
30
30
 
31
- ### Arduino Accessories
31
+ ### Arduino Networking
32
32
 
33
- | Chip | Status | Product | Notes |
33
+ | Chip | Status | Products | Notes |
34
34
  | :-------- | :------: | :--------------- |------ |
35
35
  | Wiznet W5100/5500 | :green_heart: | Ethernet Shield | Wired Ethernet for Uno/Mega pin-compatibles
36
- | HDG204 + AT32UC3 | :question: | WiFi Shield | WiFi for Uno. No hardware to test, but compiles
37
- | ATWINC1500 | :question: | WiFi Shield 101 | Same as above, high memory use, Mega only
36
+ | HDG204 + AT32UC3 | :question: | WiFi Shield | Compiles, but no hardware
37
+ | ATWINC1500 | :green_heart: | MKR1000, WiFi Shield 101 | #define WIFI_101 for shield. Automatic for MKR1000
38
+ | u-blox NINA-W102 | :question: | Uno WiFi Rev 2, MKR WiFi 1010, Nano 33 IOT | Should work. No hardware
38
39
 
39
40
  ### Espressif Chips with Built-In Wi-Fi
40
41
  [![ESP8266 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp8266.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp8266.yml)
@@ -90,12 +91,12 @@
90
91
  | I2C Bit Bang | :heart: | S | `I2C::BitBang` | Any pins
91
92
  | SPI | :green_heart: | H | `SPI::Bus` | Predetermined pins from IDE
92
93
  | SPI Bit Bang | :green_heart: | S | `SPI::BitBang` | Any pins
93
- | UART | :green_heart: | H | `UART::Hardware` | Except Atmega328, ATmega168, RA4M1
94
+ | UART | :green_heart: | H | `UART::Hardware` | Except Atmega328, ATmega168
94
95
  | UART Bit Bang | :green_heart: | S | `UART::BitBang` | Only ATmega328, ATmega168
95
96
  | Maxim OneWire | :green_heart: | S | `OneWire::Bus` | No overdrive
96
- | Infrared Emitter | :green_heart: | S | `PulseIO::IRTransmitter` | Except RA4M1
97
+ | Infrared Emitter | :green_heart: | S | `PulseIO::IRTransmitter` | Except SAM3X, RA4M1
97
98
  | Infrared Receiver | :heart: | S | `PulseIO::IRReceiver` | Doable with existing library
98
- | WS2812 | :green_heart: | S | See LED table | Except RP2040
99
+ | WS2812 | :green_heart: | S | See LED table | Except RP2040, RA4M1
99
100
  | ESP32-PCNT | :heart: | H | - | Only ESP32. Pulse counter (for encoders)
100
101
  | ESP32-MCPWM | :heart: | H | - | Only ESP32. Motor control PWM
101
102
 
@@ -141,9 +142,10 @@ Polling and reading follow a call and response pattern.
141
142
  | :--------------- | :------: | :-------- | :--------------- |------ |
142
143
  | Generic Hobby Servo | :green_heart: | Servo/ESC PWM | `Motor::Servo` | Max depends on PWM channel count
143
144
  | Generic ESC | :yellow_heart: | Servo/ESC PWM | `Motor::Servo` | Works. Needs its own class.
145
+ | PCA9685 | :heart: | I2C | `PulseIO::PCA9685` | 16ch 12-bit PWM for servo or LED
144
146
  | L298N | :green_heart: | Digi + PWM Out | `Motor::L298` | H-Bridge DC motor driver
145
147
  | A3967 | :green_heart: | Digital Out | `Motor::Stepper` | 1ch microstepper (EasyDriver)
146
- | PCA9685 | :heart: | I2C | `PulseIO::PCA9685` | 16ch 12-bit PWM for servo or LED
148
+ | TMC2209 | :heart: | - | - | 1ch silent stepper driver
147
149
 
148
150
  ### I/O Expansion
149
151
 
@@ -210,6 +212,12 @@ Polling and reading follow a call and response pattern.
210
212
  | DS1302 | :heart: | I2C | `RTC::DS1302` |
211
213
  | DS3231 | :green_heart: | I2C | `RTC::DS3231` | Alarms not implemented
212
214
 
215
+ ### GPS
216
+
217
+ | Name | Status | Interface | Component Class | Notes |
218
+ | :--------------- | :------: | :-------- | :--------------- |------ |
219
+ | GT-U7 | :heart: | UART | - |
220
+
213
221
  ### Miscellaneous
214
222
 
215
223
  | Name | Status | Interface | Component Class | Notes |
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Denko 0.13.1 [![Test Status](https://github.com/denko-rb/denko/actions/workflows/ruby.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/ruby.yml)
1
+ # Denko 0.13.3 [![Test Status](https://github.com/denko-rb/denko/actions/workflows/ruby.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/ruby.yml)
2
2
  ### Ruby Meets Microcontrollers
3
3
  Denko gives you a high-level Ruby interface to low-level hardware, without writing microcontroller code. Use LEDs, buttons, sensors and more, just as easily as any Ruby object:
4
4
 
@@ -22,8 +22,13 @@
22
22
  #
23
23
  # July 15 2023 | i7 8700k CPU | CRuby 3.2.1 | 100 frames | 1 Mhz I2C frequency | Average of 3 runs
24
24
  #
25
- # Arduino Uno R4 : 7.5 fps (native USB @ 115200, 32-byte I2C limit, no I2C level shifter)
26
- # Arduino Uno R4 : 7.8 fps (native USB @ 230400, 32-byte I2C limit, no I2C level shifter)
25
+ # Arduino Uno R4 WiFi : 7.5 fps (USB through ESP32-S3 @ 115200, 32-byte I2C limit, no I2C level shifter)
26
+ # Arduino Uno R4 WiFi : 7.8 fps (USB through ESP32-S3 @ 230400, 32-byte I2C limit, no I2C level shifter)
27
+ #
28
+ # August 13 2023 | i7 8700k CPU | CRuby 3.2.1 | 100 frames | 1 Mhz I2C frequency | Average of 3 runs
29
+ #
30
+ # Arduino Nano Every : 9.2 fps (USB through ATSAMD11 @ 115200, 128-byte I2C limit, no I2C level shifter)
31
+ # Arduino Nano Every : 13.0 fps (USB through ATSAMD11 @ 230400, 128-byte I2C limit, no I2C level shifter)
27
32
  #
28
33
  require 'bundler/setup'
29
34
  require 'denko'
@@ -7,7 +7,6 @@ require 'denko'
7
7
  board = Denko::Board.new(Denko::Connection::Serial.new)
8
8
  buzzer = Denko::PulseIO::Buzzer.new(board: board, pin: 9)
9
9
 
10
- =begin
11
10
  C4 = 262
12
11
  D4 = 294
13
12
  E4 = 330
@@ -29,42 +28,3 @@ end
29
28
 
30
29
  buzzer.stop
31
30
  board.finish_write
32
- =end
33
-
34
-
35
-
36
- AS3 = 233
37
- BN3 = 257
38
- DS4 = 311
39
- FN4 = 349
40
- FS4 = 370
41
- GS4 = 415
42
-
43
- notes = [
44
- [AS3, 1], [AS3, 1], [AS3, 1], [AS3, 1],
45
- [AS3, 0.75], [BN3, 0.75], [DS4, 0.5], [AS3, 1], [AS3, 0.5], [nil, 0.5],
46
- [AS3, 0.75], [BN3, 0.75], [DS4, 0.5], [AS3, 1], [AS3, 0.5], [nil, 0.5],
47
- [AS3, 0.75], [BN3, 0.75], [DS4, 0.5], [FN4, 1], [FN4, 0.5], [nil, 0.5],
48
- [GS4, 0.75], [FS4, 0.75], [FN4, 0.5], [DS4, 1], [DS4, 0.5], [nil, 0.5],
49
- [GS4, 0.75], [FS4, 0.75], [FN4, 0.5], [DS4, 1], [DS4, 0.5], [nil, 0.5],
50
- [AS3, 0.75], [BN3, 0.75], [DS4, 0.5], [AS3, 1], [AS3, 0.5], [nil, 0.5],
51
- [AS3, 0.75], [BN3, 0.75], [DS4, 0.5], [AS3, 1], [AS3, 0.5], [nil, 0.5],
52
- ]
53
-
54
- bpm = 135
55
- beat_time = 60.to_f / bpm
56
-
57
- notes.each do |note|
58
- if note[0]
59
- buzzer.tone(note[0])
60
- sleep(note[1] * beat_time)
61
- else
62
- buzzer.stop
63
- sleep((note[1] * beat_time))
64
- end
65
- buzzer.stop
66
- buzzer.micro_delay(5)
67
- end
68
-
69
- buzzer.stop
70
- board.finish_write
@@ -1,17 +1,14 @@
1
1
  module Denko
2
2
  class Board
3
3
  def show_ws2812(pin, pixel_buffer)
4
- length = pixel_buffer.length
5
-
6
4
  # Settings are blank for now.
7
5
  settings = pack :uint8, [0, 0, 0, 0]
8
6
 
9
- # Limit to 100 pixels (3-bytes each) for now
10
- packed_pixels = pack :uint8, pixel_buffer, max: 300
11
-
7
+ packed_pixels = pack :uint8, pixel_buffer
8
+
12
9
  write_and_halt Message.encode command: 19,
13
10
  pin: pin,
14
- value: length,
11
+ value: pixel_buffer.length,
15
12
  aux_message: settings + packed_pixels
16
13
  end
17
14
  end
data/lib/denko/message.rb CHANGED
@@ -11,7 +11,7 @@ module Denko
11
11
  aux_message = aux_message.to_s
12
12
 
13
13
  # Validate aux_message before escaping characters.
14
- raise ArgumentError, 'aux_message is limited to 528 characters' if aux_message.length > 528
14
+ raise ArgumentError, 'aux_message is limited to 528 characters' if aux_message.length > 784
15
15
 
16
16
  # Escape \ and \n.
17
17
  aux_message = aux_message.gsub("\\","\\\\\\\\").gsub("\n", "\\\n")
data/lib/denko/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Denko
2
- VERSION = "0.13.2"
2
+ VERSION = "0.13.3"
3
3
  end
data/src/denko_wifi.ino CHANGED
@@ -1,3 +1,25 @@
1
+ // NOTE!!!
2
+ // For some boards the standard <WiFi.h> header file does not work.
3
+ //
4
+ // Make sure to define:
5
+ // WIFI_101 if using the WiFi Shield 101, or any board that uses the ATWINC1500 for Wi-Fi.
6
+ // WIFI_NINA if using any board with the NINA-W102 WiFi chip.
7
+ //
8
+ // Some known boards are handled automatically.
9
+ //
10
+ // #define WIFI_101
11
+ // #define WIFI_NINA
12
+
13
+ // WiFi101 Boards
14
+ #ifdef ARDUINO_SAMD_MKR1000
15
+ #define WIFI_101
16
+ #endif
17
+
18
+ // Nina WiFi Boards
19
+ #if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_SAMD_NANO_33_IOT)
20
+ #define WIFI_NINA
21
+ #endif
22
+
1
23
  #include "Denko.h"
2
24
  #if defined(ESP8266)
3
25
  #include <ESP8266WiFi.h>
@@ -12,9 +34,17 @@
12
34
  // #include <ArduinoOTA.h>
13
35
  #define WIFI_STATUS_LED 2
14
36
  #else
15
- #include <SPI.h>
16
- #include <WiFi.h>
17
37
  #define WIFI_STATUS_LED 13
38
+ #if defined(WIFI_101)
39
+ #include <WiFi101.h>
40
+ #elif defined(WIFI_NINA)
41
+ #include <WiFiNINA.h>
42
+ #elif defined(ARDUINO_UNOWIFIR4)
43
+ #include <WiFiS3.h>
44
+ #else
45
+ #include <SPI.h>
46
+ #include <WiFi.h>
47
+ #endif
18
48
  #endif
19
49
 
20
50
  // Configure your WiFi options here. IP address is not configurable. Uses DHCP.
@@ -45,7 +75,12 @@ void printWifiStatus() {
45
75
  DENKO_SERIAL_IF.print(WiFi.RSSI());
46
76
  DENKO_SERIAL_IF.println(" dBm");
47
77
  DENKO_SERIAL_IF.print("IP Address: ");
48
- DENKO_SERIAL_IF.println(WiFi.localIP());
78
+ #ifdef WIFI_101
79
+ IPAddress ip = WiFi.localIP();
80
+ DENKO_SERIAL_IF.println(ip);
81
+ #else
82
+ DENKO_SERIAL_IF.println(WiFi.localIP());
83
+ #endif
49
84
  DENKO_SERIAL_IF.print("Denko TCP Port: ");
50
85
  DENKO_SERIAL_IF.println(port);
51
86
  indicateWiFi(true);
data/src/lib/Denko.cpp CHANGED
@@ -198,7 +198,6 @@ void Denko::process() {
198
198
  case 90: handshake (); break;
199
199
  case 91: resetState (); break;
200
200
  case 92: sendReady (); break;
201
- case 93: enumerate (); break;
202
201
  case 95: setRegisterDivider (); break;
203
202
  case 96: setAnalogWriteResolution (); break;
204
203
  case 97: setAnalogReadResolution (); break;
@@ -306,14 +305,6 @@ void Denko::resetState() {
306
305
  lastTime = micros();
307
306
  }
308
307
 
309
- // CMD = 93
310
- void Denko::enumerate() {
311
- stream->print("ENUMERATION:");
312
- #ifdef A0
313
- stream->println(A0);
314
- #endif
315
- }
316
-
317
308
  // CMD = 95
318
309
  // Set the register read divider. Powers of 2 up to 128 are valid.
319
310
  void Denko::setRegisterDivider() {
data/src/lib/Denko.h CHANGED
@@ -177,7 +177,6 @@ class Denko {
177
177
  //
178
178
  void handshake (); //cmd = 90
179
179
  void resetState (); //cmd = 91
180
- void enumerate (); //cmd = 92
181
180
  void setRegisterDivider (); //cmd = 97
182
181
  void setAnalogWriteResolution (); //cmd = 96
183
182
  void setAnalogReadResolution (); //cmd = 97
@@ -202,7 +201,7 @@ class Denko {
202
201
  // Parsed message storage.
203
202
  byte cmdStr[4]; byte cmd;
204
203
  byte pinStr[4]; byte pin;
205
- byte valStr[4]; byte val;
204
+ byte valStr[4]; uint16_t val;
206
205
  byte auxMsg[AUX_SIZE];
207
206
 
208
207
  //
@@ -65,7 +65,7 @@
65
65
  #ifdef DENKO_UART
66
66
  // Look for TX pin definitions on RP2040.
67
67
  #if defined(RP2040)
68
- #if defined(PIN_SERIAL2_TX)
68
+ #if defined(PIN_SERIAL2_TX)
69
69
  #define DENKO_UARTS 2
70
70
  #elif defined(PIN_SERIAL_1_TX)
71
71
  #define DENKO_UARTS 1
@@ -83,7 +83,15 @@
83
83
  #elif defined(ESP8266) && defined(SERIAL_PORT_HARDWARE_OPEN)
84
84
  #define DENKO_UARTS 1
85
85
 
86
- // This works for all the Atmel cores except RA4M1.
86
+ // Define 1 UART for UNO R4 boards. Always use Serial1.
87
+ #elif defined(_RENESAS_RA_)
88
+ #define DENKO_UARTS 1
89
+
90
+ // Define 1 UART for ATmega4809.
91
+ #elif defined(__AVR_ATmega4809__) && defined(SERIAL_PORT_HARDWARE)
92
+ #define DENKO_UARTS 1
93
+
94
+ // This works for all the Atmel cores exept ATmega4809.
87
95
  #else
88
96
  #if defined(SERIAL_PORT_HARDWARE3)
89
97
  #define DENKO_UARTS 3
@@ -102,9 +110,9 @@
102
110
  // If no high usage features (core sketch), 32 + 16.
103
111
  #if !defined(DENKO_SHIFT) && !defined (DENKO_I2C) && !defined(DENKO_SPI) && !defined(DENKO_UARTS) && !defined(DENKO_UART_BB) && !defined(DENKO_IR_OUT) && !defined(DENKO_LED_ARRAY)
104
112
  #define AUX_SIZE 48
105
- // If using IR_OUT or LED_ARRAY, and not on the ATmega168, 512 + 16.
113
+ // If using IR_OUT or LED_ARRAY, and not on the ATmega168, 768 + 16.
106
114
  #elif (defined(DENKO_IR_OUT) || defined(DENKO_LED_ARRAY)) && !defined(__AVR_ATmega168__)
107
- #define AUX_SIZE 528
115
+ #define AUX_SIZE 784
108
116
  // Default aux message size to 256 + 16 bytes.
109
117
  #else
110
118
  #define AUX_SIZE 272
@@ -133,10 +141,10 @@
133
141
  #elif defined(_RENESAS_RA_)
134
142
  #define DENKO_SERIAL_BUFFER_SIZE 512
135
143
  #define DENKO_RX_ACK_INTERVAL 64
136
- // SAMD21 is 256/64 in native USB mode ONLY. Must use defaults on programming port to avoid data loss.
144
+ // SAMD21 is 256/128 in native USB mode ONLY. Must use defaults on programming port to avoid data loss.
137
145
  #elif defined(__SAMD21G18A__) && defined(DENKO_USB_CDC)
138
146
  #define DENKO_SERIAL_BUFFER_SIZE 256
139
- #define DENKO_RX_ACK_INTERVAL 64
147
+ #define DENKO_RX_ACK_INTERVAL 128
140
148
  // 32u4 is odd. Size is 63 instead of 64. Interval must be 31. 32 doesn't work at all. Off by 1 errors?
141
149
  #elif defined(__AVR_ATmega32U4__)
142
150
  #define DENKO_SERIAL_BUFFER_SIZE 63
@@ -17,7 +17,7 @@
17
17
  // Write data to a WS2812 LED array. Will generalize to other types later.
18
18
  //
19
19
  // pin = Microcontroller pin connected to Data In pin of the LED array.
20
- // val = Number of RGB or RGBW LEDS (aka pixels) in the array.
20
+ // val = Number of raw pixel data bytes to expect. Max 9999.
21
21
  // auxMsg[0..3] = Reserved for future settings.
22
22
  // auxMsg[4+] = Raw pixel data, already in correct byte order (GRB, RGB, etc.).
23
23
  //
@@ -27,18 +27,12 @@ void Denko::showLEDArray() {
27
27
  ledArray.begin();
28
28
 
29
29
  // Copy LED data into the pixel buffer.
30
- // NOTE: val * 3 will have to change to val * 4 for RGBW leds.
31
- memcpy(ledArray.getPixels(), &auxMsg[4], val * 3);
30
+ memcpy(ledArray.getPixels(), &auxMsg[4], val);
32
31
 
33
- // I have NO idea what causes the first green LED to stay stuck on.
34
- // A small delay here seems like a consistent fix. ESP32 doesn't need it.
35
- // AVR can get away with 32us, but others need 64.
36
- #if defined(ESP8266) || defined(__SAMD21G18A__) || defined(__SAM3X8E__)
32
+ // ATmega4809 still needs this delay to avoid corrupt data. Not sure why.
33
+ #if defined(__AVR_ATmega4809__)
37
34
  delayMicroseconds(64);
38
35
  #endif
39
- #ifdef __AVR__
40
- delayMicroseconds(32);
41
- #endif
42
36
 
43
37
  // Write the pixel buffer to the array.
44
38
  ledArray.show();
data/target.yml CHANGED
@@ -1,37 +1,3 @@
1
- # name: rp2040
2
- # fqbn: rp2040:rp2040:rpipicow
3
- # port: /dev/cu.usbmodem14B01
4
-
5
- # name: mega
6
- # fqbn: arduino:avr:uno
7
- # ort: /dev/cu.usbmodem14B01
8
-
9
- # name: mega
10
- # fqbn: arduino:avr:mega
11
- # port: /dev/cu.usbmodem14C01
12
-
13
1
  name: mega
14
- fqbn: arduino:avr:leonardo
2
+ fqbn: arduino:avr:uno
15
3
  port: /dev/cu.usbmodem14B01
16
-
17
- # name: esp32
18
- # fqbn: esp32:esp32:esp32doit-devkit-v1
19
- # port: /dev/cu.SLAB_USBtoUART
20
-
21
- # name: esp8266
22
- # fqbn: esp8266:esp8266:nodemcuv2
23
- # port: /dev/cu.SLAB_USBtoUART
24
-
25
- # name: sam3x
26
- # fqbn: arduino:sam:arduino_due_x
27
- # port: /dev/cu.usbmodem14C0
28
-
29
- # name: samd
30
- # fqbn: arduino:samd:arduino_zero_native
31
- # port: /dev/cu.usbmodem14C01
32
-
33
- # Native USB ESP32 shouldn't be used since this doesn't enable USB CDC on boot.
34
-
35
- # name: esp32
36
- # fqbn: esp32:esp32:lolin_s3
37
- # port: /dev/cu.usbmodem14C01
@@ -10,7 +10,7 @@ class AnalogIOInputTest < Minitest::Test
10
10
  end
11
11
 
12
12
  def test__read
13
- mock = MiniTest::Mock.new.expect :call, nil, [14, nil, nil, nil]
13
+ mock = Minitest::Mock.new.expect :call, nil, [14, nil, nil, nil]
14
14
  board.stub(:analog_read, mock) do
15
15
  part._read
16
16
  end
@@ -18,7 +18,7 @@ class AnalogIOInputTest < Minitest::Test
18
18
  end
19
19
 
20
20
  def test__listen
21
- mock = MiniTest::Mock.new
21
+ mock = Minitest::Mock.new
22
22
  mock.expect :call, nil, [14, 16]
23
23
  mock.expect :call, nil, [14, 32]
24
24
  board.stub(:analog_listen, mock) do
@@ -29,7 +29,7 @@ class AnalogIOInputTest < Minitest::Test
29
29
  end
30
30
 
31
31
  def test__stop_listen
32
- mock = MiniTest::Mock.new.expect :call, nil, [14]
32
+ mock = Minitest::Mock.new.expect :call, nil, [14]
33
33
  board.stub(:stop_listener, mock) do
34
34
  part._stop_listener
35
35
  end
@@ -14,7 +14,7 @@ class AnalogIOOutputTest < Minitest::Test
14
14
  end
15
15
 
16
16
  def test_dac_write
17
- mock = MiniTest::Mock.new.expect :call, nil, [14, 128]
17
+ mock = Minitest::Mock.new.expect :call, nil, [14, 128]
18
18
 
19
19
  board.stub(:dac_write, mock) do
20
20
  part.write 128
@@ -1,6 +1,6 @@
1
1
  require_relative '../test_helper'
2
2
 
3
- class AnalogIOPotentiometerTest < MiniTest::Test
3
+ class AnalogIOPotentiometerTest < Minitest::Test
4
4
  def board
5
5
  @board ||= BoardMock.new
6
6
  end
@@ -10,7 +10,7 @@ class AnalogIOPotentiometerTest < MiniTest::Test
10
10
  end
11
11
 
12
12
  def test_setup
13
- mock = MiniTest::Mock.new.expect(:call, nil, [14,8])
13
+ mock = Minitest::Mock.new.expect(:call, nil, [14,8])
14
14
  board.stub(:analog_listen, mock) do
15
15
  part
16
16
  end
@@ -33,7 +33,7 @@ class BusPeripheralAddressedTest < Minitest::Test
33
33
  end
34
34
 
35
35
  def test_can_use_bus_atomically
36
- mock = MiniTest::Mock.new
36
+ mock = Minitest::Mock.new
37
37
  1.times {mock.expect(:call, nil)}
38
38
 
39
39
  bus.mutex.stub(:synchronize, mock) do
@@ -28,7 +28,7 @@ class BusPeripheralTest < Minitest::Test
28
28
  end
29
29
 
30
30
  def test_can_use_bus_atomically
31
- mock = MiniTest::Mock.new
31
+ mock = Minitest::Mock.new
32
32
  1.times {mock.expect(:call, nil)}
33
33
 
34
34
  bus.mutex.stub(:synchronize, mock) do
@@ -29,7 +29,7 @@ class CallbacksTest < Minitest::Test
29
29
 
30
30
  def test_callback_mutex
31
31
  callback = Proc.new{}
32
- mock = MiniTest::Mock.new
32
+ mock = Minitest::Mock.new
33
33
  3.times {mock.expect(:call, nil)}
34
34
 
35
35
  part.callback_mutex.stub(:synchronize, mock) do
@@ -73,8 +73,8 @@ class CallbacksTest < Minitest::Test
73
73
  end
74
74
 
75
75
  def test_update_runs_callbacks_and_removes_read_callbacks
76
- cb1 = MiniTest::Mock.new.expect :call, nil
77
- cb2 = MiniTest::Mock.new.expect :call, nil
76
+ cb1 = Minitest::Mock.new.expect :call, nil
77
+ cb2 = Minitest::Mock.new.expect :call, nil
78
78
  part.add_callback { cb1.call }
79
79
  part.add_callback(:read) { cb2.call }
80
80
  part.update("data")
@@ -84,7 +84,7 @@ class CallbacksTest < Minitest::Test
84
84
  end
85
85
 
86
86
  def test_pre_callback_filter_modifies_data
87
- cb = MiniTest::Mock.new.expect :call, nil, ["denko: value"]
87
+ cb = Minitest::Mock.new.expect :call, nil, ["denko: value"]
88
88
  part.add_callback { |x| cb.call(x) }
89
89
  part.update("value")
90
90
  cb.verify
@@ -36,7 +36,7 @@ class ComponentTest < Minitest::Test
36
36
  end
37
37
 
38
38
  def test_state_through_mutex
39
- mock = MiniTest::Mock.new
39
+ mock = Minitest::Mock.new
40
40
  2.times {mock.expect(:call, nil)}
41
41
 
42
42
  part.instance_variable_get(:@state_mutex).stub(:synchronize, mock) do
@@ -47,7 +47,7 @@ class ComponentTest < Minitest::Test
47
47
  end
48
48
 
49
49
  def test_micro_delay
50
- mock = MiniTest::Mock.new.expect :call, nil, [1000]
50
+ mock = Minitest::Mock.new.expect :call, nil, [1000]
51
51
 
52
52
  board.stub(:micro_delay, mock) do
53
53
  part.micro_delay(1000)