{"id":18929177,"url":"https://github.com/jwillikers/humble-humidity-sensor","last_synced_at":"2026-03-16T12:30:17.843Z","repository":{"id":104838685,"uuid":"488061168","full_name":"jwillikers/Humble-Humidity-Sensor","owner":"jwillikers","description":"A simple, portable humidity sensor","archived":false,"fork":false,"pushed_at":"2022-05-31T02:36:02.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-14T21:38:55.511Z","etag":null,"topics":["eink","embedded","epaper","epd","feather","humidity","humidity-sensor","no-std","rp2040","rust","sensor","shtc3"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwillikers.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.adoc","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-03T03:01:50.000Z","updated_at":"2023-04-18T06:28:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"446674f2-f144-4f4a-969e-be2c2ba7e01b","html_url":"https://github.com/jwillikers/Humble-Humidity-Sensor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2FHumble-Humidity-Sensor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2FHumble-Humidity-Sensor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2FHumble-Humidity-Sensor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2FHumble-Humidity-Sensor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwillikers","download_url":"https://codeload.github.com/jwillikers/Humble-Humidity-Sensor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239927824,"owners_count":19719835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eink","embedded","epaper","epd","feather","humidity","humidity-sensor","no-std","rp2040","rust","sensor","shtc3"],"created_at":"2024-11-08T11:30:57.076Z","updated_at":"2026-03-16T12:30:17.773Z","avatar_url":"https://github.com/jwillikers.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Humble Humidity Sensor\nJordan Williams \u003cjordan@jwillikers.com\u003e\n:experimental:\n:icons: font\nifdef::env-github[]\n:tip-caption: :bulb:\n:note-caption: :information_source:\n:important-caption: :heavy_exclamation_mark:\n:caution-caption: :fire:\n:warning-caption: :warning:\nendif::[]\n:Adafruit-Feather-RP2040: https://www.adafruit.com/product/4884[Adafruit Feather RP2040]\n:adafruit-feather-rp2040-bsp: https://github.com/rp-rs/rp-hal/tree/main/boards/adafruit-feather-rp2040[adafruit-feather-rp2040]\n:Asciidoctor-link: https://asciidoctor.org[Asciidoctor]\n:elf2uf2-rs: https://github.com/JoNil/elf2uf2-rs[elf2uf2-rs]\n:epd-waveshare: https://github.com/caemor/epd-waveshare[epd-waveshare]\n:embedded-graphics: https://github.com/embedded-graphics/embedded-graphics[embedded-graphics]\n:embedded-hal: https://github.com/rust-embedded/embedded-hal[embedded-hal]\n:embedded-time: https://github.com/FluenTech/embedded-time/[embedded-time]\n:fish: https://fishshell.com/[fish]\n:flip-link: https://github.com/knurling-rs/flip-link[flip-link]\n:Git: https://git-scm.com/[Git]\n:hs-probe: https://github.com/probe-rs/hs-probe[hs-probe]\n:Linux: https://www.linuxfoundation.org/[Linux]\n:probe-rs: https://probe.rs/[probe-rs]\n:probe-run: https://github.com/knurling-rs/probe-run[probe-run]\n:Python: https://www.python.org/[Python]\n:rp2040-project-template: https://github.com/rp-rs/rp2040-project-template[Project template for rp2040-hal]\n:rp-hal: https://github.com/rp-rs/rp-hal[rp-hal]\n:Rouge: https://rouge.jneen.net/[Rouge]\n:Ruby: https://www.ruby-lang.org/en/[Ruby]\n:Rust: https://www.rust-lang.org/[Rust]\n:rustup: https://rustup.rs/[rustup]\n:shtcx: https://github.com/dbrgn/shtcx-rs[shtcx]\n:SHTC3: https://sensirion.com/products/catalog/SHTC3/[SHTC3]\n:smart-leds: https://github.com/smart-leds-rs/smart-leds[smart-leds]\n:UF2: https://github.com/microsoft/uf2[UF2]\n:ws2812-pio: https://github.com/ithinuel/ws2812-pio-rs/[ws2812-pio]\n\nA simple humidity sensor using the {Adafruit-Feather-RP2040}, a 2.9\" Waveshare e-Paper Module monochrome, and {SHTC3} humidity sensor, written in {Rust}.\n\n== Hardware\n\nAll the hardware components in my particular build are enumerated here.\n\n// Use 2 Half-Size Breadboard with Mounting Holes?\n\n.Required Components\n* {Adafruit-Feather-RP2040}\n* https://www.adafruit.com/product/4636[Adafruit Sensirion SHTC3 Temperature \u0026 Humidity Sensor]\n* https://www.adafruit.com/product/3898[Lithium Ion Polymer Battery Ideal For Feathers - 3.7V 400mAh]\n* https://www.adafruit.com/product/4399[STEMMA QT / Qwiic JST SH 4-Pin Cable - 50mm Long]\n* https://www.waveshare.com/product/2.9inch-e-paper-module.htm[Waveshare 2.9inch E-Ink display module]\n\n.Optional Components\n* https://www.adafruit.com/product/400[Extra-long break-away 0.1\" 16-pin strip male headers]\n* https://www.adafruit.com/product/64[Half-size breadboard]\n* https://www.adafruit.com/product/4048[Mini SWD 0.05\" Pitch Connector - 10 Pin SMT Box Header]\n\nProgramming will require a USB-C cable and a computer.\n\n== How it Works\n\nThe humidity sensor queries and displays the temperature and humidity every 20 minutes.\n\n// todo Detail the pin connections used on the Feather RP2040.\n\n== Getting Started\n\n. Install {rustup}.\n+\n[,sh]\n----\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n----\n\n. Clone the repository.\n+\n[,sh]\n----\ngit clone https://github.com/jwillikers/humble-humidity-sensor.git\n----\n\n. Change to the project's directory.\n+\n[,sh]\n----\ncd humble-humidity-sensor\n----\n\n. Install the {Rust} toolchain for the RP2040.\n+\n[,sh]\n----\nrustup target add thumbv6m-none-eabi\n----\n\n. Install {flip-link}\n+\n[,sh]\n----\ncargo install flip-link\n----\n\n. To flash the microcontroller over USB-C, change the `.cargo/config.toml` file to use `elf2uf2-rs` as the runner.\n+\n..cargo/config.toml\n[,toml]\n----\nrunner = \"elf2uf2-rs -d\"\n\n# runner = \"probe-run --chip RP2040\"\n----\n\n. Install {elf2uf2-rs}.\n+\n[,sh]\n----\ncargo install elf2uf2-rs\n----\n\n. While holding the `BOOT` button, attach the Adafruit Feather RP2040 to your computer using the USB-C port.\n\n. Flash the board using Cargo's `run` subcommand.\n+\n[,sh]\n----\ncargo run\n----\n\n== SWD\n\nAn SWD connection is more convenient for flashing and debugging the microcontroller.\nIt doesn't require fiddling with the tiny buttons on the dev-board constantly.\nIf you've soldered an SWD debug header to the Feather RP2040, it's pretty accessible.\nThe {hs-probe} debugger from the {probe-rs} project works great.\n\n. Attach the debugger to your computer.\n\n. Attach the debugger to the Feather RP2040's SWD header.\n\n. To flash the microcontroller over SWD, make sure that the `.cargo/config.toml` file sets the runner to `probe-run`.\n+\n..cargo/config.toml\n[,toml]\n----\n# runner = \"elf2uf2-rs -d\"\n\nrunner = \"probe-run --chip RP2040\"\n----\n\n. Install {probe-run}.\n+\n[,sh]\n----\ncargo install probe-run\n----\n\n. Flash the board using Cargo's `run` subcommand.\n+\n[,sh]\n----\ncargo run\n----\n\n== Todo\n\n* Reduce power consumption by putting XOSC into dormant mode and waking via ROSC.\n* Use partial refresh to only update the necessary portion of the screen for new measurements.\n* Add more pizzazz to the display.\n* Profile power consumption and battery life.\n* Add GitHub CI actions.\n* Add pre-commit hooks?\n* Include pictures in README.\n\n== References\n\n.Hardware\n* https://learn.adafruit.com/adafruit-feather-rp2040-pico[Introducing Adafruit Feather RP2040]\n* https://learn.adafruit.com/adafruit-feather-rp2040-pico/pinouts[Adafruit Feather RP2040 Pinouts]\n* https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf[RP2040 Datasheet]\n* https://sensirion.com/media/documents/643F9C8E/6164081E/Sensirion_Humidity_Sensors_SHTC3_Datasheet.pdf[SHTC3 Datasheet]\n* https://www.waveshare.com/w/upload/e/e6/2.9inch_e-Paper_Datasheet.pdf[Waveshare 2.9inch e-Paper Module Datasheet]\n* https://www.waveshare.com/wiki/2.9inch_e-Paper_Module[Waveshare Wiki: 2.9inch e-Paper Module]\n\n.Rust Docs\n* https://docs.rs/adafruit-feather-rp2040/latest/adafruit_feather_rp2040/[adafruit-feather-rp2040]\n* https://docs.rs/embedded-graphics/latest/embedded_graphics/[embedded-graphics]\n* https://docs.rs/embedded-hal/latest/embedded_hal/[embedded-hal]\n* https://docs.rs/embedded-time/latest/embedded_time/[embedded-time]\n* https://docs.rs/epd-waveshare/latest/epd_waveshare/[epd-waveshare]\n* https://docs.rs/rp2040-hal/latest/rp2040_hal/[rp2040-hal]\n* https://docs.rs/shtcx/latest/shtcx/[shtcx]\n* https://docs.rs/smart-leds/latest/smart_leds/[smart-leds]\n* https://docs.rs/ws2812-pio/latest/ws2812_pio/[ws2812-pio]\n\n== Contributing\n\nContributions in the form of issues, feedback, and even pull requests are welcome.\nMake sure to adhere to the project's link:CODE_OF_CONDUCT.adoc[Code of Conduct].\n\n== Open Source Software\n\nThis project is built on the hard work of countless open source contributors.\nSeveral of these projects are enumerated below.\n\n* {adafruit-feather-rp2040-bsp}\n* {Asciidoctor-link}\n* {embedded-graphics}\n* {embedded-hal}\n* {embedded-time}\n* {elf2uf2-rs}\n* {epd-waveshare}\n* {fish}\n* {flip-link}\n* {Git}\n* {hs-probe}\n* {Linux}\n* {probe-rs}\n* {probe-run}\n* {Python}\n* {Rouge}\n* {rp2040-project-template}\n* {rp-hal}\n* {Ruby}\n* {Rust}\n* {shtcx}\n* {smart-leds}\n* {ws2812-pio}\n\n== Code of Conduct\n\nRefer to the project's link:CODE_OF_CONDUCT.adoc[Code of Conduct] for details.\n\n== License\n\nLicensed under either of\n\n* Apache License, Version 2.0 (link:LICENSE-APACHE[LICENSE-APACHE] or http://www.apache.org/licenses/LICENSE-2.0)\n* MIT license (link:LICENSE-MIT[LICENSE-MIT] or http://opensource.org/licenses/MIT)\n\nat your option.\n\n© 2022 Jordan Williams\n\n== Authors\n\nmailto:{email}[{author}]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwillikers%2Fhumble-humidity-sensor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwillikers%2Fhumble-humidity-sensor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwillikers%2Fhumble-humidity-sensor/lists"}