{"id":48470114,"url":"https://github.com/justinmklam/dabao","last_synced_at":"2026-04-22T06:10:28.317Z","repository":{"id":319683374,"uuid":"1072524885","full_name":"justinmklam/dabao","owner":"justinmklam","description":"Unibody? Split? Why not both!","archived":false,"fork":false,"pushed_at":"2026-03-21T18:07:11.000Z","size":12180,"stargazers_count":42,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-22T07:52:33.150Z","etag":null,"topics":["keyboard","split-keyboard","zmk"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justinmklam.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":"2025-10-08T20:57:43.000Z","updated_at":"2026-03-21T18:07:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"681d4a48-55bd-485f-b778-4eb7453d3671","html_url":"https://github.com/justinmklam/dabao","commit_stats":null,"previous_names":["justinmklam/dabao"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/justinmklam/dabao","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinmklam%2Fdabao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinmklam%2Fdabao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinmklam%2Fdabao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinmklam%2Fdabao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justinmklam","download_url":"https://codeload.github.com/justinmklam/dabao/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justinmklam%2Fdabao/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31501903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"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":["keyboard","split-keyboard","zmk"],"created_at":"2026-04-07T06:02:58.138Z","updated_at":"2026-04-22T06:10:28.310Z","avatar_url":"https://github.com/justinmklam.png","language":"Makefile","readme":"# dabao\n\n打包 (dǎ bāo or daa2 baau1), which means to take out (food) in Chinese, is a wireless, portable 36-key keyboard with a thumb trackpoint, designed for maximum flexibility and convenience.\n\n\u003e ![pcb as unibody](images/pcb-mono.jpeg)\n\u003e \u003csub\u003eKeyboard can be used as a unibody...\u003c/sub\u003e\n\u003e\n\u003e ![pcb as split](images/pcb-split.jpeg)\n\u003e \u003csub\u003e... or as a split!\u003c/sub\u003e\n\n## Design Rationale\n\nI found that split keyboards can be cumbersome when I’m not working at a desk. Managing two independent halves (as well as a laptop) while moving between coworking spaces, cafés, or even working from the couch quickly becomes unwieldy, and I thought there had to be a better way.\n\nThis project explores a keyboard that can seamlessly switch between a unibody form factor (easy to pick up and carry) and a fully split configuration when there's space for a full ergonomic setup. An integrated pointing device is included to reduce the need for external peripherals, making it truly portable.\n\nAlbeit unconventional, the trackpoint is positioned under the thumb to:\n\n- Enable the use of hotswap sockets while keeping the overall keyboard height low\n- Eliminate the need to modify keycaps for trackpoint clearance\n- Allow the fingers to remain on the home row during pointing tasks\n\nIn practice, using the thumb instead of the index finger feels functionally similar. After a short adjustment period, I personally haven't experienced a meaningful loss in accuracy or precision.\n\n## Features\n\n- **Unibody or Split:** Unique magnetic 4-pin connector allows the keyboard to be used as a single unibody or split into two halves via a USB-C cable. Use unibody mode on the go, and split mode at your desk!\n- **Single Microcontroller:** Uses one microcontroller and a GPIO expander, eliminating the need for two controllers or batteries to reduce costs and avoid managing uneven battery discharge.\n- **Integrated Trackpoint:** For convenient and precise cursor control.\n- **Reversible PCB:** Keeps ordering PCBs affordable. Also enables the trackpoint to be installed on the left or right side.\n- **Wireless:** Wireless operation (between the host computer) for portability.\n- **Hotswap Switches:** Supports Choc V1 or V2 switches. Can also be soldered directly if desired.\n\n## Firmware\n\nSee [zmk-config](https://github.com/justinmklam/zmk-config).\n\n## Case\n\n*Coming soon!* - The case will make the magnetic interface more robust, which will allow the keyboard to be lifted from either side without it collapsing in half. Additional magnets will likely be added to make the connection more secure.\n\n## Build Guide\n\n\u003e [!WARNING]\n\u003e This project is provided for educational and experimental purposes only. It is shared \"as-is,\" without any warranty of any kind, express or implied, including but not limited to the warranties of merchantability or fitness for a particular purpose. By using these files, you acknowledge that you are assuming all risks associated with the assembly, use, and operation of the hardware. The author shall not be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the project or the use of these files.\n\n*Coming soon!*\n\n## Acknowledgements\n\nThis design was inspired by the following keyboards:\n\n- [TPS42](https://github.com/crehmann/TPS42)\n- [duet](https://github.com/zzeneg/duet)\n- [Santoku](https://www.reddit.com/r/ErgoMechKeyboards/comments/oisnad/i_made_this_santoku_gen_2_trackpoint_as_a/?chainedPosts=t3_g4m3f6)\n\nHelpful trackpoint resources:\n\n- [infused-kim's Trackpoint Driver](https://github.com/infused-kim/kb_zmk_ps2_mouse_trackpoint_driver) - outdated for the recent versions of zmk, but still a treasure trove of information\n- [Jorne Trackpoint Wiki](https://github.com/joric/jorne/wiki/Tracking)\n- [TheMK Wiki - TrackPoint Overview](https://wiki.themk.org/index.php/TrackPoint)\n- [KBD News - Trackpoint Integration Guide](https://kbd.news/How-to-integrate-a-trackpoint-into-your-keyboard-2447.html)\n- [r/Trackpoint_Builders](https://www.reddit.com/r/TrackPoint_Builders/)\n- [Trackpoint Builders Discord](https://discord.gg/48gM4jZkW)\n\n## Support\n\nThank you to my sponsors for making this project possible!\n\nThe PCBs for this project were manufactured by **[PCBWay](https://pcbway.com)**. The boards came out clean with good tolerances and had a fast turnaround, especially considering it came from the other side of the world. Recommended if you're looking to prototype or build your own keyboard!\n\n\u003ca href=\"https://shop.beekeeb.com\" target=\"_blank\"\u003e\u003cimg src=\"https://beekeeb.com/beekeeb-logo.png\" align=\"left\" width=\"200\" \u003e\u003c/a\u003e\n\n\u003ca href=\"https://pcbway.com\" target=\"_blank\"\u003e\u003cimg src=\"https://freight.cargo.site/w/800/i/a931690205c27162476213b8bcc171585aad9d84d65cdc121ca425e813114121/0x0.png\" align=\"left\" width=\"200\" \u003e\u003c/a\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinmklam%2Fdabao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustinmklam%2Fdabao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinmklam%2Fdabao/lists"}