{"id":20853878,"url":"https://github.com/wolfeidau/esp32-blufi","last_synced_at":"2025-05-12T05:31:40.540Z","repository":{"id":50449670,"uuid":"85461354","full_name":"wolfeidau/esp32-blufi","owner":"wolfeidau","description":"This component provides bluetooth onboarding for the ESP32 boards.","archived":false,"fork":false,"pushed_at":"2017-03-20T10:58:21.000Z","size":8,"stargazers_count":30,"open_issues_count":4,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-01T01:29:43.036Z","etag":null,"topics":["bluetooth","esp32","iot","wireless"],"latest_commit_sha":null,"homepage":"https://github.com/wolfeidau/esp32-blufi","language":"C","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/wolfeidau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-19T08:28:28.000Z","updated_at":"2024-07-06T18:19:42.000Z","dependencies_parsed_at":"2022-09-05T15:11:30.256Z","dependency_job_id":null,"html_url":"https://github.com/wolfeidau/esp32-blufi","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/wolfeidau%2Fesp32-blufi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfeidau%2Fesp32-blufi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfeidau%2Fesp32-blufi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wolfeidau%2Fesp32-blufi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wolfeidau","download_url":"https://codeload.github.com/wolfeidau/esp32-blufi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253682256,"owners_count":21946904,"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":["bluetooth","esp32","iot","wireless"],"created_at":"2024-11-18T03:23:36.012Z","updated_at":"2025-05-12T05:31:40.256Z","avatar_url":"https://github.com/wolfeidau.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp32-blufi\n\nThis component provides bluetooth onboarding for the ESP32 boards. It uses bluetooth to delivery the wifi configuration to the device. On top of the existing blufi example in [esp-idf](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/blufi) it uses Non-Volatile Storage (NVS) to save the credentials and disables the onboarding interface after rebooting, which means it is \"closer\" to a real demonstration and can be used \"as is\" in prototypes.\n\nThis uses some interesting methods to protect the data in transit between the Android application and the ESP32 and removes the need to HARD CODE the damn wifi credentials in your project code!!\n\nAs I understand it it uses Diffie–Hellman key exchange (DH) in conjunction with AES to exchange the wifi information over a GATT connection.\n\nA demonstration esp-idf project is located at [esp32-blufi-demo](https://github.com/wolfeidau/esp32-blufi-demo)\n\n# TODO\n\n* At the moment this example app will NOT expose the bluetooth onboarding once it is setup, this needs to be resettable by HOLDING the EN button for a few seconds, aka Factory reset.\n* Once configured the device should be rebooted to disable onboarding, or bluetooth turned off.\n* Provide a Arduino example.\n\n# Links \n\nThis demo uses the recently somewhat opensourced [EspBlufi](https://github.com/EspressifApp/EspBlufi) Android application. This seems to also share code with [BleLiteLib4android](https://github.com/afunx/BleLiteLib4android).\n\n# License \n\nThis code is Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD and Mark Wolfe and is released under Apache 2.0 license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfeidau%2Fesp32-blufi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwolfeidau%2Fesp32-blufi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwolfeidau%2Fesp32-blufi/lists"}