PicoBorg Reverse was not found

Hello,

I got my DiddyBorg a few month ago, and it was running great.

Suddenly i started to get:

pi@raspberrypi ~/server $ ./webserver3.py
Loading PicoBorg Reverse on bus 1, address 44
Missing PicoBorg Reverse at 44
PicoBorg Reverse was not found
Trying bus 0 instead
Loading PicoBorg Reverse on bus 0, address 44
Traceback (most recent call last):
File "./webserver3.py", line 16, in
PBR.Init()
File "/home/pi/server/PicoBorgRev.py", line 264, in Init
self.Init(False)
File "/home/pi/server/PicoBorgRev.py", line 234, in Init
self.bus = smbus.SMBus(self.busNumber)
IOError: [Errno 2] No such file or directory
pi@raspberrypi ~/server $

The Reverse board led is blinking once at powerup.

--------------------------------------------------------------------------

pi@raspberrypi ~/server $ lsmod
Module Size Used by
i2c_dev 6709 0
snd_bcm2835 21149 0
snd_pcm 90778 1 snd_bcm2835
snd_seq 61097 0
snd_seq_device 7209 1 snd_seq
snd_timer 23007 2 snd_pcm,snd_seq
snd 66325 5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
8192cu 569561 0
i2c_bcm2708 6200 0
uio_pdrv_genirq 3666 0
uio 9897 1 uio_pdrv_genirq
pi@raspberrypi ~/server $

--------------------------------------------------------------------------

pi@raspberrypi ~/server $ ls /dev/
MAKEDEV full loop6 ptmx ram5 stdout tty19 tty30 tty42 tty54 tty9 vcs4 zero
autofs fuse loop7 pts ram6 tty tty2 tty31 tty43 tty55 ttyAMA0 vcs5
block i2c-1 mapper ram0 ram7 tty0 tty20 tty32 tty44 tty56 ttyprintk vcs6
btrfs-control input mem ram1 ram8 tty1 tty21 tty33 tty45 tty57 uinput vcsa
bus kmsg memory_bandwidth ram10 ram9 tty10 tty22 tty34 tty46 tty58 urandom vcsa1
cachefiles log mmcblk0 ram11 random tty11 tty23 tty35 tty47 tty59 vc-cma vcsa2
char loop-control mmcblk0p1 ram12 raw tty12 tty24 tty36 tty48 tty6 vc-mem vcsa3
console loop0 mmcblk0p2 ram13 root tty13 tty25 tty37 tty49 tty60 vchiq vcsa4
cpu_dma_latency loop1 net ram14 shm tty14 tty26 tty38 tty5 tty61 vcio vcsa5
cuse loop2 network_latency ram15 snd tty15 tty27 tty39 tty50 tty62 vcs vcsa6
disk loop3 network_throughput ram2 sndstat tty16 tty28 tty4 tty51 tty63 vcs1 vcsm
fb0 loop4 null ram3 stderr tty17 tty29 tty40 tty52 tty7 vcs2 vhci
fd loop5 ppp ram4 stdin tty18 tty3 tty41 tty53 tty8 vcs3 xconsole
pi@raspberrypi ~/server $

-----------------------------------------------------------------------------

I'v crossed i2c cables and swap the PicoBorgRev.py busNumber , but no change.

I don't know if it's related, but lately a rapid changes in setMotor value (like from -0.7 to 0.7)
Started to cause to system reboot.

I'm suspecting that it might be a HW problem.
How can i check the related HW modules, and at what point should i start to think about replacement?

Best Regards,
Dotan

piborg's picture

Changing direction rapidly causes a large drain on the battery for a brief period of time, it is likely this reduced the voltage of the battery enough that it could no longer supply the Raspberry Pi correctly in that time.

Since you are suggesting this is a recent issue it may point to the batteries being nearly flat, we have seen this cause the "not found" problem occasionally for others.
Try recharging / replacing the batteries to see if that makes a difference.

It is also possible that the cables are not making a good connection between the Raspberry Pi and the PicoBorg Reverse.
If you have a multimeter you can check if each wire reads about 0 Ohms resistance.

