Micronucleus vs ATtinycore

[sterretje edit]
Topic split from TinyCore - a new Arduino core for classic ATtiny chips
[/sterretje edit]

Requesting more information here.

I already use the micronucleus in the IDE and program digistumps cabled to a pc. I have no programmer needed. Never did except to reflash bootloader on digistump.

So I ask do I need to concern myself with the choice between the AtTinyCore and the Micronucleus? Which is better?

First of all, this topic is about the TinyCore boards platform, not ATTinyCore. If you are referring to TinyCore, please be careful to use the correct name. If you instead have a question about ATTinyCore, then that should be made in a separate topic.


Second, your question doesn't make sense, as it is not an "apples to apples" comparison:

TinyCore (and ATTinyCore as well) is an Arduino boards platform, which adds support to Arduino IDE for compiling and uploading Arduino sketches targeting microcontrollers of the ATtiny family.

"Micronucleus" may be used to refer to a V-USB bootloader, or to the upload tool used to flash program binaries to targets running that bootloader.

TinyCore (and ATTinyCore as well) make it possible to flash a variety of bootloaders to the target boards via Arduino IDE's Burn Bootloader feature. That includes the Micronucleus bootloader in addition to urboot (or Optiboot in the case of ATTinyCore). However, that is only one of the capabilities provided by these platforms.

TinyCore (and ATTinyCore as well) also make it possible to upload the sketch to the target boards via an upload tool. They do use the Micronucleus upload tool when targeting boards running the Micronucleus bootloader. Otherwise, they use the AVRDUDE tool. And again, upload support is only one of the capabilities provided by these platforms.

So your question is equivalent to asking "Is a Honda Civic better than a Goodyear tire?".

Your question has been moved to a dedicated topic.

In my neverending quest to learn more about the world of electronics, I will chime in so I can possibly be corrected.

I thought Micronucleus was only a bootloader that sets fuses and does other bootloader stuff. I don't know what all a bootloader does do.

And in regards to thinking Micronucleus is a bootloader and your query in post 1, I learned (by participating) in a topic a few weeks ago that Micronucleus can prevent an attiny85 from running if a specific pin is pulled low at bootup. In fact there may have been two pins affected, but I don't remember which ones. So if those pins need pulled down low at bootup, Micronucleus may not be a good fit.

I will look for that topic. If I find it, i will edit this and post a link.

Edited>>Here it is. Post #39 i believe solved it. It was nearly 20 posts later before I understood it!

I am trying to get an understanding why the digistump bricks in certain conditions.

I unbricked one before and it seemed a mystery. I have an Uno IPS boot flasher setup and will try again.

Too few data to analyze, but if I were to guess something, I would say pin5 conflict.

Take a look here:

The IDE was waiting till forever so i pulled the digistump before cancelling. Then it was bricked.

They can be unbricked. I work on that now.

I have am trying to perform arduino ISP with an Uno. I can set the board and com port but when I try upload the IDE reports:

FQBN: arduino:avr:uno
Using board 'uno' from platform in folder: C:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.8
Using core 'arduino' from platform in folder: C:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.8

Detecting libraries used...
Using cached library dependencies for file: C:\Users\phyzx\AppData\Local\arduino\sketches\FCAC2EA411FA674F012627D57B2E1364\sketch\ArduinoISP.ino.cpp.merged
Alternatives for SPI.h: [SPI@1.0]
ResolveLibrary(SPI.h)
  -> candidates: [SPI@1.0]
Using cached library dependencies for file: C:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.8\libraries\SPI\src\SPI.cpp
Generating function prototypes...
Using cached sketch with function prototypes.
Compiling sketch...
Using previously compiled file: C:\Users\phyzx\AppData\Local\arduino\sketches\FCAC2EA411FA674F012627D57B2E1364\sketch\ArduinoISP.ino.cpp.o
Compiling libraries...
Compiling library "SPI"
Using previously compiled file: C:\Users\phyzx\AppData\Local\arduino\sketches\FCAC2EA411FA674F012627D57B2E1364\libraries\SPI\SPI.cpp.o
Compiling core...
Using precompiled core: C:\Users\phyzx\AppData\Local\arduino\cores\arduino_avr_uno_2adb38537e7eb0909675b42c290e6b13\core.a
Linking everything together...
"C:\\Users\\phyzx\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.elf" "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364\\sketch\\ArduinoISP.ino.cpp.o" "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/..\\..\\cores\\arduino_avr_uno_2adb38537e7eb0909675b42c290e6b13\\core.a" "-LC:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364" -lm
"C:\\Users\\phyzx\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.elf" "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.eep"
"C:\\Users\\phyzx\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.elf" "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.hex"
Using library SPI at version 1.0 in folder: C:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.8\libraries\SPI 
"C:\\Users\\phyzx\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\phyzx\\AppData\\Local\\arduino\\sketches\\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.elf"
Sketch uses 4354 bytes (13%) of program storage space. Maximum is 32256 bytes.
Global variables use 482 bytes (23%) of dynamic memory, leaving 1566 bytes for local variables. Maximum is 2048 bytes.
"C:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1/bin/avrdude" "-CC:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1/etc/avrdude.conf" -v  -patmega328p -carduino "-PCOM5" -b115200 -D "-Uflash:w:C:\Users\phyzx\AppData\Local\arduino\sketches\FCAC2EA411FA674F012627D57B2E1364/ArduinoISP.ino.hex:i"
Avrdude version 8.0-arduino.1
Copyright see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

System wide configuration file is C:\Users\phyzx\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1\etc\avrdude.conf

Using port            : COM5
Using programmer      : arduino
Setting baud rate     : 115200
Error: programmer is not responding
Warning: attempt 1 of 10: not in sync: resp=0x00
Warning: attempt 2 of 10: not in sync: resp=0xe0
User abort

The bootloader programmer I made does not use the ISP pins.

I have seen posts about putting a resistor on pb5(reset). Is this still necessary?

I also tried Micronucleus cli 2.5 to no avail. Another question is if I have good programmable digistumps(usb-c) should I just toss the the original USB-a(printed fingers) away?