Help with Hexapod Lynxmotion Botboarduino and SSC-32u

Ok, here is the video! I didnt get very far but hopefully this will give you an idea of whats going on!!
youtube.com/watch?v=t2I9KVZoqWo

Hi,

Thanks for the great video! :slight_smile:

Unfortunately, we cannot really see all that well the baud rate on the SSC-32U physically. But, it does seem like changing the baud rate of your SSC-32U with the button is not working.

Therefore, lets do it using Lynxterm, instead! (see attached image for details)

It is a very straightforward process:

  1. Ensure your SSC-32U is at 9600 and connect it to your computer by USB.
  2. Start LynxTerm and connect to the SSC-32U at 9600 baud rate.
  3. Type VER[enter] to confirm the board is working.
  4. If it is, then type R4[enter] to see the baud rate. The SSC-32U should respond with “960”.
  5. Type r4=3840[enter] to change the baud rate to 38400.
  6. Once this is done, further commands will not work until you click Setup and change the baud rate to 38400.
  7. Once the baud rate is changed in the software, try VER[enter] and r4[enter] again and see if that works.

Good luck!

Sincerely,

Thanks for the compliments, and for your reply once again! I haven’t had a chance to test out the manual logic that you have above! however, I did hook up the right side of the spider (9 servos) to the SSc32u and began to adjust them via 90 degrees, as per the instructions, however, I came across a couple of burnt out servos…, so…, I ordered some for replacements! To add on to that, I reviewed the diagram for the botboarduino! I uploaded the program from arduino, as per your instruction, but the board isn’t responding the way i thought it would! Maybe im not doing it right or something! The Tx and Rx wires are in the right place, but all of the lights from the botboarduino shut off, and the receive for the remote doesn’t respond! I will have another video, (more detailed), later! I know that i wont get a response until monday about that!
Ok, so, Im under the impression that as soon as I upload the program to the botboarduino, and adjust the servos via lynxterm, and have all of the connections secure with the proper batteries, that Im able to control the spider via the PS2 controller and all would be go to go for just tweeking after that! But, when u see in the video that my unit just has to be “unique”, and I dunno why!! I really appreciate your help and Im trying not to make this more difficult than it really is! But I know I have all of the connections right, at least from what i understand!

Thanks!

Hey, so here is a video that I have so far!
youtu.be/asx9l_j74Ts
The situation now is, I can’t get the PS2 controller to operate, and I’m not too sure if everything works correctly despite how I have it all together! I appreciate the details that you’ve provided for me…, I just hope I’m doing itt all right!! Thanks!

Hi,

Oh well, lots to cover. Nice 3D printer, btw (and cool console stacking in the back :wink: )!

First, it is worth mentioning that if you want to use the USB port of the SSC-32U, it is recommended to remove the 3-pin jump on the TX/RX/GND headers of the SSC-32U (the ones @ 7m22s). In theory, the SSC-32U’s USB interface has priority, but it can still cause problems (whether or not the BotBoarduino is on/powered).

Now, around 4m50s you mention the register data. By default, the window is empty until you press Read. The data (once you press Write) is stored inside the EEPROM of the AVR chip on the SSC-32U. If you change the data, you have to press Write to ensure it is saved before closing this window or it will be discarded. We also recommend that you press Read again to confirm it was written to the chip properly.
If you only want to use the offsets, make sure they are enabled on the top right (see this previous image for details).

As for the wiring of the PS2 receiver (~6m30s) and the BotBoarduino, unfortunately the color coding for those wires has changed with nearly every single revision of the hardware, which makes it hard to keep a track of. That being said (and like you mentioned in the video), as long as that wiring matches the code, it will be fine.

Now, concerning the communication issue between the BotBoarduino and the SSC-32U, there are a few unknowns still. Answering those will most likely lead us to a solution:

  1. At around 3m45s you mention doing changes to the SSC-32U (assuming it is related to the baud rate from my last reply). I couldn’t see in the video, but is the SSC-32U now setup to 38400 baud rate?

