PicoBorgRev: wrong motor behavior on one side

Hi everybody,

I am having a problem with the PicoBorgRev (as used in the DiddyBorg).

The motors on one side work perfectly: I can go forward or backwards, at any power between 0 and 1.
On the other side, going forward goes fine, but going backwords doesn't. If I send the command to go backwords slowly (e.g. with pbr.SetMotors1(-0.2)), it goes very fast _forward_. If I send the command to go backwards quickly (e.g. with pbr.SetMotors1(-1)), it goes slowly _foward_.

So basically, it's going forward instead of backwards, and the power level seems upside down.

Any idea what could go wrong?

Thanks, Simon

I forgot to mention, I traced the I2C communication at the Linux kernel level (I could also check on the wire to make sure the actual data sent is right), and this is what I get:

p.SetMotor1(-1) # buf = [ [0] = 0x7, [1] = 0xFF ] }
p.SetMotor1(-0.9) # buf = [ [0] = 0x7, [1] = 0xE5 ] }
p.SetMotor1(-0.2) # buf = [ [0] = 0x7, [1] = 0x33 ] }
p.SetMotor1(0.2) # buf = [ [0] = 0x6, [1] = 0x33 ] }
p.SetMotor1(0) # buf = [ [0] = 0x6, [1] = 0x0 ] }

This all looks like good values. The result I get is:

p.SetMotor1(-1) # motors stopped (wrong)
p.SetMotor1(-0.9) # motors going forward very slowly (wrong)
p.SetMotor1(-0.2) # motors going forward very fast (wrong)
p.SetMotor1(0.2) # motors going forward slowly (right)
p.SetMotor1(0) # motors stopped (right)

piborg's picture

That sounds like one of the driver chips on the PicoBorg Reverse is faulty.
The best thing to do would be to return the board to us for repair or replacement.

The address to return the board to is:

Freeburn Robotics Limited
Unit 15, Earith Business Park
Meadow Drove
Earith
Huntingdon
Cambridgeshire
PE28 3QF
United Kingdom

If you could include a note with:

  1. You order number if you know it
  2. A quick description of the fault
  3. The address to send the repaired / replaced board to

Thanks for the reply. Actually, I did some more investigation. I'd like to try to repair it myself if possible (obviously taking responsibility if I make it worse :)). If I screw up I'll buy a new board.

It seems like the direction/reverse pin on the Microchip microcontroller is fried, it always output 0. That explains the behavior I described. It probably fried when I accidentally shorted it with the 12V pin that is right next to it no the H-bridge chip (pins 5 and 6), when trying to check something with my multimeter (oops).

I have ordered a replacement chip on Digi-key, and will get some help from the tech at my university to replace it (apparently they do that often). I have access to a Pickit 3 to reprogram it. I suppose just need to download the source from [1], build it with MPLAB X and flash it on the chip?

Thanks for your help!

[1] https://www.piborg.org/downloads/picoborgrev/PicoBorgRev.X.zip

piborg's picture

Yes, that is the code you will need to program the PIC with.

The pre-built code is also in the zip: dist\XC8_PIC16F1824\production\PicoBorgRev.X.production.hex
This should work with the standalone PICkit 3 programming software if you have it installed.

To build the software you will need MPLAB X and the XC8 compiler.
We used the v1.30 version of the compiler

Hi,

I am experiencing the exact same problem as described by Simon above (one motor works as expected, the other behaves like direction and power level are flipped). The only difference is that Motor2 is the one that behaves erratically in my case.

Should I send my PicoBorg Reverse to the address above as in the reply to Simon's original query (I don't have the equipment to do any hardware level fixes myself).

Thanks,

Nikolai

piborg's picture

It is probably the same problem, that the PIC has a faulty / dmaaged pin for setting the direction for the motor 2 drive chip.

The best thing would be to send the board back to us so we can try and repair the board.

If you could include a note with:

  1. You order number if you know it
  2. A quick description of the fault
  3. The address to send the repaired / replaced board to

Thanks, sent the board on it's way, let me know what you find.

Nikolai

Hi,

Just checking, did you receive the board I sent in and where you able to diagnose the problem?

piborg's picture

Hi Nikolai,

We have received the board back, but we have not had a chance to test it yet.
We should have a diagnosis for you in the next few days.

piborg's picture

I have done some testing, the board is faulty as described.
The problem appears to be a faulty pin on the PIC, preventing one of the control signals working correctly.

We have decided the best thing to do is replace the board for you.
I have tested the replacement, it is all working correctly.
I will get it sent back to you later today.

Thanks, looking forward to receiving it.

Nikolai

Subscribe to Comments for "PicoBorgRev: wrong motor behavior on one side"