Start Here
Included with Warsha BLE Studio
Getting Started
Warsha BLE Studio builds and runs Bluetooth Low Energy peripherals. Instead of hunting for a spare heart-rate strap or flashing a dev board, you define the peripheral here and let your phone or Mac be the device your app connects to.
Everything can run without a radio first, so you can learn the app and check your work before any Bluetooth permission is requested.
How the app is organised
There are two places you will spend your time.
- Build lists your targets. A target is one peripheral you can run. Each carries a badge saying what it is: a Preset from the built-in catalog, a composed Device assembled from several profiles, or a Script you wrote.
- Session is the running peripheral: live values, the controls that drive them, connected centrals, and a log of everything that happened.
On Android, Settings holds your plan, privacy choices, the LAN editor, and this documentation.
On macOS, Settings holds your plan, privacy choices, the script library, and this documentation.
Run your first peripheral
The fastest way in is a preset, running locally.
- Open Build and choose a preset — Heart Rate Strap is a good first one.
- Leave the destination on Local Simulation.
- Start it. The app switches to Session.
- Watch the heart-rate and battery values update, and try the controls that drive them.
- Stop the session when you have seen enough.
Nothing left your device and no Bluetooth permission was requested. The first-run walkthrough offers the same two demos, and you can reopen it any time from Settings → General → Replay Getting Started.
Compose a device from several profiles
Real products are rarely one profile. A composed device stacks several into one peripheral — the Treadmill demo is an FTMS treadmill that also advertises Heart Rate, Battery, and Device Information, with values that move together rather than independently.
Run it the same way, change a control, and watch the related values respond. This is usually a closer match to the hardware you are testing against than a single profile is.
Go on air
When you want a real central — a phone, a watch, your own app — to discover the peripheral, switch the target’s destination to On-air BLE and start it again.
The first on-air run is when the operating system asks for Bluetooth permission. If you decline, the session stops and says why in the log.
On Android, an ongoing notification appears while a peripheral is advertising, which is what keeps it alive when the app is not in front.
The destination is saved per target, so putting one target on air leaves the rest where they were. Local Simulation and On-air BLE covers the differences and the radio limits that come with them.
Write your own peripheral
Presets and composed devices cover common hardware. When you need behaviour they do not have — custom services, your own state machine, values that respond to writes — write a script.
A script defines its GATT tree and its behaviour in JavaScript, and runs in a sandbox with no filesystem and no network unless it asks. Start with the Scripting Quick Start, which builds a working peripheral from a few lines. Scripting is a Pro feature; see Plan, Billing, and License Recovery for what each tier includes.
If you would rather author on a laptop than on a phone screen, the Android app’s LAN Editor serves the workspace to a browser on your network and deploys without a rebuild.
A script that outgrows one file can be split across several, with one entry file that runs first. That is done in the browser or desktop editor. On a phone or tablet you can still open such a script and read every one of its files — worth doing before you run something you imported — but changing it needs the larger editor.
Where your work lives
Scripts, composed devices, and settings are stored on your device. There is no account and nothing syncs on its own, so export your library periodically and keep the file somewhere you trust.
Crash diagnostics and product analytics are both off until you turn them on; Privacy and Diagnostics explains exactly what each one would send.
When something does not work
Start a target in Local Simulation. If it runs there but not on air, the problem is the radio or a permission rather than your peripheral — that split resolves most issues on its own. Troubleshooting covers the rest.
Next steps
- Local Simulation and On-air BLE — what changes when you use a radio.
- Scripting Quick Start — a working scripted peripheral, quickly.
- Real-time Authoring — make a peripheral behave like real hardware.
- Open BLE Protocols Reference — the standard profiles behind the catalog.
- LAN Editor — author on Android from another computer.