denko 0.13.2 → 0.13.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build_megaavr.yml +1 -1
- data/CHANGELOG.md +40 -0
- data/DEPS_CLI.md +5 -0
- data/DEPS_IDE.md +5 -0
- data/HARDWARE.md +20 -12
- data/README.md +1 -1
- data/benchmarks/i2c_ssd1306_refresh.rb +7 -2
- data/examples/pulse_io/buzzer.rb +0 -40
- data/lib/denko/board/led_array.rb +3 -6
- data/lib/denko/message.rb +1 -1
- data/lib/denko/version.rb +1 -1
- data/src/denko_wifi.ino +38 -3
- data/src/lib/Denko.cpp +0 -9
- data/src/lib/Denko.h +1 -2
- data/src/lib/DenkoDefines.h +14 -6
- data/src/lib/DenkoLEDArray.cpp +4 -10
- data/target.yml +1 -35
- data/test/analog_io/input_test.rb +3 -3
- data/test/analog_io/output_test.rb +1 -1
- data/test/analog_io/potentiometer_test.rb +2 -2
- data/test/behaviors/bus_peripheral_addressed.rb +1 -1
- data/test/behaviors/bus_peripheral_test.rb +1 -1
- data/test/behaviors/callbacks_test.rb +4 -4
- data/test/behaviors/component_test.rb +2 -2
- data/test/behaviors/listener_test.rb +3 -3
- data/test/behaviors/poller_test.rb +3 -3
- data/test/behaviors/reader_test.rb +4 -4
- data/test/behaviors/subcomponents_test.rb +1 -1
- data/test/behaviors/threaded_test.rb +7 -7
- data/test/board/board_test.rb +8 -8
- data/test/board/core_test.rb +12 -12
- data/test/board/eeprom_test.rb +2 -2
- data/test/board/i2c_test.rb +5 -5
- data/test/board/infrared_test.rb +1 -1
- data/test/board/message_test.rb +1 -1
- data/test/board/one_wire_test.rb +4 -4
- data/test/board/pulse_test.rb +2 -2
- data/test/board/servo_test.rb +3 -3
- data/test/board/spi_test.rb +3 -3
- data/test/board/tone_test.rb +2 -2
- data/test/connection/serial_test.rb +13 -13
- data/test/digital_io/input_test.rb +7 -7
- data/test/digital_io/output_test.rb +5 -5
- data/test/digital_io/rotary_encoder_test.rb +4 -4
- data/test/display/hd44780_test.rb +1 -1
- data/test/eeprom/built_in_test.rb +1 -1
- data/test/i2c/bus_test.rb +5 -5
- data/test/i2c/peripheral_test.rb +4 -4
- data/test/led/base_test.rb +2 -2
- data/test/led/rgb_test.rb +6 -6
- data/test/led/seven_segment_test.rb +8 -8
- data/test/motor/servo_test.rb +6 -6
- data/test/motor/stepper_test.rb +5 -5
- data/test/one_wire/bus_test.rb +9 -9
- data/test/one_wire/peripheral_test.rb +17 -17
- data/test/pulse_io/buzzer_test.rb +4 -4
- data/test/pulse_io/ir_transmitter_test.rb +2 -2
- data/test/pulse_io/pwm_output_test.rb +4 -4
- data/test/rtc/ds3231_test.rb +4 -4
- data/test/sensor/dht_test.rb +3 -3
- data/test/sensor/ds18b20_test.rb +9 -9
- data/test/spi/bus_test.rb +4 -4
- data/test/spi/input_register_test.rb +8 -8
- data/test/spi/output_register_test.rb +4 -4
- data/test/uart/bitbang_test.rb +3 -3
- metadata +2 -357
- data/vendor/board-maps/.gitignore +0 -56
- data/vendor/board-maps/.gitmodules +0 -24
- data/vendor/board-maps/BoardMap.h +0 -1392
- data/vendor/board-maps/README.md +0 -52
- data/vendor/board-maps/lib/boards_parser.rb +0 -66
- data/vendor/board-maps/lib/header_parser.rb +0 -189
- data/vendor/board-maps/run.rb +0 -57
- data/vendor/board-maps/yaml/0XCB_HELIOS.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2.yml +0 -25
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_REVTFT.yml +0 -25
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_TFT.yml +0 -27
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3.yml +0 -34
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_NOPSRAM.yml +0 -34
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_REVTFT.yml +0 -25
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_TFT.yml +0 -27
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32_V2.yml +0 -34
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_CAN.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_DVI.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_PROP_MAKER.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_RFM.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_SCORPIO.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_THINKINK.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_USB_HOST.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_ITSYBITSY_ESP32.yml +0 -24
- data/vendor/board-maps/yaml/ADAFRUIT_ITSYBITSY_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_KB2040_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_MACROPAD_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_MATRIXPORTAL_ESP32S3.yml +0 -16
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32C3.yml +0 -12
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S2.yml +0 -22
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_N4R2.yml +0 -20
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_NOPSRAM.yml +0 -20
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32_PICO.yml +0 -28
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_STEMMAFRIEND_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ADAFRUIT_TRINKEYQT_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/ALKS.yml +0 -34
- data/vendor/board-maps/yaml/AMPERKA_WIFI_SLOT.yml +0 -16
- data/vendor/board-maps/yaml/ARTRONSHOP_RP2_NANO.yml +0 -32
- data/vendor/board-maps/yaml/AVR_ADK.yml +0 -24
- data/vendor/board-maps/yaml/AVR_BT.yml +0 -16
- data/vendor/board-maps/yaml/AVR_CIRCUITPLAY.yml +0 -14
- data/vendor/board-maps/yaml/AVR_DUEMILANOVE.yml +0 -16
- data/vendor/board-maps/yaml/AVR_ESPLORA.yml +0 -20
- data/vendor/board-maps/yaml/AVR_ETHERNET.yml +0 -16
- data/vendor/board-maps/yaml/AVR_FIO.yml +0 -16
- data/vendor/board-maps/yaml/AVR_GEMMA.yml +0 -6
- data/vendor/board-maps/yaml/AVR_INDUSTRIAL101.yml +0 -20
- data/vendor/board-maps/yaml/AVR_LEONARDO.yml +0 -20
- data/vendor/board-maps/yaml/AVR_LEONARDO_ETH.yml +0 -20
- data/vendor/board-maps/yaml/AVR_LILYPAD.yml +0 -16
- data/vendor/board-maps/yaml/AVR_LILYPAD_USB.yml +0 -20
- data/vendor/board-maps/yaml/AVR_LININO_ONE.yml +0 -20
- data/vendor/board-maps/yaml/AVR_MEGA.yml +0 -24
- data/vendor/board-maps/yaml/AVR_MEGA2560.yml +0 -24
- data/vendor/board-maps/yaml/AVR_MICRO.yml +0 -20
- data/vendor/board-maps/yaml/AVR_MINI.yml +0 -16
- data/vendor/board-maps/yaml/AVR_NANO.yml +0 -16
- data/vendor/board-maps/yaml/AVR_NANO_EVERY.yml +0 -22
- data/vendor/board-maps/yaml/AVR_NG.yml +0 -16
- data/vendor/board-maps/yaml/AVR_PRO.yml +0 -16
- data/vendor/board-maps/yaml/AVR_ROBOT_CONTROL.yml +0 -22
- data/vendor/board-maps/yaml/AVR_ROBOT_MOTOR.yml +0 -19
- data/vendor/board-maps/yaml/AVR_UNO.yml +0 -16
- data/vendor/board-maps/yaml/AVR_UNO_WIFI_DEV_ED.yml +0 -16
- data/vendor/board-maps/yaml/AVR_UNO_WIFI_REV2.yml +0 -22
- data/vendor/board-maps/yaml/AVR_YUN.yml +0 -20
- data/vendor/board-maps/yaml/AVR_YUNMINI.yml +0 -20
- data/vendor/board-maps/yaml/AirM2M_CORE_ESP32C3.yml +0 -14
- data/vendor/board-maps/yaml/BEE_DATA_LOGGER.yml +0 -39
- data/vendor/board-maps/yaml/BPI_BIT.yml +0 -9
- data/vendor/board-maps/yaml/BPI_LEAF_S3.yml +0 -41
- data/vendor/board-maps/yaml/BRIDGETEK_IDM2040-7A.yml +0 -48
- data/vendor/board-maps/yaml/BeeMotionS3.yml +0 -45
- data/vendor/board-maps/yaml/Bee_Motion.yml +0 -30
- data/vendor/board-maps/yaml/Bee_Motion_Mini.yml +0 -1
- data/vendor/board-maps/yaml/Bee_S3.yml +0 -38
- data/vendor/board-maps/yaml/CHALLENGER_2040_LORA_RP2040.yml +0 -39
- data/vendor/board-maps/yaml/CHALLENGER_2040_LTE_RP2040.yml +0 -38
- data/vendor/board-maps/yaml/CHALLENGER_2040_NFC_RP2040.yml +0 -32
- data/vendor/board-maps/yaml/CHALLENGER_2040_SDRTC_RP2040.yml +0 -36
- data/vendor/board-maps/yaml/CHALLENGER_2040_SUBGHZ_RP2040.yml +0 -39
- data/vendor/board-maps/yaml/CHALLENGER_2040_UWB_RP2040.yml +0 -39
- data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI6_BLE_RP2040.yml +0 -42
- data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI_BLE_RP2040.yml +0 -42
- data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI_RP2040.yml +0 -38
- data/vendor/board-maps/yaml/CHALLENGER_NB_2040_WIFI_RP2040.yml +0 -38
- data/vendor/board-maps/yaml/CRABIK_SLOT_ESP32_S3.yml +0 -19
- data/vendor/board-maps/yaml/CYTRON_MAKER_FEATHER_AIOT_S3.yml +0 -29
- data/vendor/board-maps/yaml/CYTRON_MAKER_NANO_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/CYTRON_MAKER_PI_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/CoreESP32.yml +0 -53
- data/vendor/board-maps/yaml/D1_MINI32.yml +0 -45
- data/vendor/board-maps/yaml/D1_UNO32.yml +0 -28
- data/vendor/board-maps/yaml/DATANOISETV_PICOADK.yml +0 -48
- data/vendor/board-maps/yaml/DENKY.yml +0 -35
- data/vendor/board-maps/yaml/DENKY_PICOV3.yml +0 -35
- data/vendor/board-maps/yaml/DENKY_WROOM32.yml +0 -35
- data/vendor/board-maps/yaml/DEPARTMENT_OF_ALCHEMY_MINIMAIN_ESP32S2.yml +0 -26
- data/vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32_C3.yml +0 -14
- data/vendor/board-maps/yaml/DFROBOT_BEETLE_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32E.yml +0 -49
- data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32S3.yml +0 -38
- data/vendor/board-maps/yaml/DFROBOT_ROMEO_ESP32S3.yml +0 -7
- data/vendor/board-maps/yaml/DPU_ESP32.yml +0 -35
- data/vendor/board-maps/yaml/DYDK.yml +0 -38
- data/vendor/board-maps/yaml/DYDK1A.yml +0 -37
- data/vendor/board-maps/yaml/DYDK1Av2.yml +0 -45
- data/vendor/board-maps/yaml/DYG.yml +0 -20
- data/vendor/board-maps/yaml/DYM.yml +0 -40
- data/vendor/board-maps/yaml/DYMv2.yml +0 -39
- data/vendor/board-maps/yaml/D_Duino_32.yml +0 -37
- data/vendor/board-maps/yaml/ELECTRONICCATS_HUNTERCAT_NFC.yml +0 -44
- data/vendor/board-maps/yaml/ESP320.yml +0 -8
- data/vendor/board-maps/yaml/ESP32C3_DEV.yml +0 -14
- data/vendor/board-maps/yaml/ESP32C3_M1_I_KIT.yml +0 -13
- data/vendor/board-maps/yaml/ESP32S2_DEV.yml +0 -43
- data/vendor/board-maps/yaml/ESP32S2_THING_PLUS.yml +0 -44
- data/vendor/board-maps/yaml/ESP32S2_USB.yml +0 -43
- data/vendor/board-maps/yaml/ESP32S3_CAM_LCD.yml +0 -7
- data/vendor/board-maps/yaml/ESP32S3_DEV.yml +0 -38
- data/vendor/board-maps/yaml/ESP32_DEV.yml +0 -35
- data/vendor/board-maps/yaml/ESP32_DEVKIT_LIPO.yml +0 -35
- data/vendor/board-maps/yaml/ESP32_EVB.yml +0 -7
- data/vendor/board-maps/yaml/ESP32_GATEWAY.yml +0 -13
- data/vendor/board-maps/yaml/ESP32_GATEWAY_C.yml +0 -13
- data/vendor/board-maps/yaml/ESP32_GATEWAY_E.yml +0 -13
- data/vendor/board-maps/yaml/ESP32_GATEWAY_F.yml +0 -13
- data/vendor/board-maps/yaml/ESP32_IOT_REDBOARD.yml +0 -36
- data/vendor/board-maps/yaml/ESP32_MICROMOD.yml +0 -24
- data/vendor/board-maps/yaml/ESP32_PICO.yml +0 -35
- data/vendor/board-maps/yaml/ESP32_POE.yml +0 -7
- data/vendor/board-maps/yaml/ESP32_POE_ISO.yml +0 -7
- data/vendor/board-maps/yaml/ESP32_S3_BOX.yml +0 -19
- data/vendor/board-maps/yaml/ESP32_S3_USB_OTG.yml +0 -11
- data/vendor/board-maps/yaml/ESP32_THING.yml +0 -36
- data/vendor/board-maps/yaml/ESP32_THING_PLUS.yml +0 -33
- data/vendor/board-maps/yaml/ESP32_THING_PLUS_C.yml +0 -33
- data/vendor/board-maps/yaml/ESP32_WROOM_DA.yml +0 -35
- data/vendor/board-maps/yaml/ESP32_WROVER_KIT.yml +0 -35
- data/vendor/board-maps/yaml/ESP8266_ADAFRUIT_HUZZAH.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_AGRUMINO_LEMON_V4.yml +0 -8
- data/vendor/board-maps/yaml/ESP8266_ARDUINO_PRIMO.yml +0 -7
- data/vendor/board-maps/yaml/ESP8266_ARDUINO_STAR_OTTO.yml +0 -7
- data/vendor/board-maps/yaml/ESP8266_ARDUINO_UNOWIFI.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESP01.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESP07.yml +0 -20
- data/vendor/board-maps/yaml/ESP8266_ESP12.yml +0 -20
- data/vendor/board-maps/yaml/ESP8266_ESP13.yml +0 -17
- data/vendor/board-maps/yaml/ESP8266_ESP210.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESPECTRO_CORE.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESPINO_ESP12.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESPINO_ESP13.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESPRESSO_LITE_V1.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_ESPRESSO_LITE_V2.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_GENERIC.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_INVENT_ONE.yml +0 -22
- data/vendor/board-maps/yaml/ESP8266_NODEMCU_ESP12.yml +0 -20
- data/vendor/board-maps/yaml/ESP8266_NODEMCU_ESP12E.yml +0 -20
- data/vendor/board-maps/yaml/ESP8266_OAK.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_PHOENIX_V1.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_PHOENIX_V2.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_SCHIRMILABS_EDUINO_WIFI.yml +0 -25
- data/vendor/board-maps/yaml/ESP8266_SONOFF_BASIC.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_SONOFF_S20.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_SONOFF_SV.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_SONOFF_TH.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_THING.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_THING_DEV.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINI.yml +0 -18
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINILITE.yml +0 -18
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINIPRO.yml +0 -18
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1R1.yml +0 -25
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1WROOM02.yml +0 -18
- data/vendor/board-maps/yaml/ESP8266_WIO_LINK.yml +0 -9
- data/vendor/board-maps/yaml/ESP8266_XINABOX_CW01.yml +0 -9
- data/vendor/board-maps/yaml/ESPECTRO32.yml +0 -36
- data/vendor/board-maps/yaml/ESPea32.yml +0 -36
- data/vendor/board-maps/yaml/ESPino32.yml +0 -36
- data/vendor/board-maps/yaml/ET-Board.yml +0 -26
- data/vendor/board-maps/yaml/EXTREMEELEXTRONICS_RC2040.yml +0 -46
- data/vendor/board-maps/yaml/Edgebox-ESP-100.yml +0 -7
- data/vendor/board-maps/yaml/FEATHERS2.yml +0 -43
- data/vendor/board-maps/yaml/FEATHERS2NEO.yml +0 -31
- data/vendor/board-maps/yaml/FEATHERS3.yml +0 -32
- data/vendor/board-maps/yaml/FEATHER_ESP32.yml +0 -32
- data/vendor/board-maps/yaml/FLYBOARD2040_CORE.yml +0 -48
- data/vendor/board-maps/yaml/FRANZININHO_WIFI.yml +0 -43
- data/vendor/board-maps/yaml/FRANZININHO_WIFI_MSC.yml +0 -43
- data/vendor/board-maps/yaml/FROG_ESP32.yml +0 -35
- data/vendor/board-maps/yaml/FUNHOUSE_ESP32S2.yml +0 -22
- data/vendor/board-maps/yaml/GEN4_IOD.yml +0 -9
- data/vendor/board-maps/yaml/GENERIC_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/HEALTHYPI_4.yml +0 -36
- data/vendor/board-maps/yaml/HONEYLEMON.yml +0 -36
- data/vendor/board-maps/yaml/HORNBILL_ESP32_DEV.yml +0 -36
- data/vendor/board-maps/yaml/HORNBILL_ESP32_MINIMA.yml +0 -19
- data/vendor/board-maps/yaml/ILABS_2040_RPICO32_RP2040.yml +0 -47
- data/vendor/board-maps/yaml/IMBRIOS_LOGSENS_V1P1.yml +0 -23
- data/vendor/board-maps/yaml/INTOROBOT_ESP32_DEV.yml +0 -34
- data/vendor/board-maps/yaml/LILYGO_T_DISPLAY_S3.yml +0 -32
- data/vendor/board-maps/yaml/LOLIN32.yml +0 -36
- data/vendor/board-maps/yaml/LOLIN32_LITE.yml +0 -36
- data/vendor/board-maps/yaml/LOLIN_C3_MINI.yml +0 -14
- data/vendor/board-maps/yaml/LOLIN_D32.yml +0 -36
- data/vendor/board-maps/yaml/LOLIN_D32_PRO.yml +0 -36
- data/vendor/board-maps/yaml/LOLIN_S2_MINI.yml +0 -44
- data/vendor/board-maps/yaml/LOLIN_S2_PICO.yml +0 -44
- data/vendor/board-maps/yaml/LOLIN_S3.yml +0 -40
- data/vendor/board-maps/yaml/LOLIN_S3_MINI.yml +0 -40
- data/vendor/board-maps/yaml/LOLIN_S3_PRO.yml +0 -40
- data/vendor/board-maps/yaml/Lion_Bit_Dev_Board.yml +0 -18
- data/vendor/board-maps/yaml/LoPy.yml +0 -37
- data/vendor/board-maps/yaml/LoPy4.yml +0 -37
- data/vendor/board-maps/yaml/M5STACK_CORES3.yml +0 -8
- data/vendor/board-maps/yaml/M5STACK_Core2.yml +0 -9
- data/vendor/board-maps/yaml/M5STACK_FIRE.yml +0 -10
- data/vendor/board-maps/yaml/M5Stack-Timer-CAM.yml +0 -10
- data/vendor/board-maps/yaml/M5Stack_ATOM.yml +0 -10
- data/vendor/board-maps/yaml/M5Stack_ATOMS3.yml +0 -7
- data/vendor/board-maps/yaml/M5Stack_CoreInk.yml +0 -9
- data/vendor/board-maps/yaml/M5Stack_Core_ESP32.yml +0 -10
- data/vendor/board-maps/yaml/M5Stack_Station.yml +0 -10
- data/vendor/board-maps/yaml/M5Stick_C.yml +0 -10
- data/vendor/board-maps/yaml/MAGTAG29_ESP32S2.yml +0 -31
- data/vendor/board-maps/yaml/MELOPERO_COOKIE_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/MELOPERO_SHAKE_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/METRO_ESP32S2.yml +0 -44
- data/vendor/board-maps/yaml/MGBOT_IOTIK32A.yml +0 -36
- data/vendor/board-maps/yaml/MGBOT_IOTIK32B.yml +0 -36
- data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32DEVKIT.yml +0 -36
- data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32MINIKIT.yml +0 -36
- data/vendor/board-maps/yaml/MICROS2.yml +0 -44
- data/vendor/board-maps/yaml/MINIMA.yml +0 -15
- data/vendor/board-maps/yaml/MOD_WIFI_ESP8266.yml +0 -9
- data/vendor/board-maps/yaml/Metro.yml +0 -8
- data/vendor/board-maps/yaml/NANO32.yml +0 -36
- data/vendor/board-maps/yaml/NANO_RP2040_CONNECT.yml +0 -35
- data/vendor/board-maps/yaml/NEBULAS3.yml +0 -33
- data/vendor/board-maps/yaml/NEKOSYSTEMS_BL2040_MINI.yml +0 -48
- data/vendor/board-maps/yaml/NULLBITS_BIT_C_PRO.yml +0 -48
- data/vendor/board-maps/yaml/Node32s.yml +0 -36
- data/vendor/board-maps/yaml/NodeMCU_32S.yml +0 -36
- data/vendor/board-maps/yaml/ODROID_ESP32.yml +0 -10
- data/vendor/board-maps/yaml/ONEHORSE_ESP32_DEV.yml +0 -34
- data/vendor/board-maps/yaml/OROCA_EDUBOT.yml +0 -33
- data/vendor/board-maps/yaml/PIMORONI_PGA2040.yml +0 -48
- data/vendor/board-maps/yaml/PIMORONI_PLASMA2040.yml +0 -29
- data/vendor/board-maps/yaml/PORTENTA_C33.yml +0 -28
- data/vendor/board-maps/yaml/PROS3.yml +0 -33
- data/vendor/board-maps/yaml/PYCOM_GPY.yml +0 -37
- data/vendor/board-maps/yaml/Piranha.yml +0 -22
- data/vendor/board-maps/yaml/Pocket32.yml +0 -36
- data/vendor/board-maps/yaml/QUANTUM.yml +0 -35
- data/vendor/board-maps/yaml/RASPBERRY_PI_PICO.yml +0 -48
- data/vendor/board-maps/yaml/RASPBERRY_PI_PICO_W.yml +0 -48
- data/vendor/board-maps/yaml/REDPILL_ESP32S3.yml +0 -42
- data/vendor/board-maps/yaml/RMP.yml +0 -43
- data/vendor/board-maps/yaml/SAMD_CIRCUITPLAYGROUND_EXPRESS.yml +0 -11
- data/vendor/board-maps/yaml/SAMD_MKR1000.yml +0 -20
- data/vendor/board-maps/yaml/SAMD_MKRFox1200.yml +0 -19
- data/vendor/board-maps/yaml/SAMD_MKRGSM1400.yml +0 -15
- data/vendor/board-maps/yaml/SAMD_MKRNB1500.yml +0 -15
- data/vendor/board-maps/yaml/SAMD_MKRVIDOR4000.yml +0 -19
- data/vendor/board-maps/yaml/SAMD_MKRWAN1300.yml +0 -18
- data/vendor/board-maps/yaml/SAMD_MKRWAN1310.yml +0 -18
- data/vendor/board-maps/yaml/SAMD_MKRWIFI1010.yml +0 -19
- data/vendor/board-maps/yaml/SAMD_MKRZERO.yml +0 -19
- data/vendor/board-maps/yaml/SAMD_NANO_33_IOT.yml +0 -13
- data/vendor/board-maps/yaml/SAMD_TIAN.yml +0 -15
- data/vendor/board-maps/yaml/SAMD_ZERO.yml +0 -14
- data/vendor/board-maps/yaml/SAM_DUE.yml +0 -28
- data/vendor/board-maps/yaml/SAM_ZERO.yml +0 -15
- data/vendor/board-maps/yaml/SEEED_INDICATOR_RP2040.yml +0 -47
- data/vendor/board-maps/yaml/SEEED_XIAO_RP2040.yml +0 -29
- data/vendor/board-maps/yaml/SOLDERPARTY_RP2040_STAMP.yml +0 -48
- data/vendor/board-maps/yaml/SONOFF_DUALR3.yml +0 -35
- data/vendor/board-maps/yaml/SPARKFUN_PROMICRO_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/SPARKFUN_THINGPLUS_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/STAMP_S3.yml +0 -4
- data/vendor/board-maps/yaml/TAMC_TERMOD_S3.yml +0 -41
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1262.yml +0 -28
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1268.yml +0 -28
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1276.yml +0 -28
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1278.yml +0 -28
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1280.yml +0 -28
- data/vendor/board-maps/yaml/TBeam.yml +0 -28
- data/vendor/board-maps/yaml/TINYPICO.yml +0 -35
- data/vendor/board-maps/yaml/TINYS2.yml +0 -43
- data/vendor/board-maps/yaml/TINYS3.yml +0 -25
- data/vendor/board-maps/yaml/TTGO-T-OI-PLUS_DEV.yml +0 -11
- data/vendor/board-maps/yaml/TTGO_LoRa32_V1.yml +0 -38
- data/vendor/board-maps/yaml/TTGO_LoRa32_V2.yml +0 -38
- data/vendor/board-maps/yaml/TTGO_LoRa32_v21new.yml +0 -38
- data/vendor/board-maps/yaml/TTGO_T1.yml +0 -36
- data/vendor/board-maps/yaml/TTGO_T7_V13_Mini32.yml +0 -36
- data/vendor/board-maps/yaml/TTGO_T7_V14_Mini32.yml +0 -36
- data/vendor/board-maps/yaml/TWATCH_2020_V1.yml +0 -9
- data/vendor/board-maps/yaml/TWATCH_2020_V2.yml +0 -9
- data/vendor/board-maps/yaml/TWATCH_2020_V3.yml +0 -9
- data/vendor/board-maps/yaml/TWATCH_BASE.yml +0 -9
- data/vendor/board-maps/yaml/TWatch.yml +0 -9
- data/vendor/board-maps/yaml/Trueverit_ESP32_Universal_IoT_Driver.yml +0 -18
- data/vendor/board-maps/yaml/Trueverit_ESP32_Universal_IoT_Driver_MK_II.yml +0 -18
- data/vendor/board-maps/yaml/UBLOX_NINA_W10.yml +0 -57
- data/vendor/board-maps/yaml/UBLOX_NORA_W10.yml +0 -43
- data/vendor/board-maps/yaml/UNOWIFIR4.yml +0 -17
- data/vendor/board-maps/yaml/UPESY_RP2040_DEVKIT.yml +0 -48
- data/vendor/board-maps/yaml/VALTRACK_V4_MFW_ESP32_C3.yml +0 -23
- data/vendor/board-maps/yaml/VALTRACK_V4_VTS_ESP32_C3.yml +0 -23
- data/vendor/board-maps/yaml/VIYALAB_MIZU_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/WATCHY.yml +0 -7
- data/vendor/board-maps/yaml/WATCHY_V10.yml +0 -7
- data/vendor/board-maps/yaml/WATCHY_V15.yml +0 -7
- data/vendor/board-maps/yaml/WATCHY_V20.yml +0 -7
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_0_96.yml +0 -47
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_1_28.yml +0 -47
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_ONE.yml +0 -47
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_PLUS.yml +0 -48
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_ZERO.yml +0 -47
- data/vendor/board-maps/yaml/WESP32.yml +0 -17
- data/vendor/board-maps/yaml/WIDORA_AIR.yml +0 -34
- data/vendor/board-maps/yaml/WIFIDUINO_ESP8266.yml +0 -23
- data/vendor/board-maps/yaml/WIFINFO.yml +0 -20
- data/vendor/board-maps/yaml/WIPY3.yml +0 -37
- data/vendor/board-maps/yaml/WIZNET_5100S_EVB_PICO.yml +0 -48
- data/vendor/board-maps/yaml/WIZNET_5500_EVB_PICO.yml +0 -48
- data/vendor/board-maps/yaml/WIZNET_WIZFI360_EVB_PICO.yml +0 -48
- data/vendor/board-maps/yaml/WT32_ETH01.yml +0 -8
- data/vendor/board-maps/yaml/WiFiduino32S3.yml +0 -27
- data/vendor/board-maps/yaml/WiFiduinoV2.yml +0 -27
- data/vendor/board-maps/yaml/Wifiduino32.yml +0 -40
- data/vendor/board-maps/yaml/XIAO_ESP32C3.yml +0 -22
- data/vendor/board-maps/yaml/XIAO_ESP32S3.yml +0 -37
- data/vendor/board-maps/yaml/YD_RP2040.yml +0 -48
- data/vendor/board-maps/yaml/atmegazero_esp32s2.yml +0 -30
- data/vendor/board-maps/yaml/connaxio_espoir.yml +0 -24
- data/vendor/board-maps/yaml/esp32vn_iot_uno.yml +0 -31
- data/vendor/board-maps/yaml/fm_devkit.yml +0 -15
- data/vendor/board-maps/yaml/heltec_wifi_32_lora_V3.yml +0 -41
- data/vendor/board-maps/yaml/heltec_wifi_kit_32.yml +0 -38
- data/vendor/board-maps/yaml/heltec_wifi_kit_32_V3.yml +0 -42
- data/vendor/board-maps/yaml/heltec_wifi_lora_32.yml +0 -36
- data/vendor/board-maps/yaml/heltec_wifi_lora_32_V2.yml +0 -36
- data/vendor/board-maps/yaml/heltec_wireless_stick.yml +0 -36
- data/vendor/board-maps/yaml/heltec_wireless_stick_LITE.yml +0 -36
- data/vendor/board-maps/yaml/openkb.yml +0 -37
- data/vendor/board-maps/yaml/roboheart_hercules.yml +0 -26
- data/vendor/board-maps/yaml/sensesiot_weizen.yml +0 -35
- data/vendor/board-maps/yaml/uPesy_WROOM.yml +0 -36
- data/vendor/board-maps/yaml/uPesy_WROVER.yml +0 -36
- data/vendor/board-maps/yaml/unphone8.yml +0 -42
- data/vendor/board-maps/yaml/unphone9.yml +0 -42
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '082654ef6ccaec931c9cba643db7c528cc8b20d33e969af6a101a735078b7c02'
|
4
|
+
data.tar.gz: 780397a81acfa1a44591deb0c1beedb6f39071b606fb108914c79af334e47847
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58e7ec2753368aa202a63792c6f142bd150a386c95d37605ee4c1985022d4c06e552108f504675c599effcde0e0438b7d1029d0c700ec7fee40fffdffc60d1f4
|
7
|
+
data.tar.gz: fec058bef713c8f5c7e84eed3dd87a84db93267e921abb27d3c4966b40bf66a223a3a76442559742bec04a58665e18d3d8d30cd3954fdb846148e5d1fb3b0cd2
|
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
|
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 | :
|
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,
|
29
|
-
| RA4M1 | :yellow_heart: | Uno R4 Minima, Uno R4 WiFi | IR
|
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
|
31
|
+
### Arduino Networking
|
32
32
|
|
33
|
-
| Chip | Status |
|
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 |
|
37
|
-
| ATWINC1500 | :
|
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
|
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
|
-
|
|
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
|
+
# 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
|
26
|
-
# Arduino Uno R4
|
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'
|
data/examples/pulse_io/buzzer.rb
CHANGED
@@ -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
|
-
|
10
|
-
|
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 >
|
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
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
|
-
|
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];
|
204
|
+
byte valStr[4]; uint16_t val;
|
206
205
|
byte auxMsg[AUX_SIZE];
|
207
206
|
|
208
207
|
//
|
data/src/lib/DenkoDefines.h
CHANGED
@@ -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
|
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
|
-
//
|
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,
|
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
|
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/
|
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
|
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
|
data/src/lib/DenkoLEDArray.cpp
CHANGED
@@ -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
|
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
|
-
|
31
|
-
memcpy(ledArray.getPixels(), &auxMsg[4], val * 3);
|
30
|
+
memcpy(ledArray.getPixels(), &auxMsg[4], val);
|
32
31
|
|
33
|
-
//
|
34
|
-
|
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:
|
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 =
|
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 =
|
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 =
|
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
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require_relative '../test_helper'
|
2
2
|
|
3
|
-
class AnalogIOPotentiometerTest <
|
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 =
|
13
|
+
mock = Minitest::Mock.new.expect(:call, nil, [14,8])
|
14
14
|
board.stub(:analog_listen, mock) do
|
15
15
|
part
|
16
16
|
end
|
@@ -29,7 +29,7 @@ class CallbacksTest < Minitest::Test
|
|
29
29
|
|
30
30
|
def test_callback_mutex
|
31
31
|
callback = Proc.new{}
|
32
|
-
mock =
|
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 =
|
77
|
-
cb2 =
|
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 =
|
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 =
|
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 =
|
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)
|