denko 0.13.5 → 0.14.0
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_avr.yml → build_atmega_avr.yml} +18 -18
- data/.github/workflows/{build_megaavr.yml → build_atmega_megaavr.yml} +18 -18
- data/.github/workflows/{build_sam3x.yml → build_atsam3x.yml} +17 -17
- data/.github/workflows/{build_samd.yml → build_atsamd21.yml} +18 -18
- data/.github/workflows/build_esp32.yml +17 -17
- data/.github/workflows/build_esp32c3.yml +57 -0
- data/.github/workflows/build_esp32c6.yml +57 -0
- data/.github/workflows/build_esp32h2.yml +56 -0
- data/.github/workflows/build_esp32s2.yml +57 -0
- data/.github/workflows/build_esp32s3.yml +57 -0
- data/.github/workflows/build_esp8266.yml +15 -15
- data/.github/workflows/build_ra4m1.yml +16 -16
- data/.github/workflows/build_rp2040.yml +17 -16
- data/.github/workflows/ruby.yml +20 -20
- data/CHANGELOG.md +195 -11
- data/DEPS_CLI.md +9 -9
- data/DEPS_IDE.md +17 -18
- data/HARDWARE.md +50 -51
- data/README.md +61 -53
- data/Rakefile +1 -1
- data/benchmarks/analog_listen.rb +49 -0
- data/benchmarks/digital_write.rb +28 -0
- data/benchmarks/i2c_ssd1306_refresh.rb +13 -6
- data/build +1 -1
- data/denko.gemspec +5 -2
- data/examples/advanced/{m5_env.rb → m5_env3.rb} +12 -14
- data/examples/advanced/rotary_encoder_mac_volume.rb +18 -13
- data/examples/advanced/ssd1306_time_temp_rh.rb +8 -13
- data/examples/analog_io/ads1100.rb +48 -0
- data/examples/analog_io/ads1115.rb +2 -2
- data/examples/analog_io/ads1118.rb +3 -11
- data/examples/analog_io/input.rb +17 -16
- data/examples/analog_io/input_smoothing.rb +27 -0
- data/examples/analog_io/potentiometer.rb +31 -0
- data/examples/connection/binary_echo.rb +34 -0
- data/examples/connection/tcp.rb +12 -27
- data/examples/digital_io/button.rb +7 -3
- data/examples/digital_io/relay.rb +17 -0
- data/examples/digital_io/rotary_encoder.rb +21 -11
- data/examples/display/hd44780.rb +13 -5
- data/examples/display/ssd1306.rb +20 -17
- data/examples/display/ssd1306_s2_pico.rb +2 -2
- data/examples/i2c/search.rb +10 -26
- data/examples/led/apa102_bounce.rb +3 -4
- data/examples/led/apa102_fade.rb +44 -0
- data/examples/led/builtin_blink.rb +3 -1
- data/examples/led/builtin_fade.rb +19 -0
- data/examples/led/rgb_led.rb +31 -0
- data/examples/led/seven_segment_char_echo.rb +4 -2
- data/examples/led/ws2812_bounce.rb +5 -7
- data/examples/led/ws2812_builtin_blink.rb +3 -2
- data/examples/led/ws2812_fade.rb +43 -0
- data/examples/motor/l298.rb +10 -8
- data/examples/motor/servo.rb +4 -3
- data/examples/motor/stepper.rb +13 -13
- data/examples/one_wire/search.rb +32 -0
- data/examples/pulse_io/buzzer.rb +8 -3
- data/examples/pulse_io/ir_output.rb +51 -0
- data/examples/pulse_io/pwm_output.rb +30 -0
- data/examples/rtc/ds3231.rb +18 -35
- data/examples/sensor/aht10.rb +4 -6
- data/examples/sensor/aht20.rb +4 -6
- data/examples/sensor/bme280.rb +4 -4
- data/examples/sensor/bmp180.rb +9 -5
- data/examples/sensor/dht.rb +20 -15
- data/examples/sensor/ds18b20.rb +20 -21
- data/examples/sensor/generic_pir.rb +4 -2
- data/examples/sensor/hcsr04.rb +5 -2
- data/examples/sensor/htu21d.rb +9 -20
- data/examples/sensor/htu31d.rb +7 -9
- data/examples/sensor/neat_tph_readings.rb +15 -9
- data/examples/sensor/qmp6988.rb +5 -7
- data/examples/sensor/rcwl9620.rb +3 -3
- data/examples/sensor/sht3x.rb +4 -6
- data/examples/spi/bitbang_loopback.rb +46 -0
- data/examples/spi/input_register.rb +9 -19
- data/examples/spi/output_register.rb +9 -17
- data/examples/spi/ssd_through_registers.rb +28 -0
- data/examples/spi/two_registers.rb +18 -24
- data/examples/uart/bit_bang_demo.rb +25 -0
- data/examples/uart/board_passthrough.rb +19 -13
- data/examples/uart/hardware_loopback.rb +1 -1
- data/lib/denko/analog_io/ads1100.rb +127 -0
- data/lib/denko/analog_io/ads1115.rb +8 -25
- data/lib/denko/analog_io/ads1118.rb +10 -25
- data/lib/denko/analog_io/ads111x.rb +25 -11
- data/lib/denko/analog_io/input.rb +29 -55
- data/lib/denko/analog_io/input_helper.rb +42 -0
- data/lib/denko/analog_io/output.rb +5 -5
- data/lib/denko/analog_io/potentiometer.rb +6 -8
- data/lib/denko/analog_io.rb +2 -1
- data/lib/denko/behaviors/board_proxy.rb +13 -1
- data/lib/denko/behaviors/bus_controller.rb +1 -0
- data/lib/denko/behaviors/bus_controller_addressed.rb +1 -0
- data/lib/denko/behaviors/bus_peripheral.rb +3 -4
- data/lib/denko/behaviors/bus_peripheral_addressed.rb +8 -6
- data/lib/denko/behaviors/callbacks.rb +9 -7
- data/lib/denko/behaviors/component.rb +16 -14
- data/lib/denko/behaviors/input_pin.rb +14 -15
- data/lib/denko/behaviors/lifecycle.rb +51 -0
- data/lib/denko/behaviors/multi_pin.rb +22 -18
- data/lib/denko/behaviors/output_pin.rb +9 -4
- data/lib/denko/behaviors/single_pin.rb +1 -0
- data/lib/denko/behaviors/state.rb +15 -9
- data/lib/denko/behaviors/subcomponents.rb +72 -12
- data/lib/denko/behaviors.rb +2 -1
- data/lib/denko/board/core.rb +36 -18
- data/lib/denko/board/i2c.rb +14 -14
- data/lib/denko/board/i2c_bit_bang.rb +49 -0
- data/lib/denko/board/infrared.rb +6 -6
- data/lib/denko/board/led_array.rb +6 -5
- data/lib/denko/board/spi.rb +15 -10
- data/lib/denko/board/spi_bit_bang.rb +9 -7
- data/lib/denko/board.rb +35 -33
- data/lib/denko/connection/binary_echo.rb +17 -0
- data/lib/denko/connection/flow_control.rb +11 -15
- data/lib/denko/connection/handshake.rb +2 -0
- data/lib/denko/digital_io/button.rb +4 -0
- data/lib/denko/digital_io/c_bit_bang.rb +15 -0
- data/lib/denko/digital_io/input.rb +4 -5
- data/lib/denko/digital_io/output.rb +7 -6
- data/lib/denko/digital_io/relay.rb +2 -0
- data/lib/denko/digital_io/rotary_encoder.rb +78 -60
- data/lib/denko/digital_io.rb +1 -0
- data/lib/denko/display/hd44780.rb +136 -93
- data/lib/denko/display/sh1106.rb +42 -0
- data/lib/denko/display/ssd1306.rb +105 -45
- data/lib/denko/display.rb +1 -0
- data/lib/denko/eeprom/built_in.rb +19 -16
- data/lib/denko/i2c/bit_bang.rb +31 -0
- data/lib/denko/i2c/bus.rb +8 -36
- data/lib/denko/i2c/bus_common.rb +45 -0
- data/lib/denko/i2c/peripheral.rb +28 -19
- data/lib/denko/i2c.rb +2 -0
- data/lib/denko/led/apa102.rb +43 -29
- data/lib/denko/led/base.rb +8 -2
- data/lib/denko/led/rgb.rb +5 -7
- data/lib/denko/led/seven_segment.rb +24 -9
- data/lib/denko/led/ws2812.rb +10 -7
- data/lib/denko/message.rb +5 -0
- data/lib/denko/motor/l298.rb +11 -10
- data/lib/denko/motor/servo.rb +22 -10
- data/lib/denko/motor/stepper.rb +11 -14
- data/lib/denko/mutex_stub.rb +7 -0
- data/lib/denko/one_wire/bus.rb +9 -5
- data/lib/denko/one_wire/peripheral.rb +0 -3
- data/lib/denko/pulse_io/buzzer.rb +9 -3
- data/lib/denko/pulse_io/{ir_transmitter.rb → ir_output.rb} +9 -4
- data/lib/denko/pulse_io/pwm_output.rb +69 -15
- data/lib/denko/pulse_io.rb +3 -3
- data/lib/denko/rtc/ds3231.rb +11 -13
- data/lib/denko/sensor/aht.rb +22 -21
- data/lib/denko/sensor/bme280.rb +60 -63
- data/lib/denko/sensor/bmp180.rb +41 -38
- data/lib/denko/sensor/dht.rb +22 -5
- data/lib/denko/sensor/ds18b20.rb +40 -34
- data/lib/denko/sensor/hcsr04.rb +7 -5
- data/lib/denko/sensor/helper.rb +37 -0
- data/lib/denko/sensor/htu21d.rb +44 -55
- data/lib/denko/sensor/htu31d.rb +32 -33
- data/lib/denko/sensor/qmp6988.rb +25 -23
- data/lib/denko/sensor/rcwl9620.rb +2 -5
- data/lib/denko/sensor/sht3x.rb +23 -21
- data/lib/denko/sensor.rb +1 -2
- data/lib/denko/spi/base_register.rb +22 -22
- data/lib/denko/spi/bit_bang.rb +17 -51
- data/lib/denko/spi/bus.rb +15 -29
- data/lib/denko/spi/bus_common.rb +36 -0
- data/lib/denko/spi/input_register.rb +36 -30
- data/lib/denko/spi/output_register.rb +25 -40
- data/lib/denko/spi/peripheral.rb +93 -24
- data/lib/denko/spi.rb +6 -1
- data/lib/denko/uart/bit_bang.rb +5 -3
- data/lib/denko/uart/hardware.rb +9 -8
- data/lib/denko/version.rb +1 -1
- data/lib/denko.rb +10 -0
- data/lib/denko_cli/generator.rb +2 -2
- data/lib/denko_cli/packages.rb +8 -10
- data/lib/denko_cli/targets.rb +8 -8
- data/lib/denko_cli/targets.txt +4 -4
- data/lib/denko_cli/usage.txt +1 -1
- data/src/denko_ethernet.ino +0 -14
- data/src/denko_serial.ino +0 -14
- data/src/denko_wifi.ino +6 -15
- data/src/lib/Denko.cpp +39 -3
- data/src/lib/Denko.h +42 -26
- data/src/lib/DenkoCoreIO.cpp +60 -103
- data/src/lib/DenkoDefines.h +36 -31
- data/src/lib/DenkoI2C.cpp +54 -45
- data/src/lib/DenkoI2CBB.cpp +238 -0
- data/src/lib/DenkoIROut.cpp +12 -7
- data/src/lib/DenkoLEDArray.cpp +36 -13
- data/src/lib/DenkoSPI.cpp +6 -5
- data/src/lib/DenkoSPIBB.cpp +7 -6
- data/target.yml +37 -2
- data/test/analog_io/potentiometer_test.rb +10 -10
- data/test/behaviors/board_proxy_test.rb +1 -1
- data/test/behaviors/callbacks_test.rb +11 -3
- data/test/behaviors/component_test.rb +17 -9
- data/test/behaviors/input_pin_test.rb +14 -9
- data/test/behaviors/multi_pin_test.rb +14 -4
- data/test/behaviors/output_pin_test.rb +11 -8
- data/test/behaviors/poller_test.rb +1 -0
- data/test/behaviors/reader_test.rb +3 -2
- data/test/behaviors/subcomponents_test.rb +22 -2
- data/test/board/core_test.rb +15 -11
- data/test/board/i2c_test.rb +39 -33
- data/test/board/infrared_test.rb +1 -1
- data/test/board/message_test.rb +17 -11
- data/test/board/spi_test.rb +21 -21
- data/test/digital_io/button_test.rb +15 -0
- data/test/digital_io/relay_test.rb +18 -0
- data/test/digital_io/rotary_encoder_test.rb +80 -60
- data/test/eeprom/built_in_test.rb +9 -9
- data/test/i2c/bus_test.rb +30 -14
- data/test/i2c/peripheral_test.rb +36 -17
- data/test/led/base_test.rb +2 -1
- data/test/led/rgb_test.rb +6 -6
- data/test/led/seven_segment_test.rb +7 -7
- data/test/motor/servo_test.rb +1 -1
- data/test/motor/stepper_test.rb +2 -2
- data/test/one_wire/bus_test.rb +1 -0
- data/test/pulse_io/buzzer_test.rb +7 -4
- data/test/pulse_io/{ir_transmitter_test.rb → ir_output_test.rb} +10 -10
- data/test/pulse_io/pwm_output_test.rb +74 -18
- data/test/rtc/ds3231_test.rb +11 -13
- data/test/sensor/dht_test.rb +1 -1
- data/test/sensor/ds18b20_test.rb +4 -8
- data/test/spi/bus_test.rb +7 -7
- data/test/spi/input_register_test.rb +15 -15
- data/test/spi/output_register_test.rb +10 -28
- data/test/spi/peripheral_multi_pin_test.rb +53 -0
- data/test/spi/peripheral_single_pin_test.rb +48 -0
- data/test/test_helper.rb +36 -33
- data/tutorial/02-button/button.rb +5 -4
- data/tutorial/03-potentiometer/potentiometer.rb +9 -5
- data/tutorial/04-pwm_led/pwm_led.rb +14 -16
- data/tutorial/05-rgb_led/rgb_led.rb +6 -6
- data/tutorial/05-rgb_led/rgb_mapping.rb +11 -11
- data/vendor/board-maps/.gitignore +56 -0
- data/vendor/board-maps/.gitmodules +24 -0
- data/vendor/board-maps/BoardMap.h +1852 -0
- data/vendor/board-maps/README.md +52 -0
- data/vendor/board-maps/lib/boards_parser.rb +66 -0
- data/vendor/board-maps/lib/header_parser.rb +199 -0
- data/vendor/board-maps/run.rb +57 -0
- data/vendor/board-maps/yaml/0XCB_HELIOS.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_CAMERA_ESP32S3.yml +11 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32C6.yml +15 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2.yml +25 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_REVTFT.yml +25 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S2_TFT.yml +27 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3.yml +34 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_NOPSRAM.yml +34 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_REVTFT.yml +25 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32S3_TFT.yml +27 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_ESP32_V2.yml +34 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_ADALOGGER.yml +44 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_CAN.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_DVI.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_PROP_MAKER.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_RFM.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_SCORPIO.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_THINKINK.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_FEATHER_RP2040_USB_HOST.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_ITSYBITSY_ESP32.yml +24 -0
- data/vendor/board-maps/yaml/ADAFRUIT_ITSYBITSY_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_KB2040_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_MACROPAD_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_MATRIXPORTAL_ESP32S3.yml +16 -0
- data/vendor/board-maps/yaml/ADAFRUIT_METRO_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32C3.yml +13 -0
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S2.yml +23 -0
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_N4R2.yml +21 -0
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32S3_NOPSRAM.yml +21 -0
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_ESP32_PICO.yml +29 -0
- data/vendor/board-maps/yaml/ADAFRUIT_QTPY_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_STEMMAFRIEND_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ADAFRUIT_TRINKEYQT_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/ALKS.yml +34 -0
- data/vendor/board-maps/yaml/AMKEN_BB.yml +48 -0
- data/vendor/board-maps/yaml/AMKEN_ES.yml +48 -0
- data/vendor/board-maps/yaml/AMKEN_REVELOP.yml +48 -0
- data/vendor/board-maps/yaml/AMKEN_REVELOP_PLUS.yml +48 -0
- data/vendor/board-maps/yaml/AMPERKA_WIFI_SLOT.yml +16 -0
- data/vendor/board-maps/yaml/ARTRONSHOP_RP2_NANO.yml +32 -0
- data/vendor/board-maps/yaml/ASL_CAN_X2.yml +41 -0
- data/vendor/board-maps/yaml/ATD143_S3.yml +41 -0
- data/vendor/board-maps/yaml/AVENTEN_S3_SYNC.yml +38 -0
- data/vendor/board-maps/yaml/AVR_ADK.yml +24 -0
- data/vendor/board-maps/yaml/AVR_BT.yml +16 -0
- data/vendor/board-maps/yaml/AVR_CIRCUITPLAY.yml +14 -0
- data/vendor/board-maps/yaml/AVR_DUEMILANOVE.yml +16 -0
- data/vendor/board-maps/yaml/AVR_ESPLORA.yml +20 -0
- data/vendor/board-maps/yaml/AVR_ETHERNET.yml +16 -0
- data/vendor/board-maps/yaml/AVR_FIO.yml +16 -0
- data/vendor/board-maps/yaml/AVR_GEMMA.yml +6 -0
- data/vendor/board-maps/yaml/AVR_INDUSTRIAL101.yml +20 -0
- data/vendor/board-maps/yaml/AVR_LEONARDO.yml +20 -0
- data/vendor/board-maps/yaml/AVR_LEONARDO_ETH.yml +20 -0
- data/vendor/board-maps/yaml/AVR_LILYPAD.yml +16 -0
- data/vendor/board-maps/yaml/AVR_LILYPAD_USB.yml +20 -0
- data/vendor/board-maps/yaml/AVR_LININO_ONE.yml +20 -0
- data/vendor/board-maps/yaml/AVR_MEGA.yml +24 -0
- data/vendor/board-maps/yaml/AVR_MEGA2560.yml +24 -0
- data/vendor/board-maps/yaml/AVR_MICRO.yml +20 -0
- data/vendor/board-maps/yaml/AVR_MINI.yml +16 -0
- data/vendor/board-maps/yaml/AVR_NANO.yml +16 -0
- data/vendor/board-maps/yaml/AVR_NANO_EVERY.yml +22 -0
- data/vendor/board-maps/yaml/AVR_NG.yml +16 -0
- data/vendor/board-maps/yaml/AVR_PRO.yml +16 -0
- data/vendor/board-maps/yaml/AVR_ROBOT_CONTROL.yml +22 -0
- data/vendor/board-maps/yaml/AVR_ROBOT_MOTOR.yml +19 -0
- data/vendor/board-maps/yaml/AVR_UNO.yml +16 -0
- data/vendor/board-maps/yaml/AVR_UNO_WIFI_DEV_ED.yml +16 -0
- data/vendor/board-maps/yaml/AVR_UNO_WIFI_REV2.yml +22 -0
- data/vendor/board-maps/yaml/AVR_YUN.yml +20 -0
- data/vendor/board-maps/yaml/AVR_YUNMINI.yml +20 -0
- data/vendor/board-maps/yaml/AirM2M_CORE_ESP32C3.yml +14 -0
- data/vendor/board-maps/yaml/BEE_DATA_LOGGER.yml +39 -0
- data/vendor/board-maps/yaml/BLING.yml +25 -0
- data/vendor/board-maps/yaml/BPI_BIT.yml +9 -0
- data/vendor/board-maps/yaml/BPI_LEAF_S3.yml +42 -0
- data/vendor/board-maps/yaml/BRIDGETEK_IDM2040_43A.yml +48 -0
- data/vendor/board-maps/yaml/BRIDGETEK_IDM2040_7A.yml +48 -0
- data/vendor/board-maps/yaml/BeeMotionS3.yml +45 -0
- data/vendor/board-maps/yaml/Bee_Motion.yml +30 -0
- data/vendor/board-maps/yaml/Bee_Motion_Mini.yml +13 -0
- data/vendor/board-maps/yaml/Bee_S3.yml +38 -0
- data/vendor/board-maps/yaml/Breadstick_Raspberry.yml +31 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_LORA_RP2040.yml +39 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_LTE_RP2040.yml +38 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_NFC_RP2040.yml +32 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_SDRTC_RP2040.yml +36 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_SUBGHZ_RP2040.yml +39 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_UWB_RP2040.yml +39 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI6_BLE_RP2040.yml +42 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI_BLE_RP2040.yml +42 -0
- data/vendor/board-maps/yaml/CHALLENGER_2040_WIFI_RP2040.yml +38 -0
- data/vendor/board-maps/yaml/CHALLENGER_NB_2040_WIFI_RP2040.yml +38 -0
- data/vendor/board-maps/yaml/CONNECTIVITY_2040_LTE_WIFI_BLE_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/CRABIK_SLOT_ESP32_S3.yml +19 -0
- data/vendor/board-maps/yaml/CYTRON_MAKER_FEATHER_AIOT_S3.yml +29 -0
- data/vendor/board-maps/yaml/CYTRON_MAKER_NANO_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/CYTRON_MAKER_PI_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/CYTRON_MAKER_UNO_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/CoreESP32.yml +53 -0
- data/vendor/board-maps/yaml/D1_MINI32.yml +45 -0
- data/vendor/board-maps/yaml/D1_UNO32.yml +28 -0
- data/vendor/board-maps/yaml/DATANOISETV_PICOADK.yml +48 -0
- data/vendor/board-maps/yaml/DEGZ_SUIBO_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/DENKY.yml +35 -0
- data/vendor/board-maps/yaml/DENKY_PICOV3.yml +35 -0
- data/vendor/board-maps/yaml/DENKY_WROOM32.yml +35 -0
- data/vendor/board-maps/yaml/DEPARTMENT_OF_ALCHEMY_MINIMAIN_ESP32S2.yml +26 -0
- data/vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32C6.yml +8 -0
- data/vendor/board-maps/yaml/DFROBOT_BEETLE_ESP32_C3.yml +14 -0
- data/vendor/board-maps/yaml/DFROBOT_BEETLE_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32C6.yml +20 -0
- data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32E.yml +49 -0
- data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_2_ESP32S3.yml +38 -0
- data/vendor/board-maps/yaml/DFROBOT_FIREBEETLE_ESP32.yml +46 -0
- data/vendor/board-maps/yaml/DFROBOT_ROMEO_ESP32S3.yml +7 -0
- data/vendor/board-maps/yaml/DPTECHNICS_WALTER.yml +39 -0
- data/vendor/board-maps/yaml/DPU_ESP32.yml +35 -0
- data/vendor/board-maps/yaml/DYDK.yml +38 -0
- data/vendor/board-maps/yaml/DYDK1A.yml +37 -0
- data/vendor/board-maps/yaml/DYDK1Av2.yml +45 -0
- data/vendor/board-maps/yaml/DYG.yml +20 -0
- data/vendor/board-maps/yaml/DYM.yml +40 -0
- data/vendor/board-maps/yaml/DYMv2.yml +39 -0
- data/vendor/board-maps/yaml/D_Duino_32.yml +37 -0
- data/vendor/board-maps/yaml/ELECROW_CROWPANEL_7.yml +8 -0
- data/vendor/board-maps/yaml/ELECTRONICCATS_HUNTERCAT_NFC.yml +44 -0
- data/vendor/board-maps/yaml/ESP320.yml +8 -0
- data/vendor/board-maps/yaml/ESP32C2_DEV.yml +12 -0
- data/vendor/board-maps/yaml/ESP32C3_DEV.yml +14 -0
- data/vendor/board-maps/yaml/ESP32C3_DEVKIT_LIPO.yml +14 -0
- data/vendor/board-maps/yaml/ESP32C3_M1_I_KIT.yml +13 -0
- data/vendor/board-maps/yaml/ESP32C6_DEV.yml +15 -0
- data/vendor/board-maps/yaml/ESP32C6_EVB.yml +15 -0
- data/vendor/board-maps/yaml/ESP32C6_QWIIC_POCKET.yml +15 -0
- data/vendor/board-maps/yaml/ESP32C6_THING_PLUS.yml +15 -0
- data/vendor/board-maps/yaml/ESP32H2_DEV.yml +13 -0
- data/vendor/board-maps/yaml/ESP32H2_DEVKIT_LIPO.yml +13 -0
- data/vendor/board-maps/yaml/ESP32S2_DEV.yml +44 -0
- data/vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO.yml +44 -0
- data/vendor/board-maps/yaml/ESP32S2_DEVKIT_LIPO_USB.yml +44 -0
- data/vendor/board-maps/yaml/ESP32S2_THING_PLUS.yml +44 -0
- data/vendor/board-maps/yaml/ESP32S2_USB.yml +43 -0
- data/vendor/board-maps/yaml/ESP32S3_CAM_LCD.yml +7 -0
- data/vendor/board-maps/yaml/ESP32S3_DEV.yml +38 -0
- data/vendor/board-maps/yaml/ESP32S3_DEVKIT_LIPO.yml +42 -0
- data/vendor/board-maps/yaml/ESP32S3_POWERFEATHER.yml +22 -0
- data/vendor/board-maps/yaml/ESP32_DEV.yml +35 -0
- data/vendor/board-maps/yaml/ESP32_DEVKIT_LIPO.yml +35 -0
- data/vendor/board-maps/yaml/ESP32_EVB.yml +7 -0
- data/vendor/board-maps/yaml/ESP32_GATEWAY.yml +13 -0
- data/vendor/board-maps/yaml/ESP32_GATEWAY_C.yml +13 -0
- data/vendor/board-maps/yaml/ESP32_GATEWAY_E.yml +13 -0
- data/vendor/board-maps/yaml/ESP32_GATEWAY_F.yml +13 -0
- data/vendor/board-maps/yaml/ESP32_IOT_REDBOARD.yml +36 -0
- data/vendor/board-maps/yaml/ESP32_MICROMOD.yml +24 -0
- data/vendor/board-maps/yaml/ESP32_PICO.yml +35 -0
- data/vendor/board-maps/yaml/ESP32_POE.yml +7 -0
- data/vendor/board-maps/yaml/ESP32_POE_ISO.yml +7 -0
- data/vendor/board-maps/yaml/ESP32_S3R8N16.yml +3 -0
- data/vendor/board-maps/yaml/ESP32_S3_BOX.yml +19 -0
- data/vendor/board-maps/yaml/ESP32_S3_USB_OTG.yml +11 -0
- data/vendor/board-maps/yaml/ESP32_SBC_FABGL.yml +35 -0
- data/vendor/board-maps/yaml/ESP32_THING.yml +36 -0
- data/vendor/board-maps/yaml/ESP32_THING_PLUS.yml +33 -0
- data/vendor/board-maps/yaml/ESP32_THING_PLUS_C.yml +33 -0
- data/vendor/board-maps/yaml/ESP32_WROOM_DA.yml +35 -0
- data/vendor/board-maps/yaml/ESP32_WROVER_KIT.yml +35 -0
- data/vendor/board-maps/yaml/ESP8266_ADAFRUIT_HUZZAH.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_AGRUMINO_LEMON_V4.yml +8 -0
- data/vendor/board-maps/yaml/ESP8266_ARDUINO_PRIMO.yml +7 -0
- data/vendor/board-maps/yaml/ESP8266_ARDUINO_STAR_OTTO.yml +7 -0
- data/vendor/board-maps/yaml/ESP8266_ARDUINO_UNOWIFI.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESP01.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESP07.yml +20 -0
- data/vendor/board-maps/yaml/ESP8266_ESP12.yml +20 -0
- data/vendor/board-maps/yaml/ESP8266_ESP13.yml +17 -0
- data/vendor/board-maps/yaml/ESP8266_ESP210.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESPECTRO_CORE.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESPINO_ESP12.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESPINO_ESP13.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESPRESSO_LITE_V1.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_ESPRESSO_LITE_V2.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_GENERIC.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_INVENT_ONE.yml +22 -0
- data/vendor/board-maps/yaml/ESP8266_NODEMCU_ESP12.yml +20 -0
- data/vendor/board-maps/yaml/ESP8266_NODEMCU_ESP12E.yml +20 -0
- data/vendor/board-maps/yaml/ESP8266_OAK.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_PHOENIX_V1.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_PHOENIX_V2.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_SCHIRMILABS_EDUINO_WIFI.yml +25 -0
- data/vendor/board-maps/yaml/ESP8266_SONOFF_BASIC.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_SONOFF_S20.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_SONOFF_SV.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_SONOFF_TH.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_THING.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_THING_DEV.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINI.yml +18 -0
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINILITE.yml +18 -0
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1MINIPRO.yml +18 -0
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1R1.yml +25 -0
- data/vendor/board-maps/yaml/ESP8266_WEMOS_D1WROOM02.yml +18 -0
- data/vendor/board-maps/yaml/ESP8266_WIO_LINK.yml +9 -0
- data/vendor/board-maps/yaml/ESP8266_XINABOX_CW01.yml +9 -0
- data/vendor/board-maps/yaml/ESPECTRO32.yml +36 -0
- data/vendor/board-maps/yaml/ESPea32.yml +36 -0
- data/vendor/board-maps/yaml/ESPino32.yml +36 -0
- data/vendor/board-maps/yaml/ET-Board.yml +26 -0
- data/vendor/board-maps/yaml/EVN_ALPHA.yml +48 -0
- data/vendor/board-maps/yaml/EXTREMEELEXTRONICS_RC2040.yml +46 -0
- data/vendor/board-maps/yaml/Edgebox-ESP-100.yml +7 -0
- data/vendor/board-maps/yaml/FEATHERS2.yml +43 -0
- data/vendor/board-maps/yaml/FEATHERS2NEO.yml +31 -0
- data/vendor/board-maps/yaml/FEATHERS3.yml +32 -0
- data/vendor/board-maps/yaml/FEATHERS3NEO.yml +32 -0
- data/vendor/board-maps/yaml/FEATHER_ESP32.yml +32 -0
- data/vendor/board-maps/yaml/FLYBOARD2040_CORE.yml +48 -0
- data/vendor/board-maps/yaml/FRANZININHO_WIFI.yml +43 -0
- data/vendor/board-maps/yaml/FRANZININHO_WIFI_MSC.yml +43 -0
- data/vendor/board-maps/yaml/FROG_ESP32.yml +35 -0
- data/vendor/board-maps/yaml/FUNHOUSE_ESP32S2.yml +22 -0
- data/vendor/board-maps/yaml/GEEKBLE_ESP32C3.yml +14 -0
- data/vendor/board-maps/yaml/GEN4_IOD.yml +9 -0
- data/vendor/board-maps/yaml/GENERIC_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/HEALTHYPI_4.yml +36 -0
- data/vendor/board-maps/yaml/HELTEC_CAPSULE_SENSOR_V3.yml +43 -0
- data/vendor/board-maps/yaml/HELTEC_WIFI_LORA_32_V3.yml +42 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_BRIDGE.yml +8 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_MINI_SHELL.yml +13 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_PAPER.yml +42 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_SHELL_V3.yml +42 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_STICK_LITE_V3.yml +30 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_STICK_V3.yml +41 -0
- data/vendor/board-maps/yaml/HELTEC_WIRELESS_TRACKER.yml +41 -0
- data/vendor/board-maps/yaml/HONEYLEMON.yml +36 -0
- data/vendor/board-maps/yaml/HORNBILL_ESP32_DEV.yml +36 -0
- data/vendor/board-maps/yaml/HORNBILL_ESP32_MINIMA.yml +19 -0
- data/vendor/board-maps/yaml/HT_DE01.yml +42 -0
- data/vendor/board-maps/yaml/ILABS_2040_RPICO32_RP2040.yml +47 -0
- data/vendor/board-maps/yaml/IMBRIOS_LOGSENS_V1P1.yml +23 -0
- data/vendor/board-maps/yaml/INTOROBOT_ESP32_DEV.yml +34 -0
- data/vendor/board-maps/yaml/IOXESP32.yml +36 -0
- data/vendor/board-maps/yaml/IOXESP32PS.yml +36 -0
- data/vendor/board-maps/yaml/LILYGO_T3S3_LR1121.yml +9 -0
- data/vendor/board-maps/yaml/LILYGO_T3S3_SX1262.yml +9 -0
- data/vendor/board-maps/yaml/LILYGO_T3S3_SX1276.yml +9 -0
- data/vendor/board-maps/yaml/LILYGO_T3S3_SX1278.yml +9 -0
- data/vendor/board-maps/yaml/LILYGO_T3S3_SX1280.yml +9 -0
- data/vendor/board-maps/yaml/LILYGO_T3S3_SX1280PA.yml +8 -0
- data/vendor/board-maps/yaml/LILYGO_T_DISPLAY.yml +35 -0
- data/vendor/board-maps/yaml/LILYGO_T_DISPLAY_S3.yml +32 -0
- data/vendor/board-maps/yaml/LILYGO_T_ETH_LITE.yml +21 -0
- data/vendor/board-maps/yaml/LIONBITS3_DEV.yml +34 -0
- data/vendor/board-maps/yaml/LOLIN32.yml +36 -0
- data/vendor/board-maps/yaml/LOLIN32_LITE.yml +36 -0
- data/vendor/board-maps/yaml/LOLIN_C3_MINI.yml +14 -0
- data/vendor/board-maps/yaml/LOLIN_C3_PICO.yml +14 -0
- data/vendor/board-maps/yaml/LOLIN_D32.yml +36 -0
- data/vendor/board-maps/yaml/LOLIN_D32_PRO.yml +36 -0
- data/vendor/board-maps/yaml/LOLIN_S2_MINI.yml +44 -0
- data/vendor/board-maps/yaml/LOLIN_S2_PICO.yml +44 -0
- data/vendor/board-maps/yaml/LOLIN_S3.yml +40 -0
- data/vendor/board-maps/yaml/LOLIN_S3_MINI.yml +40 -0
- data/vendor/board-maps/yaml/LOLIN_S3_MINI_PRO.yml +40 -0
- data/vendor/board-maps/yaml/LOLIN_S3_PRO.yml +40 -0
- data/vendor/board-maps/yaml/Lion_Bit_Dev_Board.yml +16 -0
- data/vendor/board-maps/yaml/LoPy.yml +38 -0
- data/vendor/board-maps/yaml/LoPy4.yml +38 -0
- data/vendor/board-maps/yaml/M5STACK_CAPSULE.yml +8 -0
- data/vendor/board-maps/yaml/M5STACK_CARDPUTER.yml +8 -0
- data/vendor/board-maps/yaml/M5STACK_CORE.yml +10 -0
- data/vendor/board-maps/yaml/M5STACK_CORES3.yml +8 -0
- data/vendor/board-maps/yaml/M5STACK_Core2.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_DIAL.yml +8 -0
- data/vendor/board-maps/yaml/M5STACK_FIRE.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_NANOC6.yml +17 -0
- data/vendor/board-maps/yaml/M5STACK_PAPER.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_POE_CAM.yml +5 -0
- data/vendor/board-maps/yaml/M5STACK_STAMP_C3.yml +13 -0
- data/vendor/board-maps/yaml/M5STACK_STAMP_PICO.yml +7 -0
- data/vendor/board-maps/yaml/M5STACK_STAMP_S3.yml +4 -0
- data/vendor/board-maps/yaml/M5STACK_STICKC.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_STICKC_PLUS.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_STICKC_PLUS2.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_TIMER_CAM.yml +10 -0
- data/vendor/board-maps/yaml/M5STACK_TOUGH.yml +9 -0
- data/vendor/board-maps/yaml/M5STACK_UNIT_CAM.yml +10 -0
- data/vendor/board-maps/yaml/M5STACK_UNIT_CAMS3.yml +4 -0
- data/vendor/board-maps/yaml/M5Stack_ATOM.yml +9 -0
- data/vendor/board-maps/yaml/M5Stack_ATOMS3.yml +7 -0
- data/vendor/board-maps/yaml/M5Stack_CoreInk.yml +9 -0
- data/vendor/board-maps/yaml/M5Stack_Station.yml +10 -0
- data/vendor/board-maps/yaml/MAGTAG29_ESP32S2.yml +31 -0
- data/vendor/board-maps/yaml/MAKERGO_C3_SUPERMINI.yml +14 -0
- data/vendor/board-maps/yaml/MARBLE_PICO.yml +48 -0
- data/vendor/board-maps/yaml/MELOPERO_COOKIE_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/MELOPERO_SHAKE_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/METEHOCA_AKANA_R1.yml +46 -0
- data/vendor/board-maps/yaml/METRO_ESP32S2.yml +44 -0
- data/vendor/board-maps/yaml/METRO_ESP32S3.yml +42 -0
- data/vendor/board-maps/yaml/MGBOT_IOTIK32A.yml +36 -0
- data/vendor/board-maps/yaml/MGBOT_IOTIK32B.yml +36 -0
- data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32DEVKIT.yml +36 -0
- data/vendor/board-maps/yaml/MH_ET_LIVE_ESP32MINIKIT.yml +36 -0
- data/vendor/board-maps/yaml/MICROS2.yml +44 -0
- data/vendor/board-maps/yaml/MINIMA.yml +15 -0
- data/vendor/board-maps/yaml/MOD_WIFI_ESP8266.yml +9 -0
- data/vendor/board-maps/yaml/Metro.yml +8 -0
- data/vendor/board-maps/yaml/NAMINO_ARANCIO.yml +3 -0
- data/vendor/board-maps/yaml/NAMINO_BIANCO.yml +13 -0
- data/vendor/board-maps/yaml/NAMINO_ROSSO.yml +3 -0
- data/vendor/board-maps/yaml/NANO32.yml +36 -0
- data/vendor/board-maps/yaml/NANOS3.yml +25 -0
- data/vendor/board-maps/yaml/NANO_ESP32.yml +18 -0
- data/vendor/board-maps/yaml/NANO_RP2040_CONNECT.yml +35 -0
- data/vendor/board-maps/yaml/NEBULAS3.yml +32 -0
- data/vendor/board-maps/yaml/NEKOSYSTEMS_BL2040_MINI.yml +48 -0
- data/vendor/board-maps/yaml/NEWSAN_ARCHI.yml +48 -0
- data/vendor/board-maps/yaml/NOLOGO_ESP32C3_SUPER_MINI.yml +14 -0
- data/vendor/board-maps/yaml/NOLOGO_ESP32S3_PICO.yml +12 -0
- data/vendor/board-maps/yaml/NULLBITS_BIT_C_PRO.yml +48 -0
- data/vendor/board-maps/yaml/Node32s.yml +36 -0
- data/vendor/board-maps/yaml/NodeMCU_32S.yml +36 -0
- data/vendor/board-maps/yaml/ODROID_ESP32.yml +10 -0
- data/vendor/board-maps/yaml/OLIMEX_RP2040_PICO30_16MB.yml +48 -0
- data/vendor/board-maps/yaml/OLIMEX_RP2040_PICO30_2MB.yml +48 -0
- data/vendor/board-maps/yaml/ONEHORSE_ESP32_DEV.yml +34 -0
- data/vendor/board-maps/yaml/OPTA_ANALOG.yml +7 -0
- data/vendor/board-maps/yaml/OPTA_DIGITAL.yml +5 -0
- data/vendor/board-maps/yaml/OROCA_EDUBOT.yml +33 -0
- data/vendor/board-maps/yaml/PIMORONI_PGA2040.yml +48 -0
- data/vendor/board-maps/yaml/PIMORONI_PLASMA2040.yml +29 -0
- data/vendor/board-maps/yaml/PIMORONI_TINY2040.yml +44 -0
- data/vendor/board-maps/yaml/PINTRONIX_PINMAX.yml +42 -0
- data/vendor/board-maps/yaml/PORTENTA_C33.yml +28 -0
- data/vendor/board-maps/yaml/PROS3.yml +33 -0
- data/vendor/board-maps/yaml/PYCOM_GPY.yml +38 -0
- data/vendor/board-maps/yaml/Piranha.yml +22 -0
- data/vendor/board-maps/yaml/Pocket32.yml +36 -0
- data/vendor/board-maps/yaml/QUALIA_S3_RGB666.yml +15 -0
- data/vendor/board-maps/yaml/QUANTUM.yml +35 -0
- data/vendor/board-maps/yaml/RAKWIRELESS_RAK11300.yml +47 -0
- data/vendor/board-maps/yaml/RASPBERRY_PI_PICO.yml +48 -0
- data/vendor/board-maps/yaml/RASPBERRY_PI_PICO_W.yml +48 -0
- data/vendor/board-maps/yaml/REDPILL_ESP32S3.yml +41 -0
- data/vendor/board-maps/yaml/REDSCORP_RP2040_EINS.yml +35 -0
- data/vendor/board-maps/yaml/REDSCORP_RP2040_PROMINI.yml +35 -0
- data/vendor/board-maps/yaml/SAMD_CIRCUITPLAYGROUND_EXPRESS.yml +11 -0
- data/vendor/board-maps/yaml/SAMD_MKR1000.yml +20 -0
- data/vendor/board-maps/yaml/SAMD_MKRFox1200.yml +19 -0
- data/vendor/board-maps/yaml/SAMD_MKRGSM1400.yml +15 -0
- data/vendor/board-maps/yaml/SAMD_MKRNB1500.yml +15 -0
- data/vendor/board-maps/yaml/SAMD_MKRVIDOR4000.yml +19 -0
- data/vendor/board-maps/yaml/SAMD_MKRWAN1300.yml +18 -0
- data/vendor/board-maps/yaml/SAMD_MKRWAN1310.yml +18 -0
- data/vendor/board-maps/yaml/SAMD_MKRWIFI1010.yml +19 -0
- data/vendor/board-maps/yaml/SAMD_MKRZERO.yml +19 -0
- data/vendor/board-maps/yaml/SAMD_NANO_33_IOT.yml +13 -0
- data/vendor/board-maps/yaml/SAMD_TIAN.yml +15 -0
- data/vendor/board-maps/yaml/SAMD_ZERO.yml +14 -0
- data/vendor/board-maps/yaml/SAM_DUE.yml +28 -0
- data/vendor/board-maps/yaml/SAM_ZERO.yml +15 -0
- data/vendor/board-maps/yaml/SEA_PICRO.yml +48 -0
- data/vendor/board-maps/yaml/SEEED_INDICATOR_RP2040.yml +47 -0
- data/vendor/board-maps/yaml/SEEED_XIAO_RP2040.yml +29 -0
- data/vendor/board-maps/yaml/SENSEBOX_MCU_ESP32S2.yml +12 -0
- data/vendor/board-maps/yaml/SILICOGNITION_RP2040_SHIM.yml +30 -0
- data/vendor/board-maps/yaml/SOLDERPARTY_RP2040_STAMP.yml +48 -0
- data/vendor/board-maps/yaml/SONOFF_DUALR3.yml +35 -0
- data/vendor/board-maps/yaml/SPARKFUN_MICROMOD_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/SPARKFUN_PROMICRO_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/SPARKFUN_PRO_MICRO_ESP32C3.yml +24 -0
- data/vendor/board-maps/yaml/SPARKFUN_THINGPLUS_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/TAMC_TERMOD_S3.yml +41 -0
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1262.yml +28 -0
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1268.yml +28 -0
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1276.yml +28 -0
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1278.yml +28 -0
- data/vendor/board-maps/yaml/TBEAM_USE_RADIO_SX1280.yml +28 -0
- data/vendor/board-maps/yaml/TBeam.yml +28 -0
- data/vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER.yml +31 -0
- data/vendor/board-maps/yaml/THINGPULSE_EPULSE_FEATHER_C6.yml +15 -0
- data/vendor/board-maps/yaml/TINYC6.yml +25 -0
- data/vendor/board-maps/yaml/TINYPICO.yml +35 -0
- data/vendor/board-maps/yaml/TINYS2.yml +43 -0
- data/vendor/board-maps/yaml/TINYS3.yml +25 -0
- data/vendor/board-maps/yaml/TTGO-T-OI-PLUS_DEV.yml +11 -0
- data/vendor/board-maps/yaml/TTGO_LoRa32_V1.yml +38 -0
- data/vendor/board-maps/yaml/TTGO_LoRa32_V2.yml +38 -0
- data/vendor/board-maps/yaml/TTGO_LoRa32_v21new.yml +38 -0
- data/vendor/board-maps/yaml/TTGO_T1.yml +36 -0
- data/vendor/board-maps/yaml/TTGO_T7_V13_Mini32.yml +36 -0
- data/vendor/board-maps/yaml/TTGO_T7_V14_Mini32.yml +36 -0
- data/vendor/board-maps/yaml/TWATCH_2020_V1.yml +9 -0
- data/vendor/board-maps/yaml/TWATCH_2020_V2.yml +9 -0
- data/vendor/board-maps/yaml/TWATCH_2020_V3.yml +9 -0
- data/vendor/board-maps/yaml/TWATCH_BASE.yml +9 -0
- data/vendor/board-maps/yaml/TWatch.yml +9 -0
- data/vendor/board-maps/yaml/Trueverit_ESP32_Universal_IoT_Driver.yml +18 -0
- data/vendor/board-maps/yaml/Trueverit_ESP32_Universal_IoT_Driver_MK_II.yml +18 -0
- data/vendor/board-maps/yaml/UBLOX_NINA_W10.yml +57 -0
- data/vendor/board-maps/yaml/UBLOX_NORA_W10.yml +43 -0
- data/vendor/board-maps/yaml/UNOWIFIR4.yml +17 -0
- data/vendor/board-maps/yaml/UPESY_EDU_ESP32.yml +28 -0
- data/vendor/board-maps/yaml/UPESY_ESP32C3_BASIC.yml +13 -0
- data/vendor/board-maps/yaml/UPESY_ESP32C3_MINI.yml +12 -0
- data/vendor/board-maps/yaml/UPESY_ESP32S3_BASIC.yml +42 -0
- data/vendor/board-maps/yaml/UPESY_RP2040_DEVKIT.yml +48 -0
- data/vendor/board-maps/yaml/VALTRACK_V4_MFW_ESP32_C3.yml +23 -0
- data/vendor/board-maps/yaml/VALTRACK_V4_VTS_ESP32_C3.yml +23 -0
- data/vendor/board-maps/yaml/VIRALINK_GATE32_01.yml +6 -0
- data/vendor/board-maps/yaml/VIRALINK_GATE32_11.yml +7 -0
- data/vendor/board-maps/yaml/VIYALAB_MIZU_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/WATCHY.yml +7 -0
- data/vendor/board-maps/yaml/WATCHY_V10.yml +7 -0
- data/vendor/board-maps/yaml/WATCHY_V15.yml +7 -0
- data/vendor/board-maps/yaml/WATCHY_V20.yml +7 -0
- data/vendor/board-maps/yaml/WAVESHARE_ESP32S3_TOUCH_LCD_128.yml +8 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_0_96.yml +47 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_LCD_1_28.yml +47 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_MATRIX.yml +48 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_ONE.yml +48 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_PIZERO.yml +47 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_PLUS.yml +48 -0
- data/vendor/board-maps/yaml/WAVESHARE_RP2040_ZERO.yml +48 -0
- data/vendor/board-maps/yaml/WEACT_STUDIO_ESP32C3.yml +14 -0
- data/vendor/board-maps/yaml/WESP32.yml +17 -0
- data/vendor/board-maps/yaml/WIDORA_AIR.yml +34 -0
- data/vendor/board-maps/yaml/WIFIDUINO_ESP8266.yml +23 -0
- data/vendor/board-maps/yaml/WIFINFO.yml +20 -0
- data/vendor/board-maps/yaml/WIPY3.yml +38 -0
- data/vendor/board-maps/yaml/WIZNET_5100S_EVB_PICO.yml +48 -0
- data/vendor/board-maps/yaml/WIZNET_5500_EVB_PICO.yml +48 -0
- data/vendor/board-maps/yaml/WIZNET_WIZFI360_EVB_PICO.yml +48 -0
- data/vendor/board-maps/yaml/WT32_ETH01.yml +8 -0
- data/vendor/board-maps/yaml/WT32_SC01_PLUS.yml +7 -0
- data/vendor/board-maps/yaml/WiFiduino32S3.yml +27 -0
- data/vendor/board-maps/yaml/WiFiduinoV2.yml +28 -0
- data/vendor/board-maps/yaml/Wifiduino32.yml +40 -0
- data/vendor/board-maps/yaml/XIAO_ESP32C3.yml +21 -0
- data/vendor/board-maps/yaml/XIAO_ESP32C6.yml +22 -0
- data/vendor/board-maps/yaml/XIAO_ESP32S3.yml +37 -0
- data/vendor/board-maps/yaml/YD_RP2040.yml +48 -0
- data/vendor/board-maps/yaml/atmegazero_esp32s2.yml +30 -0
- data/vendor/board-maps/yaml/connaxio_espoir.yml +24 -0
- data/vendor/board-maps/yaml/esp32vn_iot_uno.yml +31 -0
- data/vendor/board-maps/yaml/fm_devkit.yml +15 -0
- data/vendor/board-maps/yaml/heltec_wifi_kit_32.yml +38 -0
- data/vendor/board-maps/yaml/heltec_wifi_kit_32_V3.yml +42 -0
- data/vendor/board-maps/yaml/heltec_wifi_lora_32.yml +36 -0
- data/vendor/board-maps/yaml/heltec_wifi_lora_32_V2.yml +36 -0
- data/vendor/board-maps/yaml/heltec_wireless_stick.yml +36 -0
- data/vendor/board-maps/yaml/heltec_wireless_stick_LITE.yml +36 -0
- data/vendor/board-maps/yaml/openkb.yml +37 -0
- data/vendor/board-maps/yaml/roboheart_hercules.yml +26 -0
- data/vendor/board-maps/yaml/sensesiot_weizen.yml +35 -0
- data/vendor/board-maps/yaml/uPesy_WROOM.yml +36 -0
- data/vendor/board-maps/yaml/uPesy_WROVER.yml +36 -0
- data/vendor/board-maps/yaml/unphone8.yml +42 -0
- data/vendor/board-maps/yaml/unphone9.yml +50 -0
- data/vendor/board-maps/yaml/wifi_kit_8.yml +15 -0
- metadata +541 -22
- data/examples/led/apa102_breathe.rb +0 -45
- data/examples/pulse_io/ir_transmitter.rb +0 -55
- data/examples/spi/ssd_through_register.rb +0 -40
- data/examples/uart/bit_bang_read.rb +0 -16
- data/examples/uart/bit_bang_write.rb +0 -16
- data/lib/denko/analog_io/sensor.rb +0 -6
- data/lib/denko/sensor/virtual.rb +0 -42
- data/src/lib/DenkoIROutESP.cpp +0 -26
data/DEPS_IDE.md
CHANGED
@@ -8,7 +8,7 @@ Some microcontroller platforms require board manager cores that do not come with
|
|
8
8
|
* Confirm and exit Preferences. Wait for the IDE to finish downloading indexes from the new URL.
|
9
9
|
* Click on Tools > Board > Board Manager.
|
10
10
|
* Search for the platform you are installing by name, and click Install, optionally selecting a version.
|
11
|
-
|
11
|
+
|
12
12
|
### Installing Libraries
|
13
13
|
|
14
14
|
All platforms will require libraries to be installed. To install a library do the following:
|
@@ -33,9 +33,9 @@ All platforms will require libraries to be installed. To install a library do th
|
|
33
33
|
Arduino SAMD Boards (32-bits ARM Cortex-M0+)
|
34
34
|
Arduino UNO R4 Boards
|
35
35
|
ESP8266 Boards
|
36
|
-
ESP32 Boards
|
36
|
+
ESP32 Boards @ v3.0.5
|
37
37
|
Raspberry Pi Pico/RP2040
|
38
|
-
````
|
38
|
+
````
|
39
39
|
* Libraries:
|
40
40
|
````
|
41
41
|
Servo by Michael Margolis, Arduino
|
@@ -43,8 +43,7 @@ All platforms will require libraries to be installed. To install a library do th
|
|
43
43
|
WiFi by Arduino
|
44
44
|
WiFi101 by Arduino
|
45
45
|
WiFiNINA by Arduino
|
46
|
-
IRremote @ v4.1
|
47
|
-
IRremoteESP82666 @ v2.8.5 by David Conran, Sebastien Warin
|
46
|
+
IRremote @ v4.4.1 by shirriff, z3to, ArminJo
|
48
47
|
ESP32Servo by Kevin Harrington, John K. Bennett
|
49
48
|
Adafruit NeoPixel by Adafruit
|
50
49
|
````
|
@@ -53,24 +52,24 @@ All platforms will require libraries to be installed. To install a library do th
|
|
53
52
|
* Boards:
|
54
53
|
````
|
55
54
|
Arduino megaAVR Boards (only for Atmega4809 / Nano Every)
|
56
|
-
````
|
55
|
+
````
|
57
56
|
* Libraries:
|
58
57
|
````
|
59
58
|
Servo by Michael Margolis, Arduino
|
60
59
|
Ethernet by Various
|
61
60
|
WiFi by Arduino
|
62
61
|
WiFiNINA by Arduino
|
63
|
-
IRremote @ v4.1
|
62
|
+
IRremote @ v4.4.1 by shirriff, z3to, ArminJo
|
64
63
|
Adafruit NeoPixel by Adafruit
|
65
64
|
````
|
66
|
-
|
65
|
+
|
67
66
|
**ARM-based Arduinos & Clones Only:**
|
68
67
|
* Boards:
|
69
68
|
````
|
70
69
|
Arduino SAM Boards (32-bits ARM Cortex-M3)
|
71
70
|
Arduino SAMD Boards (32-bits ARM Cortex-M0+)
|
72
71
|
Arduino UNO R4 Boards
|
73
|
-
````
|
72
|
+
````
|
74
73
|
* Libraries:
|
75
74
|
````
|
76
75
|
Servo by Michael Margolis, Arduino
|
@@ -78,7 +77,7 @@ All platforms will require libraries to be installed. To install a library do th
|
|
78
77
|
WiFi by Arduino
|
79
78
|
WiFi101 by Arduino
|
80
79
|
WiFiNINA by Arduino
|
81
|
-
IRremote @ v4.1
|
80
|
+
IRremote @ v4.4.1 by shirriff, z3to, ArminJo
|
82
81
|
Adafruit NeoPixel by Adafruit
|
83
82
|
````
|
84
83
|
|
@@ -90,10 +89,10 @@ All platforms will require libraries to be installed. To install a library do th
|
|
90
89
|
* Boards:
|
91
90
|
````
|
92
91
|
ESP8266 Boards
|
93
|
-
````
|
92
|
+
````
|
94
93
|
* Libraries:
|
95
94
|
````
|
96
|
-
|
95
|
+
IRremote @ v4.4.1 by shirriff, z3to, ArminJo
|
97
96
|
Adafruit NeoPixel by Adafruit
|
98
97
|
````
|
99
98
|
|
@@ -104,15 +103,15 @@ All platforms will require libraries to be installed. To install a library do th
|
|
104
103
|
````
|
105
104
|
* Boards (latest version unless specified):
|
106
105
|
````
|
107
|
-
ESP32 Boards
|
108
|
-
````
|
106
|
+
ESP32 Boards @ v3.0.5
|
107
|
+
````
|
109
108
|
* Libraries (latest version unless specified):
|
110
109
|
````
|
111
|
-
|
110
|
+
IRremote @ v4.4.1 by shirriff, z3to, ArminJo
|
112
111
|
ESP32Servo by Kevin Harrington, John K. Bennett
|
113
112
|
Adafruit NeoPixel by Adafruit
|
114
113
|
````
|
115
|
-
|
114
|
+
|
116
115
|
**RP2040 Only:**
|
117
116
|
* Board Manager URLs:
|
118
117
|
````
|
@@ -121,8 +120,8 @@ All platforms will require libraries to be installed. To install a library do th
|
|
121
120
|
* Boards:
|
122
121
|
````
|
123
122
|
Raspberry Pi Pico/RP2040
|
124
|
-
````
|
123
|
+
````
|
125
124
|
* Libraries:
|
126
125
|
````
|
127
|
-
IRremote @ v4.1
|
126
|
+
IRremote @ v4.4.1 by shirriff, z3to, ArminJo
|
128
127
|
````
|
data/HARDWARE.md
CHANGED
@@ -2,9 +2,33 @@
|
|
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
|
+
### Espressif Chips with Wi-Fi (Except H2)
|
6
|
+
[![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)
|
7
|
+
[![ESP32 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32.yml)
|
8
|
+
[![ESP32-C3 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32c3.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32c3.yml)
|
9
|
+
[![ESP32-C6 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32c6.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32c6.yml)
|
10
|
+
[![ESP32-H2 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32h2.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32h2.yml)
|
11
|
+
[![ESP32-S2 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32s2.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32s2.yml)
|
12
|
+
[![ESP32-S3 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32s3.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32s3.yml)
|
13
|
+
|
14
|
+
| Chip | Status | Board Tested | Notes |
|
15
|
+
| :-------- | :------: | :--------------- |------ |
|
16
|
+
| ESP8266 | :green_heart: | NodeMCU |
|
17
|
+
| ESP8285 | :question: | DOIT ESP-Mx DevKit | Should be identical to 8266. Not tested in hardware.
|
18
|
+
| ESP32 | :green_heart: | DOIT ESP32 DevKit V1 |
|
19
|
+
| ESP32-S2 | :green_heart: | LOLIN S2 Pico | Native USB-CDC (broken in core 3.0+)
|
20
|
+
| ESP32-S3 | :green_heart: | LOLIN S3 V1.0.0 | Native USB-CDC (broken in core 3.0+)
|
21
|
+
| ESP32-C3 | :green_heart: | LOLIN C3 Mini V2.1.0 | Native USB-CDC (broken in core 3.0+)
|
22
|
+
| ESP32-H2 | :green_heart: | ESP32-H2-MINI-1 | No Wi-Fi. Native USB-CDC (broken in core 3.0+)
|
23
|
+
| ESP32-C6 | :green_heart: | ESP32-C6-WROOM-1 | Native USB-CDC (broken in core 3.0+)
|
24
|
+
|
25
|
+
**Note:** For ESP32 chips using native USB-CDC, make sure `USB CDC On Boot` is `Enabled` in the IDE's `Tools` menu. Flashing from the CLI doesn't automatically enable this, so the IDE is recommended for now.
|
26
|
+
|
27
|
+
**Note:** Since Arduino ESP32 Core version 3.0+, USB-CDC is very unreliable when sending lots of data both directions (something denko can do). It's a known issue in the core. Use a regular UART until it's fixed.
|
28
|
+
|
5
29
|
### AVR/MegaAVR Based Arduino Products (and Clones)
|
6
|
-
[![AVR Build Status](https://github.com/denko-rb/denko/actions/workflows/
|
7
|
-
[![MegaAVR Build Status](https://github.com/denko-rb/denko/actions/workflows/
|
30
|
+
[![AVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_atmega_avr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_atmega_avr.yml)
|
31
|
+
[![MegaAVR Build Status](https://github.com/denko-rb/denko/actions/workflows/build_atmega_megaavr.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_atmega_megaavr.yml)
|
8
32
|
|
9
33
|
| Chip | Status | Products | Notes |
|
10
34
|
| :-------- | :------: | :--------------- |------ |
|
@@ -18,8 +42,8 @@
|
|
18
42
|
**Note:** Only USB boards listed. Any board with a supported chip should work, once you can flash it and connect to serial.
|
19
43
|
|
20
44
|
### ARM Based Arduino Products (and Clones)
|
21
|
-
[![SAM3X Build Satus](https://github.com/denko-rb/denko/actions/workflows/
|
22
|
-
[![SAMD Build Satus](https://github.com/denko-rb/denko/actions/workflows/
|
45
|
+
[![SAM3X Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_atsam3x.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_atsam3x.yml)
|
46
|
+
[![SAMD Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_atsamd21.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_atsamd21.yml)
|
23
47
|
[![RA4M1 Build Satus](https://github.com/denko-rb/denko/actions/workflows/build_ra4m1.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_ra4m1.yml)
|
24
48
|
|
25
49
|
| Chip | Status | Products | Notes |
|
@@ -41,44 +65,18 @@
|
|
41
65
|
|
42
66
|
| Chip | Status | Products | Notes |
|
43
67
|
| :-------- | :------: | :--------------- |------ |
|
44
|
-
| ATmega1284 | :heart: | Used in many 8-bit 3D printer boards. |
|
45
|
-
|
46
|
-
### Espressif Chips with Built-In Wi-Fi
|
47
|
-
[![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)
|
48
|
-
[![ESP32 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_esp32.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_esp32.yml)
|
49
|
-
|
50
|
-
| Chip | Status | Board Tested | Notes |
|
51
|
-
| :-------- | :------: | :--------------- |------ |
|
52
|
-
| ESP8266 | :green_heart: | NodeMCU |
|
53
|
-
| ESP8285 | :question: | DOIT ESP-Mx DevKit | Should be identical to 8266. Not tested in hardware.
|
54
|
-
| ESP32 | :green_heart: | DOIT ESP32 DevKit V1 |
|
55
|
-
| ESP32-S2 | :green_heart: | LOLIN S2 Pico | Native USB
|
56
|
-
| ESP32-S3 | :green_heart: | LOLIN S3 V1.0.0 | Native USB
|
57
|
-
| ESP32-C3 | :green_heart: | LOLIN C3 Mini V2.1.0 | Native USB
|
58
|
-
| ESP32-H2 | :heart: | - | Support in Arduino ESP32 core beta
|
59
|
-
| ESP32-C6 | :heart: | - | Support in Arduino ESP32 core beta
|
60
|
-
|
61
|
-
**Note:** For ESP32 chips using native USB, make sure `USB CDC On Boot` is `Enabled` in the IDE's `Tools` menu. Flashing from the CLI doesn't automatically enable this, so the IDE is recommended for now.
|
68
|
+
| ATmega1284 | :heart: | Used in many 8-bit 3D printer boards. |
|
62
69
|
|
63
70
|
### Raspberry Pi Microcontrollers
|
64
71
|
[![RP2040 Build Status](https://github.com/denko-rb/denko/actions/workflows/build_rp2040.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/build_rp2040.yml)
|
65
72
|
|
66
73
|
| Chip | Status | Board Tested | Notes |
|
67
74
|
| :-------- | :------: | :--------------- |------ |
|
68
|
-
| RP2040 | :green_heart: | Raspberry Pi Pico (W) |
|
75
|
+
| RP2040 | :green_heart: | Raspberry Pi Pico (W) |
|
69
76
|
|
70
77
|
# Single Board Computers
|
71
78
|
|
72
|
-
|
73
|
-
**Note:** See the [denko-piboard](https://github.com/denko-rb/denko-piboard) extension to this gem. It uses the peripheral classes from this gem, but swaps out `Board` for `PiBoard`, which uses the Raspberry Pi's built-in GPIO interface. This is still a work-in-progress.
|
74
|
-
|
75
|
-
| Chip | Status | Products | Notes |
|
76
|
-
| :-------- | :------: | :--------------- |------ |
|
77
|
-
| BCM2835 | :yellow_heart: | Pi 1, Pi Zero (W) |
|
78
|
-
| BCM2836/7 | :question: | Pi 2 |
|
79
|
-
| BCM2837A0/B0 | :yellow_heart: | Pi 3 |
|
80
|
-
| BCM2711 | :question: | Pi 4, Pi 400 |
|
81
|
-
| BCM2710A1 | :question: | Pi Zero 2W |
|
79
|
+
See the [Support](https://github.com/denko-rb/denko-piboard?tab=readme-ov-file#support) section of denko-piboard.
|
82
80
|
|
83
81
|
# Peripherals
|
84
82
|
|
@@ -91,22 +89,22 @@
|
|
91
89
|
| Digital In | :green_heart: | H | `DigitalIO::Input` | 1ms - 128ms (4ms default) listen, poll, or read
|
92
90
|
| Analog In (ADC) | :green_heart: | H | `AnalogIO::Input` | 1ms - 128ms (16ms default) listen, poll, or read
|
93
91
|
| Digital Out | :green_heart: | H | `DigitalIO::Output` |
|
94
|
-
| Analog Out (DAC) | :green_heart: | H | `AnalogIO::Output` | Only SAM3X, SAMD21, RA4M1, ESP32, ESP32-S2
|
92
|
+
| Analog Out (DAC) | :green_heart: | H | `AnalogIO::Output` | **Only** SAM3X, SAMD21, RA4M1, ESP32, ESP32-S2
|
95
93
|
| PWM Out | :green_heart: | H | `PulseIO::PWMOutput` |
|
96
|
-
| Servo/ESC
|
97
|
-
| Tone Out (
|
98
|
-
| I2C | :green_heart: | H | `I2C::Bus` | Predetermined pins
|
99
|
-
| I2C Bit
|
100
|
-
| SPI | :green_heart: | H | `SPI::Bus` | Predetermined pins
|
101
|
-
| SPI Bit
|
102
|
-
| UART | :green_heart: | H | `UART::Hardware` | Except Atmega328, ATmega168
|
103
|
-
| UART Bit
|
94
|
+
| Servo/ESC Motor Drive | :green_heart: | H | See Motor Driver Table | Depends on PWM
|
95
|
+
| Tone Out (Sq. Wave) | :green_heart: | H | `PulseIO::Buzzer` | Except SAM3X. Uses PWM
|
96
|
+
| I2C | :green_heart: | H | `I2C::Bus` | Predetermined pins per board
|
97
|
+
| I2C Bit-Bang | :green_heart: | S | `I2C::BitBang` | Any pins
|
98
|
+
| SPI | :green_heart: | H | `SPI::Bus` | Predetermined pins per board
|
99
|
+
| SPI Bit-Bang | :green_heart: | S | `SPI::BitBang` | Any pins
|
100
|
+
| UART | :green_heart: | H | `UART::Hardware` | **Except** Atmega328, ATmega168
|
101
|
+
| UART Bit-Bang | :green_heart: | S | `UART::BitBang` | **Only** ATmega328
|
104
102
|
| Maxim OneWire | :green_heart: | S | `OneWire::Bus` | No overdrive
|
105
|
-
| Infrared
|
106
|
-
| Infrared
|
107
|
-
| WS2812
|
108
|
-
| ESP32-PCNT | :heart: | H | - | Only ESP32. Pulse
|
109
|
-
| ESP32-MCPWM | :heart: | H | - | Only ESP32. Motor control PWM
|
103
|
+
| Infrared Output | :green_heart: | S | `PulseIO::IROutput` | **Except** SAM3X, RA4M1
|
104
|
+
| Infrared Input | :heart: | S | `PulseIO::IRInput` | Doable with existing library
|
105
|
+
| WS2812 RGB LEDs | :green_heart: | S | `LED::WS2812` | **Except** RA4M1
|
106
|
+
| ESP32-PCNT | :heart: | H | - | **Only** ESP32. Pulse and encoder counter
|
107
|
+
| ESP32-MCPWM | :heart: | H | - | **Only** ESP32. Motor control PWM
|
110
108
|
|
111
109
|
**Note:** When listening, the board checks the pin's value every **_2^n_** milliseconds (**_n_** from **_0_** to **_7_**), without further commands.
|
112
110
|
Polling and reading follow a call and response pattern.
|
@@ -137,7 +135,8 @@ Polling and reading follow a call and response pattern.
|
|
137
135
|
| Name | Status | Interface | Component Class | Notes |
|
138
136
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
139
137
|
| HD44780 LCD | :green_heart: | Digital Out, Output Register | `Display::HD44780` |
|
140
|
-
| SSD1306 OLED | :yellow_heart: | I2C
|
138
|
+
| SSD1306 OLED | :yellow_heart: | I2C or SPI | `Display::SSD1306` | 1 font, some graphics
|
139
|
+
| SH1106 OLED | :yellow_heart: | I2C or SPI | `Display::SH1106` | Works same as SSD1306
|
141
140
|
| ST7565R (128x64 Mono) | :heart: | SPI | `Display::ST7565R` |
|
142
141
|
| ST7735S (160x128 RGB) | :heart: | SPI | `Display::ST7735S` |
|
143
142
|
| ILI9341 (240x320 RGB) | :heart: | SPI | `Display::ILI9341` |
|
@@ -172,11 +171,11 @@ Polling and reading follow a call and response pattern.
|
|
172
171
|
| Input Register | :green_heart: | SPI | `SPI::InputRegister` | Tested on CD4021B
|
173
172
|
| Output Register | :green_heart: | SPI | `SPI::OutputRegister`| Tested on 74HC595
|
174
173
|
| PCF8574 Expander | :heart: | I2C | `DigitalIO::PCF8574` | 8-ch bi-directional digital I/O
|
175
|
-
| ADS1100 ADC | :
|
174
|
+
| ADS1100 ADC | :green_heart: | I2C | `AnalogIO::ADS1100` | 1-ch, 16-bit ADC. No continuous mode.
|
176
175
|
| ADS1115 ADC | :green_heart: | I2C | `AnalogIO::ADS1115` | 4-ch, 16-bit ADC. Comparator not implemented.
|
177
176
|
| ADS1118 ADC | :green_heart: | SPI | `AnalogIO::ADS1118` | 4-ch, 16-bit ADC + temperature
|
178
177
|
| ADS1232 ADC | :heart: | SPI | `AnalogIO::ADS1232` | 2-ch, 24-bit ADC + temperature
|
179
|
-
| PCF8591 ADC/DAC | :heart: | I2C | `AnalogIO::PCF8591` | 4-ch, 8-bit ADC + 1-
|
178
|
+
| PCF8591 ADC/DAC | :heart: | I2C | `AnalogIO::PCF8591` | 4-ch, 8-bit ADC + 1-ch 8-bit DAC
|
180
179
|
| MCP4725 DAC | :heart: | I2C | `AnalogIO::MCP4275` | 1-ch, 12-bit DAC
|
181
180
|
| PCA9548 I2C Mux | :heart: | I2C | `I2C::PCA9548` | 8-way I2C multiplexer
|
182
181
|
|
@@ -189,7 +188,7 @@ Polling and reading follow a call and response pattern.
|
|
189
188
|
| DS18B20 | :green_heart: | OneWire | `Sensor::DS18B20` | Temp |
|
190
189
|
| DHT11/21/22 | :green_heart: | Digi In/Out | `Sensor::DHT` | Temp / RH |
|
191
190
|
| SHT30/31/35 | :green_heart: | I2C | `Sensor::SHT3X` | Temp / RH | M5Stack ENV III, one-shot only
|
192
|
-
| SHT40/41 | :heart: | I2C | `Sensor::SHT4X` | Temp / RH |
|
191
|
+
| SHT40/41 | :heart: | I2C | `Sensor::SHT4X` | Temp / RH |
|
193
192
|
| QMP6988 | :green_heart: | I2C | `Sensor::QMP6988` | Temp / Press | M5Stack ENV III
|
194
193
|
| BMP180 | :green_heart: | I2C | `Sensor::BMP180` | Temp / Press |
|
195
194
|
| BMP280 | :green_heart: | I2C | `Sensor::BMP280` | Temp / Press |
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
1
|
+
# denko
|
2
|
+
[![Test Status](https://github.com/denko-rb/denko/actions/workflows/ruby.yml/badge.svg)](https://github.com/denko-rb/denko/actions/workflows/ruby.yml)
|
3
|
+
|
4
|
+
Program real-life electronics in pure Ruby. LEDs, buttons, sensors (and more) work just like any Ruby object:
|
4
5
|
|
5
6
|
```ruby
|
6
7
|
led.blink 0.5
|
@@ -14,28 +15,39 @@ button.down do
|
|
14
15
|
end
|
15
16
|
```
|
16
17
|
|
17
|
-
|
18
|
+
## How It Works
|
18
19
|
|
19
|
-
|
20
|
+
There are currently two ways to use denko. Both have the same user-friendly API, but the hardware can be very different. Here's a summary of each:
|
20
21
|
|
21
|
-
###
|
22
|
+
### Connected Microcontroller
|
23
|
+
- Flash a microcontroller with the denko C firmware, so it can be "remote controlled"
|
24
|
+
- Run a Ruby program on a "real" computer with the microcontroller connected
|
25
|
+
- The microcontroller appears as an instance of `Denko::Board`
|
26
|
+
- Calling methods on it will exchange messages that manipulate the real microcontroller
|
27
|
+
- The microcontroller can only do the bare minimum to send and receive signals
|
28
|
+
- Everything from peripheral drivers up happens in Ruby
|
22
29
|
|
23
|
-
|
30
|
+
### Single-Board-Computer
|
31
|
+
- Ruby a Ruby program on the SBC
|
32
|
+
- The SBC's own GPIO header appears as a `Denko::PiBoard` instance
|
33
|
+
- Everything runs self-contained on the SBC
|
24
34
|
|
25
|
-
|
26
|
-
|
35
|
+
**Notes:**
|
36
|
+
- Peripheral classes are only in this gem, but are compatible with both types of board, and both gems.
|
37
|
+
- That makes the [examples](examples) folder of this gem (mostly) relevant to both.
|
38
|
+
- If using denko-piboard, ignore the hardware and installation sections here.
|
27
39
|
|
28
|
-
|
29
|
-
A solo Raspberry Pi (or other SBC + microcontroller) is great if you need the compute power anyway, but what if you don't? Why not run Ruby on the microcontroller itself?
|
40
|
+
## Supported Hardware
|
30
41
|
|
31
|
-
|
42
|
+
[Microcontroller & Peripheral Support List](HARDWARE.md)
|
32
43
|
|
33
|
-
##
|
44
|
+
## Installation
|
34
45
|
|
35
|
-
**Note:**
|
46
|
+
**Note:** On Windows you can follow the Mac/Linux instructions in WSL, but it isn't recommended. Serial (COM port) forwarding isn't working on WSL2, which means you can't communicate with the board. There are workarounds, and it might work on WSL1, but the [RubyInstaller for Windows](https://rubyinstaller.org/) and Arduino IDE are recommended instead. A Linux virtual machine with USB passthrough works too.
|
36
47
|
|
37
48
|
#### 1. Install the Gem
|
38
|
-
|
49
|
+
|
50
|
+
```console
|
39
51
|
gem install denko
|
40
52
|
```
|
41
53
|
|
@@ -44,66 +56,76 @@ gem install denko
|
|
44
56
|
Get the Arduino IDE [here](http://arduino.cc/en/Main/Software) for a graphical interface (recommended for Windows), or use the command line interface from [here](https://github.com/arduino/arduino-cli/releases), or Homebrew.
|
45
57
|
|
46
58
|
**CLI Installation with Homebrew on Mac or Linux:**
|
47
|
-
|
59
|
+
|
60
|
+
```console
|
48
61
|
brew update
|
49
62
|
brew install arduino-cli
|
50
63
|
```
|
51
64
|
|
52
65
|
#### 3. Install Arduino Dependencies
|
66
|
+
|
53
67
|
Denko uses Arduino cores, which support different microcontrollers, and a few libraries. Install only the ones for your microcontroller, or install everything. There are no conflcits. Instructions:
|
54
|
-
|
55
|
-
|
68
|
+
|
69
|
+
- [Install Dependencies in IDE](DEPS_IDE.md)
|
70
|
+
- [Install Dependencies in CLI](DEPS_CLI.md)
|
56
71
|
|
57
72
|
#### 4. Generate the Arduino Sketch
|
73
|
+
|
58
74
|
The `denko` command is included with the gem. It will make the Arduino sketch folder for you, and configure it.
|
59
75
|
|
60
76
|
**Example for ESP32 target on both serial and Wi-Fi:**
|
61
|
-
|
77
|
+
|
78
|
+
```console
|
62
79
|
denko sketch serial --target esp32
|
63
80
|
denko sketch wifi --target esp32 --ssid YOUR_SSID --password YOUR_PASSWORD
|
64
81
|
|
65
82
|
# For more options
|
66
83
|
denko targets
|
67
84
|
```
|
85
|
+
|
68
86
|
**Note:** Boards flashed with a Wi-Fi or Ethernet sketch will [listen for a TCP connection](examples/connection/tcp.rb), but fall back to Serial when there is none active.
|
69
87
|
|
70
88
|
#### 5a. IDE Flashing
|
71
89
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
90
|
+
- Connect the board to your computer with a USB cable.
|
91
|
+
- Open the .ino file inside your sketch folder with the IDE.
|
92
|
+
- Open the dropdown menu at the top of the IDE window, and select your board.
|
93
|
+
- Press the Upload :arrow_right: button. This will compile the sketch, and flash it to the board.
|
76
94
|
|
77
95
|
**Troubleshooting:**
|
78
|
-
|
79
|
-
|
80
|
-
|
96
|
+
|
97
|
+
- If your serial port is in the list, but the board is wrong, select the serial port anyway, then you can manually select a board.
|
98
|
+
- If your board doesn't show up at all, make sure it is connected properly. Try disconnecting and reconnecting, use a different USB port or cable, or press the reset button after plugging it in.
|
99
|
+
- Some boards can get into a state where you have to hold their "boot" button while cycling power (reconnect or reset) for them to enter firmware update mode. Eg. Raspberry Pi Pico, ESP32-S2/S3.
|
81
100
|
|
82
101
|
#### 5b. CLI Flashing
|
83
102
|
|
84
|
-
|
85
|
-
|
86
|
-
|
103
|
+
- The path output by `denko sketch` earlier is your sketch folder. Keep it handy.
|
104
|
+
- Connect the board to your computer with a USB cable.
|
105
|
+
- Check if the CLI recognizes it:
|
87
106
|
|
88
|
-
```
|
107
|
+
```console
|
89
108
|
arduino-cli board list
|
90
109
|
```
|
91
|
-
|
92
|
-
|
93
|
-
|
110
|
+
|
111
|
+
- Using the Port and FQBN (Fully Qualified Board Name) shown, compile and upload the sketch:
|
112
|
+
|
113
|
+
```console
|
94
114
|
arduino-cli compile -b YOUR_FQBN YOUR_SKETCH_FOLDER
|
95
115
|
arduino-cli upload -v -p YOUR_PORT -b YOUR_FQBN YOUR_SKETCH_FOLDER
|
96
116
|
```
|
97
117
|
|
98
118
|
**Troubleshooting:**
|
99
|
-
|
100
|
-
|
119
|
+
|
120
|
+
- Follow the same steps as the IDE method above. List all FQBNs using:
|
121
|
+
|
122
|
+
```console
|
101
123
|
arduino-cli board listall
|
102
124
|
```
|
103
125
|
|
104
126
|
#### 6. Test It
|
105
127
|
|
106
|
-
Most boards have a regular LED on-board. Test
|
128
|
+
Most boards have a regular LED on-board. Test with the [blink](examples/led/builtin_blink.rb) example. If you have an on-board WS2812 LED (Neopixel), use the [WS2812 blink](examples/led/ws2812_builtin_blink.rb) example instead. If it starts blinking, you're ready for Ruby!
|
107
129
|
|
108
130
|
## Examples and Tutorials
|
109
131
|
|
@@ -118,24 +140,10 @@ Most boards have a regular LED on-board. Test it with the [blink](examples/led/b
|
|
118
140
|
- Current limiting resistors for LEDs
|
119
141
|
- Breadboard
|
120
142
|
- Jumper wires
|
121
|
-
|
122
|
-
**Tip:** Kits are a
|
143
|
+
|
144
|
+
**Tip:** Kits are a good way to get started. They include even more, and get you well beyond the tutorial.
|
123
145
|
|
124
146
|
#### Included Examples
|
125
147
|
|
126
|
-
- The [examples](examples) folder contains at least one example per
|
148
|
+
- The [examples](examples) folder contains at least one example per peripheral, demonstrating its interface.
|
127
149
|
- Each example should incldue a wiring diagram alongside its code (still incomplete).
|
128
|
-
|
129
|
-
#### More Examples
|
130
|
-
|
131
|
-
**Note:** This gem was renamed from `dino` to `denko`. Some of these examples use the old name.
|
132
|
-
|
133
|
-
- Try [Getting Started with Arduino and Dino](http://tutorials.jumpstartlab.com/projects/arduino/introducing_arduino.html) from [Jumpstart Lab](http://jumpstartlab.com) (_ignore old install instructions_).
|
134
|
-
- An example [rails app](https://github.com/austinbv/dino_rails_example) using Dino and Pusher.
|
135
|
-
- For a Sinatra example, look at the [site](https://github.com/austinbv/dino_cannon) used to shoot the cannon at RubyConf2012.
|
136
|
-
|
137
|
-
## Explanatory Talks
|
138
|
-
|
139
|
-
- "Arduino the Ruby Way" at RubyConf 2012
|
140
|
-
- [Video by ConFreaks](https://www.youtube.com/watch?v=oUIor6GK-qA)
|
141
|
-
- [Slides on SpeakerDeck](https://speakerdeck.com/austinbv/arduino-the-ruby-way)
|
data/Rakefile
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Find how much analog listen throughput is available from a Board.
|
3
|
+
#
|
4
|
+
# To find the limit, add more pins and/or reduce the divider until
|
5
|
+
# the rate per input pin can't meet the target.
|
6
|
+
# Example: Rate per input pin is < 500 Hz when divider is 2 ms.
|
7
|
+
#
|
8
|
+
require 'bundler/setup'
|
9
|
+
require 'denko'
|
10
|
+
|
11
|
+
# In seconds
|
12
|
+
TEST_TIME = 30
|
13
|
+
|
14
|
+
# Millisecond interval for analog listeners
|
15
|
+
# Valid values: 1, 2, 4, 8, 16, 32, 64, 128
|
16
|
+
DIVIDER = 2
|
17
|
+
|
18
|
+
# Input pins to read
|
19
|
+
PINS = [:A0, :A1]
|
20
|
+
|
21
|
+
connection = Denko::Connection::Serial.new
|
22
|
+
board = Denko::Board.new(connection)
|
23
|
+
inputs = PINS.map { |pin| Denko::AnalogIO::Input.new(pin: pin, board: board) }
|
24
|
+
|
25
|
+
# No mutex. Denko::Board callbacks are sequential, regardless of Ruby engine.
|
26
|
+
$readings = 0
|
27
|
+
inputs.each do |input|
|
28
|
+
input.add_callback { $readings += 1 }
|
29
|
+
input.listen(DIVIDER)
|
30
|
+
end
|
31
|
+
|
32
|
+
print "Sampling for #{TEST_TIME} seconds... "
|
33
|
+
|
34
|
+
# Main test
|
35
|
+
start = Time.now
|
36
|
+
$readings = 0
|
37
|
+
sleep TEST_TIME
|
38
|
+
finish = Time.now
|
39
|
+
# Copy immediately to another variable before stopping inputs.
|
40
|
+
readings = $readings
|
41
|
+
inputs.each { |input| input.stop }
|
42
|
+
|
43
|
+
puts "Done."; puts
|
44
|
+
|
45
|
+
rps = (readings / (finish - start))
|
46
|
+
rpspi = rps / inputs.count
|
47
|
+
puts "Total analog readings : #{readings}"
|
48
|
+
puts "Analog readings /s : #{rps.round(3)}"
|
49
|
+
puts "Rate per input pin : #{rpspi.round(3)} Hz"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#
|
2
|
+
# Benchmark digital write throughput for a Denko::Board instance.
|
3
|
+
#
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'denko'
|
6
|
+
|
7
|
+
# Pins > 63 will not benefit from the single-byte message optimization.
|
8
|
+
PIN = 4
|
9
|
+
TOTAL_WRITES = 200_000
|
10
|
+
|
11
|
+
connection = Denko::Connection::Serial.new
|
12
|
+
board = Denko::Board.new(connection)
|
13
|
+
output = Denko::DigitalIO::Output.new(board: board, pin: PIN)
|
14
|
+
|
15
|
+
print "Testing #{TOTAL_WRITES} digital writes... "
|
16
|
+
|
17
|
+
start = Time.now
|
18
|
+
(TOTAL_WRITES / 2).times do
|
19
|
+
output.high
|
20
|
+
output.low
|
21
|
+
end
|
22
|
+
board.finish_write
|
23
|
+
finish = Time.now
|
24
|
+
|
25
|
+
puts "Done."; puts
|
26
|
+
|
27
|
+
wps = TOTAL_WRITES / (finish - start)
|
28
|
+
puts "Digital writes per second : #{wps.round(3)}"
|
@@ -35,22 +35,29 @@
|
|
35
35
|
# ESP32-S3 : 51.8 fps (native USB) - Changed from 64 to 128 serial ACK interval
|
36
36
|
# ESP32-C3 : 51.7 fps (native USB) - Changed from 64 to 128 serial ACK interval
|
37
37
|
#
|
38
|
+
# July 27 2024 | i7 8700k CPU | CRuby 3.3.1 | 100 frames | Average of 3 runs
|
39
|
+
#
|
40
|
+
# ESP32-H2 : 7.3 fps (WCH UART bridge @ 115200, I2C @ 400kHz)
|
41
|
+
# ESP32-H2 : 10.9 fps (WCH UART bridge @ 230400, I2C @ 400kHz)
|
42
|
+
# ESP32-C6 : 8.0 fps (WCH UART bridge @ 115200, I2C @ 1MHz)
|
43
|
+
# ESP32-C6 : 13.2 fps (WCH UART bridge @ 230400, I2C @ 1MHz)
|
44
|
+
#
|
38
45
|
require 'bundler/setup'
|
39
46
|
require 'denko'
|
40
47
|
|
41
48
|
# Settings
|
42
49
|
# Must match speed in the sketch for UART briges. Doesn't matter for native USB.
|
43
|
-
BAUD_RATE
|
44
|
-
FRAME_COUNT
|
50
|
+
BAUD_RATE = 115_200
|
51
|
+
FRAME_COUNT = 100
|
45
52
|
# Request 1 Mhz I2C frequency. Wire libraries will fall back to fastest available speed.
|
46
53
|
I2C_FREQUENCY = 1_000_000
|
47
54
|
# Use :SDA0 for RP2040
|
48
|
-
I2C_PIN
|
55
|
+
I2C_PIN = :SDA
|
49
56
|
|
50
57
|
# Setup
|
51
|
-
board
|
52
|
-
bus
|
53
|
-
oled
|
58
|
+
board = Denko::Board.new(Denko::Connection::Serial.new(baud: BAUD_RATE))
|
59
|
+
bus = Denko::I2C::Bus.new(board: board)
|
60
|
+
oled = Denko::Display::SSD1306.new(bus: bus, rotate: true, i2c_frequency: I2C_FREQUENCY)
|
54
61
|
canvas = oled.canvas
|
55
62
|
|
56
63
|
# Intro
|
data/build
CHANGED
data/denko.gemspec
CHANGED
@@ -4,8 +4,8 @@ require File.expand_path('../lib/denko/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.authors = ["vickash, Austinbv"]
|
6
6
|
gem.email = ["mail@vickash.com"]
|
7
|
-
gem.description = %q{
|
8
|
-
gem.summary = %q{Use GPIO, I2C, SPI,
|
7
|
+
gem.description = %q{Electronics programming in Ruby}
|
8
|
+
gem.summary = %q{Use GPIO, PWM, I2C, SPI, and more, on a connected microcontroller, or single-board-computer}
|
9
9
|
gem.homepage = 'https://github.com/denko-rb/denko'
|
10
10
|
gem.files = `git ls-files`.split($\)
|
11
11
|
gem.licenses = ['MIT']
|
@@ -38,6 +38,9 @@ Gem::Specification.new do |gem|
|
|
38
38
|
gem.version = Denko::VERSION
|
39
39
|
gem.executables = ["denko"]
|
40
40
|
|
41
|
+
gem.required_ruby_version = '>=2.7.8'
|
42
|
+
|
43
|
+
gem.add_dependency 'observer', '~> 0.1.2'
|
41
44
|
gem.add_dependency 'rubyserial', '~> 0.6'
|
42
45
|
gem.add_dependency 'bcd', '~> 1'
|
43
46
|
|