A BLE/GATT based data and control plane for the Internet of Things.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



The next generation of computing peripherals will be low-power ubiquitous computing devices such as door locks, smart watches, and heart rate monitors. Bluetooth Low Energy is a primary protocol for connecting such peripherals to mobile and gateway devices. Current operating system support for Bluetooth Low Energy forces peripherals into vertical application silos. As a result, simple, intuitive applications such as opening a door with a smart watch or simultaneously logging and viewing heart rate data are impossible. Beetle is a new hardware interface that virtualizes peripherals at the application layer, allowing safe access by multiple programs without requiring the operating system to understand hardware functionality, fine-grained access control to peripheral device resources, and transparent access to peripherals connected over the network.

You can read an overview of Beetle's design in our MobiSys 2016 paper.

Beetle C++ gateway

In gateway subdirectory.

Python tcp client

In pyclient subdirectory.

Python gatt library

In pygatt subdirectory.

Python controller

In controller subdirectory. Needed to run with the controller enabled.

Gateway applications

In pyapps supdirectory.

Certs directory

Basic scripts to generate self-signed certificates for Beetle.


Copyright 2016 James Hong, Amit Levy

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

This product bundles nlohmann/json and bootstrap, which are available under MIT Licenses. For details, see gateway/lib/include/json/ and https://getbootstrap.com/.