If it is at 38400 and you are able to connect at that baud rate from Lynxterm, then we can proceed with more tests. If it is still at 9600, we will need to get it to change baud rates as a faster baud (38400) is needed for the hexapod code since it needs to update many servos quickly (18 or even 24!)

  1. With the BotBoarduino (set to EXTernal power) connected to the SSC-32U by TX/RX/GND (and no USB cable in the way), power it up. On your controller (assuming it is synced with the receiver), press Start. Does the BotBoarduino produce any sound when you do so (your buzzer jumper seems in place, so it should)?

Let us know about those and we should get this moving forward soon!

Sincerely,

Ok, Thanks so much about the printer and the game stack, I have em to play and to fix up! and the printer…, bc, reasons…, lmao!
Ok, about the Tx/rx/grd headers, I knew that they werent suppose to hooked up like that when using the USB cord, however, I saw no difference when I was maneuvering around trying to trouble shoot before I made the video! But Ill take everything off and redo the steps, no problem!

About the register, yeah, I didnt know any of that! lol! I still dont think that would have caused the spider not to function though, or am I wrong to assume that? The offsets never responded to anything, just the slider so thats why I had all zeros before! But your saying that I need to enable it in the top right, and I dont think I did that! but ill look again when i get home!

The PS2 controller was a %^&*$% but I yeah, Im just gonna stick to the actual code considering thats what the bot has in its code…

About the SSC-32u, Yes, the baud rate is now set at 38,400! That happens as soon as I upload the lynxterm with bot connected via USB! I can click setup, click the register, and verify by typing “ver” and get the response right away, so thats good to go!

now, as far as #2…, ok so I may have not dont that exact thing in that exact order…, maybe that was the problem! but I did try to unplug the usb, while powered up to the SSC32-u, switch to External, and thats what made everything light up like that…, however, After hitting all of the buttons, I didnt get a response! I will try again when I get home though! …, maybe I just didnt hit the start button hard enough or do it in the exact order from what you have stated, but Ill try again and make another video!

So, If any of this help to narrow down things to a solution of some sort…, please lemme know! However, I will do the steps that you have provided and make another video!! When I took on this project, I had no idea it was gonna be like this! Its challenging, dont get me wrong, just needs to be a little less cryptic! lol

Thanks bub!

Whelp…, yeah, ok! So, the order does matter! lol! Ill make another video soon! but she is a moving! I have to recalbrate the legs so the spider will actually “stand up” instead of belly flopping, lol! I know what ill do to recalibrate the legs! Ill just sit the body on something and land the legs and feet like that! That should also take care of any balance issue, im hoping! If not…, then Ill send you a video of a drunk spider…, either way, good stuff! lol!! Thanks again, ill hit you back up later with an update!

Ok, so I need to make a video of this, but ill try to explain it the best that i can!

So, I have the USB hooked back up on the SSC32u and opened “lynxterm”. I power on the Spider using the 7.4v battery and the legs of the spider are all contorted, so I know that I will need to set and calibrate em! In the terminal, I click the “All 1500” to center all servos, and the spider goes into the crouching state (like a spider protecting itself, all of the legs inward against the body). So, at that time, I sit the spider body up on a platform and began to recalibrate the legs so that they would walk instead of belly floppin when I tried to make it walk! So, I click “read” on the “regs table” and all of the servos then read “0 (offset) and 1500 (for the slider part)”! The “write option” isnt clickable at this time, I guess I gotta make a change before I can “write”, makes sense!
So, I calibrate all of the legs so the spider would be “standing” and not “sitting”, all of the servos are recalibrated and all so i hit “write” and the pop up box verifies “write done”! BOOM, Im thinking that “Now, when ever I plug the battery in, I wont get that contorted look anymore, it sould be standing or something!”! I exit the terminal, unplug the the USB cable, attach the botboarduino via TX, RX, and Grd, apply the pos and neg into the proper terminals, switch the USB jumper to EXT, and then there were “LIGHTS”, awesome, good so far!! I grab the remote, hit “Start” after the buzzer sound, Im synced up!! Beautiful!!!
I take the spider, set it on the floor, and she is wobblin like a new born calf…, lol! So, I tried to make her walk, and she flops to the ground! Im puzzled at this point…, I play with a few more buttons, like stretching and retracting its arms while its laying of the floor…, and then I hit a button that made all of the legs pull toward the body back into protective mode (I guess)! and then it turns off, The battery must’ve came loose!
I tightened back up the terminals, and plugged the battery back in…, and the spider went right back into the contorted mode!.. At this time, I was thinking, “Ok, it must be a memory sorta thing to where it would need a power source to retain memory” and then it occurred to me that thats never happened to an of my arduinos, it shouldve burned onto the chip like downloading a code from an arduino!
I then take the botboarduino off correctly and start over with just the SSC32u once again! I place the contorted spider back up on the platform from before, hook up the USB (while powered on), opened up the terminal, verified the baud rate 38400, hit the “All 1500” and all servos centered up! I go back into the “Reg” table, and I hit “read”, it read out exactly what I wrote from before…! So, Im really confused at this point! Wasnt the spider suppose to go into the positive that i wrote it in and not the contorted position?
On the “reg” table, there is a “selection” tab, the number of the servo block, the “offset” block, and the “slider” setting block! So, I click the “servo selection” tab on the far left beside the servo “0” and that servo reacted…, I select the “servo selection 1” and that servo reacted…, I repeated through all of the rest of the servos and they all went back to what I wrote originally…, the spider is now in the standing position!

