Android Bluetooth joystick

I posted a pan/tilt project based on Joystick Bluetooth Commander, in the Robotic Section

I have Samsung Galaxy Tab 7" tablet and Arduino Uno. The X and Y values on the tablet screen don't display the position of the joystick and nothing is displayed on the serial monitor. How can I fix the problem?

Bluetooth applications are difficult to debug in Eclipse IDE, as Virtual Devices do not emulate Bluetooth activity
Actual debugging has to be made on a specific real device (Sony Xperia Mini)

I have Samsung Galaxy Tab 7" tablet

what is your tablet API level and display resolution ??

The X and Y values on the tablet screen don't display the position of the joystick

Make sure that options are as follow:
Data Range: -50 to +50
Data display: Joystick position
Data format: STX and ETX

Are the buttons and the "not connected" string displayed on the tablet screen ??
Does the Joystick actually move when touched??
does it produce haptic feedback when this option is selected ??

nothing is displayed on the serial monitor

Your Bluetooth serial board may be still configured @9600BPS
please adjust mySerial.begin(57600) to your specific Baud rate
Also make sure that your Bluetooth serial board is already paired with your tablet

finally uncomment

//        Serial.print(i);  Serial.print(": ");  Serial.println(cmd[i]);

and let me know the outcome

@all
My specific configuration is working flawlessly
Should you have installed this application on a different device, please post feedback

@jeffmorris
I beleave you are facing two non related problems

  • Communication with your BT card (your task)
    check pairing, Baud rate, connection to Arduino (Menu/Connect)
    I use a JY-MCU rev1.05 board
    Onboard LED should be flashing when powered and gets solid red when connected
    Connect TX board to RX (D0) Arduino

Above Arduino sketch has been updated to V5 (removed SoftwareSerial)
For sketch upload, don't forget to disconnect board TX from Arduino D0

  • UI display on tablets (my task)
    I will publish today on Google Play a new version insuring compatibility with tablets

Edit: Joystick Bluetooth Commander V2.2 is now available
Please make sure that application is configured as follow:

  • Data Range -50 to +50
  • Data display Joystick position
  • Data format STX and ETX
  • Refresh interval 100ms
  • Button1 data to send '1'
  • Button2 data to send '2'
1 Like

The screen shown on the second screenshot at https://play.google.com/store/apps/details?id=org.projectproto.btjoystick&feature=search_result#?t=W251bGwsMSwxLDEsIm9yZy5wcm9qZWN0cHJvdG8uYnRqb3lzdGljayJd doesn't show up. How can I fix this?

The X and Y values on the tablet screen don't display the position of the joystick

Can you move the joystick ??
Are the data now displayed on the tablet screen ??

The screen shown on the second screenshot at https://play.google.com/store/apps/details?id=org.projectproto.btjoystick&feature=search_result#?t=W251bGwsMSwxLDEsIm9yZy5wcm9qZWN0cHJvdG8uYnRqb3lzdGljayJd doesn't show up. How can I fix this?

The menu is displayed when pressing the hardware menu button at the bottom of your tablet
Can you access it ??

You need to enter this menu to establish a Bluetooth communication

Please let me have more detailed information

I will post a new version including a "reset configuration" option
The initial configuration should work right out of the box with the above Arduino sketch

I can't find the hardware menu button at the bottom of the tablet screen. When I move the joystick, the X and Y values at the bottom left corner of the screen change. A red message at that corner says "Not Connected".

Is it your model?

What happens when you launch Joystick Bluetooth Commander and press the button on the left ?

EDIT
Not sure this is the right one :relaxed:
The option button is this one (red circle)


Can somebody jump in and explain how to access applications menu or options on the Galaxy Tab tablet ??

I now realize that beginning with Android 3.0 (API level 11), Android-powered devices are no longer required to provide a dedicated Menu button :disappointed_relieved:

Joystick Bluetooth Commander Version 2.3 now adds full compatibility with Android 3.X and 4.X
The menu that allows BT connection can be accessed though the added 'action overflow button' (red square)
some other devices have a different icon at bottom left

thanks for bringing this point to my attention, sorry for being GingerBread centric

The application has been tested and is fully operative on my son's 7" Samsung Galaxy tablet (jelly beans)
Thanks to Julian for his contribution :wink:

The Samsung Galaxy Tab 7.0 Plus has display resolution of 1024x600.

OK

Just install Version 2.3, and let me know the outcome.
You should now have a Menu button available for establishing connection.

Next step is to get your BT board connected. With a JY-MCU type, the on board LED should change from blinking to solid red

I think that version 2.3 works but I don't see anything on the Serial Monitor after changing #define DEBUG from false to true. I can connect my tablet to the Arduino UNO board with Bluetooth module but the Pin 13 LED doesn't work when I touch the buttons next to the "joystick". The values change when I move the "joystick". The LEDs on the Bluetooth module changed from flashing red to non-flashing green.

OK

Please check those 3 points:

  1. Arduino sketch
    Add Serial.println("***");
    as the last line of setup()
    Please confirm the stars are displayed on the serial monitor

D0 should be disconnected to allow sketch upload
(and reconnected afterward ;))

  1. Hardware connection
    please refer to message #4
    Only 3 wires
    5V to 5V
    GND to GND
    TX board to D0 (Arduino RX)

3)BT board Baud rate
Some BT boards default to 19200BPS
Please adjust "Serial.begin(9600)" and Serial Monitor Baud rate accordingly
Should you require it, I will upload an Arduino sketch for checking BT board Baud rate and/or setting a new value. This sketch also insure that the BT board is OK

Please send me the sketch that for checking and setting Bluetooth baud rate. I added

Serial.println("***");

as the last line of setup() and the stars show up on the serial monitor.

Here it is
This sketch will scan the BT board and display actual Baud rate and firware rev level
The menu also allows to change Baud value
I suggest to set the board @57600

Connection:
TX BT board pin to Arduino D2
RX BT board pin to Arduino D3
5V BT board pin to Arduino 5V
GND BT board pin to Arduino GND

Finally, for joystick operations:
adjust Serial.begin(XXX) in AndroLED V5
reload sketch
move D2 cable to DO
remove D3 cable
and you should be all set 8)

Tested with JY-MCU rev1.05 HC-06 (LINVOR)
Should work with any board
EDIT: doesn't work with Bluetooth Mate Silver board
EDIT 2: another sketch has been developped for HC-05 board

Please confirm actual BT board Baud rate and firmware rev level

JY_MCU_Config.ino (3.17 KB)

The Arduino sketch is attached to the previous message
You may not have access to it if you browse this forum using a tablet
Please download using a PC, alternatively I can include the sketch code within a new post

Searching ............
ERROR: Bluetooth Module not responding!
Make sure there are no active bluetooth connection and try again

this is the Baud rate testing setup, please check:

This is a screenshot of the expected info:

Searching ............
ERROR: Bluetooth Module not responding!
Make sure there are no active bluetooth connection and try again

For checking/setting Baud rate, the BT card should not be connected (Bluetooth connected) to the tablet/Android device,
To enter AT command mode, the BT card LED should blink

Just in case, try inverting D2 and D3 cables

Have you already successfully used this board for other projects ??
Please let me have a link to the specific BT board you purchased

Bluetooth Mate Silver - WRL-10393 - SparkFun Electronics

Have you already successfully used this board for other projects ??
JY_MCU_Config configuration sketch won't work with this board as initialization strings are different

The datasheet for your board is here
Please have a look at page 5
Default Baud rate is 115200
Modify AndroLED V5 sketch setup() accordingly, should be OK