Phoenix question!

Hi Barryke,

Glad to meet some more dutchers getting in to robotics. Can’t wait to see your progress. Keep us posted.

Xan

Likewise! Nice you noticed.

Please don’t get your hopes up, my deadline is simply defined as “sometime before the TV-show Stargate:Universe gets cancelled I will have something moving.” In short: takes 5 years. :unamused:
Just wanted to give you guys a headsup on octopod activity. :wink:

Hi the experts.

After a long silence, my first Phoenix is born … but not alive yet.

In fact, nothing works at all: No beep at all when pressing the “start” button and the servos stay free. Nothing happens.

Here’s my configuration:

Hardware:

  • SSC-32 V2 / Bot Board II / BASIC Atom 28 Pro
  • PS2 Cable / PS2 Wireless Controller
  • Phoenix with 18*HS645MG
  • Laptop HP NC6000 with real RS232 and No Logitech material!!

Software:

  • 2.01XE Firmware
  • Basic Micro Atom Pro IDE v8.0.1.7
  • Xan’s code V1.3

Reference:

  • Phoenix Bot Board II / BASIC Atom Pro Tutorial - Updated 08/21/2008
  • PS2 Robot Control: Establishing Communication - 04/17/2008 by James Frye -> My PS2 wireless works fine!

I’ve exactly the same electric wiring and jumpers configuration that shown on Shematic - Figure 14-3 from BA Pro Tutorial.

I tried to compile and load this small programm too (crossroad lights in Switzerland) with Xan’s Phoenix code sounds:

Start:
low p12
sound p9, [100\5000,80\4500,60\4000]
pause 5000
low p13
pause 2000
high p12
high p13
low p14
sound p9, [60\4000,80\4500,100\5000]
pause 4000
high p14
low p13
pause 2000
high p13
goto start

That works fine!

I tried loading Xan’s code v1.1 (phoqua01) too -> the servos reach the start position and that’s it!

Best regards from Switzerland

Hi, it sounds like you are close.

I personally don’t have the phoenix but do have a CHR-3 with similar setup. Sounds like you already checked some of the normal things, but I will try to give you a few ideas to try out and hopefully solve the problem.
I will start with the more obvious things that you probably have already tried, but just in case.

Do your servos have power? Is the 6V battery properly charged with sufficent power for the 18 servos? Is the switch turned on? Do you have a volt meter or the like to verify the power is there.

You say that the setup is exactly what is in the diagram and you have verified the PS2 controller works. But to be sure, you might try turning the robot on, then turn on the controller, then press the Analog button on the controller and see if that does something.

Your test program in the post shows setting low/high P12-P14, for I assume the LED lights. That probably implies that you have the three jumpers in on the BB2 that allow the LEDs to light, which may be interfering with the PS2 controller. Try removing those three jumpers.

Make sure that you the three wires connected properly between the BB2 (pins 10, 11) and ground to the TX/RX/Ground pins on the SSC-32. Make sure they go to the right pins and is not crossed. Make sure you have the right baud rate selected on the SSC-32 by the right jumper to match the software.

If all of this is correct you might try writing a simple program that maybe loops through all of the pins and sets the all to 1500 and see if that works.

Good Luck

Kurt

Kurt said it all. It can’t be a big thing if you ask me. Just try things step by step so isolate the problem.

Good luck!

Xan

Thanks to kurte and xan for help.

Yes, the servos seem to be powered enough: in fact, I can send some instructions by the Lynxterm v.1.08 soft ant it works fine. I performed the offsets adjustments for all the servos last weekend and registers configuration. The voltage is still at 6.6 V without Load Resistance (RL).

I turned the bot on at first, and then the remote and tried all the buttons. The servos stay free. The leds only are on!

