Frequently Asked Questions

and troubleshooting tips

Q1. Will my Bitty Software application work magically "out of the box" without me needing to do anything else?

A1. No, absolutely not. The application and the device it is running on (usually a smartphone) is one half of a two-part system. The other part is a micro:bit (or similar) which MUST be running code which makes it able to behave in the way the Bitty Software application expects and requires. It is your job to put that code on the micro:bit. That's what a micro:bit is for.

We try to help you get started by providing example code which might be exactly what you need or might need tweaking. See https://github.com/bittysoftware and browse until you see something that looks useful. If you don't understand any of the code then maybe you need to start to learn coding with something simpler and then return to your Bitty Software application when you have mastered the basics. See https://microbit.org/code/.

For precise information on what your micro:bit code must be like in order that you can use Bitty Controller, see http://www.bittysoftware.com/tutorials.html#controller

Q2. Why does my Bitty Software application ask me to grant the Location permission when I run it? Is my location being tracked?

A2. Android requires the location permission to be granted whenever Bluetooth is used to scan (search) for other devices. Your Bitty Software application has to find microbits to connect to and so must have this permission. Don't worry, your location is not being tracked by the app, nor that of anyone else. If you do not grant this permission though, your app will not work. See https://developer.android.com/guide/topics/connectivity/bluetooth 

Q3. When I press Scan, my micro:bit is not being found. What's wrong?

A3. There are several possible reasons why this might be happening and it's worth understanding how the scan function works, in troubleshooting this issue. 

It works like this: in order that it can be found, your micro:bit will sometimes transmit some information over Bluetooth every second or maybe more often than that even. This information contains the name of the device, which for a micro:bit will be something like "BBC micro:bit [zopov]". The part of that example which is "zopov" will vary. It's a 5 character identifier for your micro:bit which will probably be different to the ID used by other micro:bits. The process of transmitting this information is called Bluetooth advertising.

The scanning process looks for these types of transmissions (advertising) and ignores any that do not seem relevant. So, if the scan function does not find your micro:bit it means that either:

a) Your micro:bit is not advertising

b) Your micro:bit is advertising but for some reason, the Bitty Software application is ignoring advertising from this device. Some of the apps allow you to specify filtering criteria in the Options screen. Perhaps your filter settings are causing your micro:bit to be ignored.

c) Your phone is not allowing the scanning process to work because of a security setting.

Some quick and easy things to check are as follows: 

1. Find an application called nRF Connect in the Google Play or Apple App store and install it. This is a handy tool which can find all the Bluetooth devices around you and show you them. If it shows your micro:bit then this proves that your micro:bit is advertising. If it does not, then this proves it is not advertising and is why your micro:bit is not being discovered by the scan function.

2. On Android, check the Bitty Software application has been granted the Location permission. Go into Settings/Applications, choose the Bitty Software application and select Permissions. Make sure the Location permission is enabled. If it is not, enable it.

3. Reset your micro:bit. If something else has connected to your micro:bit then that will stop it advertising and hence prevent it from being discovered when scanning. Resetting will disconnect the other device.

4. Check the micro:bit hex file. If the hex file requires you to pair your phone with your micro:bit and you have not, then it will not advertise until you have paired. If you made the hex file yourself, this is a project setting in MakeCode. Check this and if necessary, switch off pairing and recreate your hex file and install it on your micro:bit. This will make life simpler. Re-enable it later if you feel you need the security that pairing gives you.

Troubleshooting this issue can be tricky but rest assured, the problem is 99.999% certain to not be a bug in your Bitty Software application. It's almost guaranteed to be one of these issues. For more information on this and other Bluetooth related issues, the Bluetooth troubleshooting guide is highly recommended: http://www.bittysoftware.com/troubleshooting.html 

Q4. I don't understand Bluetooth. Can you explain?

A4. I can try. In fact I have tried. Check out the Beginner's Guide to Bluetooth: http://bittysoftware.blogspot.com/p/bluetooth-for-beginners.html

Q5. My Bitty Software app connects to my micro:bit and then quickly disconnects. Why?

A5. The Bluetooth Troubleshooting Guide explains this fully, but in short it probably means that your phone thinks it is paired with your micro:bit but your micro:bit does not think it is paired with your phone. Unpair (sometimes labelled "forget") the pairing on your phone and reinstall your hex file on the micro:bit. If the hex file requires you to pair then pair... if it doesn't then do not. Whether or not you need pairing is a property of the code on your micro:bit and in the MakeCode tool you will find this in your project settings. See http://bittysoftware.blogspot.com/p/resources.html for the Bluetooth Troubleshooting Guide.

Q6. Where are the message types for Bitty Data Logger when used in user capture mode documented?

A6. https://github.com/bittysoftware/bitty_data_logger_device_code 

Q7. Where can I find example code for devices such as a BBC micro:bit which I wish to use with Bitty Data Logger?

A7. https://github.com/bittysoftware/bitty_data_logger_device_code

Q8. Where can I find example code for devices such as a BBC micro:bit which I wish to use with Bitty Controller?

A8. https://github.com/bittysoftware/bitty_controller_device_code

Q9. Where can I find example code for devices such as a BBC micro:bit which I wish to use with Bitty Blue?

A9. https://github.com/bittysoftware/bitty_blue_device_code

Q10. When I install a hex file created from source code, micro:bit scrolls 02 across the display. What does this mean?

A10. This means you've run out of memory. See https://microbit.org/guide/error-codes/ for error codes. micro:bit only has 16K RAM and some of that is used by "system code" known as the microbit DAL. If you're using Bluetooth, this alone will use about 8K of the available memory. Adding it all up, you probably end up with less than 2K for your own code to run in. To make matters even more challenging, sometimes the DAL changes. There was a significant change early in 2019 (or thereabouts) which reduced the memory available for application code so that code that used to work, no longer fits in the available micro:bit run-time memory. If this happens to you, the only possible response is to remove unnecessary or low priority code and to make general optimisation changes such as reducing the number and type of variables you use in your code. It's a black art but this is the real world. Embrace the problem and gain some useful experience!

Q11. Bitty Data Logger is only getting a few values.... I left it connected overnight, too. There should have been hundreds of data points!

A11. If you're sure the Bluetooth connection is OK (maybe you used the on connected/on disconnected event handlers to display "C" or "D"?) then one possibility is that the smartphone or tablet you are using has put the app into background and whilst there, it is inactive and cannot receive data from the micro:bit. On iOS for example, if the screen goes to sleep / locks, Bitty Data Logger will no longer receive and process data from your micro:bit. This is a feature of apps on Apple's iOS not a defect with Bitty Data Logger. The obvious workaround is to change the settings of your Apple device so that the screen never locks. This does not seem to be an issue for Android devices.

Q12. Bitty Blue disconnects and the micro:bit seems to crash

A12. If you are using the hex file from bittysoftware.com or your own code includes the magnetometer service then when your micro:bit starts up, it will prompt you to follow a procedure to calibrate the magnetometer (AKA digital compass). This can take two forms, depending on the version of the micro:bit code you are running. If you skip this step, your micro:bit will crash as it runs out of memory. This is an issue with the micro:bit firmware and not a Bitty Blue problem! To resolve the issue, complete the calibration procedure before connecting the app to the device or.... don't include the magnetometer service in your code. Note that this issue may apply to other applications that use the micro:bit Bluetooth magnetometer service.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.