Bluetooth
The Bluetooth option in Breeze Booth makes it possible to connect to compatible Bluetooth peripherals and interface with hardware such as lights, LED strips and payment systems.
To connect Breeze Booth to a compatible Bluetooth LE device go to the App Settings screen, select Show advanced settings and select Connect to Bluetooth:
Connecting to Device
The line below Connect to Bluetooth will show the connection status:
| Item | Description |
|---|---|
| Scanning… | if it can’t find any compatible Bluetooth peripherals |
| Connected to: | if it is connected to a Bluetooth peripheral with id or a display of the ids of compatible Bluetooth devices which don’t match the prefix defined in Breeze Booth |
Tap Set Bluetooth prefix to define which Bluetooth ids the app will connect to. For example, if you have a compatible Bluetooth peripheral to control LED lights which has an id of Breeze_LED_3c03056712 you could set the Bluetooth prefix to Breeze_LED.
If you have multiple iPad photo booths each with an LED light controller you need to enter the full id as the prefix to ensure that each booth connects to the correct LED controller e.g. set the prefix to Breeze_LED_3c03056712.
Sending Commands to a Connected Bluetooth Device
When an event is running the app sends information to a connected Bluetooth device each time a screen is displayed e.g. when the ready screen is displayed it sends a string similar to:
s:cameleon/portrait/.: stillsReady
p.
The app can also send a command string which can be defined for each screen for an event. This option is for advanced users and system integrators who are developing their own Bluetooth devices to connect to the iPad app.
Click on the *Bluetooth commands...* button in the *General* tab of the event editor to display the *Bluetooth Commands* dialog:
*Bluetooth command editor*
To enter a string to be sent first select the iPad state, e.g. stillsReady, and then enter the command string for that state. When the event is run the command string will be sent to a connected Bluetooth device when the photo booth switches to the given state.
Technical Details
Breeze Booth can connect to Bluetooth peripherals that provide the Nordic UART service. This allows the app to send messages to the peripheral and the peripheral to send commands to the app. Each time the screen changes in the app it sends a status message to the Bluetooth peripheral with details of the screen being displayed. The peripheral can send commands to the app to query its status (e.g. battery level, memory usage, screen info) as well as commands to control the app e.g. stillsStart to start the shooting sequence when the app is displaying the stills ready screen.
The commands the peripheral can send to the app are:
- ?d – query the model name, example response: d:iPad 9.7* 2018
- ?i – device name, example response: i:My iPad
- ?s – status, returns the current screen, example response: s:cameleon/portrait/.: stillsReady
- ?v – vendor id, returns the vendor id (as displayed at the bottom of the settings screen). Example: v:5A3B4974-C0AC-44BD-8CFA-8635367E0FC3
- ?m – memory usage, returns the number of MB free and total memory in MB, example: m:21742/30507
- ?b – battery percentage, returns the percentage charge and charging state (unplugged, charging, full, unknown). Example: b:98,unplugged
- ?t – device date and time in format YYYYMMDD_hhmmss
- ? – query the value of one or more tokens. Example: ?date returns ?date=2022-06-30
- start – enter photo booth mode from the startup screen
- !msg – display msg in the start screen login status area (supports \n for two lines)
- – the name of any touchscreen action when in photo booth mode
Sending commands to the iPad
Commands can be sent to the iPad to control its operation by sending the name of the touchscreen action e.g. to switch to stills mode and start the countdown send switchToStillsAndStart followed by a new line character.
Sending text strings to the iPad
Up to 10 strings can be sent to the iPad app using the @bt: command.
The strings can be accessed with tokens bt1, bt2, bt3 etc.
Examples:
bt1:My name — sets Bluetooth string #1 to *My name*. Accessed as bt1 *bt2:sales@breezesys.com — sets Bluetooth string #2 to sales@breezesys.com. Accessed as bt2bt3:more info — sets Bluetooth string #3 to *more info*. Accessed as bt3 * ... *bt10:string 10 — sets Bluetooth string #10 to string 10. Accessed as bt10
Bluetooth Devices
It is relatively easy to program a microcontroller to control LED strips or read sensors and communicate with Breeze Booth for iPad via Bluetooth. The simplest way is using CircuitPython.
Suitable microcontrollers:
- Adafruit Feather nRF52840 Express
- Adafruit ItsyBitsy nRF52840 Express – Bluetooth LE (low cost, easier for NeoPixels due to 5V logic output)
feather
Adafruit Feather nRF52840 Express
Programming Bluetooth microcontroller boards using CircuitPython
We recommend the Adafruit ItsyBitsy nRF52840 Express – Bluetooth LE.
First set up the board for CircuitPython and install the Mu editor:
https://learn.adafruit.com/circuitpython-essentials
After setup the board appears as a drive called CircuitPython. Programs run by editing code.py directly.
Example 1: Simple Bluetooth connection
Hardware: Adafruit ItsyBitsy nRF52840 Express – Bluetooth LE.
Download: https://breezesys.com/downloads/CircuitPython_BLE.zip
Unzip and copy to the CircuitPython drive. Load code.py in Mu, click serial to view output. Connect the iPad by enabling Connect to Bluetooth in Breeze Booth. Status messages will appear in Mu.
BLE_example
Example 2: Controlling NeoPixel LED strips
Hardware: Adafruit ItsyBitsy nRF52840 Express – Bluetooth LE and RGB+W NeoPixel strip or SK6812 strip.
Important: read Adafruit’s NeoPixel power guide before connecting LEDs: https://learn.adafruit.com/adafruit-neopixel-uberguide
Download: https://breezesys.com/downloads/CircuitPython_NeoPixel_BLE.zip
Unzip, copy to CircuitPython drive, load code.py. After connecting, LEDs change color/animation for each screen displayed. Edit code.py to set pixels, brightness, animations.
Programming Arduino based Bluetooth microcontroller boards
Set up Arduino IDE per Adafruit’s tutorial.
Load: File → Examples → Adafruit Bluefruit nRF52 Libraries → Peripheral → bleuart. Upload to Adafruit Feather board.
In Arduino Serial Monitor you’ll see:
arduino_serial_monitor
Set Bluetooth prefix in Breeze Booth to Bluefruit52. Connect, display shows Connected to: Bluefruit52. Serial monitor confirms messages.
Run an event — each screen change sends a status message to the peripheral.
arduino_serial_monitor_connected
arduino_serial_monitor_screen_status
Control ideas
- Detect a button press to start the shooting sequence
- Use a proximity sensor to detect guests and switch from standby to ready screen
- Interface to a payment system and switch to ready screen after payment
Sample Arduino sketch download: Breeze_Booth_LED_strips.zip
Note: Provided without warranty, requires Arduino programming knowledge.

Post your comment on this topic.