Troubleshooting Guide for Dabble
While using Dabble with your hardware board, you may face some problems. These problems may be related to the connection between the app and hardware, improper data transfer or error in the Dabble code of hardware board. But no Worries! this documentation will guide you in solving your issues with the Dabble app. But before moving ahead you should have all Dabble related utilities updated. Make sure you have all the following resources updated:
- If you are using Arduino IDE for uploading code in hardware, then use the latest library for the following boards:
- If you are using PictoBlox for uploading code in hardware, then make sure you have the latest PictoBlox version. You can check it here.
- Update you smartphone app from below;
What potential problem you can face?
The solution of the following most frequently faced problems that have been discussed in this troubleshooting guide (Click on the problem to jump onto it):
- Dabble is not connecting to the Bluetooth
- Communication error: Sometimes it may happen that your code is not working properly or not working at all. This mainly happens because of improper data transfer between the app and hardware.
- Dabble code compilation error in Arduino IDE
- Other: Error in working with specific Bluetooth modules and hardware.
Dabble is not connecting to the Bluetooth Module
- Your Bluetooth module is not visible in the Dabble app when you see the list of all the Bluetooth devices available. This problem can occur due to the following reasons:
- If the Bluetooth module you wish to connect is already connected to some other device then that Bluetooth module will not be visible in the Bluetooth list of your smartphone. To solve this problem disconnect the Bluetooth module connection from the other device or turn OFF and turn ON the Bluetooth module again.
- It is possible that your smartphone only allows Bluetooth connection with paired devices. In this case first, go to the Bluetooth device settings of your smartphone and pair your Bluetooth module with it.Sometimes while pairing Bluetooth you will be asked to enter the PIN. Enter the PIN for your HM-10 or HC-05 module if you have set any PIN through AT commands. Or if you don’t know the PIN then you can try some default PINs for these modules. For HC-05 try 0000 or 1234 and for HM-10 try 000000 or 123456. However, for ESP32 the BLE is configured from Dabble code and hence does not require any PIN to pair.
- Many times it happens that your smartphone takes time in finding the nearby Bluetooth devices. In such cases, though the Bluetooth of your hardware is present in the list you cannot identify it because the name is not visible. In this case, wait for a little while longer until the name of the module does not appear on the list. Or if you know the address of your Bluetooth module then connect to that address.
- You are not able to connect to the selected Bluetooth module.
- Sometimes even if the module is available in the list there is still a connection failure. This happens if you try to connect to a device that is not supported by the Dabble app. The Dabble app can connect with the classic Bluetooth (BT 2.0) HC-05 and BLE HM-10 or ESP32 .
Sometimes it may happen that your code is not working properly or not working at all. This mainly happens because of improper data transfer between the app and hardware. You can check if there is any data transfer issue by checking the board name that appears as a notification as soon as your hardware connects to the Dabble app. You can check the same thing by going to the settings by clicking on the settings button in the app.
If the board name is appearing correct then there is no issue in communication between hardware and Dabble app. This is because whenever any of the hardware connects to the Dabble app there is a handshake signal between Dabble and hardware wherein app requests for the identity of the board and board sends its identity to the app.
The major reasons possible for this are mentioned ahead:
- Error while making the Arduino IDE or PictoBlox code: For getting data from the app it is mandatory to call function “Dabble.processInput()” in the void loop() as this function checks the availability of data and also processes the received data. So maybe it is possible that you are not receiving correct data because you have not called this function in the loop. Or maybe there are some other statements in code that are preventing call for this function like some while() statements. Well, this can get a little complicated in explanation so, try to run any example code to check if the problem was related to your code that was preventing the communication.
- Wrong Hardware connection:
- In the case of evive and ESP32 chances of wrong connection are negligible. This because ESP32 has in-built Bluetooth and evive has a dedicated Bluetooth slot and so you are free from wire clutches here.
- While using boards like Mega, Uno and Nano make sure that RX and TX pins of the module are correctly connected to TX and RX pins of your board respectively. With Dabble library and Dabble blocks follow the connections as stated below:
HM-10, HC-05 and HC-06 Pins evive Arduino Mega Arduino Uno Arduino Nano TX Pin Plug Module in Bluetooth Slot Pin 15(RX3) Pin 2 Pin 2 RX Pin Plug Module in Bluetooth Slot Pin 14(TX3) Pin 3 Pin 3
- Wrong Baud Rate: If you are not getting the board name correctly then it is quite possible that the baud rate of your Bluetooth is not correct. Because of which improper data transfer will occur between your hardware device and smartphone.
- You will not have a Baud rate issue in case of ESP32 as here the communication process works differently because it has an in-built Bluetooth.
- To check and change the baud rate of the HC-05 module you can follow the example code of changing baud rate given in Dabble library examples. Navigate to “Files>>Examples>>Dabble>>Bluetooth Baud Settings”.
- The process of changing the baud rate of HM-10 is a bit tedious. Follow the tutorial for the HM-10 module for learning how to change the baud rate of the HM-10 module.
Dabble code compilation error in Arduino IDE
Let’s try to understand this case with the help of a situation that you want a to make a mobile robot using the Gamepad module in Dabble and want to control the speed of the robot with help of knobs in the Input module in this case code goes like
You can see the error picture above that states “undefined reference to ‘Inputs’” because the above code does not include “#define” macro for the Dabble Inputs module.
As guided in the documentation of various modules basic steps of writing code includes defining keywords related to the module. In the above code #define INCLUDE_GAMEPAD_MODULE is mentioned but similar #define statement for Inputs module in no mentioned hence the problem of the undefined word took place. The keywords included in the code should be in the following manner,
- Error in working with specific Bluetooth modules and hardware: There can be errors in data streaming that affect the performance of the modules. These errors may be like missing data or slow data streaming. Due to this kind of error modules like Phone Sensor or Pin State Monitor may underperform as there is a very fast data streaming in these modules. The probable reasons for these problems are listed below:
- Board Type used: Arduino boards like UNO and NANO uses software serial for communicating with the HC-05 or HM-10 Bluetooth module. And software serial allows only one-way serial communication at a time as that is a virtual serial. Hence you should connect the Bluetooth to hardware serial on the board while using modules like phone sensor or pin state monitor. For knowing how to write code for using Hardware serial you can refer the example of phone sensor or pin state monitor available in Dabble library.
- Bluetooth Type used: The Bluetooth type used with the hardware board also plays a crucial role in deciding module performance. As you know that Dabble supports Bluetooth classic and BLE. The speed and protocol of data streaming are very different in both Bluetooth types. Classic Bluetooth supports fast data streaming to a certain extent but for BLE there is a limitation. Due to speed limitations in BLE, there will always be data lag if fast data streaming is taking place.
Contact Us for Further Assistance
If you have tried everything mentioned above and the problem is not solved, then you can comment below.