Arduboy Tones Error [Solved]

I have a breadboard setup homemade arduboy running Mr. Blinky’s library. I am using arduino-cli and VSCode to compile and upload to my arduboy, unfortunately if I try to `#include <ArduboyTones.h> it gives me this error when I try to compile

[25/10/20][9:51:26] /Users/ajones23/Desktop/My Folder/Arduino/Arduboy/My Projects/Arduboy-Dino >/Users/ajones23/Desktop/My\ Folder/Arduino/Arduboy/My\ Projects/Arduboy-Dino/Chrome_Dino3/compile.command
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `__vector_32'
/var/folders/k4/76dlnghs21v9yfn21jz5bm8r8hwspf/T/arduino-sketch-B8F347D11FE5AC0FC6EBBAFD1BB03697/libraries/ArduboyTones/ArduboyTones.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
Error during build: exit status 1

I have gone to the specified folder and deleted it but it came back afterwards.

My sketchbook location for Arduino IDE is /Users/ajones23/Desktop/My folder/Arduino

My System is:
MacOS 10.15.7

VSCode:
Version: 1.48.2
Commit: a0479759d6e9ea56afa657e454193f72aef85bd0
Date: 2020-08-25T10:09:08.021Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.6.0

Arduino IDE 1.8.13
arduino-cli Version: 0.13.0 Commit: 693a045eea420c29ca7027e668eee31bce37365d
I am using usr/local/bin/gcc-9 and clang-x64

I have an Include Path in VSCode with

/Users/ajones23/Library/Arduino15/packages/arduino/tools/**
/Users/ajones23/Library/Arduino15/packages/arduino/hardware/avr/1.8.3/**
/Users/ajones23/Library/Arduino15/packages/arduboy-homemade/hardware/avr/1.2.9/Libraries
/Users/ajones23/Library/Arduino15/packages/arduboy-homemade/hardware/avr
Users/ajones23/Applications/Arduino.app/Contents/Java/libraries
Users/ajones23/Applications/Arduino.app/Contents/Java/hardware/tools/avr/avr/include/
Users/ajones23/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants/standard
Users/ajones23/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino
/Users/ajones23/Library/Arduino15/packages/arduboy-homemade/hardware/avr/1.2.9/**

I hope this information can cover it, I will be back online in about 9 hours.
If you wish to know any more info I’ll message ASAP

1 Like

As I said in the GitHub issue, the error indicates that the sketch is trying assign more than one interrupt service routine to the same interrupt.

You are probably trying to use the Arduino tone() function within your sketch, which assigns a timer interrupt. When you #include <ArduboyTones.h>, it also tries to use the same interrupt.

I suspect that you have coded something like:
tone(1000, 200);
instead of the intended:
sound.tone(1000, 200);

3 Likes

reading the partial error log you gave,

multiple definition of `__vector_32'

Like @MLXXXp said your project tries to include multiple ISRs (Interrupt Service Routines) that want to use the same interrupt vector.

They are used in:

 Tone.cpp.o

and in:

ArduboyTones.cpp.o

So it seams your project includes both the Arduino Tone Library (#include <Tone.h>) and the ArduboyTones library (#include <ArduboyTones.h>) or your project may have the Arduino Tone library files Tone.h and Tone.cpp included in the sketches folder.

You need to remove the #include <Tone.h> or the library files from your project before you can use the ArduboyTones library.

1 Like

Tone.h doesn’t need to be included in a sketch. It somehow gets included just by using one of the Arduino tone related functions.

1 Like

Oh right it’s part of the Arduino core. Then it must be a typo as you suggested.

I’ll try @MLXXXp’s suggestion of using sound.tone(), thanks for helping

1 Like

Yep seems to work now, No more errors

2 Likes