BH-3R front left veritcal hip direction inverted using VX.41

I received the BH-3R kit recently and have finished assembling it, but I am experiencing some odd behavior in the hexapod’s movement.

I noticed that some of the servos were moving in reverse instead of the normal CW motion. I first checked my wiring and jumper positions to make sure everything was assembled correctly (it is) and then I used Powerpod and LynxTerm to check if the servos were responding in all the same manner by adjusting the offsets. I noticed that the rear left leg was moving incorrectly so I opted to update the firmware on the SSC32 from 2-01XE.abl to 2-02GP.abl. After doing so the servos moved correctly using the Powerpod and LynxTerm software.

I then connected everything back up and I still noticed some odd behavior with the hexapod’s movement. I placed the bot into attack mode using a Pelican PS2 wireless controller and noticed that while the front right arm was moving correctly, the front left arm moved in the opposite direction.

I narrowed this behavior down to the front left vertical hip (FLHV) and the behavior is consistent across programs generated for BasicMicro IDE 2.2 and 5.3.

The section of code which corresponds to the attack posture is this:

			;Attack posture
			serout SSC32,i38400,"#",MRHH,MRHH2,"P1800#",MRHV,MRHV2,"P1700#",MRK,MRK2,"P1700#", |
				MLHH,MLHH2,"P1200#",MLHV,MLHV2,"P1300#",MLK,MLK2,"P1300T288",13]
			nap 4
			serout SSC32,i38400,"#",MRHV,MRHV2,"P1500#",MRK,MRK2,"P1500#",MLHV,MLHV2,"P1500#", |
				MLK,MLK2,"P1500T288",13]
			nap 4
			serout SSC32,i38400,"#",RRHV,RRHV2,"P1800#",RRK,RRK2,"P1800#",MRHV,MRHV2,"P1400#", |
				MRK,MRK2,"P1400#",FRHH,FRHH2,"P1800#",FRHV,FRHV2,"P2100#",RLHV,RLHV2,"P1200#", |
				RLK,RLK2,"P1200#",MLHV,MLHV2,"P1600#",MLK,MLK2,"P1600#",FLHH,FLHH2,"P1200#", |
				FLHV,FLHV2,"P900T288",13]

I noticed that FLHV,FLHV2 are not equal to FRHV,FRHV2 where they should be. Additionally there is some syntax tagged onto the end of the command that I am not familiar with.

Is there a bug with the VX.41.pmp program I am not aware of. Does anyone have a version of VX.41.pmp that behaves correctly? The older versions are not available for download through the lynxmotion website.

Thanks!

You never mentioned if it can walk or not.

There is nothing different concerning the direction servos move in the SSC-32 firmware.

I don’t believe for a minute that there is a problem with PowerPod. It’s been out there too long with not a single trouble report. Did you make left and right legs?

Hello Aznoohwee,

the only reason i can imagine is that you have not assembled 3 left legs + 3 right legs, please check if the 3 right ones are mounted “mirrored” as the left ones, the program is not made for 6 identical legs.

if you’re in doubt please take a shot of your robot from the top we will check, basically all of the vertical servos (knee and hip) should face the front.

i hope it helps, let us know.

I did not realize that the left and right legs were assembled differently. In my rush to put everything together I assembled them all the same.

Thanks!

I actually had started modifying the program to support my configuration before I saw your posts. :stuck_out_tongue:

Just saw the note in the assembly guide, it wasn’t entirely clear until I saw the picture…

cheak again, trust me.

if you feel you have covered this over and over then you can change this in the Legupdatepos command line. this should be what you have right?

[code];--------------------------------------------------------------------
;-------------Sub Update Position
LegUpdatePosition
serout p15,i115200,"#",RRHH,RRHH2,“P”,DEC HipH_Pulse(0),"#",RRHV,RRHV2,“P”,DEC HipV_Pulse(0),"#",RRK,RRK2,“P”,DEC Knee_Pulse(0), |
“#”,FRHH,FRHH2,“P”,DEC HipH_Pulse(2),"#",FRHV,FRHV2,“P”,DEC HipV_Pulse(2),"#",FRK,FRK2,“P”,DEC Knee_Pulse(2), |
“#”,MLHH,MLHH2,“P”,DEC HipH_Pulse(4),"#",MLHV,MLHV2,“P”,DEC 3000 - HipV_Pulse(4),"#",MLK,MLK2,“P”,DEC 3000 - Knee_Pulse(4), |
“#”,MRHH,MRHH2,“P”,DEC HipH_Pulse(1),"#",MRHV,MRHV2,“P”,DEC HipV_Pulse(1),"#",MRK,MRK2,“P”,DEC Knee_Pulse(1), |
“#”,RLHH,RLHH2,“P”,DEC HipH_Pulse(5),"#",RLHV,RLHV2,“P”,DEC 3000 - HipV_Pulse(5),"#",RLK,RLK2,“P”,DEC 3000 - Knee_Pulse(5), |
“#”,FLHH,FLHH2,“P”,DEC HipH_Pulse(3),"#",FLHV,FLHV2,“P”,DEC 3000 - HipV_Pulse(3),"#",FLK,FLK2,“P”,DEC 3000 - Knee_Pulse(3), |
“T170”,13]

return[/code]

what you need to do is find the leg you wish to reverse e.g: RLK and take out the (3000)

original:

RLK,RLK2,"P",DEC 3000 - Knee_Pulse(5 

new:

RLK,RLK2,"P",DEC - Knee_Pulse(5

this worked for me!

some people have questioned this and as i am not a programmer i dont really understand why or haw this worked but it did! :confused:

got there befor me… dam.

Wish I would have saw that earlier, but it’s okay. I like things to be assembled correctly in any case.

I am almost finished reassembling the robot (with a few more stripped screws than I would have liked) and should soon be able to test if everything works correctly.

well good luck and well done.

Everything is a learning process. you may even do this again in the future so remember once you hace checked everything over again and again, check it all in reverse! sometimes helps. may sound strange but its true.

now the next thing for you to remember is check all your wiring before you apply power. I had hooked up my boards etc and thought everything was ok and then “POP” i blow the board! and i also done it again cos i stupidly applied power while board was on a metel case!!! Oops!

im still learning and every step is exciting…and expensive!

all the best.