"Error writing to GoPiGo (errno5)"

Hi everyone!
I have a problem with my GoPiGo and I will try to explain as best I can.

The day before yesterday I was working with my GoPiGo reading and processing to the camera and sending signals to the motors to move and everything was just fine. But the next day (yesterday), testing the same code I did it doesn’t work, and not only that, any example program work.

I tried to run the ‘basic_test_all.c’, and trying to move the motors or the sensor it throws this error:
“Error writing to GoPiGo (errno5)”.

I watched the function of ‘gopigo.c’ that throws that error and is: int write_block(char cmd,char v1,char v2,char v3).

I tried to fix the error doing several things like:

  • Changing the position of the motor wires (white-black-white-black to others positions).

  • I checked it out all the connections at the GoPiGo and saw that everything is in place.

  • Reinstall the last firmware version of the GoPiGo.

I also execute the test of the GoPiGo and gave this ‘logs.txt’:

Check space left

Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 6.0G 22G 22% /
devtmpfs 427M 0 427M 0% /dev
tmpfs 87M 460K 86M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 173M 0 173M 0% /run/shm
/dev/mmcblk0p1 56M 20M 37M 36% /boot

Check for dependencies

python 2.7.3-4+deb7u1 install ok installed
python-pip 1.1-3 install ok installed
git 1:1.7.10.4-1+wheezy3+rpi1 install ok installed
libi2c-dev 3.1.1+svn-1 install ok installed
python-serial 2.5-2.1 install ok installed
python-rpi.gpio 0.6.2~wheezy-1 install ok installed
i2c-tools 3.1.1+svn-1 install ok installed
python-smbus 3.1.1+svn-1 install ok installed
arduino 1:1.0.1+dfsg-7 install ok installed
minicom 2.6.1-1 install ok installed
scratch 1.4.20131203-2 install ok installed

wiringPi Found
wiringPi Found
I2C already removed from blacklist
SPI already removed from blacklist

Check for addition in /modules

I2C-dev already there
i2c-bcm2708 already there
spi-dev already there

Hardware revision

gpio version: 2.32
Copyright © 2012-2015 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Sony

  • Device tree is enabled.
  • This Raspberry Pi supports user-level GPIO access.
    -> See the man-page for more details
    -> ie. export WIRINGPI_GPIOMEM=1

Check the /dev folder

i2c-1
spidev0.0
spidev0.1
ttyAMA0

USB device status

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 005: ID 046d:c534 Logitech, Inc.

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 5: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 3: Dev 5, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 3: Dev 5, If 1, Class=HID, Driver=usbhid, 12M

Checking for Atmega chip

avrdude: Version 5.10, compiled on Jun 18 2012 at 12:38:29
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch

     System wide configuration file is "/etc/avrdude.conf"
     User configuration file is "/root/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : unknown
     Using Programmer              : gpio
     AVR Part                      : ATMEGA328P
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PC2
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65     5     4    0 no       1024    4      0  3600  3600 0xff 0xff
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
       lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : GPIO
     Description     : Use sysfs interface to bitbang GPIO lines

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x000102
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.

avrdude done. Thank you.

Checking I2C bus for devices

Checking I2C bus 0

Error: Could not open file /dev/i2c-0' or/dev/i2c/0’: No such file or directory

Checking I2C bus 1

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: – -- – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --

Checking for firmware version and CPU Speed and Voltage

v -1
CPU speed: -1
-1 V

CHECKING ENCODER READINGS
-1 -1
Both motors moving Forward with LED On
after 5 sec -1 -1
Both motors stopped with LED Off
-1 after stop cmd -1 -1
-1 after 2 more sec -1 -1
Both motors moving back with LED On
after 5 sec -1 -1
Both motors stopped with LED Off
-1 after stop cmd -1 -1
-1 after 2 more sec -1 -1

CHECKING ENCODER TARGETING

Initial encoder read vals: -1 -1
Traceback (most recent call last):
File “/home/pi/Desktop/GoPiGo/Software/Python/tests/enc_tgt_test.py”, line 69, in
enc_stat=read_enc_status()
File “build/bdist.linux-armv6l/egg/gopigo.py”, line 549, in read_enc_status
File “build/bdist.linux-armv6l/egg/gopigo.py”, line 541, in read_status
IOError: [Errno 5] Input/output error

I don’t know what the mistake might be. I’m thinking that it could be a bad connection betwern the RaspberryPi - Arduino but everything is well connected.
I appreciate your time and your answers.

Best regards, Nacho

Hi @nachotorresguaita95,

Thanks a lot for sharing with us the logs. It looks like the firmware isn’t responding. Can you tell us how you did a firmware update also try running the following command from the terminal to do a firmware update:

sudo bash /home/pi/Desktop/GoPiGo/Firmware/firmware_update.sh

You can also refer to the firmware update script available here.

Please let us know if this helps,
-Shoban