User Tools

Site Tools


digispark:tutorials:linuxtroubleshooting

Linux Troubleshooting

First see the main troubleshooting section

libusb

If your sketch uses DigiUSB to communicate with the PC, you need both the legacy 0.1 version of libusb and version 1.0(http://www.libusb.org/). For compiling the DigiUSB programs, also ensure the package libusb-compat-devel is installed.

If you are getting an error (especially on ubuntu) when compiling or uploading sketches - try installing libusb and possibly lib32stdc on linux - (on ubuntu get it by issuing: apt-get install lib32stdc++6)

Permissions

Try running Arduino as root. If possible try the whole process as root.

If using Ubuntu or similar try the step below, if not make sure you have proper permission for the device.

Bad permissions generally cause the “Abort mission! -1 error has occurred …” error during upload. “micronucleus: library/micronucleus_lib.c:63: micronucleus_connect: Assertion `res >= 4' failed.” is also a result of bad permissions.

Ubuntu Troubleshooting

If you get java: not found, install a Java package, such as OpenJDK.

If you are running Ubuntu (and possible some other distros) and getting errors on upload or other strange results try this: (from: https://github.com/Bluebie/micronucleus-t85/wiki/Ubuntu-Linux)

Ubuntu and other modern Linux distibutions use udev to manage device files when USB devices are added and removed. By default, udev will create a device with read-only permission which will not allow to you download code. You must place the udev rules below into a file named /etc/udev/rules.d/49-micronucleus.rules

These rules are adapted from those used for Teensy boards, maintained by PJRC

# UDEV Rules for Micronucleus boards including the Digispark.
# This file must be placed at:
#
# /etc/udev/rules.d/49-micronucleus.rules    (preferred location)
#   or
# /lib/udev/rules.d/49-micronucleus.rules    (req'd on some broken systems)
#
# After this file is copied, physically unplug and reconnect the board.
#
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
#
# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.

Perhaps it's necessary to reload the rules as root.

udevadm control --reload-rules

Arch Troubleshooting

The AUR arduino package will not work since it is version 1.0.6! You need to install 1.5.8 from the Arduino page or if you have a 32 bit system.

You will also need the latest Digispark files that you can get by:

git clone https://github.com/digistump/DigistumpArduino

Unpack the Arduino zip to a folder of your choice and copy the digistump folder from /hardware in your git clone to …/Arduino/arduino-1.5.8/hardware/

Unpack the zip for your architecture in …/Arduino/arduino-1.5.8/hardware/digistump/avr/tools/ It will be either linux32binaries.tar or linux64binaries.tar

You will also need the 0.1 version of the libusb library which you can get on Arch by

sudo pacman -S libusb-compat

The last part is getting the micronucleus to work. For this (at least on 64 bit systems), you can install the AUR package micronucleus-git or compile it yourself.

git clone https://github.com/micronucleus/micronucleus.git
cd micronucleus/commandline
make

Copy the resulting micronucleus executable into …/Arduino/arduino-1.5.8/hardware/digistump/avr/tools/ and you should be good to go.

Also take care of the udev rules, as with all other Linux distributions

digispark/tutorials/linuxtroubleshooting.txt · Last modified: 2017/12/03 11:41 by Jamezrin