ok, as you can see i'm not super good on linux, but this is what i did
i went to the micronucleus site
https://github.com/micronucleus/micronucleushttps://github.com/micronucleus/micronucleusand i hit download zip (right hand side near the bottom)
then i extracted the zip to a temporary folder.
and using the command shell (?) i navigated to the folder and got it to list it's contents
bob@Slaptop:~/Downloads/temp/micronucleus-master/commandline$ ls
49-micronucleus.rules builds library Makefile micronucleus.c Readme
then i ran the make command
bob@Slaptop:~/Downloads/temp/micronucleus-master/commandline$ make
Building library: micronucleus_lib...
gcc -L/usr/lib/x86_64-linux-gnu -lusb -Ilibrary -O -g -D LINUX -c library/micronucleus_lib.c
Building library: littleWire_util...
gcc -L/usr/lib/x86_64-linux-gnu -lusb -Ilibrary -O -g -D LINUX -c library/littleWire_util.c
Building command line tool: micronucleus...
gcc -L/usr/lib/x86_64-linux-gnu -lusb -Ilibrary -O -g -D LINUX -o micronucleus micronucleus.c micronucleus_lib.o littleWire_util.o -L/usr/lib/x86_64-linux-gnu -lusb
bob@Slaptop:~/Downloads/temp/micronucleus-master/commandline$
then using nautilus i went to the
home/bob/.arduino15/packages/digistump/tools/micronucleus
folder, and then renamed the current micronucleus as micronucleus.old and pasted in the new micronucleus that the makefile created
now when i run the help i get
bob@Slaptop:~/.arduino15/packages/digistump/tools/micronucleus/2.0a4$ ./micronucleus --help
usage: micronucleus [--help] [--run] [--dump-progress] [--fast-mode] [--type intel-hex|raw] [--timeout integer] [--erase-only] filename [--no-ansi]
--type [intel-hex, raw]: Set upload file type to either intel hex or raw
bytes (intel hex is default)
--dump-progress: Output progress data in computer-friendly form
for driving GUIs
--erase-only: Erase the device without programming. Fills the
program memory with 0xFFFF. Any files are ignored.
--fast-mode: Speed up the timing of micronucleus. Do not use if
you encounter USB errors.
--run: Ask bootloader to run the program when finished
uploading provided program
--no-ansi: Don't use ANSI in terminal output
--timeout [integer]: Timeout after waiting specified number of seconds
filename: Path to intel hex or raw data file to upload,
or "-" to read from stdin
Commandline tool version: 2.0a5
Success!!
in the arduino ide, i try to upload an example
Sketch uses 936 bytes (6%) of program storage space. Maximum is 14,844 bytes.
Global variables use 9 bytes of dynamic memory.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 2.0
> Device signature: 0x1e9487
> Available space for user applications: 14970 bytes
> Suggested sleep time between sending pages: 7ms
> Whole page count: 234 page size: 64
> Erase function sleep duration: 1638ms
parsing: 50% complete
> Erasing the memory ...
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
> Starting to upload ...
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!
yaaaaaaaaaaaaaaaaaaaaaay
Thanks Ralf!
the only thing i can assume is the digistump arduino script pulled the wrong version of micronucleus (maybe version 2 for 32 bit?) then, because i don't understand Make, i grabbed a wrong version of micruncleus which gave the strange error
for others following along, you'll need to put the udev rules in to get this to work without sudo