{"id":19156958,"url":"https://github.com/bertrandmartel/pusher","last_synced_at":"2026-03-03T04:03:45.728Z","repository":{"id":94808724,"uuid":"62094721","full_name":"bertrandmartel/pusher","owner":"bertrandmartel","description":":black_square_button: Mechanical wall switch button pusher securely controlled via Bluetooth LE","archived":false,"fork":false,"pushed_at":"2017-01-17T14:42:26.000Z","size":21962,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-09T08:42:51.480Z","etag":null,"topics":["aes","android","android-application","bluetooth-le","cpp","rfduino","servo"],"latest_commit_sha":null,"homepage":"https://bertrandmartel.github.io/pusher","language":"Java","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/bertrandmartel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2016-06-27T23:20:45.000Z","updated_at":"2023-12-02T17:32:18.000Z","dependencies_parsed_at":"2023-03-11T13:16:07.423Z","dependency_job_id":null,"html_url":"https://github.com/bertrandmartel/pusher","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertrandmartel%2Fpusher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertrandmartel%2Fpusher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertrandmartel%2Fpusher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertrandmartel%2Fpusher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bertrandmartel","download_url":"https://codeload.github.com/bertrandmartel/pusher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232388932,"owners_count":18515734,"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":["aes","android","android-application","bluetooth-le","cpp","rfduino","servo"],"created_at":"2024-11-09T08:36:43.424Z","updated_at":"2026-03-03T04:03:40.685Z","avatar_url":"https://github.com/bertrandmartel.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pusher\n\n[![CircleCI](https://img.shields.io/circleci/project/bertrandmartel/pusher.svg?maxAge=2592000?style=plastic)](https://circleci.com/gh/bertrandmartel/pusher) [![License](http://badge.kloud51.com/pypi/l/html2text.svg)](LICENSE.md)\n\nMechanical wall switch button pusher securely controlled via Bluetooth LE with RFduino module/LCD panel \u0026 via Android smartphone\n\n[![Download Pusher from Google Play](http://www.android.com/images/brand/android_app_on_play_large.png)](https://play.google.com/store/apps/details?id=com.github.akinaru.roboticbuttonpusher)\n\n![demo](https://github.com/bertrandmartel/pusher/raw/master/img/demo.gif)\n\n![screenshot](https://github.com/bertrandmartel/pusher/raw/master/img/lcd.jpg)\n\n***\n\nApplication layer association security  :\n\n* AES 256 encryption\n* user code for key exchange\n* additional password protection\n\nprotected against MIM \u0026 Replay attack\n\n![pairing](https://github.com/bertrandmartel/pusher/raw/master/img/pairing.gif)\n\n## Project structure\n\n* **/firmware** - microcontroller code written for RFduino\n* **/android** - android application to control device\n* **/hardware** - wiring diagram, schematics \u0026 BOM\n\n## Build\n\n### Get source code\n\n```\ngit clone git@github.com:bertrandmartel/pusher.git\ncd pusher\ngit submodule update --init --recursive\n```\n\n### Build Firmware\n\n```\ncd firmware\nmake\n```\n\n### Build Android App\n\n```\ncd android\n./gradlew build\n```\n\n## [Firmware specifications](https://github.com/bertrandmartel/pusher/blob/master/firmware/README.md)\n\n## [Hardware specifications](https://github.com/bertrandmartel/pusher/blob/master/hardware/README.md)\n\n## External library\n\n### Firmware\n\n* rfduino software : https://github.com/RFduino/RFduino\n* LiquidCrystal arduino library : https://github.com/arduino-libraries/LiquidCrystal\n* rfduino-makefile : https://github.com/bertrandmartel/rfduino-makefile\n* AES library by Brian Gladman\n\n### Android application\n\n* smart Android dot progress bar : https://github.com/silvestrpredko/DotProgressBarExample\n* AES library by Brian Gladman\n* appcompat-v7, design \u0026 recyclerview-v7\n\n## License\n\n```\nCopyright (C) 2016  Bertrand Martel\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms of the GNU General Public License\nas published by the Free Software Foundation; either version 3\nof the License, or (at your option) any later version.\n\nPusher is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Pusher.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertrandmartel%2Fpusher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbertrandmartel%2Fpusher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertrandmartel%2Fpusher/lists"}