Good evening,
I have recently purchased your SQ3F quadruped robot; it came with an SSC-32 servo controller and Bluetooth devices. The Bluetooth devices that it came with are:
]Breakout serial board/:m] ]XBee/:m] ]Bluetooth Module/:m]As of now, I have been able to use a USB-to-Serial connection and run myPythoncode successfully, but now I want to use a wireless connection.
To establish a wireless connection, I have a few questions:
I have a VM running Ubuntu on my Mac. However, when looking at the product specifications for the Bluetooth module, it appears that the adapter is only compatible with Windows. Can I still use the Bluetooth module on Linux if I install the drivers? If not, can you send me a replacement part?
I just started using a VM and am not too familiar with it. Do you have some experience using VM’s? If so, I am using VMware Fusion to run Ubuntu on my Mac, and I was wondering how I would use a Linux compatible Bluetooth module to connect to the robot. Please let me know if you know how to do this.
I have been having some difficulty using the Bluetooth device- even when I connect to it through Windows. I believe that a WiFi connection will be far more reliable than Bluetooth. Do you know what I would need to purchase to use WiFi to connect with my robot instead of Bluetooth? Again, I would be running a Linux VM on my Mac.
Let me know if you have any other advice or suggestions on how to best achieve wireless communications with my setup.
Typically, these modules only implement part of the Bluetooth stack inside the dongle and the missing part is of the Bluetooth stack is implement in the device drivers, in this case in Windows (which would explain the Windows-only compatibility). If you wish to use it in Linux (or on OSX), you would need to have device drivers that are compatible with the device (complete the Bluetooth stack for a virtual serial port). For this, the best place to start looking would be a support forum related to your Linux distribution. That being said, you will also need drivers for your host OS, mac OSX. This may be possible but will possibly require advanced knowledge and some research on your part across the Internet to find the relevant information.
As mentioned in the posts here, a replacement of the RB-Dfr-95 & RB-Dfr-309 is most likely required to get a Bluetooth connection working in your case. Following our last reply on that topic, you did get into contact with us through our support center for an exchange. It seems you have an active ticket (#417726) but have not replied to use since our last message on the 2018-03-16. Please reply to our support staff to proceed with the exchange.
Unfortunately, we cannot offer much support concerning VM use. A very useful tip would be to remember that you any device you wish to use in the VM requires drivers in the host OS, too (in your case, OSX). Also, it requires the VM system to offer some kind of generic version of the hardware to the guest OS so that device drivers can be installed there, too. It can most certainly cause issues that would not happen normally when the OS is running directly on the hardware instead of inside a VM.
As mentioned in the topic linked above, this is unusual and would merit looking into. Then again, you started the process to exchange this module with a different one that should resolve those issues completely.
Yes, WiFi is typically far more reliable than Bluetooth connections in most cases. Also, you may want to consider ZigBee, XBee, LoRa, etc. All of these would offer a much better experience than Bluetooth for your system.
If you use WiFi, then all you need to change is the Bee module that connects to your SSC-32. On the computer side (OSX, Linux), you simply need to ensure that your computer has access to the same network your WiFi Bee is connected to. You can view our WiFi adapters here, such as this and this. Make sure to choose a WiFi module that matches/is compatible with your WiFi router (uses the same standards (ex: 802.11b), security protocol (WEP, WPA, etc.)).
For robots when using off the shelf components (i.e.: not designing your own custom setup) we’d typically recommend going away from Bluetooth and instead use ZigBee, XBee, LoRa or even WiFi. These are meant for these kind of connections and will provide a far more reliable connection.
This would be about the USB dongle, right? Please note the compatible drivers for this device are installed through the Arduino IDE. Please obtain a new copy of the installer here and download the Mac OSX version. If the automatic driver installation does not work, you can do it manually using the files found in the Arduino IDE installation folder.
I assume here you mean from your laptop > RB-Dfr-546? If so, please note you will need to connect to it using the RB-Dfr-610, not your built-in Bluetooth interface.
Please see the answer above concerning drivers and see if this helps. If you are still unable to setup the RB-Dfr-610 afterwards, please let us know and we will get in touch with the manufacturer. If this is the case, please provide details concerning your setup (model of computer & OS version).
Hello,
Thank you very much for your help. I have now figured out how to run my Python code on my Linux VM and connect to the RB-Dfr-546.
There is, however, a strange problem that occurs when I run my code-
The servos seem to move to a strange position that varies each time I run the code.
Before, when I was using the USB-to-Serial connection, the servos would move to a very consistent position every time I run the code. When I run the code through the Bluetooth adapter, the servos move to a different location than they do when I run it on the USB-to-Serial connection, even though I am using the same code.
This issue even occurs when I use Minicom to manually send commands to the robot. For example, when I tell servo 1 to go to position 750 it moves to one location and when I send this same command 10 seconds later, it moves to another location.
To investigate this issue, lets try the following:
Download and install Lynxterm on your computer. It is our free SSC-32/SSC-32U diagnostic tool.
Disconnect all motors and Bluetooth Bee from your SSC-32U. Leave only one motor on channel 0 and the battery connection (through VS1). Jumpers should be VS1=VS2 in place, VS=VL removed (default setup).
Connect by USB your SSC-32U to your computer. Provide power through VS1. Press the baud button to confirm the baud rate of the SSC-32U (see SSC-32U manual, page 34). It should be 9600 (by default).
Start the Lynxterm software. Go through setup to choose the right COM port and baud rate. The other settings should not need changing. Then, connect to the board.
Type VER in the black text box and press [enter]. The SSC-32U should answer with a firmware version.
Then, move the slider on the right hand side. The servomotor on channel 0 should respond. Try sending it to specific positions (ex: 500, 1000, 1500, 2000, 2500) and see how it goes.
Once completed, disconnect in Lynxterm and remove the USB cable. Remove power from the SSC-32U and add the Bluetooth Bee again. Pair with it and go to Setup in Lynxterm and change settings to match the Bluetooth connection.
Redo the same tests as in #6 and see if it differs.
Let us know your results in your reply. If possible, it would be great if you could film the motor’s reaction to the various positions in both tests.
Hello again,
I have run some tests and found rather peculiar results. These are described below.
I was unable to fully run the recommended tests because I have a MAC and Lynxmotion does not support OS High Sierra. However, I was able to run manually send commands through Arduino’s Serial monitor; this essentially does the same thing as Lynxmotion. The results are in these two videos: commands through Bluetooth; commands through the USB-to-Serial cable. As you will see, the servos move to the same positions in both forms of communication with the SSC-32.
Although manually sending commands to the robot works, my program still does not work. I took two videos, one using the Bluetooth module and one using the USB-to-Serial cable. Again, although I am using the same code, the servos respond differently. This is made very clear in the video.
If you would like it, you can find my program here. Let me know if you find anything in my program that might result in different movements when using Bluetooth vs a USB-to-Serial cable.
Let me know what you think and why the Servos are responding differently to my code when being controlled by the Bluetooth module
Well, we are glad to know that the pairing and connection work well. That is at least a great step forward from before (with the faulty Bluetooth module).
Indeed, the result does seem different. That being said, there is no easy way to figure out what is causing the issue without reproducing the setup, which we cannot.
At this point, we are unsure. The simplest way to move forward would be for you to create a smaller, simpler test code. This code should include a straight forward test, for example:
]Connect to the port/:m] ]Set the motor to 1500. Wait a few seconds./:m] ]Set the motor to 750. Wait a few seconds./:m] ]Set the motor to 2250. Wait a few seconds./:m] ]Loop back to step 2./:m]
Your current code is too complex to debug since many things could be causing the issue. Therefore, the best option is to go for something much simpler. If the test above works well with both Bluetooth and USB, then incrementally increase the complexity, adding more motors to the tests.
Sincerely,
Note: We also recommend that you place your quadruped on some sort of stand instead of its legs touching the ground. This makes it much easier to test gaits and code.
I have been able to successfully send commands to my quadruped via Bluetooth. It just took some testing of the baud rate, and, after determining that the proper baud rate for the Bluetooth module is 11520, the robot responded correctly.
Just including this in case others were having a similar issue.
I’m certain anyone from the RobotShop community that searches online and finds this thread will be glad for those extra bits of details! So thanks for taking the time, it is appreciated.
Feel free to post pictures/videos in a new to topic in Robot Project Showcase if you want. We are certain others would find this interesting.