Troubleshooting, FAQs & Support
I have released this code as a service to the broader community, as is, in an unsupported manner with no guarantees of support. Hopefully this website and the following information however is of assistance. If you still require support, try the options listed under support.
Troubleshooting
If BlueCube isn't working, please try the following:-
Double check the wiring between the Cube and the Bluetooth Module
Make sure the Bluetooth module has been correctly connected to the Cube, as per the wiring pages instructions. There should be a red light that flashes when it is powered up, and a blue light that stays on when a mobile device has connected.
Ensure Bluetooth module is in the correct mode
Make sure the switch on the Bluetooth module is set to the "CMD
" position.
Ensure all libraries are correctly installed
If you get any errors during the compile of the sketch, ensure that the libraries have been correctly installed (goto "Sketch" "Include Library" "Manage Libraries..." and change "Type" to "Installed" and check that "Cube4", "Cube4_ARUtils", and "Adafruit BluefruitLE nR51" are all installed). Additionally check that you have selected the correct board and ports.
Try the Adafruit Bluefruit LE Connect App
Download the Adafruit Bluefruit LE Connect App from either the Apple App Store or Google Play Store and then search for and connect to the "Adafruit Bluefruit LE" peripheral. When prompted choose "UART", and then down the bottom type "all red;" without the quotes and hit send. The cube should turn red if this has worked.
Connect the BlueCube to your computer via USB and use the Serial Monitor
After connecting the cube to your computer, and selecting the correct board and port in the Arduino IDE, open the "Serial Monitor" ("Tools" "Serial Monitor") and power cycle the cube. You should see information about the Bluefruit module, and finally that it has been set to data mode.
Frequently Asked Questions
Does BlueCube work with Vendor X's Bluetooth LE module
No. The sketch for the cube, and the iOS and Android apps are all written to work specifically with the Adafruit Bluefruit LE UART Friend.
That said, it maybe possible to modify the code to support other Bluetooth LE modules. The modules library would need to be included in the sketch, and the existing bluetooth code removed (starting the cube on Serial1 instead of Serial), or edited. Additionally, the "ServiceUUID", "txCharacteristic" and "rxCharacteristic" would need to be updated to match the Bluetooth modules values in "BlueCube/IonicApp/www/js/defaults.js", then the mobile apps would need to be recompiled.
BlueCube doesn't respond to some commands
When running your own animation, make sure it isn't using the "delay" command. Delay stops the cube listening for incoming messages. To avoid this the sketch needs to be non-blocking. This is done by using a state machine, and comparing the time. The examples that ship with BlueCube are all non-blocking, and should be used as a starting point. Additional examples are available from my Cube4 Sketches repository (specifically look for the sketches that contain a _NoDelay folder).
Can I upload new sketches or animations from my mobile device
No. BlueCube only supports the API of the cube library, or running existing animations within the loaded sketch. You can not change the sketch on the cube from the mobile device.
The app doesn't show the current state of the cube
The app doesn't receive any communications from the cube. As such it doesn't know what state it is currently in. For example on the "Set" screen, if an LED is currently set to green, tapping it will set it to the chosen colour, then tapping again will turn it off.
I want to make some changes to BlueCube. Will you accept the changes?
If you would like to see the changes you make merged into the BlueCube codebase, please make a pull request in Github. The changes will be assessed and considered for inclusion.
I wish BlueCube could do "x". Will you add it?
Please log feature requests via the BlueCube Issue Tracker, however I offer no guarantees that they will be actioned as this is a hobby project for me that I work on as time permits. BlueCube is however open source, so you can view the latest version of the source code at https://github.com/neographophobic/BlueCube and possibly make the changes yourself. I've documented how to setup the development environment to help get you started.
Support
Wiki
Please consult the BlueCube Github Wiki. There maybe additional tips or tricks that may assist you.
Issue Tracker
If you have a problem, you can raise an issue at the BlueCube Issue Tracker.
Please try to include the steps that you took before the error occurred, any modifications you have made to the sketch or apps, and any other info (including a screen recording / shots if possible) that might help in tracking down the problem.
Source Code
BlueCube is open source. You can view the latest version of the source code at https://github.com/neographophobic/BlueCube. The comments in the source code may help identify the issue.