Hi,
Thanks for the fast reply :)
For development i use DC adaptor with 12v and 280mA, and just to make sure, i use a 12v battery and again, the pi is OK but the reverse is not recognised :(
I also checked the cables and they are ok.
Is there any thing else i can do?
Best regards,
Dotan

piborg's picture

We have on rare occasion seen problems with the Raspberry Pis I2C pins.

If you have a couple of LEDs or a multimeter you could check the pins using this script:

import time
import wiringpi2 as wiringpi
wiringpi.wiringPiSetup()

PIN_SDA = 8
PIN_SCL = 9

wiringpi.pinMode(PIN_SDA, wiringpi.GPIO.OUTPUT)
wiringpi.pinMode(PIN_SCL, wiringpi.GPIO.OUTPUT)

print 'Press CTRL+C to exit'
while True:
    wiringpi.digitalWrite(PIN_SDA, 1)
    wiringpi.digitalWrite(PIN_SCL, 1)
    print 'Pins ON (3.3v)'
    time.sleep(1)
    wiringpi.digitalWrite(PIN_SDA, 0)
    wiringpi.digitalWrite(PIN_SCL, 0)
    print 'Pins OFF (0v)'
    time.sleep(1)

and check the pins both change once a second.

Also could you check if you have any other scripts or programs running which are trying to use the GPIO?
If you do it may prevent the pins from being in I2C mode.
The above script for example makes both pins standard outputs, instead of I2C.

Hello,

Thanks again for the support.
There are no other programs that might use the i2c.
Following your instructions, i started the pi with usb DC, and run the wiringpi script
The SDA pin is toggling between 3.3v and 0
But the SCL pin have random values around 1v
Other Reverse / pi pins seems to be OK (3.3 , 5 and ground)
Are there any further instructions?

Thanks,
Dotan

piborg's picture

Glad to be helpful :)
Unfortunately it sounds like the SCL pin is no longer working.

We have seen this problem from another user.
We also had a Raspberry Pi damage it's SCL pin, we are not sure what caused it.
When we hooked the pin to an oscilloscope it appeared to be "floating" above 0v.
Out of curiosity what model of Raspberry Pi do you have?

Since the Raspberry Pi only provides a single I2C port on the GPIO pins the PicoBorg Reverse needs those two pins to both be functioning correctly to communicate.

It is unlikely the problem is fixable, I think you will probably need to get a replacement Raspberry Pi.
Sorry to be the bearer of bad news... :(

No worries :)
My current pi is the B+ cpu 700Mhz ram 500M, and i was planning to get the new model anyway.
I will update the status.
Cheers,
Dotan

Hello,
The new pi arrived and the GPIO test passes,
But still the Reverse module is not recognized by the SMBus SW.
I did experienced a random pi reset's when increasing the speed higher then +-0.7 prior to the permanent communication loss.
How can i do further checking to the reverse module?
Should i buy a new one?
Is there some kind of warranty/testing in your labs?
It is a bit sad because everything in here is ready and used to work very good...
Regards
Dotan

piborg's picture

Did you try restarting the Raspberry Pi after running the GPIO test code?

The pin test code grabs the I2C pins and sets them as simple outputs, it does not put them back to I2C mode afterwards.
A restart should put the pins back into I2C mode.

Yes,
Several times...

piborg's picture

Sounds like it may be a damaged board...

Does the LED on the PicoBorg turn on briefly when power is attached to the Raspberry Pi?

Yes,
It does blink, so that's the confusing part...
But PicoBorgRev and i2cdetect does not locate it.

piborg's picture

Do you have a multi-meter that you can use to double check the cables are still okay?

Although it is unlikely at this point, all of the connecting and disconnecting may have damaged one of them.

You are right,
The cables are pretty cranky from intensive checks,
But i am checking them constantly.
Besides, i did check all the voltages in the 6 GPIO'S (5v,3.3v,0,...).

piborg's picture

I presume you have a Raspberry Pi v2 now.

If you have not already I would suggest downloading and installing the latest copy of Raspbian from https://www.raspberrypi.org/downloads/
They have made a few updates and fixes for the new model in recent months.

