ZeroBorg - Tiny robot controller for your RPi Zero based robots

Installation issues

  • Permission denied, file not found, 404 or similar:
    There are a few possible causes of this:
    • Out of disk space:
      We have occasionally seen this with people who have smaller SD cards, check by using
      df
      If the Use% column reads 99 or 100% on rootfs you probably need to remove some files to free up space
    • Unable to find file / 404:
      Most likely the internet connection is down or there are problems with the command, check you are connected to the internet okay with
      ping -c4 google.co.uk
      If you get errors it is probably the connection, if not check the name is correct.
      If there is still a problem it might be an issue with the Linux repositories, try
      sudo apt-get update
      to update where on the internet the Raspberry Pi looks for packages.
    • Unable to write to the given location:
      This should not be the case (instructions use the users own folder), but try running using 'sudo'
  • E: Unable to locate package ...
    Check your internet connection is okay as above, otherwise try
    sudo apt-get update
    to update where on the internet the Raspberry Pi looks for packages.
  • PiBorg logo is missing from the desktop (text is there):
    sometimes the desktop refresh is a bit temperamental, try restarting the Raspberry Pi.

Use issues

  • My motor spins when I am not running any code
    The most likely cause for this is a wiring problem, double check all the connections as shown on the Getting Started tab.
  • My motor runs backwards
    Swap the M+ and M- connections for the given motor at the ZeroBorg terminals.
  • My motor does not work
    Check you are not seeing any errors displayed when calling Init() and the jumper is connected across the two pin EPO / safety switch connector.
    Now run the following:
    import ZeroBorg
    ZB = ZeroBorg.ZeroBorg()
    ZB.Init()
    ZB.ResetEpo()
    print ZB.GetEpo()
    If this prints True then the board thinks the jumper is not attached / the safety switch has tripped and is refusing to allow the motors to move, this can be resolved by either fitting the jumper or adding the following line before the ResetEpo() call:
    ZB.SetEpoIgnore(True)
    If it still does not work the most likely cause for this is a wiring problem such as:
    • The supply is not powerful enough for the motors
      The board has a bare minimum requirement of 2.7V to operate correctly
      A recommended minimum supply of 7.2V should be sufficient for most motors and the on board 5V regulator if fitted
    • The + and - connections for either motor are connected to each other
    • Either + or - is connected to ground (GND, also known as 0V or earth)
    • Either + or - is connected to the power supply (V+, directly to the battery or power pack)
    • One of the motors may be damaged
    For more details on correct wiring check the Getting Started tab and double check the wiring instructions
  • Permission denied
    It is likely that the user you are currently logged in with does not have permission to use the I²C driver, try running the same command with sudo, e.g.
    sudo python
    If that resolves the issue then you can add the user to the i2c group with:
    sudo adduser username i2c
  • _tkinter.TclError: no display name and no $DISPLAY environment variable
    You are running a graphical program on a text only terminal (such as SSH), you need to run from a graphical environment.
  • I get the error IOError: [Errno 2] No such file or directory
    There are two possible problems, either the I²C is not correctly setup, or the bus number is wrong.
    First try these instructions: manually setting up the I²C on a Raspberry Pi.
    If that does not help you probably need to change the bus number in ZeroBorg.py. You will find this file in ~/zeroborg. The line you want to change is line 194 in ZeroBorg.py so that it reads:
    	    busNumber               = 0
    If the line already uses 0 then try 1 instead.
  • I get the error ZeroBorg was not found
    You should see the boards I²C address if you run the following from Python:
    import ZeroBorg
    ZeroBorg.ScanForZeroBorg()
    If no boards are found check that the ZeroBorg is attached correctly as shown on the Getting Started tab.
    If a board is shown then set the I²C address to the shown value before calling Init(), e.g.
    import ZeroBorg
    ZB = ZeroBorg.ZeroBorg()
    ZB.i2cAddress = 0x40
    ZB.Init()
  • Python says it cannot find the ZeroBorg module
    make sure you have the ZeroBorg.py file in the same folder you are in, e.g.
    cd ~/zeroborg
    python
    If you still have problems you can manually add the correct folder to the Python search path: import sys
    sys.path.append('/home/pi/zeroborg')
    import ZeroBorg
  • I get the error pygame.error: video system not initialized
    There was a mistake in some of our example scripts which can prevent pygame working properly.
    This has been fixed and you can re-install the ZeroBorg software to update them using these commands:
    cd ~
    rm -rf zeroborg
    bash <(curl https://www.piborg.org/install-zeroborg.txt)
    Alternatively you can add the line highlighted below into the pygame setup section using a text editor:
    	# Setup pygame
    	os.environ["SDL_VIDEODRIVER"] = "dummy" # Removes ...
    	pygame.init()
    	pygame.joystick.init()
    	pygame.display.set_mode((1,1))
    	joystick = pygame.joystick.Joystick(0)
    	joystick.init()
  • I get the error pygame.error: Unable to open a console terminal
    For some reason pygame is unable to access the dummy screen driver.
    Try running the script using sudo or logging in as root and running the script.
  • My remote control does not work with the examples
    This can happen for a number of different reasons.
    The first thing is to try a different remote if you have one, some may not be compatible.
    The second thing to try is running the zbReadIR.py script like this:
    cd /zeroborg
    ./zbReadIR.py
    Next press and hold a button on the remote and see what happens:
    1. Nothing is shown and the LED does not come on.
      This means the ZeroBorg did not see the button press.
      Likely culprits are: The batteries are flat, the remote is not infrared, the IR sensor is not fitted to the ZeroBorg.
    2. The LED flicks once and a single received line is shown.
      This suggests the remote control only sends a message when first pressed.
      The remote is still usable with ZeroBorg, but the examples cannot tell if a button is held or not.
    3. The LED keeps flickering and I see the same sequence repeated.
      This remote is working fine with ZeroBorg.
      What you may need to do is use the zbSaveIr.py script to setup the remote buttons and add them to the example.
    4. The LED keeps flickering and I see different sequences for the same button.
      This usually means the remote is using a non-standard rate or message length and ZeroBorg cannot understand it.
    5. The LED keeps flickering and I see received FFFF most of the time for any button.
      We have seen some Creative remotes which have this odd behaviour.
      Put simply they keep talking while the button is held, but the do not state which one it is.
      The remote is still usable with ZeroBorg, but the examples cannot tell if a specific button is held or not.
    6. The LED keeps flickering and I do not see any sequence after the received part of the message most of the time.
      We have seen some Creative remotes which have this odd behaviour.
      Put simply they keep talking while the button is held, but the do not state which one it is.
      The remote is still usable with ZeroBorg, but the examples cannot tell if a specific button is held or not.
    If you need a replacement remote then a Sony RM ED007, RM ED008, or RM ED009 are all very reliable, will work out of the box, and they are easy to find on Ebay.
    Alternatively see if you have any old remotes for devices you no longer use, older remotes tend to be more standard than the newer ones.
In the event that you cannot solve your problem, please post here for further assistance.
Subscribe to Comments for &quot;ZeroBorg - Tiny robot controller for your RPi Zero based robots&quot;