My Account

Wish List (0)

Diablo - Troubleshooting

Written by in Build, Diablo - Build on .

Installation Issues


Issue
Cause
Solution
Permission denied or File Not Found or 404 or similar
Out of disk space

This error can happen when you have a small SD card. Check the space left by using df in a terminal window to check available size. If "Use%" reads 99% or 100% on rootfs remove some other files to free up some space.


Unable to find file/404

Most likely the internet connection is down, check you are connected to the internet by typing in a terminal ping -c4 google.co.uk. If the terminal returns errors, fix your connection to the internet.

If your connection is fine, check that the command used to get the repo from GitHub is correct.

If there is still a problem it might be an issue with the Linux repositories, try sudo apt-get update in a terminal to update where on the internet the Raspberry Pi looks for packages.

Unable to write to given location
Try running the commands using sudo in the terminal window instead.
Unable to locate packageNo internet connection

Most likely the internet connection is down, check you are connected to the internet by typing in a terminal ping -c4 google.co.uk. If the terminal returns errors, fix your connection to the internet.

Packages aren't up to date

Make sure your Raspberry Pi is up to date, try sudo apt-get update in a terminal to update where on the internet the Raspberry Pi looks for packages.

PiBorg logo is missing from the Desktop shortcut, but text is presentDesktop needs a refreshTry restarting your Raspberry Pi to refresh the desktop.

Use Issues


Issue
Cause
Solution
Motor spins when I am not running code
Wiring issues
Double check all connections are correct. If you're following an example, refer back to the images to confirm your wiring.
Robot motor runs backwards
Motor wired backwards
Swap the wires connected to M+ and M- to reverse the running direction of the motor.
Motor does not work when sent commands
Errors during Init()

Try running the following short script:

from diablo import Diablo
DIABLO = Diablo()
DIABLO.Init()

Ensure there are no errors present when initialising the Diablo. Double check wiring is correct before moving onto the EPO check below.

Jumper not connected across the two pin EPO/safety switch.

Try running the following short script:

from diablo import Diablo
DIABLO = Diablo()
DIABLO.Init()
DIABLO.ResetEpo()
print DIABLO.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:

DIABLO.SetEpoIgnore(True)

If this still doesn't work, try the above script with two additional lines:

DIABLO.SetMotors(0.3)
print DIABLO.GetDriveFault()

If this prints True then the board is reporting a fault, see the "GetDriveFault returns True" below.

Otherwise the most likely cause for this is a wiring problem, double check all the connections as shown on the Getting Started page.

GetDriveFault() returns TrueUnder-voltage (low power)

Faults may indicate power problems, such as under-voltage (not enough power), and may be cleared by setting a lower drive power.

If a fault is persistent, it repeatably occurs when trying to control the board, this may indicate a wiring problem such as:

  • The supply is not powerful enough for the motors. The board has a bare minimum requirement of 6V to operate correctly. A recommended minimum supply of 7.2V should be sufficient for smaller motors
  • 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

Faults will self-clear, they do not need to be reset, however some faults require both motors to be moving at less than 100% to clear.

The easiest way to check is to put both motors at a low power setting which is high enough for them to rotate easily, such as 30%

Note that the fault state may be true at power up, this is normal and should clear when both motors have been driven.

If there are no faults but you cannot make your motors move check GetEpo to see if the safety switch has been tripped.

For more details on correct wiring check the Getting Started Guide and double check the wiring instructions.

Permission denied
Logged in without sufficient permissions

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 diabloGui.py

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 when running diabloGui.py

Running a GUI via SSH

This script can only be run in the Raspbian Desktop or an environment with a GUI.
Diablo not found error
Board incorrectly wired or issue with cables

You should see the boards I²C address if you run the following from a terminal running Python:

import Diablo
Diablo.ScanForDiablo()

If no boards are found check that the Diablo is attached correctly as shown on the Getting Started Guide.

If a board is shown then set the I²C address to the shown value before calling Init(), e.g.

from diablo import Diablo
DIABLO = Diablo()
DIABLO.i2cAddress = 0x44
DIABLO.Init()

If the Diablo still isn't found, there may be a faulty wire. Check all wires are working.
Python says it cannot find the Diablo module
diablo.py library missing from folder or path

Make sure the diablo.py module file is present in your working directory.

If you still have a problem you can manually add the correct folder to the Python path using the following at the start of your script:

import sys
sys.path.append('/home/pi/diablo')


Where 'home/pi/diablo' is the path to the diablo.py file.

Related Article

Related Products

Comments

Leave a Comment

Leave a Reply

The product is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the product is available.