First attempt with ATTiny85 board, error "avr-g++; file does not exist;

I'm trying to install a sketch on an ATTiny85 development board for my first time and I get a message about a file not found (verbose output below).

I can't locate the folder "C:\Users\asus\AppData". Would it be hidden? (edit: yes, it is hidden).

My setup:
Win10, 64 bit, IDE 1.8.13, not sure of the ATTiny85 revision.

As far as I can tell, I correctly followed the instructions from Digispark to install the drivers.

Can anyone give me tips as to how to use the error message to resolve the problem?

Thanks.

The sketch:


// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(0, OUTPUT); //LED on Model B
  pinMode(1, OUTPUT); //LED on Model A  or Pro
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(1, HIGH);
  delay(1000);               // wait for a second
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(1, LOW); 
  delay(1000);               // wait for a second
}
`type or paste code here`
```Arduino: 1.8.13 (Windows 10), Board: "Digispark (Default - 16.5mhz)"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\asus\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\asus\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\asus\Documents\Arduino\libraries -fqbn=digistump:avr:digispark-tiny -vid-pid=0000_0000 -ide-version=10813 -build-path C:\Users\asus\AppData\Local\Temp\arduino_build_654479 -warnings=none -build-cache C:\Users\asus\AppData\Local\Temp\arduino_cache_520392 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\asus\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -prefs=runtime.tools.avr-gcc-4.8.1-arduino5.path=C:\Users\asus\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -prefs=runtime.tools.micronucleus.path=C:\Users\asus\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -prefs=runtime.tools.micronucleus-2.0a4.path=C:\Users\asus\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -verbose C:\Users\asus\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\asus\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\asus\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\asus\Documents\Arduino\libraries -fqbn=digistump:avr:digispark-tiny -vid-pid=0000_0000 -ide-version=10813 -build-path C:\Users\asus\AppData\Local\Temp\arduino_build_654479 -warnings=none -build-cache C:\Users\asus\AppData\Local\Temp\arduino_cache_520392 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\asus\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -prefs=runtime.tools.avr-gcc-4.8.1-arduino5.path=C:\Users\asus\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -prefs=runtime.tools.micronucleus.path=C:\Users\asus\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -prefs=runtime.tools.micronucleus-2.0a4.path=C:\Users\asus\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -verbose C:\Users\asus\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino

Using board 'digispark-tiny' from platform in folder: C:\Users\asus\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7

Using core 'tiny' from platform in folder: C:\Users\asus\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7

Detecting libraries used...

"C:\\Users\\asus\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10813 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IC:\\Users\\asus\\AppData\\Local\\Arduino15\\packages\\digistump\\hardware\\avr\\1.6.7\\cores\\tiny" "-IC:\\Users\\asus\\AppData\\Local\\Arduino15\\packages\\digistump\\hardware\\avr\\1.6.7\\variants\\digispark" "C:\\Users\\asus\\AppData\\Local\\Temp\\arduino_build_654479\\sketch\\Start.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE

exec: "C:\\Users\\asus\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\4.8.1-arduino5/bin/avr-g++": file does not exist

Error compiling for board Digispark (Default - 16.5mhz).

I found the AppData folder via the File>Preferences menu selection in the IDE. The error msg appears to be right -- on my PC I can trace the path down to">4.8.1-arduino5", but there is nothing titled "bin" under that.

C:\Users\asus\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5>dir
Volume in drive C is OS
Volume Serial Number is 1A5C-D4DF

Directory of C:\Users\asus\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5

05/10/2021 02:27 PM .
05/10/2021 02:27 PM ..
05/10/2021 02:27 PM avr
0 File(s) 0 bytes
3 Dir(s) 227,926,016 bytes free

So, what process sets up these files? Do I have to repeat some operation? I used the package from Digistump. I see there is another package from David A.Mellis. Should I try using that one?

edit:
I tried the package from Mellis. Didn't get the previous error message but the upload failed without indication as to why.

Very frustrating when the instructions are written as if success is a sure thing and there is no assistance when things fail.

It may help if you provide a link to which Attiny core you have installed in your Arduino IDE to get support for the Attiny85

Which "instructions" are you looking at, exactly?
"DIgispark" is pretty old these days (and the originating people/business looks like it was essentially cloned out of business :frowning: ), and I could believe that the document you're working from is obsolete. "avr-gcc\4.8.1-arduino5" would be a very old version of the compiler...

You'd probably have better luck loading up Spence Konde's ATtinyCore and using the board and board settings appropriate for your DigiSpark.

Below is the link to the Digispark guide. No indication when this was published. It is the guide provided by the merchant who is reputable. Just four simple steps to follow.

Digispark guide

I shall see if I can succeed with Konde.

Thanks.

Hi.
I first used the Digistump AVR boards manager:
https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json

and loaded the board "Digispark (Default - 16.5 mhz)".

Is that the core you refer to? I explored the discussions about this term "core". Not an area for new players I feel. The expert users admit it's an ambiguous term.

Board appears in device manager as :
Digi device entry

ATTinyCore is an excellent choice. I know some work has been done over the last year to add support for the DigiSpark.

As mentioned above, the DigiStump company that created the DigiSpark has gone AWOL (though my impression was that the cause was them spending 4 years on a failed attempt to pull off a 3D printer KickStarter). So the official boards platform for the DigiSpark recommended by the Jaycar instructions is outdated and abandoned. However, I see you found the fork of the boards platform ArminJo created. This is well maintained and up to date. So that is also a good option. If you find that for some reason ATTinyCore does not meet your needs (I have no reason to think it won't), then we can definitely help you to get the ArminJo platform working.

Yes. It is a really horrible situation with this terminology. The term "core" has traditionally been used in the Arduino world when referring to the C++ library that defines the Arduino Language API. For example, here is the one for the Arduino AVR Boards platform (e.g., Uno):
https://github.com/arduino/ArduinoCore-avr/tree/master/cores/arduino

But the term is also used for the entire collection of files that are used to add support for a group of boards to the Arduino development software. For example:
https://github.com/arduino/ArduinoCore-avr
Due to the ability to reference resources from other boards platforms, the latter type of "core" may or may not contain the former type of "core".

For this reason, an official decision was made that the term for the latter is now "platform". Unfortunately, a lot of people didn't get the memo and are still using the ambiguous "core" term when referring to Arduino boards platforms, including even some (but not all) Arduino employees! In order to more clearly differentiate the two, I refer to the former as "core library" and the latter as "boards platform", and avoid use of the term "core" by itself altogether except when disparaging the use of it by others.

While I agree that the terminology is sometimes confusing, the term "core" is the term defined in the Arduino documentation

So I am inclined to hang on to it for now.

I installed the Digistump core you were referring to with the Digispark Guide, and after installing that I had no problems compiling your test sketch. So maybe your installation got corrupted indeed. (I am also using Win10 on a 64bit machine).

Can you tell me the meaning of "fork" in this context, please?

Thanks for making that effort.

I've had success too. I installed the Arminjo boards manager and everything went as the Digispark guide said it would.

What might have caused my problem before is that the disk ran out of space during the installation of the Digistump boards manager. I did it again and it seemed to complete but the compile would not succeed. I suspect it is necessary to remove the boards manager first and install again ensuring it completes in the one operation. I've done that with the Arminjo manager and it compiled and the sketch is running on the board. Yay!

There are still things I don't follow. It's frustrating that I feel I stumbled into success.

Is this the place to ask some questions to clarify things that will seem pretty humdrum to you advanced developers?

"forking" is what happens when someone takes some existing source code, creates their own copy, and adds their own modifications. The new copy is traditionally called a "branch", the divergence point is called a fork, and the act of creating a new branch is "to fork the code." Those are pretty standard industry terms.

Is this the place to ask some questions to clarify things that will seem pretty humdrum to you advanced developers?

The Arduino forums in general, yes.
The "bootloader issues" sub-topic, probably not. Check out the other topics, and pick the one that is most appropriate. "Microcontrollers" for questions specific to the tiny85, "Project Guidance" for general project questions, etc.
This thread probably should have been in "Installation and troubleshooting", but "bootloader issues" was close enough that no-one felt the need to move it.

As I said, some of the folks at Arduino apparently didn't get the memo about the correct terminology. You can see here that the formal specification for Arduino boards platforms is named the "Platform Specification":
https://arduino.github.io/arduino-cli/latest/platform-specification/

The primary authors of this technical document are the very developers who created the Arduino boards platform system. I will guess they know the best term for their own creation.

I see a lot of discussion there, but I'm not sure that a conclusion was actually reached. :frowning:

To me, a "core" is mostly the chip-specific code that enables a whole class of devices, while a "platform" is a specific product or group of products. So the "digistump" board package is a "platform", while the MCUDude and SpenceKonde (MegaCore, ATtinycore, etc) are "cores." (in particular, a "core" development effort focuses on the "cores" directory tree in the source, while a "platform" is more about the boards.txt and "variants" tree...

A package is something different, as explained in that post. Packages are defined in the Arduino package index. Boards platforms are only one component of a package, just as core libraries are only one component of a boards platform.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.