At first, of course, I tried turning the bot on without the ABC Leds jumpers! (just like the LXM instruction sheme. Then I put these three jumpers again to run my crossroad lights & sounds program. By this observation, the BA pro seems to work fine, isn’t it?

The three wires are properly connected between the BB2 (pins 10, 11) and ground to the TX/RX/Ground pins on the SSC-32.
By the way, I find the Lynxmotion instruction and shemes very very clear and clean. A great thank to concerned persons for that!! I have still the last baud rate jumper selected on the SSC-32 (36.4 on the board).

I’ll try an All 1500 programm. Thanks.

if you grabbed Xan’s code a while ago it may be that you got the version with Nap being used. Nap was broken in 8.0.1.7 and it would cause the PS2 controller not to connect. We have released the code with Pauses instead of Nap. Which version do you have?

Beyond that I’m going to need to see images to look for something less than obvious.

Hello Jim

I tried two of Xan’s codes as follows:

  1. v1.3 at first -> the servos stay free and nothing happens
  2. v1.1 (phoqua01) -> the servos reach the start position and nothing else any more.

Ok, I’ll post 1 or 2 pictures if still not working.

Thanks for your help.

Hi all,

The NAP bug will cause the program to start beeping if the PS2 isn’t correctly initialized. This indeed happens with a old version of the code in combination with 8.0.1.7. and can be (temporary) solved by pressing the reset button a couple of times.

V1.3 starts in the free position. You need to hit the start button to power up the servos. Did you tried that?

Does the program beep? try to reset the ATOM a couple of times.

How is your logic powered? Does it have a separate battery for the logic (VL) or do you use the same battery for the servos (VS)? The tutorial suggests a separate battery but i’m just want to know for sure :wink:

Xan

Hi Xan!

First at all, thanks a lot for sharing your code!

No beep at all with both of codes (v.1.1 and 1.3), never! In fact, nothing happens when pressing Start or Analog on PS2 remote. Atom Reset is tried too!

My bot is powered as follows:

  • LOGIC (VL) to a 9V batt.
  • SERVO (VS) to a 6 V - 1600 mAh batt.

It beeps when loading the little crossroad lights program, just for BA Pro 28 test. I hope really that nothing crashed in electronics … I don’t know why!

The servos offset adjustments worked well with Lynxterm and PC (115.2 baud rate).

Ok, So lets see if your communication is working properly between the BAP and Severvo controller. You might try running something like:

[code];====================================================================
;[CONSTANDS]
TRUE con 1
FALSE con 0

BUTTON_DOWN con 0
BUTTON_UP con 1
;--------------------------------------------------------------------
;[SERIAL CONNECTIONS]
SSC_LM_SETUP con 1 ;Changes the SSC pins corresponding to the setup
;1 = Setup with connector to the front
;0 = Setup with connector to the back

SSC_OUT con P11 ;Output pin for (SSC32 RX) on BotBoard (Yellow)
SSC_IN con P10 ;Input pin for (SSC32 TX) on BotBoard (Blue)
SSC_BAUTE con i38400 ;SSC32 Baute rate
;--------------------------------------------------------------------
;[PS2 Controller]
PS2DAT con P12 ;PS2 Controller DAT (Brown)
PS2CMD con P13 ;PS2 controller CMD (Orange)
PS2SEL con P14 ;PS2 Controller SEL (Blue)
PS2CLK con P15 ;PS2 Controller CLK (White)
PadMode con $79
;--------------------------------------------------------------------
;[PIN NUMBERS]
#IF SSC_LM_SETUP ;Connector to the front
RRCoxaPin con P0 ;Rear Right leg Hip Horizontal
RRFemurPin con P1 ;Rear Right leg Hip Vertical
RRTibiaPin con P2 ;Rear Right leg Knee

RMCoxaPin con P4 ;Middle Right leg Hip Horizontal
RMFemurPin con P5 ;Middle Right leg Hip Vertical
RMTibiaPin con P6 ;Middle Right leg Knee

RFCoxaPin con P8 ;Front Right leg Hip Horizontal
RFFemurPin con P9 ;Front Right leg Hip Vertical
RFTibiaPin con P10 ;Front Right leg Knee

LRCoxaPin con P16 ;Rear Left leg Hip Horizontal
LRFemurPin con P17 ;Rear Left leg Hip Vertical
LRTibiaPin con P18 ;Rear Left leg Knee

LMCoxaPin con P20 ;Middle Left leg Hip Horizontal
LMFemurPin con P21 ;Middle Left leg Hip Vertical
LMTibiaPin con P22 ;Middle Left leg Knee

LFCoxaPin con P24 ;Front Left leg Hip Horizontal
LFFemurPin con P25 ;Front Left leg Hip Vertical
LFTibiaPin con P26 ;Front Left leg Knee

#ELSE ;Connector to the back
RFCoxaPin con P2 ;Front Right leg Hip Horizontal
RFFemurPin con P1 ;Front Right leg Hip Vertical
RFTibiaPin con P0 ;Front Right leg Knee

RMCoxaPin con P6 ;Middle Right leg Hip Horizontal
RMFemurPin con P5 ;Middle Right leg Hip Vertical
RMTibiaPin con P4 ;Middle Right leg Knee

RRCoxaPin con P10 ;Rear Right leg Hip Horizontal
RRFemurPin con P9 ;Rear Right leg Hip Vertical
RRTibiaPin con P8 ;Rear Right leg Knee

LFCoxaPin con P18 ;Front Left leg Hip Horizontal
LFFemurPin con P17 ;Front Left leg Hip Vertical
LFTibiaPin con P16 ;Front Left leg Knee

LMCoxaPin con P22 ;Middle Left leg Hip Horizontal
LMFemurPin con P21 ;Middle Left leg Hip Vertical
LMTibiaPin con P20 ;Middle Left leg Knee

LRCoxaPin con P26 ;Rear Left leg Hip Horizontal
LRFemurPin con P25 ;Rear Left leg Hip Vertical
LRTibiaPin con P24 ;Rear Left leg Knee
#ENDIF
sound 9,[50\3960]
main:
;Front Right leg
serout SSC_OUT,SSC_BAUTE,"#",dec RFCoxaPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec RFFemurPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec RFTibiaPin,“P1500”]