Ok, so hopefully you see my delima here, why did my spider contort after hooking back up the battery the second time after making it stand up and writing it to the ssc32? Why didnt my spider walk when I operated the remote, it just flopped to the ground?!! Why did I have to reset all of the servos when I hooked back into the Lynxmotion terminal? I have so many questions, lol! I really need to do video on this!!

Hi again!

I’m to know you’ve moved forward from “it does not work” into “now I just have to tune it”! :slight_smile:

It seems like your offsets are not being used at power-up. This would most likely mean that they are not activated in the settings. Go back to the REG window in Lynxterm and check that #4 and #5 are set, too (see this image for reference). Otherwise, the SSC-32U will not use the offset values on power-up.

For your future videos, I think it would be helpful if you also include a few screenshots (which can be attached to your post) for the parts where you show the screen. The text is too blurry and we cannot really read it… :slight_smile:

Sincerely,

OK, so I went back and checked to make sure that 4 and 5 were checked, and they were! As i remember,
they were previously selected from before! However, I went back and recalibrated the legs again, wrote the new calibration, and fumbling with the Offset part, and making sure the spider took the code, I hooked up everything from the botboarduino, hit start, and she was awesome! Except, with 3 or 4 busted servos, the poor thing just looked pitiful, lol!
So, I tried to make it walk and run through the cycles, and programs! and it still does some wierd stuff! and, as per my last issue, I unplugged the battery and hooked it back up, and the legs went back to contortioned mode until after I either hooked everything back up to the computer and hit “All 1500” OR just hit start on the controller, which then made the spider stand up!

Now, with that, and the video is on its way, i just wanted to ask this! Since we thought it was an offset issue, and I made sure that the Global and offset option (4 and 5) were selected, why did the spider go back into that contorted mode when I hooked up the battery?

To give a better idea of the contorted mode Im trying to describe, its like when you make the spider twist its body, except the spider is at Full twist, and the legs pulled inwards toward its body!

Im really sorry for all of these questions, I know I seem like a killer novice over here, lol!

And thanks, you have been an awesome help!

Sounds good! The calibration is obviously critical for proper walking algorithms (and positioning).

Yay! That sounds much better than a few posts ago!

What servomotors are you using? It seems like your servomotors do not like receiving no signal from the controller while powered***. Most RC servomotors we use tend to just stay idle (not holding) when they are powered but without a pulse. It is possible that some servomotors react differently to that situation, such as going towards one direction infinitely (and blocking/stalling there). Of course, that is not a great situation.

A possible fix would be to update the registers on your SSC-32U to also provide a starting position to the RC servomotors as soon as power is applied. This way, it will force them to go to that position. 1500 on everything should be quite a safe position to go to on power-up, so I recommend that (it also happens to be the default, so less stuff to change! :slight_smile: ). In Lynxterm, go back to the Reg window and press Read. All the default initial pulse width should be 1500 (in blue), which is good for our purposes. If you want something different, you can select channels one by one and change it there. Once done setting the pulse values for each channel, go under Enable Register (RO) and make sure to enable Global and Initial pulse width are enabled. Then, Write the result to the SSC-32U. (See the attached image below).