If you have already try re-enabling the I2C by doing both of the following:
First enable using raspi-config:

  1. Enter the following command in a terminal: sudo raspi-config
  2. Move down to option 8 Advanced Options and press ENTER
  3. Move down to option A7 I2C and press ENTER
  4. Make sure Yes is highlighted and press ENTER
  5. When the dialog says I2C is enabled press ENTER
  6. Make sure Yes is highlighted again and press ENTER
  7. When the dialog says I2C will be loaded by default press ENTER
  8. Move right until Finish is highlighted, then press ENTER

Second re-run the PicoBorg reverse installation script:

cd ~/picoborgrev
./install.sh

Finally restart the Raspberry Pi and see if it can now see the board.

Thanks.
Did that, no results :(
The i2c ko is loaded
pi@raspberrypi ~/server $ lsmod
Module Size Used by
i2c_dev 6027 0
i2c_bcm2708 4990 0
...

piborg's picture

It sounds like the board is broken then.

We will send you out a replacement PiccoBorg Reverse, if you could send us back the broken one as well so we can try and figure out what went wrong with it.

I will send you an email to get your address.

Sounds great :)
Thanks!

Hi

Sorry - but unfortunately my set-up is not getting back to life.
I was getting the
self.bus = smbus.SMBus(self.busNumber)
IOError: [Errno 2] No such file or directory
No matter what i did.

I have now 2 pi's - both did not recognize the new reverse.
I'v installed the latest Raspian and update/upgrade (plus i'v install several SD backups from the good old working set-up days),
Followed your instructions about a 1000 times
Switched several wires with all possibe combinations,
But same application result plus the i2cdetect get's nothing.

Until at some point i started to get

pi@raspberrypi ~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: 70 71 72 73 74 75 76 77

in both pi's,
which i guess tells bad things about the i2c interface.
Appreciate any advice.

Best regards,
Dotan

piborg's picture

That looks like a wiring problem, do you still get every address listed with nothing connected to the Raspberry Pi GPIO?

It may help if you could also attach some photos of how the boards are connected.

Hello,

I came across this topic and mine seems to be the same so decided to post here. After reading this thread, have tried all the suggestions (except purchasing new Raspberry), but without luck :(

Here it is shortly:
I recently purchased Picoborg reverse and BattBorg for my Raspberry B2. I've enabled I2C and installed the as explained here ( https://www.piborg.org/picoborgrev/install ) and I can see the board is been identified correctly:

Scanning I²C bus #1
Found PicoBorg Reverse at 14
1 PicoBorg Reverse board found
[20]

But when I try any of the examples, I get:

Loading PicoBorg Reverse on bus 1, address 44
Missing PicoBorg Reverse at 44
PicoBorg Reverse was not found
Trying bus 0 instead
Loading PicoBorg Reverse on bus 0, address 44
Traceback (most recent call last):
File "./pbrGui.py", line 11, in
PBR.Init() # Set the board up (checks the board is connected)
File "/home/pi/picoborgrev/PicoBorgRev.py", line 264, in Init
self.Init(False)
File "/home/pi/picoborgrev/PicoBorgRev.py", line 234, in Init
self.bus = smbus.SMBus(self.busNumber)
IOError: [Errno 2] No such file or directory

Can you advise please?

Br,
Sergi

piborg's picture

It appears the I2C address has been changed from the default address, 0x44, to a new address, 0x14.

It is fairly easy to correct, we simply need to set the address back to 0x44.

To do this start by running python from the PicoBorg Reverse directory:

cd ~/picoborgrev
python

Now run the following commands to change the address:

import PicoBorgRev
PicoBorgRev.SetNewAddress(0x44)
print PicoBorgRev.ScanForPicoBorgReverse()

The last command should now print this as the final line:
[68]
if so the scripts should now work as intended.

Thanks for the responce,

I have added "PBR.i2cAddress = 10" before the PBR.Init() and it worked! Tried in GUI example with sliders which was failing before and now its ok.
I will check your suggestion as well and feedback.

Thanks a lot,
Sergi

Hi,
Changed the address as you suggested and it worked! Thanks again for the hint!

Subscribe to Comments for "PicoBorg Reverse was not found"