The Problem
Let’s say you need a good camera and a screen for a robot you’re making. The traditional way is a raspberry pi (around 70 USD) with a CSI camera ($25 for v3) and an official display ($40 at least).
The scrappy way is to use a phone. If you don’t have an old phone, you can find one on the used marked for less than just a pi.
But phones
- Run android, which is not really designed for embedded applications
- Make it increasingly difficult to develop for with every generation
- Come with non-unlockable bootloaders now
What Backbone Is
It’s an app that you can install on any Android 5+ device, allow it access to the hardware, set it as the launcher and forget about.
Instead of developing for Android, you get this JS API:
backbone.startup(
url: string,
fullscreen: boolean,
shellCommand: string,
delay: number,
)These are the app settings:
shell: command runs in termux at startup.
Default:""url: link to your actual js app.
Default:localhost:2903 || backbone.snlx.net/appdelaybetweenshellandurl.
Defuault:0
backbone.central(deviceNames: string[]) // run as BLE central
backbone.peripheral(deviceName: string) // run as BLE peripheral
backbone.send(message: string, device?: string) // send a message over BLE
backbone.onmessage: (message: string, device: string) => voidPeripherals can only send to central, so the device is optional for them.
This doc also has a print version.