;Middle Right leg
serout SSC_OUT,SSC_BAUTE,"#",dec RMCoxaPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec RMFemurPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec RMTibiaPin,“P1500”]

;Rear Right leg
serout SSC_OUT,SSC_BAUTE,"#",dec RRCoxaPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec RRFemurPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec RRTibiaPin,“P1500”]

;Front Left leg
serout SSC_OUT,SSC_BAUTE,"#",dec LFCoxaPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec LFFemurPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec LFTibiaPin ,“P1500”]

;Middle Left leg
serout SSC_OUT,SSC_BAUTE,"#",dec LMCoxaPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec LMFemurPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec LMTibiaPin,“P1500”]

;Rear Left leg
serout SSC_OUT,SSC_BAUTE,"#",dec LRCoxaPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec LRFemurPin,“P1500”]
serout SSC_OUT,SSC_BAUTE,"#",dec LRTibiaPin,“P1500”]

;Send
serout SSC_OUT,SSC_BAUTE,[13]

Loop:
goto loop[/code]
If I did not make any mistakes on this it should sound one sound and then move all of the servos to 1500 and that is it. If the servos don’t respond there is something wrong with your communication which could be bad wire or wrong baud rate selected by jumper…

Kurt

Thank you Kurte!!

Your programm works on my Phoenix like so:

(Servo power has to be previously set to ON)

  1. Little beep when Logic power is set to ON
  2. All servos at 1500
  3. All servos free again (legs falling down like dead…)
  4. SSC-32 led is blinking at the end.

The PS2 remote seems to give no effect at all on this program.
I’m trying loading the batt’s again, just for test.

Thanks.

This does not sound good. In your post Steps 1 and 2 are correct. It should stay that way. It sounds to me like the SSC-32 is resetting. like maybe servo power is being fed to the logic side of the SSC-32 instead of the VL 9V battery. Make sure VS=VL jumper is removed on the SSC-32.

Kurt

Hi Kurte

Okay, after a good load cycle for the Servo batt: (I changed the 9V batt too!!)
The All 1500 programm works so step by step:

  1. LOGIC power set to ON -> Little beep
  2. SERVO power set to ON -> All servos at 1500, and stay so. No blinking led any more on the SSC-32 board

After that, I tried programming the BA 28 Pro with Xan’s codes:

v1.3 at first

  1. LOGIC power set to ON -> PS2 receiver Right led ON, left led blinking
  2. SERVO power set to ON -> nothing, servos free
  3. PS2 main switch ON -> PS2 receiver all leds ON
  4. Start button -> nothing, servos free

v1.1 (phoqua01)

  1. LOGIC power set to ON -> PS2 receiver Right led ON, left led blinking
  2. SERVO power set to ON -> no beeb, but servos moved at start position
  3. PS2 main switch ON -> PS2 receiver all leds ON
  4. Start button -> nothing, servos still at start position but not free

I think that the PS2 wireless system is Knapp, but I tested it by the PS2 Robot Control: Establishing Communication - 04/17/2008 by James Frye -> My PS2 wireless seems to work fine! Thanks again.

nsa03.casimages.com/img/2008/12/10/mini_08121010145565431.jpg
nsa03.casimages.com/img/2008/12/10/mini_081210101546379313.jpg

Ok, now go back and load 1.3 version back on. Turn on the power and the like. Now turn the PS2 controller off and then back on. Now press the Analog button on the controller and then try pressing the start button and see if that works. Also try changing the AAA batteries in the PS2 controller to make sure they have a charge… They eat batteries.

Kurt

I’ve been listening. I don’t know what could be going on with the PS2 controller. It is connecting. It is working with other Atom code, so it should be ok. Have you tried connecting a different one, even a tethered one just for kicks?

Hi

Ok, it works now with phoqua01.bas (v1.1) of the code. Wââw, great work Xan, thanks!
However, I’ve to reset BA Pro 28 2-4 times before that begins to work properly.
But v1.3 gives nothing. No beep. I think I’ll stay with the v1.1 versions (3 different gaits) for the moment.

Many Thanks at all for your help.

FWIW I have the same problem. After receiving the replacement PS2 controller, the phoqua01.bas from the BB2/AtomPro tutorial (lynxmotion.com/images/html/build139.htm) works fine.
However, with the v1.3 code, I experience identical results at McSpider except the servos do not init to any position, because I disabled “initial pulse width” on the SSC32.
Was hoping to step through the code but I haven’t been able to find much documentation debug functions for the IDE.

  • Felix

Hi,

You need to reset it a couple of times because of the “bugâ€

Hot diggity! I upgraded the IDE from 8.0.1.7 to 8.0.1.8 and reprogrammed Phoenix with v1.3 of your code and it worked immediately. Thanks for that hint and for all your fine work! :smiley:

  • Felix