{"id":20594951,"url":"https://github.com/hackuarium/esp32-c3","last_synced_at":"2026-04-25T05:43:01.645Z","repository":{"id":37844337,"uuid":"497627940","full_name":"Hackuarium/esp32-c3","owner":"Hackuarium","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-19T07:20:46.000Z","size":2328,"stargazers_count":0,"open_issues_count":10,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-12-22T02:28:53.345Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hackuarium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-05-29T15:19:53.000Z","updated_at":"2025-12-19T07:20:50.000Z","dependencies_parsed_at":"2023-02-01T04:01:14.643Z","dependency_job_id":"56c03dfe-82c4-4d1a-a3b9-616ed4499bdb","html_url":"https://github.com/Hackuarium/esp32-c3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Hackuarium/esp32-c3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackuarium%2Fesp32-c3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackuarium%2Fesp32-c3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackuarium%2Fesp32-c3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackuarium%2Fesp32-c3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hackuarium","download_url":"https://codeload.github.com/Hackuarium/esp32-c3/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hackuarium%2Fesp32-c3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32251811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T04:23:17.126Z","status":"ssl_error","status_checked_at":"2026-04-25T04:21:53.360Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2024-11-16T08:10:57.334Z","updated_at":"2026-04-25T05:43:01.639Z","avatar_url":"https://github.com/Hackuarium.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Configuration\n\nConfiguration of the device is done using the console\n\n# MQTT\n\nUsing the console\n\n## Test mqtt\n\nmosquitto_sub -h \"mqtt.beemos.org\" -t \"test/esp\"\n\nmosquitto_pub -h 'mqtt.beemos.org' -m \"123412341234 \" -t \"test/esp\"\n\n## Testing bidirectional communication\n\nMQTT log publish topic: lpatiny/Beemos/hive1\nMQTT publish topic: lpatiny/Beemos/hive1/a\nMQTT subscribe topic: lpatiny/Beemos/hive1/q\n\nmosquitto_sub -h \"mqtt.beemos.org\" -t \"lpatiny/Beemos/hive1/a/+\"\n\nmosquitto_pub -h 'mqtt.beemos.org' -m \"h\" -t \"lpatiny/Beemos/hive1/q\"\n\n## Topic\n\nlpatiny/Beemos/hive1\n\n## Device information\n\n`uq` allows to setup the device information. This is a numeric number between `66*256+65` and `66*256+90` (16961 to 16986).\n\n## Logging\n\n- index - 4 bytes\n- epoch - 4 bytes\n- 26 parameters \\* 2\n- event - 2 bytes\n- eventParameters - 2 bytes\n\n1024 \\* 1024 bytes for log\n16384 logs entries\n\n## Install platform IO cli\n\n`export PATH=$PATH:~/.platformio/penv/bin`\n\n```cpp\nprintf(\"Restarting now.\\n\");\nfflush(stdout);\nesp_restart();\n```\n\n`IDF_PATH=~/.platformio/packages/framework-espidf/`\n\nYou may have to add pyserial:\n`sudo pip3 install pyserial`\n\nRead device info:\n`python3 $IDF_PATH/components/esptool_py/esptool/esptool.py --port /dev/cu.usbserial-A5XK3RJT flash_id`\n\nRead partition table\n\n`python3 $IDF_PATH/components/esptool_py/esptool/esptool.py --port /dev/cu.usbserial-A5XK3RJT read_flash 0x8000 0xc00 ptable.img`\n\nWe can now check the content of the `ptable.img` file\n`python3 $IDF_PATH/components/partition_table/gen_esp32part.py ptable.img`\n\nHere is an example of the result:\n\n```bash\n# Espressif ESP32 Partition Table\n# Name, Type, SubType, Offset, Size, Flags\nnvs,data,nvs,0x9000,20K,\notadata,data,ota,0xe000,8K,\napp0,app,ota_0,0x10000,1280K,\napp1,app,ota_1,0x150000,1280K,\nspiffs,data,spiffs,0x290000,1472K,\n```\n\n## FS\n\nCreate a folder at the first level called `data`.\n\nTo upload the data\n\n`pio run --target uploadfs`\n\n## Alternative web server\n\nhttps://github.com/me-no-dev/ESPAsyncWebServer#using-platformio\n\n## OTA\n\nThe square: 192.168.1.200\n\npio run -t upload --upload-port 192.168.1.200\npio run -t uploadfs --upload-port 192.168.1.200\n\n## Test webserver\n\n```bash\nnpm i --global loadtest\nloadtest -n 1000 -c 4 http://square.patiny.com/command/A\n```\n\n## Setup\n\nBZ: Layout model\nCA: 0 (RGB), 1 (BRG)\nCB: bit 0: day, bit 1: night\nCC: Allows to turn on before or after sunset (in minutes)\nCD: Allows to turn off before or after sunrise (in minutes)\nCE,CF,CG,CH,CI,CJ,CK,CL: schedule actions (change of intensity)\n\u003c0 no action, (day minutes / 15) \u003c\u003c 8 + intensity\n\nCC-30: 30 minutes before sunset\nCD30: 30 minutes after sunrise\n\nCE: ((60 / 15 \\* 22)\u003c\u003c8) + 16 = 22544 at 10PM reduce the intensity to 16\nCF: ((60 /15 \\* 7)\u003c\u003c8) + 255 = 7423 at 7AM intensity to max\n\nFull power in the evening but reduce at 10PM and turn off at 12PM\nTurn on in the morning at 5AM but not too strong\nCB2,-30,30,16639,22544,0,5136\n\n- 16639: at 16h we set brightness to max\n- 22544: at 22h we set brightness to 16\n- 0: at 0h we set brightness to 0\n- 5136: at 5h we set brightness to 16\n\n### Christmas\n\nWe don't use sunrise / sunset but fixed time\n\n- 16416: at 16h we set brightness to max 32\n- 18464: at 18h we set brightness to 32\n- 22536: at 22h we set brightness to 8\n- 0: at 0h we set brightness to 0\n- 5128: at 5h we set brightness to 8\n- 7200: at 7h we set brightness to 32\n- 9216: at 9h we set brightness to 0\n\nCB3,0,0,16416,18464,22536,0,5128,7200,9216\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackuarium%2Fesp32-c3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackuarium%2Fesp32-c3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackuarium%2Fesp32-c3/lists"}