****quote=“Hex_brown”]Im really sorry for all of these questions, I know I seem like a killer novice over here, lol!No worries. Complex projects are, well, complex. And while a small robot with a few handfuls of servomotors sound simple, there are many layers of abstraction that all have to work correctly for the robot to move as expected. This is certainly no simple feat and there are many ways it can (and will) go wrong! :slight_smile:

No problem! :wink:

Looking forward to the next video!

*******: I do remember you mentioning before using a 7.2 V DC battery pack. Do your servomotors support that voltage properly? Most RC servomotors only officially support 4.8-6.0 V DC. This may explain the weird behavior and the busted servomotors.
Lynxterm - Setting initial pulse width.png

https://www.youtube.com/watch?v=�tween%Hey, sorry for the delay, I had some computer issues! But I made this new video! I did as u instructed but I have a new issue! As the video states, after assigning the servos the new commands from lynxterm, all servos are now default at 1500! Even when I hook up the battery, so that’s awesome! Now, when I hook up the botboarduino, made sure that all was set correctly, now the receiver isn’t working! I need some guidance on that, I hope I didn’t burn it up! I was running the spider with the remote right before I reset the servos via lynxterm (and of course I had the botboarduino disconnected and stuff! Please help! Thanx!
youtu.be/s3JEHl09qXo

Hey,

Hopefully your receiver is not damaged but its just some other issue.

The best test would be to (unfortunately) remove all connections (to SSC-32U, power, etc.) to the BotBoarduino and perform a thorough test of the device.
Then, set its power input to USB and connect it to your computer. Program it with the PS2X example (with debug enabled in the library; you can fine this file in Documents > Arduino > libraries > PS2X_lib).

Wire the PS2 receiver to it (make sure to have the right pins) and ensure the jumper for those pins is set to 5V.

You may also want to take a clear picture of that test setup making sure all components are visible.

Let us know how that goes.

Sincerely,

Ok, So I went home and tried my other controller receivers (I have two), however, They have 9 wires vs 6, like the lynxmotion wires, so I was confused on where those go! However, upon experimenting, I did connect the first 6 in sequence like the lynxmotion diagram, and that receiver responded! I didnt get the spider to move, which Im guessing I needed to have all 9 wires connected instead of just 6! So, now im more convinced that I burnt out the receiver somehow! I went onto lynxmotion and purchased another controller and receiver set! So, ill test that when it comes in!

Other than that, i know i have more tweaking to do as far as movement goes, but I have a question! When i connect the spider, it pops up, stands for a couple of seconds, and goes limp! Like in the resting position, how do I get the servos to hold their position? They arent that expensive, but they are decent as far as torque goes! Is it bc the metallic spider is just too heavy? bc id thats the case, ill just design the hexapod body and legs and 3d print it, it would be a crap ton lighter!

Hi,

It would be good to make sure the controller is compatible directly and not requiring a higher voltage. Most of them can be connected directly but a few models use a higher voltage and can possibly cause electrical issues or simply not work with the BotBoarduino (without an adapter).

The Lynxmotion version of the library can be used with other PS2 controllers, too. We simply have a few fixes in it for our controllers specifically, but it should not prevent other controllers from working.

Well, we checked your servos (MG-996R) a bit online and found this. It does not look like they tend to be of high quality. Therefore, I’d recommend either changing the servos or using a lighter frame. The fact that they cutoff while being powered/receiving a pulse (from the SSC-32U) means a servomotor issue.

It would be good to mention that your servomotors seem to indicate they support 4.8-7.2 V, but most sources only mention 4.8 V DC and 6.0 V DC specs. Therefore, your power source might also be causing issues / damaging them.

The RC servomotors used in the Lynxmotion Phoenix 3 DoF hexapod kit are the [RB-Hit-29]. I have some here for tests that have been in use since before 2012 and they are still in working order.
So, if you decide to change RC servomotor, I’d recommend those as they can do the job quite well. These would have to be powered with 4.8-6.0 V DC, not anything above that.

