{"id":25430752,"url":"https://github.com/mawaeg/openesptemp","last_synced_at":"2026-02-15T21:14:16.638Z","repository":{"id":269747176,"uuid":"908020806","full_name":"mawaeg/OpenESPTemp","owner":"mawaeg","description":"An open-source, battery-powered temperature and environmental monitoring sensor.","archived":false,"fork":false,"pushed_at":"2025-12-27T22:47:02.000Z","size":1476,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-29T16:18:27.874Z","etag":null,"topics":["bme280","esp32","smarthome"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mawaeg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-24T22:26:59.000Z","updated_at":"2025-12-27T18:27:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"3f77b135-14c5-47ff-b181-6a2d77e37a3d","html_url":"https://github.com/mawaeg/OpenESPTemp","commit_stats":null,"previous_names":["mawaeg/openesptemp"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mawaeg/OpenESPTemp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawaeg%2FOpenESPTemp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawaeg%2FOpenESPTemp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawaeg%2FOpenESPTemp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawaeg%2FOpenESPTemp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mawaeg","download_url":"https://codeload.github.com/mawaeg/OpenESPTemp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mawaeg%2FOpenESPTemp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29489696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bme280","esp32","smarthome"],"created_at":"2025-02-17T03:48:05.085Z","updated_at":"2026-02-15T21:14:16.626Z","avatar_url":"https://github.com/mawaeg.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenESPTemp\n\n**OpenESPTemp** is an open-source, battery-powered temperature and environmental monitoring sensor built using an ESP32-C6 and a BME280 sensor. It is designed for integration into IoT systems.\n\nThe PCB is designed to operate with a rechargeable LiFePo4 AA battery. This repository includes the PCB design, a 3D-printable case, and basic firmware.\n\n\u003cdiv style=\"display: flex;\"\u003e\n   \u003cimg src=\"docs/_assets/case_side.webp\" alt=\"Case Side\" height=\"512px\" width=\"273px\"\u003e\n   \u003cimg src=\"docs/_assets/pcb_front_transparent.webp\" alt=\"PCB Front\" height=\"512px\"\u003e\n   \u003cimg src=\"docs/_assets/pcb_back_transparent.webp\" alt=\"PCB Back\" height=\"512px\"\u003e\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n- **Temperature Monitoring**: Provides readings using the BME280 sensor.\n- **Environmental Sensing**: Includes humidity and pressure measurements.\n- **Low Power**: Optimized for battery-powered operation (under 200nA power consumption while sleeping).\n- **Battery Monitoring**: Allows monitoring of the battery voltage.\n- **ESP32-C6 Microcontroller**: Handles wireless communication and processing.\n- **Customizable PCB**: Features a Qwiic connector and the option to use an LDO when not using a LiFePo4 battery.\n- **Open Source**: Fully customizable for specific use cases.\n\n---\n\n## 🚀 Getting Started\n\n### 1. The PCB\n\nThe PCB can be ordered from any PCB manufacturer (e.g., JLCPCB). It can be ordered as single boards or in panels of 5.\n\n- **Manufacturing Files \u0026 BOM**: Included in the latest release. The Interactive HTML BOM (iBOM) is recommended for manual assembly.\n- **SMT Assembly**: If using an SMT service, you will need to generate the BOM and position files yourself.\n\n\u003e **💡 Note:** You will need two Keystone 53 battery contacts; the BOM only mentions one.\n\n### 2. Additional Parts\n\n| Part | Quantity | Recommendation / Link | Note |\n| :--- | :---: | :--- | :--- |\n| **LiFePo4 AA (14500) battery (!Normal AA batteries won't work!)** | 1 | [LiFePo4 battery](https://de.aliexpress.com/item/1005005870958670.html?spm=a2g0o.store_pc_home.promoteWysiwyg_2003671164534.1005005870958670\u0026gatewayAdapt=glo2deu) | Any 3.2V LiFePo4 battery should work |\n| **3D Printing Filament (PETG)** | ~50g | [White PETG Filament](https://www.nobufil.com/product-page/filament-petg-white) | |\n| **UART to USB Adapter** | 1 | [WaveShare CP2102 Adapter](https://de.aliexpress.com/item/1005006742102516.html?pdp_npi=4%40dis%21EUR%21%E2%82%AC%201%2C97%21%E2%82%AC%200%2C99%21%21%212.28%211.14%21%40211b876717711633668585571ecf24%2112000038159199244%21sh%21DE%210%21X\u0026spm=a2g0o.store_pc_allItems_or_groupList.new_all_items_2007567450475.1005006742102516\u0026gatewayAdapt=glo2deu) | |\n| **Pogo Pin Adapter** *(Optional)* | 1 | [4-Pin Prototyping Clamps](https://de.aliexpress.com/item/1005007887384238.html?pdp_npi=4%40dis%21EUR%21%E2%82%AC%2014%2C91%21%E2%82%AC%209%2C69%21%21%21119.18%2177.45%21%4021039ceb17711632823162636ed91c%2112000042738795008%21sh%21DE%216135611440%21X\u0026spm=a2g0o.store_pc_home.allitems_choice_2009265069263.1005007887384238\u0026gatewayAdapt=glo2deu) | Avoids soldering to test points. |\n\n---\n\n## 🛠️ Hardware Assembly\n\n1. **Prepare the PCB**: Solder the components onto the PCB (if not using an SMT service).\n   \u003e **🛑 Warning:** You need to short the Solder Jumper labeled LDO when not using a LDO! (Which is the default)\n   - The current version of the pcb has an issue with C4. Instead of the cap you need to short the two contacts of the capacitor.\n   - Also if using a Pogo Adapter to flash the firmware, it should be flashed before mounting the battery holders, as the battery holder blocks access to the pins with the adapter.\n\n   \u003cimg src=\"docs/_assets/pcb_fix.webp\" alt=\"Pcb Fix\" width=\"512px\"\u003e\n\n2. **Print the Case**: Print using standard settings with a 0.2 mm layer height -  no supports needed.\n   - The case does not require any screws, it holds together with snap connections\n3. **Flash the Firmware**: Follow the instructions below to flash, and configure Wi-Fi/REST endpoint.\n4. **Insert the Battery**:\n   \u003e **🛑 Warning:** Check the polarity carefully. Never connect the USB to UART adapter and the battery at the same time.\n5. **Wake**: Press the WAK button for about a second. The sensor will start sending data periodically.\n\n\u003cdiv style=\"display: flex; gap: 20px;\"\u003e\n   \u003cimg src=\"docs/_assets/case_holder.webp\" alt=\"Case Pcb Holder\" height=\"512px\"\u003e\n   \u003cimg src=\"docs/_assets/case_open.webp\" alt=\"Case open\" height=\"512px\"\u003e\n\u003c/div\u003e\n\n---\n\n## 💻 Firmware\n\nBy default, the sensor connects to a specified Wi-Fi network and sends data to a REST API endpoint every 15 minutes.\n\n\u003e **💡 Note:** Newer releases include a pre-compiled `.bin` file. If you use this, you can skip the compilation step.\n\n### Compiling (PlatformIO)\n\nThe firmware can be compiled and flashed with [PlatformIO](https://platformio.org/). You can build in debug mode (to get Serial debug information) or release mode:\n\n```bash\n# Debug mode\nplatformio run --environment esp32-c6-debug\n\n# Release mode\nplatformio run --environment esp32-c6\n```\n\n### Flashing\n\n**Wiring:** Connect the UART to USB adapter to the PCB:\n\n| UART Adapter | Direction | PCB | Note |\n| :--- | :---: | :--- | :--- |\n| **3V3** | ⟷ | **3V3** | Use 3.3V only (do not use 5V) |\n| **GND** | ⟷ | **GND** | Common ground is required |\n| **TX** | ⟶ | **RX** | Connect Transmit to Receive |\n| **RX** | ⟵ | **TX** | Connect Receive to Transmit |\n\n\u003e **ℹ️ Info:** Remember to **cross** the data lines! The **TX** (Transmit) pin on the adapter must connect to the **RX** (Receive) pin on the PCB, and vice versa.\n\n\u003e **🛑 Warning:** You must disconnect the battery before connecting the UART to USB adapter!\n\n#### Option A: Flashing via PlatformIO\nRun the following command:\n```bash\nplatformio run --target upload --environment esp32-c6\n```\nWhen `Looking for upload port...` appears in the console, put the ESP32 into boot mode:\n1. Push the Reset and Boot buttons at the same time.\n2. Release the Reset button while keeping the Boot button pressed.\n3. The upload will start; release the Boot button.\n\n#### Option B: Flashing via esptool (Precompiled Binary)\nFlash the binary using [esptool](https://github.com/espressif/esptool):\n```bash\npython -m esptool --chip esp32-c6 --port \u003cyour-port\u003e --baud 460800 write_flash -z 0x1000 firmware.bin\n```\n*(Put the ESP32 into boot mode as described above, and replace `\u003cyour-port\u003e` with the correct serial port.)*\n\n---\n\n## ⚙️ Configuration\n\nAfter flashing, press the Reset button once to start the firmware. If unconfigured, the device will create a Wi-Fi network for setup:\n\n1. Connect to the **`OpenESPTemp Configurator`** Wi-Fi network.\n2. Open **`http://192.168.4.1`** in a browser.\n3. Configure the following fields in the form:\n   - **SSID**: Target Wi-Fi network name.\n   - **Password**: Target Wi-Fi network password.\n   - **Post URL**: The URL for the POST request.\n   - **Authorization**: The Bearer token for authentication (do not include \"Bearer\", only the token).\n4. Click submit. The configuration will be saved, and the device will restart.\n5. The sensor will now operate as expected.\n\n---\n\n## 📐 PCB Design\n\nThe PCB was created using KiCad 9.0, the project files are located under [/electronics](/electronics).\n\nThe power latch used in this design was inspired by [this](https://circuitcellar.com/resources/quickbits/soft-latching-power-circuits/) article.\n\nTo generate a panel yourself using the provided script:\n1. Install [KiKit](https://github.com/yaqwsx/KiKit).\n2. Execute `/electronics/panelize.sh`.\n\nThe panel with the existing config looks like this:\n\n\u003cimg src=\"docs/_assets/pcb_panel.webp\" alt=\"Flash wiring\" width=\"480px\"\u003e\n\n---\n\n## 🧊 CAD\n\nThe case was created using Onshape. To edit the case yourself click [here](https://cad.onshape.com/documents/398f777c8db5f4a69ffcddaa/w/b07485d077929fc2f0119cac/e/3395ca67b8682bc329248728?configuration=List_Cy8et1WFmB3Iby%3DDefault\u0026renderMode=0\u0026uiState=699202edfa46508150bca706) and copy the project.\n\nThe current STL files are included in the repo under [/cad](/cad).\n\n---\n\n## 🚧 Troubleshooting\n\nTBD\n\n---\n\n## 🗺️ Coming Next\n\n- [ ] Include mounting bracket for the case\n- [ ] Include HomeAssistant integration\n\n---\n\n## 📄 License\n\nThis project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.\n\n\n### Hardware Libraries\nVarious libraries were used to create the PCB. Copies of most libraries are included in `/electronics/libs/` to ensure the KiCad project works without manual installation.\n\nSome of these libraries are licensed under their respective licenses. Please review the `README.md` file in the library folders.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmawaeg%2Fopenesptemp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmawaeg%2Fopenesptemp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmawaeg%2Fopenesptemp/lists"}