About BlueDisplay
Open source software to turn your smartphone or tablet into an Android remote touch display and voice output for your Arduino and ARM projects. You can do this using a Bluetooth adapter like HC-05 or an USB OTG cable. Use...
Open source software to turn your smartphone or tablet into an Android remote touch display and voice output for your Arduino and ARM projects.
You can do this using a Bluetooth adapter like HC-05 or an USB OTG cable.
Use the Arduino sketch to create a GUI with graphics, buttons, and sliders on your smartphone or tablet.
Simply connect an HC-05 to the RX/TX pins of your Arduino.
Alternatively, you can connect the Arduino directly to your smartphone using a USB cable and a USB-OTG adapter.
BlueDisplay receives drawing requests from the Arduino via Bluetooth and renders them.
It can also handle voice output requests, which are processed by Android's Text-to-Speech Engine.
GUI callback, touch and sensor events are sent back to Arduino.
No Android programming is required!
In full-screen mode, the options menu is accessed by swiping from the left edge.
Features:
- Open Source.
- C++ Libraries for Arduino and ARM (STM)
- Touch button + slider objects with tone feedback.
- Button and slider callback as well as touch and sensor events are sent back to Arduino.
- Graphic + text output as well as basic printf implementation.
- Draw chart from byte or short values. Enables clearing of last drawn chart.
- Play system tones.
- Easy mapping of UTF-8 characters like Ohm, Celsius etc..
- Automatic and manually scaling of display region with handling of insets.
- Up to 115200 Baud using HC-05 modules.
- USB OTG connecion can be used instead of Bluetooth.
- Local display of received and sent commands and data for debug purposes.
- Debug messages as toasts.
- Strings printed with Serial.print() are interpreted as debug messages.
- Hex and ASCII output of received Bluetooth data at log level verbose.
Sources + Examples:
Sources are available at https://github.com/ArminJo/android-blue-display.
Examples are contained in the Arduino BlueDisplay library https://github.com/ArminJo/Arduino-BlueDisplay.
Or use (Ctrl+Shift+I) in the Arduino IDE and search for BlueDisplay.
The library includes examples for easy initializing a HC-05 and for a simple DSO with 0.3 megasamples/sec.
Before using the examples, take care that the BT-module (e.g. the the HC-05 module) is connected to your Android device and is visible in the Bluetooth Settings.
All examples initially use the baudrate of 9600. Especially the SimpleTouchScreenDSO example will run smoother with a baudrate of 115200.
For this, change the example baudrate by deactivating the line `#define HC_05_BAUD_RATE BAUD_9600` and activating `#define HC_05_BAUD_RATE BAUD_115200`.
AND change the BT-Module baudrate e.g. by using the BTModuleProgrammer.ino example.
ARM example code can be found on https://github.com/ArminJo/STMF3-Discovery-Demos.
Version Info https://github.com/ArminJo/android-blue-display#revision-history:
5.0
- Text Y and X position is upper left corner of character.
- New functions setCallback() and setFlags() for buttons and sliders.
- Screen orientation flags now also possible in setFlagsAndSize().
- Fixed timestamp DST handling.
- Handling of Android insets.
4.4
- Support für new function disableAutorepeatUntilEndOfTouch().
4.3
- New command FUNCTION_CLEAR_DISPLAY_OPTIONAL to enable resynchronization of slow displays.
- Bluetooth random delay detection.
- Fixed bug for micro-swipe suppressing.
- Added Slider SUBFUNCTION_SLIDER_SET_DEFAULT_COLOR_THRESHOLD.
- Opening options menu by swipe now not restricted on full screen and connected.
- Strings printed with Serial.print() are not interpreted, but stored in the log for debug purposes.
- Fixed bug in FUNCTION_BUTTON_REMOVE.
- Fixed bug for SUBFUNCTION_SLIDER_SET_POSITION.
Hint:
To enable programming of the Arduino while the HC-05 is connected, use a diode to connect Arduino rx and HC-05 tx.
Previous Versions
Here you can find the changelog of BlueDisplay since it was posted on our website on 2017-01-01 21:39:58.
The latest version is and it was updated on 2026-06-29 17:50:54. See below the changes in each version.
BlueDisplay version 5.0.0
Updated At: 2025-05-25
Changes: - Voice output with Android TextToSpeech for Android > 5.0 (Lollipop).
- Text Y and X position is upper left corner of character.
- New functions setCallback() and setFlags() for buttons and sliders.
- Screen orientation flags now also possible in setFlagsAndSize().
- Fixed timestamp DST handling.
- Handling of Android insets.
BlueDisplay version 4.4.1
Updated At: 2025-03-02
Changes: - Improved Chart and Slider support, minor bug fixes and improvements.
- Android 12+ permission bug fixed.
- Bluetooth random delay detection.
- Fixed bug for micro-swipe suppressing.
- Added Slider command `SUBFUNCTION_SLIDER_SET_DEFAULT_COLOR_THRESHOLD`.
- Opening options menu by swipe now not restricted on full screen and connected.
- Strings printed with Serial.print() are not interpreted, but stored in the log for debug purposes.
BlueDisplay version 4.3.3
Updated At: 2023-08-30
BlueDisplay version 4.3.1
Updated At: 2023-01-15
Changes: - Android 12+ permission bug fixed.
- Bluetooth random delay detection.
- Fixed bug for micro-swipe suppressing.
- Added Slider command `SUBFUNCTION_SLIDER_SET_DEFAULT_COLOR_THRESHOLD`.
- Opening options menu by swipe now not restricted on full screen and connected.
- Strings printed with Serial.print() are not interpreted, but stored in the log for debug purposes.
- Fixed bug in FUNCTION_BUTTON_REMOVE.
- Fixed bug in SUBFUNCTION_SLIDER_SET_POSITION.
BlueDisplay version 4.2
Updated At: 2020-03-30
Changes: - Swipe from the left border in application full screen mode opens the options menu.
- Removed faulty messages on no data received.
- Added parameter values *LOCK_SENSOR_LANDSCAPE and *LOCK_SENSOR_PORTRAIT for function setScreenOrientationLock().
- Slider caption handling improved.
- Added short `drawText` functions.
BlueDisplay version 4.0
Updated At: 2019-11-24
Changes: Improved startup. New message if no data received after connect and part of screen is inactive/black, to access the log.
BlueDisplay version 4.0
Updated At: 2019-07-12
Changes: Connection with USB OTG cable now also possible. In this case no Bluetooth adapter is needed.
Slider setScaleFactor() does not scale the actual value, which is delivered as initial value at init().
Improved tone volume setting - can be adjusted at the smartphone too.
trim() for all button caption strings.
BlueDisplay version 3.5
Updated At: 2016-11-04
Changes: 3.3 Fixed silent tone bug for Lollipop and other bugs.Multiline text /r /n handling.,Android time accessible on Arduino. Debug messages as toasts. Changed create button.,Slider values scalable. GUI multi touch.Hex and ASCII output of received Bluetooth data at log level verbose.,3.4 Timeout for data messages. Get number initial value fixed.,Bug autorepeat button in conjunction with UseUpEventForButtons fixed.,3.5 Slider scaling changed and unit value added.