{"id":35015635,"url":"https://github.com/mdda/nodebots-sg-2015","last_synced_at":"2026-05-23T04:33:21.164Z","repository":{"id":35314390,"uuid":"39575918","full_name":"mdda/nodebots-sg-2015","owner":"mdda","description":"International Nodebots Day in Singapore (2015)","archived":false,"fork":false,"pushed_at":"2015-08-29T16:29:14.000Z","size":424,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-28T19:05:36.241Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdda.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}},"created_at":"2015-07-23T15:38:44.000Z","updated_at":"2017-05-25T23:42:12.000Z","dependencies_parsed_at":"2022-09-17T06:21:51.373Z","dependency_job_id":null,"html_url":"https://github.com/mdda/nodebots-sg-2015","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdda/nodebots-sg-2015","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Fnodebots-sg-2015","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Fnodebots-sg-2015/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Fnodebots-sg-2015/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Fnodebots-sg-2015/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdda","download_url":"https://codeload.github.com/mdda/nodebots-sg-2015/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdda%2Fnodebots-sg-2015/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33383233,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: 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":"2025-12-27T05:19:27.458Z","updated_at":"2026-05-23T04:33:21.147Z","avatar_url":"https://github.com/mdda.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# International Nodebots Day in Singapore (2015)\n\nThis is a repo that represents what I did for the hacking day\nheld in Singapore at the IDA Labs.\n\n### BeagleBoneBlack (notes only - not used on the day)\n\nThe initial two pieces concern the BeagleBoneBlack board that \nI bought ages ago, and wanted to see whether could be used for \nNodeBots experiments.  \n\nShort answer : Yes, but currently Fedora\ndoes not easily package up the same 'ethernet over USB' boot mode\nthat the default Angstrom distro provides.  \n\nSince I couldn't make Fedora boot to my satisfaction, that meant it\nwas game-over for the BeagleBoneBlack (for now).\n\n### Gimbal - Rescued from crash and made NodeBot-able\n\nThe gimbal is a very attractive (to roboticists) piece of hardware that \nwas originally designed to stabilised a camera mounted beneath a quadcopter.\n\nHowever, since the quadcopter in question has self-disassembled : It\nwas time to experiment with the gimbal board as (potentially) \nan Arduino compatible-host for for Johnny-Five nodebot control.\n\nOne eye-catching thing is that the entire assembly (two brushless motors,\ngimbal controller board, 3-axis sensor, CNCed aluminium hardware and\non-board USB/serial interface) was pretty cheap - here's what I found online \n(though I bought the unit around a year ago) :\n\n* [less than **$60** from AliExpress (original source)](http://www.aliexpress.com/item/2-axis-BGC-Brushless-Camera-Gimbal-GoPro3-Controller-PTZ-aluminum-Full-set-of-parts/1585412479.html)\n* Or very similar setups :\n  * [for ~$47](http://www.aliexpress.com/item/2-Axis-DIY-CNC-Metal-Camera-Brushless-Gimbal-Mount-for-DJI-Phantom-1-2-Walkera-X350/32266077761.html)\n  * [for ~$45](http://www.aliexpress.com/item/2208-Shaft-Gimbal-Brushless-Motor-80KV-3-12-MOS-Brushless-Gimbal-Controller-Driver-Shock-absorbing-CNC/32259711679.html)\n\n* And the individual components:\n  * [Controller board](http://www.aliexpress.com/item/2-Axis-Brushless-Gimbal-Controller-board-containing-IMU-can-use-Germany-Russia-Russian-firmware-BGC/1913360790.html)\n  * [Gimbal hardware](http://www.aliexpress.com/item/160g-RTF-DJI-Phantom-Gopro-2-3-CNC-Brushless-Camera-Gimbal-not-including-motors-1-brushless/32383003272.html)\n  * [High torque brushless motors](http://www.aliexpress.com/item/Brushless-Gimbal-Motor-2208-KV80-for-Gopro-3-Brushless-Camera-Mount-Gimbal/2024123654.html) - NB: These are \n    different from regular brushless motors (that you would use to spin the propellers, for instance) because these are wound with very thin wire \n    (and 70T refers to 70 turns of wire, for instance).  This means that the motors draw less current, which is better for being under constant power (heat-wise, at minimum).  So,\n    you need to specify 'gimbal' in any search for brushless motors to ensure that you get the right kind of specifications.\n\nFortunately, it became apparent from its documentation and source code \nthat the 'Martinez-compatible' Gimbal board is equivalent to an Arduino MegaPro, \nand I spent the afternoon figuring out the pin assignments, etc.\n\nKey features of the write-up:\n\n* Identified board (and LED pin) so that the gimbal unit can run Blink \n  using the ```ino``` command-line utility (NB: wanted to do this due to heavy-IDE allergy)\n  * This proved its programmability in C, and upload functionality via USB\n  \n* Create ```fermata``` firmware for the board (small modification required to avoid IDE)\n\n* Write NodeBot code to (a) blink and (b) control the motors\n  * The brushless motors are controlled by sending 3 different PWM signals (one to each brushless motor wire),\n    which in turn can control the motor position fractionally between individual magnet poles\n\nIf anyone needs help enhancing the code (which I'll continue to add to), please let me know.\n\nAlso, I'm pretty sure that any gimbal board that you can get source code for \n(i.e. don't buy a board unless source is available) would be NodeBot-able \nand therefore a neat, integrated platform of all sorts of projects (and, I guess,\ncamera stabilisation, if you need that motivation too).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdda%2Fnodebots-sg-2015","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdda%2Fnodebots-sg-2015","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdda%2Fnodebots-sg-2015/lists"}