-
Notifications
You must be signed in to change notification settings - Fork 5
Troubleshooting
This import error means that you are trying to execute Arbalet applications without having installed the Arbalet SDK first. You just need 30 seconds to do so, follow instructions.
This message means your Arduino does not reply to Python's requests.
- Make sure you have uploaded the firmware on the Arduino and that step was successful
- Make sure your device name is correct: take note of the device name in the Arduino IDE in Tools > serial ports and add it to this list of Arbalet devices, then re-install arbasdk using
setup.py
. - Check that Arduino answers properly, plus it to your computer and type
screen /dev/ttyACM0
in a terminal. You should see aH
character being printed on screen every 5 sec. If it does not, Arduino's firmware does not work properly.
Recall that the SDK may be allowed by the configuration file to try several ports until success. Testing several ports might briefly print a No such file or directory
error. If the program runs despite of this message, ignore the error.
However if the message is printed in loop it means that your Arduino is not found. Open the Arduino IDE and click on Tools > Serial ports. Here are listed the Arduino recognized on your system. If the list is empty then make sure the Arduino driver is installed on your system. If there is an address and it's different than the one reported by the error message, you may edit the configuration file to change its address by the one reported by the Arduino IDE.
You may experience this error if your user is not allowed to access the serial ports. Try starting the program with root access as a quick fix (or by preceding the command by sudo
) and consider adding your user to uucp
and dialout
groups. The commands hereafter will reboot your computer after this change:
sudo adduser `whoami` uucp
sudo adduser `whoami` dialout
sudo reboot
The libraries are normally linked when you install the Arbalet SDK but linking might have failed. In that case you can correct links manually. The libraries are located in the arbasdk
repository, under the path arbasdk/hardware/arduino. Move or link (ln -s
) independently each library folder to your Arduino libraries folder (~/sketchbook/libraries/
on Linux). Do not nest them, this is unsupported by the IDE. On Linux you must end up with the following folders:
~/sketchbook/libraries/Adafruit_NeoPixel
~/sketchbook/libraries/Arbalet
If you feel that the lit pixels are not at the right place e.g. rows and columns are inverted, you might have a mapping issue, which is actually a software issue. Following strictly the wiring described in the assembly guidelines with the same number of pixels should not lead to this issue but it would happen if you wired the LED strips differently or if you have a different number of pixels (the default table has 150 pixels). In that case you must generate a configuration file for your device.
: 'ascii' codec can't encode character u'\xe9' in position 16: ordinal not in range(128)
In case of UnicodeEncodeError
make sure your session name does not contain anything but ASCII chars, setuptools doesn't like non-ASCII that much.
Follow diagnostics in this order:
This is a software problem, see the suitable section.
The RX LED must blink when it receives data from the Python SDK. If it does not when you run an Arbalet application, try reuploading the firmware.
This is a hardware problem. Check that:
- The power line is under voltage: use a multimeter/voltmeter to measure the voltage between the 5V and the GND pins of any LED. You should measure ~5V. If there is no voltage make sure disconnect the power supply and test its output.
- There is no short circuit: inspect all connections visually and use a multimeter/ohmmeter to measure the resistance between the 5V and GND pins of any LED. Although it depends of your multimeter, usually "1" means "no short circuit" and a value very close to 0.0 means "short circuit". A "beep" mode is present on all modern multimeters to indicate short circuits.
- Check that you are able to run the example programs from the LED strip library. If yes, simply try to reupload the firmware and check the serial communication (especially that you have not changed the speed). If not, your hardware is indeed faulty.
- The first LED on your strip might be faulty and break the Data line. Without cutting the strip in a first step, try unsoldering the connector and resolder it to the second LED to shortcut the first one. If it works you will need to replace the first LED that you could have burnt by overheat or twisting.
Remember that the LED matrix is actually a single strip arranged in a coil. The data line is only a single bus, if any LED chip or any wire in the line breaks the line, all the next LEDs will be disabled. Check the connection at where the signal is lost. In last resort also consider that the first LED off is faulty and try to replace it by another. That will require to start cutting the strips of 15 LEDs in small pieces...
Strange behaviours could occur if you forget to connect the ground pin (GND aka Power -) to the GND of the Arduino. Make sure this connection exists by checking that your assembly respect the electronic diagram in the assembly guidelines.