{"id":46232361,"url":"https://github.com/tiger12506/bleuart","last_synced_at":"2026-03-03T18:09:32.399Z","repository":{"id":82807088,"uuid":"112452164","full_name":"tiger12506/bleuart","owner":"tiger12506","description":"UART bridge for BLE devices such as HM-10. Similar to rfcomm.","archived":false,"fork":false,"pushed_at":"2017-11-30T07:28:21.000Z","size":20,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-03-17T20:45:45.817Z","etag":null,"topics":["bluetooth","energy","hm-10","low","rfcomm","spp","uart"],"latest_commit_sha":null,"homepage":null,"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/tiger12506.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}},"created_at":"2017-11-29T09:07:14.000Z","updated_at":"2023-10-06T17:45:40.000Z","dependencies_parsed_at":"2023-07-23T21:17:25.744Z","dependency_job_id":null,"html_url":"https://github.com/tiger12506/bleuart","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"a53aaaf33f40d53e5958455109e41230f3aa897c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tiger12506/bleuart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiger12506%2Fbleuart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiger12506%2Fbleuart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiger12506%2Fbleuart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiger12506%2Fbleuart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiger12506","download_url":"https://codeload.github.com/tiger12506/bleuart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiger12506%2Fbleuart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30054109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T17:46:22.538Z","status":"ssl_error","status_checked_at":"2026-03-03T17:46:22.036Z","response_time":61,"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":["bluetooth","energy","hm-10","low","rfcomm","spp","uart"],"created_at":"2026-03-03T18:09:31.734Z","updated_at":"2026-03-03T18:09:32.394Z","avatar_url":"https://github.com/tiger12506.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"bleuart\n\nA utility that functions similar to rfcomm, but for cheap china bluetooth low energy uart bridges, such as the HM-10\n\nDependencies: [gattlib](https://github.com/labapart/gattlib)\n\nHow to use this code:\n```\ngit clone https://github.com/labapart/gattlib.git\ncd gattlib\nmkdir build\ncd build\ncmake ../\nmake\ncpack -G DEB\nsudo dpkg -i gattlib_0.2-dev_x86_64.deb \n\ncd ../..\ngit clone git@github.com:tiger12506/bleuart.git\ncd bleuart\nmake\nbluetoothctl\n./bleuart -d 00:15:83:10:EA:BE -c 0000ffe1-0000-1000-8000-00805f9b34fb\n```\n\nIn order to find bluetooth address and characteristic uuid, use bluetoothctl\n```\njacob@js:~/bleuart$ bluetoothctl\n[NEW] Device 00:15:83:10:EA:BE CC41-A\n\n... much output withheld for brevity ...\n\n[bluetooth]# connect 00:15:83:10:EA:BE \nAttempting to connect to 00:15:83:10:EA:BE\n[CHG] Device 00:15:83:10:EA:BE Connected: yes\nConnection successful\n[CHG] Device 00:15:83:10:EA:BE ServicesResolved: yes\n\n[CC41-A]# list-attributes 00:15:83:10:EA:BE \nPrimary Service\n\t/org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023\n\t0000ffe0-0000-1000-8000-00805f9b34fb\n\tUnknown\nCharacteristic\n\t/org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024\n\t0000ffe1-0000-1000-8000-00805f9b34fb\n\tUnknown\nDescriptor\n\t/org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027\n\t00002901-0000-1000-8000-00805f9b34fb\n\tCharacteristic User Description\nDescriptor\n\t/org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0026\n\t00002902-0000-1000-8000-00805f9b34fb\n\tClient Characteristic Configuration\n\n... other attributes withheld for brevity ...\n\n[CC41-A]# select-attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 \n[CC41-A:/service0023/char0024/desc0027]# read\nAttempting to read /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x20\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x54\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x58\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x20\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x26\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x20\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x52\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x58\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024/desc0027 Value: 0x20\n  20 54 58 20 26 20 52 58 20                        TX \u0026 RX        \n\n... Looks like char0024 is the serial characteristic, because it's \"User Description\" descriptor has this value ...\n\n[CC41-A:/service0023/char0024/desc0027]# select-attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024\n\n[CC41-A:/service0023/char0024]# read\nAttempting to read /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024\n[CHG] Attribute /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024 Value: 0x0a\n  0a                                               .               \n\n... I'm not sure this is meant to work, notify will work, however ...\n\n[CC41-A:/service0023/char0024]# write 0x30\nAttempting to write /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024\n\n\n... Write a '0' character through the bluetooth uart characteristic. Should appear on the TX pin of the HM-10 ...\n\n[CC41-A:/service0023/char0024]# attribute-info /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023/char0024\nCharacteristic - Unknown\n\tUUID: 0000ffe1-0000-1000-8000-00805f9b34fb\n\tService: /org/bluez/hci0/dev_00_15_83_10_EA_BE/service0023\n\tValue: 0x0a\n\tNotifying: no\n\tFlags: read\n\tFlags: write-without-response\n\tFlags: write\n\tFlags: notify\n[CC41-A:/service0023/char0024]# \n\n\n... There's the UUID we want, that belongs to the serial characteristic we found ...\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiger12506%2Fbleuart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiger12506%2Fbleuart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiger12506%2Fbleuart/lists"}