Okay you GURU’s out there, I have a SQ3 quad bot using the SSC-32 and the BBduino. I loaded the provided code into the BBduino via USB the sys uses a 9v and a 6v battery I’m also using the latest PS2 remote control sys. Everything seems to be in order according to the directions on the assembly guide. So when i power up the SQ3 it stands up…that is it! it won’t respond to the hand held PS2 remote at all. What did I do wrong? Is there some code or something that I was suppose to put into the SSC32 via serial port?
Sorry, I don’t have that exact setup, so I can only give some generalities. Also not 100% sure of some of the stuff you mentioned. Like the provided code. Are we talking the Arduino Quad code up on github\lynxmotion? and not the flowstone/flowbotics code that runs on the PC. If it is the later can not help as I don’t have flowbotics and have not seen it…
Note: the code up on lynxmotion github is a version of my Phoenix code base that was updated by Xan to work with their Quad. It included changes from my Quad support for how the balancing works plus changed which legs went where (normally on hex their our right legs and left legs), but he changed it such that the front legs were different than rear legs… I have since then I believe integrated his changes into my code base up on github. github.com/KurtE/Arduino_Phoeni … ad-Support
Note: I again have not tested this and it is a WIP.
Recently I received a V2 PhantomX quad by TrossenRobotics, which I just finished the construction of. I have a thread about this up at forums.trossenrobotics.com/showt … mX-MK2-%29 I just completed updating the code base to work with the V2 Hexapod and will soon be debugging any issues with my code base for that robot and then work on better support for the Orion Robotics Quad that I have… So hopefully over the next few months I will resolve any issues in the code base.
Now back to the Lynxmotion Quad. When you first turn it on, it should do nothing. When you turn on the PS2, the transmitter and remote should connect with each other. With both leds on remote being on (not blinking). When you hit the start button, the robot should get to default position and play a couple of notes. It has been awhile since I have used this, but I believe the triangle button will get to a default height and I think maybe the up/down buttons on the Pad should raise and lower it. Moving one of the joysticks should make it move in the directions you point and the other should do things like rotate… Some of the buttons will change in to modes where you can body rotations and translations… Don’t remember which ones, would need to look at code…
So question, if you hit start button, does it play notes and do anything? If it plays notes but servos don’t move, I would suspect connection between the two boards or the baud rate. I think the code defaults to 38400 so check jumpers…
Good Luck
Kurt
Yes this is the code from the github.com/ site. Once both batteries are connected and i flip the switch the quad stand up. That its! It do not matter if I have the transmitter on or not it still stand up once you flip the switch. There are two lights on the reciever both are solid when the transmitter is on but if the transmitter off one of the lights on the reciever starts to blink.
Again I assume when you said from github, you downloaded code from: github.com/Lynxmotion/Quadrupeds. I also assume that you copied the libraries into the Arduino libraries folder and that you are using: their SQ3_Arduino_PS2 sketch. Does it do anything (move, play sounds…) when you press the start button on the PS2 remote?
Pictures showing the wiring and jumpers would be helpful. You might also want to try my code branch I mentioned earlier to see if that helps. Also my readme has more information in it.
Kurt
Again not sure how much I can help as I do not have this configuration, but do have the older Quad body, with a different Leg design, the boards are not stacked the same, different PS2 controller… With Left legs on left side, right legs on right side versus, on new Quad different leg orientations for fornt versus rear legs. Also I am using my own code base, mentioned a couple of posts ago. However there are enough things in common, that you should be able to debug it, such that it at least tries to move.
A reason why I ask for pictures, is there has been enough times where some subtle thing is wrong, which often shows up issues that might be wrong or misleading in the assembly guide.
Example: Figure 7a may be correct, but then you get to steps 14a) which says:
Maybe I missed it, but I don’t see anywhere that tells you that once you are done with these steps, to remove the TX/RX jumpers and reconnect the cable and to remove one of the baud jumpers to get you back to 38400. So pictures here would help to verify that this is setup properly.
What confuses me, is that you say when you turn it on, it moves, which it should not. It should do nothing until you hit the start button on the PS2.
So just to verify, you did something like the following, not necessarily just for this:
a) Built the robot and used the appropriate thing to set the Servo offsets.
b) Downloaded and installed the Arduino environment. Which version?
c) Downloaded the Arduino PS2 Quad program from Lynxmotion probably as a zip file. You then moved the files into the appropriate location, like:
Top level sketch (SQ3_Arduino_PS2 - to you Arduino Sketch folder - In my case this would be: C:\Users\Kurt\Documents\Arduino
Unzipped the library folder and put these folders into your user Arduino libraries folder, in my case: C:\Users\Kurt\Documents\Arduino\libraries
Likewise you downloaded installed the PS2 library
d) You plug in a usb cable from your computer into the usb connector of the botboarduino. You select the serial port in the Tools/serial port list
e) You loaded up the SQ3_Arduino_PS2 into the Arduino IDE, you choose the board type of Arduino Duemilanove w/ Atmega328 as the board type.
f) You turn on the Botboarduino and do an Upload to it that succeeds.
Now assuming the above:
When you turn both powers on, it stands up? And you can not do anything else…
Try:
Still have the serial port connected. Click on the Serial monitor. Make sure it is configured for 38400. Does anything show up here? If you click in the top input line for the terminal monitor and hit the return key does anything happen? If so what happens if you hit: o
Anything? If not the program may not be running properly. If so, it should go into it’s own servo offset update code. you can then hit $ to exit this… If it enters and does nothing with servos, probably something wrong with cable or baud, or power… If this works, but still nothing from PS2, then you should try setting up the program to use PS2 debug code… There is code in the file Phoenix_Input_PS2.h (in a folder with similar name) that is under ifdef
#ifdef DEBUG_PS2_INPUT
So if you go into that file and add: #define DEBUG_PS2_INPUT
Extra debug code will be compiled in. Again you have to download this to to the board to use it and you have to have the usb plugged in and terminal monitor. Also code is such that I can turn it on/off. There is a command in my terminal monitor code that toggles debug on and off: d
Hope you can get it up and working.
Kurt
Good afternoon, I believe I have the same config. (the quad provided in the servo erector set v1.1) I got the code from: github.com/Lynxmotion/Quadrupeds especificly the SQ3_Arduino_PS2, my quad uses the BotBoarduino and the SSC32, I get response from the ps2 remote, the problem I´m having is that instead of raising the feet the quad leans toward the foot that’s supose to rise, I tried changing the leg dimensions (in the Hex_Cfg.h), having the same result , I tried changing the body dimensions, no change, I tried holding the battery thinking it could be the weight not being balanced, no luck. , hopepully you could give me some direction on what to modify, thanks in advance
Good to know it’s communicating. You can refer to the Phoenix guide to know which buttons to press to change the mode. It sounds like you have it in body sway mode. Refer to the bottom of this page:
lynxmotion.com/images/html/build99f.htm
Hi CBenson, thank you for the reply, I think the problem is in walking mode, It has no problem turning to the left, but when it turns to the right instead of raising the feet it leans over the foot thats suppose to raise, the same thing happens when it moves backwards or to the sides (left control stick), maybe a video would help me explain myself better, thank you
Sounds like a calibration / center of mass issue. For a quad to walk, all servos need to be perfectly calibrated (90 degrees plus or minus one or two degrees), and the center of mass (largely determined by the placement of the battery) needs to be dead center.
I followed the step 14c. of the guide lynxmotion.com/images/html/sq3u-assembly.htm to calibrate the servos at 90 degrees (pic attached), I also tought that the battery could be the issue (center of mass) so I took holded the battery out and holded it while the quad was performing, but with no change, I tried changing the leg dimensions (in the Hex_Cfg.h), having the same result , I tried changing the body dimensions, no luck, could it be the code?, thank you for your time.
The same robot using the same configuration and the same code works… so something is odd. Did you double-check that the servos are plugged into the right servo ports (and all correctly oriented with black wire facing outward)? If even one of them is off, the robot won’t walk. Your mechanical setup looks fine. When you attached the servos to the brackets, were they all at 90 degrees? If this doesn’t address the issue, can you upload a video of what happens?
I followed the step 9 of the guide ge.tt/83L5u601/v/0, the servo erector set v1.1 comes with 4 HS-422 servos and 8 HS-645MG, I’m using the 422 for the coxas and the 645 for the femurs and tibias, could this be affecting the movement?, thank you
We don’t see a level shifter anywhere, and it’s a V2 remote. The SQ3 comes with the RC-01V2; did you receive the level shifter? This may be causing issues with the signals.
lynxmotion.com/p-869-ps2-rob … er-v2.aspx
lynxmotion.com/p-870-ps2-wir … ifter.aspx
Yes it is under the ps2 receiver, it broke when attached to the biped , now it is connected by jumper wires
This is a pic of the level shifter pluged by jumper wires, looking around for people with the same issue I found this videos on this one youtube.com/watch?v=7E0AzEE9OdU the author played with values in the body shift code, does anyone know what part of he code is the body shift?, my guess is that is either in the phoenix.h or the phoenix_code.h, it would be very appreciated
@etwx (cc: @kurte) When you used the Reg screen of the LynxTerm program to calibrate your servo positions, did you notice if the “Initial pulse width” check box (in the top-right quadrant of the screen) was checked? I suspect that it is, and that’s the thing that makes your quad stand-up when power is applied and nothing else works. Try turning it off and trying your robot again: at this point it shouldn’t do anything anymore, and you will have to double-check the power connections of the BotBoarduino, its connections to your PS2 receiver, and its connections to the SSC-32 controller. Let us know if this helps.
@ceshg Based on your for the video, it seems that the servos are properly calibrated, but that the horizontal hip servos move in the wrong direction when robot is trying to walk – making it lean towards the leg that’s being lifted, instead of leaning away from that leg. It seems to me that you should tripple-check the servo mapping to ensure you don’t have legs confused with each other. Note that each leg itself does seem to be properly connected, but I have the impression that you might have confused the entire sets of servos associated with each leg.
I hope this helps,
Hi Kurt,
I’m back on the quad for a while, and while I can compile and still see a prompt from something (?) I downloaded to the board a while back.
Rev A !ServoShield! 05/19/12 ALM
LED1 motor A
LED2 motor B
I get a “avrdude: stk500_getsync(): not in sync: resp=0x00” error message at the end of the download (I know I’ve seen it before).
I’m set to “AVR ISP” for the programmer, and “Duemilanove w/ Atmega328” as the board type, but no success.
What am I forgetting?
Thanks,
Alan KM6VV
Hi Alan,
not sure what is going on there with the messages you show. Do you have some Servo shield plugged into your Arduino?
The AVR ISP is not important unless you are using the Upload Using Programmer command with an ISP connected up to the 6 pin header. If you are connected up to USB to upload, and using standard upload.
Things to check:
a) Power
b) Power…
c) If using USB to upload, can not have something using USART (digital pins 0, 1), like XBee or plugged into SSC-32
d) If upload using programmer, than make sure SPI pins don’t have something conflicting…
e) Power
f) If upload using USB and previously uploaded using ISP, maybe don’t have bootloader, so need to plug in ISP and program and/or tell it to burn bootloader.
g) Power
Kurt
Hi Kurt,
That was it, I had moved the SSC-32 tx/rx wires over to the new tx/rx 3-pin header.
I am delighted to see the “Arduino Phoenix Monitor” signon.
Thanks!
Alan KM6VV
Edit:
Looks like I’m stuck on the voltage test:
PS2 Init: 1
Voltage went low, turn off robot 0
Arduino Phoenix Monitor
D - Toggle debug on or off
B <percent>
G ST NL RR RF LR LF
O - Enter Servo offset mode
or:
PS2 Init: 1
Voltage went low, turn off robot 87
Arduino Phoenix Monitor
D - Toggle debug on or off
B <percent>
G ST NL RR RF LR LF
O - Enter Servo offset mode
87
85
81
76
70
Even with a fresher battery.
Jumpers for VS/VL voltage sense are installed.
Some confusion about the com to SSC32, Build 185 was saying nice tx/rx header, but LSQuadA_PS2_SSC2 code is using 10 and 11, so I’ll have to switch that back. QBK-02 assembly shows 10 & 11.