Let's Make Robots!

08M2 had attitude problem; discipline applied, now behaving nominally :D

So this is for the hexaspider project I'm working on. Here's a rough timeline:

  • breadboarded circuit -  bot works
  • make functioning circuit board - bot works
  • while working on gait programming - bot stops working
  • assuming my board is to blame, I etch another better one - bot still not working
  • put 08M2 on breadboard and route everything from circuit board to breadboard - bot works
  • plug 08M2 back into circuit board - bot stops working

I have a very simple "servo left, servo center, servo right, repeat" program loaded. In fact, it can be any program I have. All that happens is the servo will briefly pulse in one direction every second or so. The pauses between the servo pulses do not match the pauses in the programming, fwiw.

I just don't understand how it works when the uC is on the breadboard but not on the circuit board. And all this just happened after a program download. I've tried old programs, new chips, new boards, new batteries, and everything bulletpointed above. Anyone have advice for me? I'm stumped.

Pics of schematic and PCB if anyone is interested:

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I had that idea too along with others but all traces test out as far as continuity and short circuits go. 

It sounds like a programming problem, only because you said it started when you started programming different gaits. Makes me think some (possibly simple but elusive*) glitch in the program...  Could you post the programming?  The hardware worked up to that point, right?

 *(possibly simple like not giving the servos long enough to respond... )

if it's that, maybe try something like the sample program in: http://www.picaxe.com/docs/axe024.pdf

Ripping a little code from there, you could try:

main:

for b1 = 120 to 180

servo 1, b1

pause 30             ;  <<== Note the delay to let the servo catch up before sending the next cycle.

next b1

 goto main

#no_data

main:
pause 3000
servo c.0, 150
pause 1000
servo c.0, 170
pause 1000
servo c.0, 130
pause 1000
goto main

Plenty of pause time there in that short program.  After watching the video, which I didn't have time to watch before, I am not so sure it is software after all.  However, I am stumped as to what is causing the problem.

Still thinking.

There has to be something different between the direct hookup and the alternate hookup to the breadboard... like, I don't know, the power? is there power on the breadboard that is adding to the circuit, or are both running from the same batteries?

 

 

Everything is running off the same battery.