If the voltage of the power source is an issue for you, you could do one of two things:

  1. Change the power source to a 6 V DC one! A good fit for this is RB-Sta-08, which is a 6 V DC, 2800 mAh NiMH battery pack. The good things about this type of packs is that it can be safely discharged to empty. Since the BotBoarduino/SSC-32U does not include any under-voltage cut-off for the power source, it can easily drain a LiPo-based pack below its safe level and cause damage to it (therefore, monitor that!). You can use RB-Ten-02 for charging.

  2. Add a DC-DC regulator to provide a stable 6 V DC to your VS1 input of the SSC-32U. Something like the RB-Pol-467 might be a good fit. It is a 6 V DC, 15 A step-down voltage regulator. It requires a minimum input voltage of 7.2 V DC. Therefore, your fully powered 7. 4 V DC battery pack should be just perfect for this.

Sincerely,

Well, i have read that you could use other controllers and such! Ive seen videos of folks playing with their spiders using different controllers, but I havent found any diagrams on how to connect the 9 cable receiver to the Botboarduino, so i just took a chance yesterday and at least got the LED to display on the other receiver, which lead me to now believe that my lynxmotion receiver was busted, so im replacing it! I was get this right before branching off to other brands and stuff!

Lol, I should have know that robotics was gonna be an expensive hobby! :slight_smile:! So, what specs should I look for as far as torque, keeping their position, and pulse? Like I said, If I printed out the body and legs, that would dramatically reduce the weight, and should help, I would think, right?
I just trying to be frugal, i mean, 18 servos, at $28 a pop, might take about a little while to get! at least a month or so!

In the mean time, I should go ahead and get the 6v battery pack and charger, those servos do not last, lol! At least not what that amount of voltage! So, the voltage regulatory would correct my issue with my battery pack now? Thats awesome, Ill get one of those and hook it up first!

Hey,

It is possible you got the VCC/GND of the wiring well (hence the powering up of it) but not the ATT/CMD/DAT/CLK wires. There are quite a few “official” color patterns for these (read: it feels like literally every version is different), so experimenting might be the only solution. It is only 24 permutations, after all… :wink:

Well, on paper, the Rb-Hit-29 have a lower maximum torque @ 6 V DC than the ones you have right now. The main difference is most likely quality of the components inside the motor, including the controller itself, the motor driver used, the gears and output shaft, etc. Specs wise, something similar to the RB-Hit-29 should serve well for larger 18 DoF hexapods.

For the less expensive, questionable quality servomotors, any weight reduction will be critical, I think. Even further, weight is by far one of the greatest issue with mobile robots. Wheeled robots have it easier due to low friction of moving wheels, but walking robots need to reduce total weight and payload as much as possible. Also, please keep in mind the duty cycle for hobbyist grade servomotors is very low. Therefore, they might overheat more easily (especially at 7.4 V DC!) and they need rest after 15-30 minutes of continuous use (especially if at or near their maximum torque). Please note also that many servomotors can product their rated torque but cannot maintain it continuously. This is a problem for walking robots, where the joints need to hold the weight continuously whether they are moving or not (to stay balanced).

Well, at least they are on special right now! :slight_smile: Also, you may get a small rebate by buying larger quantities at once.

Well, by having a fixed 6 V DC, high-current output instead of the battery pack (which when fully charge is way above 7 V DC) will most likely help quite a bit.

Good luck!

Sincerely,

Ok, So i got the new controller and receiver in, but I dont want to use the 7.4v battery to run the spider! I know you sent your suggestion, and I will do that, but can i get away with a 6v 1300mah battery pack for now? At least for testing purposes? Im currently in the process of setting up a 3d model of my current aluminum spider so i can print out an ABS plastic, remotely the same size, spider! I think that changing the weight, like we said before, with dramatically reduce the stress on the current servos, and will use less energy on the battery!
Also, do u think the Hitec Hs-322hd servos are good? Im not sure what Im looking for when Im reading the specs for these servos! I look on the MG996r, the ones I have now, their specs vs others, and they are roughly the same!

Hey,

Here are answers to your questions:

That should be completely fine. You just may not be able to run it for too long. As for discharge rates, it should be able to do up-to 2.6 A total, which may not be enough for 18 srvos moving quickly / all at once.

Indeed!

It may work, but as mentioned earlier, the 3 DoF hexapods for Lynxmotion use the RB-Hit-29 (HS-645MG), which has more than double the rated torque of the RB-Hit-67 (HS-322HD)

Sincerely,

A post was split to a new topic: Hexapod without power on left side & calibration