denko 0.13.2 → 0.13.4
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 +79 -0
- data/DEPS_CLI.md +5 -0
- data/DEPS_IDE.md +5 -0
- data/HARDWARE.md +70 -35
- data/README.md +3 -3
- data/benchmarks/i2c_ssd1306_refresh.rb +7 -2
- data/examples/advanced/m5_env.rb +48 -0
- data/examples/digital_io/button.rb +13 -0
- data/examples/pulse_io/buzzer.rb +0 -40
- data/examples/sensor/aht10.rb +7 -3
- data/examples/sensor/aht20.rb +7 -3
- data/examples/sensor/bme280.rb +6 -43
- data/examples/sensor/bmp180.rb +22 -0
- data/examples/sensor/generic_pir.rb +25 -0
- data/examples/sensor/htu21d.rb +1 -1
- data/examples/sensor/htu31d.rb +15 -11
- data/examples/sensor/neat_tph_readings.rb +26 -0
- data/examples/sensor/qmp6988.rb +53 -0
- data/examples/sensor/rcwl9620.rb +15 -0
- data/examples/sensor/sht3x.rb +34 -0
- data/lib/denko/board/led_array.rb +3 -6
- data/lib/denko/message.rb +1 -1
- data/lib/denko/sensor/bme280.rb +1 -1
- data/lib/denko/sensor/bmp180.rb +223 -0
- data/lib/denko/sensor/generic_pir.rb +8 -0
- data/lib/denko/sensor/htu21d.rb +6 -2
- data/lib/denko/sensor/qmp6988.rb +308 -0
- data/lib/denko/sensor/rcwl9620.rb +34 -0
- data/lib/denko/sensor/sht3x.rb +128 -0
- data/lib/denko/sensor.rb +6 -0
- 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 +15 -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: e165f677a5af1dc4d7a924e7b2387bafaca1c84c754b72eac8960fcea42117a7
|
4
|
+
data.tar.gz: f1c795bff6917284d3b31fbff4d1ea44de78f2871492b466f45d9f36abc340af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c897cca6c4a59ce2fbd73e517c380ba272ad0c6a621a9ba7034dffe1f83e151c21cad0671df872443eff8376ff646933a0a68cda07e25860869a06a9306fcfac
|
7
|
+
data.tar.gz: 6f90da47a6bb960400d9986668b2f9320248616f0a4f0a12a930e9ffda4dad0d75e1c08ecf8aae223f8882b72bd56e73dfe113a79c3973ff91c326c4ed31f941
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,84 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.13.4
|
4
|
+
|
5
|
+
### New Components
|
6
|
+
|
7
|
+
- Generic PIR sensors:
|
8
|
+
- Class: `Denko::Sensor::GenericPIR`
|
9
|
+
- Based on `Denko::DigitalIO::Input` class.
|
10
|
+
- Tested with AS312 and HC-SR501 sensors. Should work with AM312 and others.
|
11
|
+
|
12
|
+
- Bosch BMP 180 Temperature + Pressure Sensor:
|
13
|
+
- Class: `Denko::Sensor::BMP180`
|
14
|
+
- Connects via I2C bus. Ruby driver.
|
15
|
+
- Similar to BMP280, but fewer features (older version).
|
16
|
+
- Should work for BMP085 sensor as well.
|
17
|
+
|
18
|
+
- SHT30/31/35 Temperature + Humidity Sensor:
|
19
|
+
- Class: `Denko::Sensor::SHTX`
|
20
|
+
- Connects via I2C bus. Ruby driver.
|
21
|
+
- One-shot reading mode only.
|
22
|
+
|
23
|
+
- RCWL-9620 Ultrasonic Distance Sensor:
|
24
|
+
- Class: `Denko::Sensor::RCWL9620`
|
25
|
+
- Connects via I2C bus. Ruby driver.
|
26
|
+
- Very simple interface. `#read` returns a distance in mm.
|
27
|
+
|
28
|
+
### Component Changes
|
29
|
+
|
30
|
+
- HTU21D:
|
31
|
+
- Humidity values outside the 0-100% range will be clipped to those values automatically.
|
32
|
+
|
33
|
+
### Example Changes
|
34
|
+
|
35
|
+
- Added a simple button example, separate from tutorial.
|
36
|
+
- Standardize temp/pressure/humidity sensor examples (except DHT, DS18B20, HTU21D) so readings display the same.
|
37
|
+
|
38
|
+
### Bug Fixes
|
39
|
+
|
40
|
+
- Fixed bug where `BMP280`` sensor class would not autoload.
|
41
|
+
|
42
|
+
## 0.13.3
|
43
|
+
|
44
|
+
### Board Updates / Fixes
|
45
|
+
|
46
|
+
- Arduino UNO R4 Minima & Wi-Fi (`--target ra4m1`):
|
47
|
+
- RA4M1 fully tested
|
48
|
+
- Only IR-remote and WS2812 libraries not working. Disabled temporarily.
|
49
|
+
|
50
|
+
- Arduino Nano Every
|
51
|
+
- ATmega4809 fully tested and issues fixed
|
52
|
+
- Works similarly to the regular AVR chips
|
53
|
+
|
54
|
+
- SAMD21
|
55
|
+
- Changed serial acknowledgement threshold to 128 instead of 64. More stable, but might be slightly slower performing.
|
56
|
+
|
57
|
+
### Network Chip Updates / Fixes
|
58
|
+
|
59
|
+
- WINC1500
|
60
|
+
- Added support for WiFi101 library
|
61
|
+
- Tested on Arduino MKR 1000
|
62
|
+
|
63
|
+
- NINA-W102
|
64
|
+
- Added conditions to select the WiFiNINA library on appropriate hardware.
|
65
|
+
- Untested in hardware
|
66
|
+
|
67
|
+
### API Changes
|
68
|
+
|
69
|
+
- Default aux message size is now 784 bytes (768 + 16) instead of (512 + 16)
|
70
|
+
|
71
|
+
### Component Changes
|
72
|
+
|
73
|
+
- WS2812
|
74
|
+
- Larger aux message size now allows up to 256 pixels (3 bytes per pixel) on a strip
|
75
|
+
|
76
|
+
### Bug Fixes
|
77
|
+
|
78
|
+
- 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.
|
79
|
+
- The `val` variable in Arduino is now 16-bit instead of 8-bit.
|
80
|
+
- Fixed instances where `Minitest` was referred to as `MiniTest`, causing tests to fail.
|
81
|
+
|
3
82
|
## 0.13.2
|
4
83
|
|
5
84
|
### 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,23 @@
|
|
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
|
39
|
+
|
40
|
+
### AVR Chips from [MightyCore](https://github.com/MCUdude/MightyCore)
|
41
|
+
|
42
|
+
| Chip | Status | Products | Notes |
|
43
|
+
| :-------- | :------: | :--------------- |------ |
|
44
|
+
| ATmega1284 | :heart: | Used in many 8-bit 3D printer boards. |
|
38
45
|
|
39
46
|
### Espressif Chips with Built-In Wi-Fi
|
40
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)
|
@@ -90,12 +97,12 @@
|
|
90
97
|
| I2C Bit Bang | :heart: | S | `I2C::BitBang` | Any pins
|
91
98
|
| SPI | :green_heart: | H | `SPI::Bus` | Predetermined pins from IDE
|
92
99
|
| SPI Bit Bang | :green_heart: | S | `SPI::BitBang` | Any pins
|
93
|
-
| UART | :green_heart: | H | `UART::Hardware` | Except Atmega328, ATmega168
|
100
|
+
| UART | :green_heart: | H | `UART::Hardware` | Except Atmega328, ATmega168
|
94
101
|
| UART Bit Bang | :green_heart: | S | `UART::BitBang` | Only ATmega328, ATmega168
|
95
102
|
| Maxim OneWire | :green_heart: | S | `OneWire::Bus` | No overdrive
|
96
|
-
| Infrared Emitter | :green_heart: | S | `PulseIO::IRTransmitter` | Except RA4M1
|
103
|
+
| Infrared Emitter | :green_heart: | S | `PulseIO::IRTransmitter` | Except SAM3X, RA4M1
|
97
104
|
| Infrared Receiver | :heart: | S | `PulseIO::IRReceiver` | Doable with existing library
|
98
|
-
| WS2812 | :green_heart: | S | See LED table | Except RP2040
|
105
|
+
| WS2812 | :green_heart: | S | See LED table | Except RP2040, RA4M1
|
99
106
|
| ESP32-PCNT | :heart: | H | - | Only ESP32. Pulse counter (for encoders)
|
100
107
|
| ESP32-MCPWM | :heart: | H | - | Only ESP32. Motor control PWM
|
101
108
|
|
@@ -118,6 +125,7 @@ Polling and reading follow a call and response pattern.
|
|
118
125
|
| LED | :green_heart: | Digi/Ana Out | `LED::Base` |
|
119
126
|
| RGB LED | :green_heart: | Digi/Ana Out | `LED::RGB` |
|
120
127
|
| 7 Segment Display | :yellow_heart: | Digital Out | `LED::SevenSegment` | No decimal point
|
128
|
+
| 8x8 LED (MAX7219) | :heart: | SPI | `LED::MAX7219` |
|
121
129
|
| TM1637 | :heart: | BitBang SPI | `LED::TM1637` | 4x 7 Segment + Colon
|
122
130
|
| Neopixel / WS2812B | :yellow_heart: | Adafruit Library | `LED::WS2812` | Not working on RP2040
|
123
131
|
| Dotstar / APA102 | :green_heart: | SPI | `LED::APA102` |
|
@@ -128,6 +136,12 @@ Polling and reading follow a call and response pattern.
|
|
128
136
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
129
137
|
| HD44780 LCD | :green_heart: | Digital Out, Output Register | `Display::HD44780` |
|
130
138
|
| SSD1306 OLED | :yellow_heart: | I2C | `Display::SSD1306` | 1 font, some graphics
|
139
|
+
| ST7565R (128x64 Mono) | :heart: | SPI | `Display::ST7565R` |
|
140
|
+
| ST7735S (160x128 RGB) | :heart: | SPI | `Display::ST7735S` |
|
141
|
+
| ILI9341 (240x320 RGB) | :heart: | SPI | `Display::ILI9341` |
|
142
|
+
| GC9107 (128x128 RGB) | :heart: | SPI | `Display::GC9107` |
|
143
|
+
| GC9A01 (240x240 Round) | :heart: | SPI | `Display::GCA9A01` |
|
144
|
+
| IL0373 (212x104 E-Paper) | :heart: | SPI | `Display::IL0373` |
|
131
145
|
|
132
146
|
### Sound
|
133
147
|
|
@@ -141,9 +155,12 @@ Polling and reading follow a call and response pattern.
|
|
141
155
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
142
156
|
| Generic Hobby Servo | :green_heart: | Servo/ESC PWM | `Motor::Servo` | Max depends on PWM channel count
|
143
157
|
| Generic ESC | :yellow_heart: | Servo/ESC PWM | `Motor::Servo` | Works. Needs its own class.
|
158
|
+
| PCA9685 | :heart: | I2C | `PulseIO::PCA9685` | 16ch 12-bit PWM for servo or LED
|
144
159
|
| L298N | :green_heart: | Digi + PWM Out | `Motor::L298` | H-Bridge DC motor driver
|
160
|
+
| DRV8833 | :heart: | Digi + PWM Out | `Motor::DRV8833` | H-Bridge DC motor driver
|
145
161
|
| A3967 | :green_heart: | Digital Out | `Motor::Stepper` | 1ch microstepper (EasyDriver)
|
146
|
-
|
|
162
|
+
| A4988 | :yellow_heart: | DigitalOut | `Motor::Stepper` | 1-ch microstepper
|
163
|
+
| TMC2209 | :heart: | - | - | 1ch silent stepper driver
|
147
164
|
|
148
165
|
### I/O Expansion
|
149
166
|
|
@@ -160,55 +177,73 @@ Polling and reading follow a call and response pattern.
|
|
160
177
|
|
161
178
|
### Environmental Sensors
|
162
179
|
|
163
|
-
| Name | Status | Interface | Component Class | Notes
|
164
|
-
| :--------------- | :------: | :-------- | :---------------
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
180
|
+
| Name | Status | Interface | Component Class | Type | Notes |
|
181
|
+
| :--------------- | :------: | :-------- | :--------------- |--------------- | ---------------------- |
|
182
|
+
| MAX31850 | :heart: | OneWire | `Sensor::MAX31850` | Thermocouple |
|
183
|
+
| MAX6675 | :heart: | SPI | `Sensor::MAX6675` | Thermocouple |
|
184
|
+
| DS18B20 | :green_heart: | OneWire | `Sensor::DS18B20` | Temp |
|
185
|
+
| DHT11/21/22 | :green_heart: | Digi In/Out | `Sensor::DHT` | Temp / RH |
|
186
|
+
| SHT30/31/35 | :green_heart: | I2C | `Sensor::SHT3X` | Temp / RH | M5Stack ENV III, one-shot only
|
187
|
+
| QMP6988 | :green_heart: | I2C | `Sensor::QMP6988` | Temp / Press | M5Stack ENV III
|
188
|
+
| BMP180 | :green_heart: | I2C | `Sensor::BMP180` | Temp / Press |
|
189
|
+
| BMP280 | :green_heart: | I2C | `Sensor::BMP280` | Temp / Press |
|
190
|
+
| BME280 | :green_heart: | I2C | `Sensor::BME280` | Temp / Press / RH |
|
191
|
+
| HTU21D | :green_heart: | I2C | `Sensor::HTU21D` | Temp / RH | No user register read
|
192
|
+
| HTU31D | :green_heart: | I2C | `Sensor::HTU31D` | Temp / RH | No diagnostic read
|
193
|
+
| AHT10/15 | :green_heart: | I2C | `Sensor::AHT10` | Temp / RH |
|
194
|
+
| AHT20/21/25 | :green_heart: | I2C | `Sensor::AHT20` | Temp / RH |
|
195
|
+
| ENS160 | :heart: | I2C | `Sensor::ENS160` | CO2e / TVOC / AQI |
|
196
|
+
| AGS02MA | :heart: | I2C | `Sensor::AGS02MA` | TVOC |
|
197
|
+
| SCD40 | :heart: | I2C | `Sensor::SDC40` | Temp / Press / CO2 |
|
178
198
|
|
179
199
|
### Light Sensors
|
180
200
|
|
181
201
|
| Name | Status | Interface | Component Class | Notes |
|
182
202
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
183
203
|
| BH1750 | :heart: | Digital In | `Sensor::BH1750` | Ambient Light
|
184
|
-
|
|
185
|
-
| AS312 | :heart: | I2C | `Sensor::AS312` | PIR
|
204
|
+
| TCS34725 | :heart: | I2C | `Sensor::TCS34725` | RGB
|
186
205
|
| APDS9960 | :heart: | I2C | `Sensor::APDS9960` | Proximity, RGB, Gesture
|
187
206
|
|
207
|
+
### PIR Motion Sensors
|
208
|
+
| Name | Status | Interface | Component Class | Notes |
|
209
|
+
| :--------------- | :------: | :-------- | :--------------- |------ |
|
210
|
+
| HC-SR501 | :green_heart: | Digital In | `Sensor::GenericPIR` |
|
211
|
+
| AS312 | :green_heart: | Digital In | `Sensor::GenericPIR` |
|
212
|
+
|
188
213
|
### Distance Sensors
|
189
214
|
|
190
215
|
| Name | Status | Interface | Component Class | Notes |
|
191
216
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
192
217
|
| HC-SR04 | :heart: | Digi In/Out | `Sensor::HCSR04` | Ultrasonic, 20-4000mm
|
193
|
-
| RCWL-9620 | :
|
218
|
+
| RCWL-9620 | :green_heart: | I2C | `Sensor::RCWL9260` | Ultrasonic, 20-4500mm
|
194
219
|
| VL53L0X | :heart: | I2C | `Sensor::VL53L0X` | Laser, 30 - 1000mm
|
195
220
|
| GP2Y0E03 | :heart: | I2C | `Sensor::GP2Y0E03` | Infrared, 40 - 500mm
|
196
221
|
|
197
|
-
###
|
222
|
+
### Inertial Measurement Units
|
198
223
|
|
199
224
|
| Name | Status | Interface | Component Class | Notes |
|
200
225
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
201
|
-
| ADXL345 | :heart: | I2C | `Sensor::ADXL345` |
|
202
|
-
| IT3205 | :heart: | I2C | `Sensor::IT3205` |
|
203
|
-
| HMC5883L | :heart: | I2C | `Sensor::HMC5883L` |
|
204
|
-
| MPU6886 | :heart: | I2C | `Sensor::MPU6886` |
|
226
|
+
| ADXL345 | :heart: | I2C | `Sensor::ADXL345` | Accelerometer
|
227
|
+
| IT3205 | :heart: | I2C | `Sensor::IT3205` | Gyroscope
|
228
|
+
| HMC5883L | :heart: | I2C | `Sensor::HMC5883L` | Compass
|
229
|
+
| MPU6886 | :heart: | I2C | `Sensor::MPU6886` | Gyro + Accelerometer
|
230
|
+
| BMI160 | :heart: | I2C | `Sensor::BMI160` | Gyro + Accelerometer
|
231
|
+
| LSM6DS3 | :heart: | I2C | `Sensor:LSM6DS3` | Gyro + Accelerometer
|
205
232
|
|
206
233
|
### Real Time Clocks
|
207
234
|
|
208
235
|
| Name | Status | Interface | Component Class | Notes |
|
209
236
|
| :--------------- | :------: | :-------- | :--------------- |------ |
|
210
237
|
| DS1302 | :heart: | I2C | `RTC::DS1302` |
|
238
|
+
| DS1307 | :heart: | I2C | `RTC::DS1307` |
|
211
239
|
| DS3231 | :green_heart: | I2C | `RTC::DS3231` | Alarms not implemented
|
240
|
+
| PCF8563 | :heart: | I2C | `RTC::PCF8563` |
|
241
|
+
|
242
|
+
### GPS
|
243
|
+
|
244
|
+
| Name | Status | Interface | Component Class | Notes |
|
245
|
+
| :--------------- | :------: | :-------- | :--------------- |------ |
|
246
|
+
| GT-U7 | :heart: | UART | - |
|
212
247
|
|
213
248
|
### Miscellaneous
|
214
249
|
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Denko 0.13.
|
1
|
+
# Denko 0.13.4 [![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
|
|
@@ -23,10 +23,10 @@ High-level abstraction in Ruby makes hardware classes easy to implement, with in
|
|
23
23
|
Full list of supported mircocontroller platforms, interfaces, and peripherals is located [here](HARDWARE.md).
|
24
24
|
|
25
25
|
##### denko-piboard
|
26
|
-
|
26
|
+
The add-on gem, [denko-piboard](https://github.com/denko-rb/denko-piboard), allows you to use a Raspberry Pi's built in GPIO pins in place of an attached microcontroller. Connect things directly to the Pi, and use the same peripheral classes from this gem.
|
27
27
|
|
28
28
|
##### mruby-denko
|
29
|
-
A solo Raspberry Pi (or other small SBC + microcontroller) is a great standalone setup if your project needs the compute power anyway, but what if you don't? Why not run Ruby on the microcontroller itself?
|
29
|
+
A solo Raspberry Pi (or other small SBC + microcontroller) is a great standalone setup if your project needs the compute power anyway, but what if you don't? Why not run Ruby on the microcontroller itself?
|
30
30
|
|
31
31
|
That's the goal of [mruby-denko](https://github.com/denko-rb/mruby-denko): write mruby on the ESP32, using peripheral classes as close to this gem as possible. Still early in development, so limited features, but already usable.
|
32
32
|
|
@@ -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'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#
|
2
|
+
# This example combines the SHTX and QMP6988 examples. The M5Stack ENV III unit
|
3
|
+
# contains both sensors, accessible over a single I2C connection.
|
4
|
+
#
|
5
|
+
require 'bundler/setup'
|
6
|
+
require 'denko'
|
7
|
+
|
8
|
+
board = Denko::Board.new(Denko::Connection::Serial.new)
|
9
|
+
bus = Denko::I2C::Bus.new(board: board, pin: :SDA)
|
10
|
+
sht = Denko::Sensor::SHT3X.new(bus: bus) # address: 0x44 default
|
11
|
+
qmp = Denko::Sensor::QMP6988.new(bus: bus) # address: 0x70 default
|
12
|
+
|
13
|
+
# Configure for higher accuracy.
|
14
|
+
sht.repeatability = :high
|
15
|
+
qmp.temperature_samples = 2
|
16
|
+
qmp.pressure_samples = 16
|
17
|
+
qmp.iir_coefficient = 2
|
18
|
+
|
19
|
+
# Buggy on ESP32-S3 in forced mode. Data registers return zeroes on all but first read.
|
20
|
+
# Can't recreate on ESP32 V1, AVR or SAMD21. Put it in contiuous mode just in case.
|
21
|
+
qmp.continuous_mode
|
22
|
+
|
23
|
+
# Get the shared #print_tph_reading method to print readings neatly.
|
24
|
+
require_relative '../sensor/neat_tph_readings'
|
25
|
+
|
26
|
+
# How many degrees C the two temperature values can differ by before a warning.
|
27
|
+
TOLERANCE = 0.50
|
28
|
+
|
29
|
+
loop do
|
30
|
+
# Read both sensors.
|
31
|
+
qmp_reading = qmp.read
|
32
|
+
sht_reading = sht.read
|
33
|
+
|
34
|
+
# Retry immediately if either failed.
|
35
|
+
next unless (sht_reading && qmp_reading)
|
36
|
+
|
37
|
+
# Warn if large gap between temperature readings.
|
38
|
+
difference = (qmp_reading[:temperature] - sht_reading[:temperature]).abs
|
39
|
+
if (difference > TOLERANCE)
|
40
|
+
puts "WARNING: temperature values differed by more than #{TOLERANCE}\xC2\xB0C (#{difference.round(4)} \xC2\xB0C actual)"
|
41
|
+
end
|
42
|
+
|
43
|
+
# Combine values from both sensors, averaging their temperatures.
|
44
|
+
average_temperature = (qmp_reading[:temperature] + sht_reading[:temperature]) / 2.0
|
45
|
+
print_tph_reading(temperature: average_temperature, humidity: sht_reading[:humidity], pressure: qmp_reading[:pressure])
|
46
|
+
|
47
|
+
sleep 5
|
48
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#
|
2
|
+
# Simple button example.
|
3
|
+
#
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'denko'
|
6
|
+
|
7
|
+
board = Denko::Board.new(Denko::Connection::Serial.new)
|
8
|
+
button = Denko::DigitalIO::Button.new(board: board, pin: 5, pullup: true)
|
9
|
+
|
10
|
+
button.up { puts "Button released!" }
|
11
|
+
button.down { puts "Button pressed!" }
|
12
|
+
|
13
|
+
sleep
|
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
|
data/examples/sensor/aht10.rb
CHANGED
@@ -6,10 +6,14 @@ require 'denko'
|
|
6
6
|
|
7
7
|
board = Denko::Board.new(Denko::Connection::Serial.new)
|
8
8
|
bus = Denko::I2C::Bus.new(board: board, pin: :SDA)
|
9
|
-
|
9
|
+
sensor = Denko::Sensor::AHT10.new(bus: bus) # address: 0x38 default
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
# Get the shared #print_tph_reading method to print readings neatly.
|
12
|
+
require_relative 'neat_tph_readings'
|
13
|
+
|
14
|
+
# Poll it and print readings.
|
15
|
+
sensor.poll(5) do |reading|
|
16
|
+
print_tph_reading(reading)
|
13
17
|
end
|
14
18
|
|
15
19
|
sleep
|
data/examples/sensor/aht20.rb
CHANGED
@@ -6,10 +6,14 @@ require 'denko'
|
|
6
6
|
|
7
7
|
board = Denko::Board.new(Denko::Connection::Serial.new)
|
8
8
|
bus = Denko::I2C::Bus.new(board: board, pin: :SDA)
|
9
|
-
|
9
|
+
sensor = Denko::Sensor::AHT20.new(bus: bus) # address: 0x38 default
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
# Get the shared #print_tph_reading method to print readings neatly.
|
12
|
+
require_relative 'neat_tph_readings'
|
13
|
+
|
14
|
+
# Poll it and print readings.
|
15
|
+
sensor.poll(5) do |reading|
|
16
|
+
print_tph_reading(reading)
|
13
17
|
end
|
14
18
|
|
15
19
|
sleep
|
data/examples/sensor/bme280.rb
CHANGED
@@ -5,28 +5,11 @@ require 'bundler/setup'
|
|
5
5
|
require 'denko'
|
6
6
|
|
7
7
|
board = Denko::Board.new(Denko::Connection::Serial.new)
|
8
|
-
|
9
|
-
#
|
10
|
-
# Default pins for the I2C0 (first) interface on most chips:
|
11
|
-
#
|
12
|
-
# ATmega 328p: SDA = 'A4' SCL = 'A5' - Arduino Uno, Nano
|
13
|
-
# ATmega 32u4: SDA = 2 SCL = 3 - Arduino Leonardo, Pro Micro
|
14
|
-
# ATmega1280 / 2560: SDA = 20 SCL = 21 - Arduino Mega
|
15
|
-
# SAM3X8E: SDA = 20 SCL = 21 - Arduino Due
|
16
|
-
# SAMD21G18: SDA = 20 SCL = 21 - Arduino Zero, M0, M0 Pro
|
17
|
-
# ESP8266: SDA = 4 SCL = 5
|
18
|
-
# ESP32: SDA = 21 SCL = 22
|
19
|
-
# RP2040: SDA = 4 SCL = 5 - Raspberry Pi Pico (W)
|
20
|
-
#
|
21
|
-
# Only give the SDA pin of the I2C bus. SCL (clock) pin must be
|
22
|
-
# connected for it to work, but we don't need to control it.
|
23
|
-
#
|
24
8
|
bus = Denko::I2C::Bus.new(board: board, pin: :SDA)
|
25
9
|
|
26
|
-
sensor = Denko::Sensor::BME280.new(bus: bus
|
27
|
-
|
10
|
+
sensor = Denko::Sensor::BME280.new(bus: bus) # address: 0x76 default
|
28
11
|
# Use A BMP280 with no humidity instead.
|
29
|
-
# sensor = Denko::Sensor::BMP280.new(bus: bus
|
12
|
+
# sensor = Denko::Sensor::BMP280.new(bus: bus) # address: 0x76
|
30
13
|
|
31
14
|
# Default reading mode is oneshot ("forced" in datasheet).
|
32
15
|
# sensor.oneshot_mode
|
@@ -44,32 +27,12 @@ sensor = Denko::Sensor::BME280.new(bus: bus, address: 0x76)
|
|
44
27
|
# Print raw config register bits.
|
45
28
|
# print sensor.config_register_bits
|
46
29
|
|
47
|
-
|
48
|
-
|
49
|
-
print "#{Time.now.strftime '%Y-%m-%d %H:%M:%S'} - "
|
50
|
-
|
51
|
-
# Temperature
|
52
|
-
formatted_temp = reading[:temperature].round(2).to_s.ljust(5, '0')
|
53
|
-
print "Temperature: #{formatted_temp} \xC2\xB0C"
|
54
|
-
|
55
|
-
# Pressure
|
56
|
-
if reading[:pressure]
|
57
|
-
formatted_pressure = (reading[:pressure] / 101325).round(5).to_s.ljust(7, '0')
|
58
|
-
print " | Pressure #{formatted_pressure} atm"
|
59
|
-
end
|
60
|
-
|
61
|
-
# Humidity
|
62
|
-
if reading[:humidity]
|
63
|
-
formatted_humidity = reading[:humidity].round(2).to_s.ljust(5, '0')
|
64
|
-
print " | Humidity #{formatted_humidity} %"
|
65
|
-
end
|
66
|
-
|
67
|
-
puts
|
68
|
-
end
|
30
|
+
# Get the shared #print_tph_reading method to print readings neatly.
|
31
|
+
require_relative 'neat_tph_readings'
|
69
32
|
|
70
|
-
# Poll
|
33
|
+
# Poll it and print readings.
|
71
34
|
sensor.poll(5) do |reading|
|
72
|
-
|
35
|
+
print_tph_reading(reading)
|
73
36
|
end
|
74
37
|
|
75
38
|
sleep
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# Example using a BMP180 sensor over I2C, for temperature and pressure.
|
3
|
+
#
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'denko'
|
6
|
+
|
7
|
+
board = Denko::Board.new(Denko::Connection::Serial.new)
|
8
|
+
bus = Denko::I2C::Bus.new(board: board, pin: :SDA)
|
9
|
+
sensor = Denko::Sensor::BMP180.new(bus: bus) # address: 0x77 default
|
10
|
+
|
11
|
+
# Enable oversampling for the pressure sensor only (1,2,4, 8).
|
12
|
+
# sensor.pressure_samples = 8
|
13
|
+
|
14
|
+
# Get the shared #print_tph_reading method to print readings neatly.
|
15
|
+
require_relative 'neat_tph_readings'
|
16
|
+
|
17
|
+
# Poll it and print readings.
|
18
|
+
sensor.poll(5) do |reading|
|
19
|
+
print_tph_reading(reading)
|
20
|
+
end
|
21
|
+
|
22
|
+
sleep
|