TomWhitwell / RadioMusic

Virtual Radio module for Eurorack
327 stars 91 forks source link

Trying to put Radio Music onto my Chord Organ... please help #149

Closed dimleaffall closed 6 years ago

dimleaffall commented 6 years ago

Arduino says #include

No such File or directory????

No clue man.

dimleaffall commented 6 years ago

Arduino: 1.8.7 (Windows 10), TD: 1.44, Board: "Arduino/Genuino Uno"

In file included from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:44:0:

AudioSystemHelpers.h:4:19: error: Audio.h: No such file or directory

compilation terminated.

exit status 1 Audio.h: No such file or directory

This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

dimleaffall commented 6 years ago

Arduino: 1.8.7 (Windows 10), TD: 1.44, Board: "Arduino/Genuino Uno"

In file included from sketch\AudioSystemHelpers.h:5:0,

             from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:44:

RamMonitor.h:85:20: error: malloc.h: No such file or directory

compilation terminated.

exit status 1 malloc.h: No such file or directory

This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

What does this all mean? I know NOTHING.

dimleaffall commented 6 years ago

Arduino: 1.8.7 (Windows 10), TD: 1.44, Board: "Arduino/Genuino Uno"

In file included from sketch\AnalogInput.cpp:14:0:

AnalogInput.h:13:20: error: expected ')' before 'pinIndex'

AnalogInput(uint pinIndex);

                ^

AnalogInput.cpp:23:25: error: expected constructor, destructor, or type conversion before '(' token

AnalogInput::AnalogInput(uint pinIndex) {

                     ^

In file included from sketch\LedControl.cpp:2:0:

LedControl.h:28:3: error: 'elapsedMillis' does not name a type

elapsedMillis bankFlashTimer = 0;

^

sketch\LedControl.cpp: In member function 'void LedControl::flash()':

LedControl.cpp:40:5: error: 'bankFlashTimer' was not declared in this scope

 bankFlashTimer = 0;

 ^

sketch\LedControl.cpp: In member function 'void LedControl::bankAndSingle(int, int)':

LedControl.cpp:49:12: error: 'bankFlashTimer' was not declared in this scope

     if(bankFlashTimer >= bankLedFlashTimes[bank]) {

        ^

In file included from sketch\SDPlayPCM.cpp:27:0:

SDPlayPCM.h:44:37: error: expected class-name before '{' token

class SDPlayPCM: public AudioStream {

                                 ^

SDPlayPCM.h:42:23: error: 'AUDIO_BLOCK_SAMPLES' was not declared in this scope

define AUDIOBUFSIZE (AUDIO_BLOCK_SAMPLES * 27)

                   ^

sketch\SDPlayPCM.h:82:28: note: in expansion of macro 'AUDIOBUFSIZE'

unsigned char audioBuffer[AUDIOBUFSIZE];

                        ^

sketch\SDPlayPCM.h: In constructor 'SDPlayPCM::SDPlayPCM()':

SDPlayPCM.h:46:20: error: class 'SDPlayPCM' does not have any field named 'AudioStream'

SDPlayPCM(void) : AudioStream(0, NULL) { begin(); }

                ^

sketch\SDPlayPCM.cpp: In member function 'void SDPlayPCM::loopPlayback(bool)':

SDPlayPCM.cpp:54:16: error: '__disable_irq' was not declared in this scope

__disable_irq()

            ^

SDPlayPCM.cpp:57:15: error: '__enable_irq' was not declared in this scope

__enable_irq()

           ^

sketch\SDPlayPCM.cpp: In member function 'bool SDPlayPCM::changeFileTo(AudioFileInfo*, bool)':

SDPlayPCM.cpp:64:16: error: '__disable_irq' was not declared in this scope

__disable_irq()

            ^

SDPlayPCM.cpp:82:15: error: '__enable_irq' was not declared in this scope

__enable_irq()

           ^

sketch\SDPlayPCM.cpp: In member function 'bool SDPlayPCM::skipTo(uint32_t)':

SDPlayPCM.cpp:114:20: error: 'AudioStopUsingSPI' was not declared in this scope

AudioStopUsingSPI();

                ^

SDPlayPCM.cpp:115:16: error: '__disable_irq' was not declared in this scope

__disable_irq()

            ^

SDPlayPCM.cpp:125:15: error: '__enable_irq' was not declared in this scope

__enable_irq()

           ^

SDPlayPCM.cpp:127:21: error: 'AudioStartUsingSPI' was not declared in this scope

AudioStartUsingSPI();

                 ^

sketch\SDPlayPCM.cpp: In member function 'void SDPlayPCM::restart()':

SDPlayPCM.cpp:233:16: error: '__disable_irq' was not declared in this scope

__disable_irq()

            ^

SDPlayPCM.cpp:239:15: error: '__enable_irq' was not declared in this scope

__enable_irq()

           ^

sketch\SDPlayPCM.cpp: In member function 'void SDPlayPCM::stop()':

SDPlayPCM.cpp:244:16: error: '__disable_irq' was not declared in this scope

__disable_irq()

            ^

SDPlayPCM.cpp:252:16: error: '__enable_irq' was not declared in this scope

__enable_irq()

            ^

SDPlayPCM.cpp:256:16: error: '__enable_irq' was not declared in this scope

__enable_irq()

            ^

sketch\SDPlayPCM.cpp: In member function 'virtual void SDPlayPCM::update()':

SDPlayPCM.cpp:263:15: error: 'AUDIO_BLOCK_SAMPLES' was not declared in this scope

uint16_t n = AUDIO_BLOCK_SAMPLES;

           ^

SDPlayPCM.cpp:264:2: error: 'audio_block_t' was not declared in this scope

audio_block_t *block;

^

SDPlayPCM.cpp:264:17: error: 'block' was not declared in this scope

audio_block_t *block;

             ^

SDPlayPCM.cpp:286:19: error: 'allocate' was not declared in this scope

block = allocate();

               ^

SDPlayPCM.cpp:370:18: error: 'transmit' was not declared in this scope

transmit(block);

              ^

SDPlayPCM.cpp:371:17: error: 'release' was not declared in this scope

release(block);

             ^

SDPlayPCM.cpp:393:20: error: 'audioBuffer' was not declared in this scope

 memcpy(out++, &audioBuffer[l0],2);

                ^

SDPlayPCM.cpp:400:20: error: 'audioBuffer' was not declared in this scope

 memcpy(out++, &audioBuffer[l0],2);

                ^

SDPlayPCM.cpp:412:16: error: 'audioBuffer' was not declared in this scope

  *out++ = (audioBuffer[l0] | (audioBuffer[++l0] << 8) | (audioBuffer[++l0] << 16)) >> 8;

            ^

SDPlayPCM.cpp:419:16: error: 'audioBuffer' was not declared in this scope

  *out++ = (audioBuffer[l0] | (audioBuffer[++l0] << 8) | (audioBuffer[++l0] << 16)) >> 8;

            ^

SDPlayPCM.cpp:429:16: error: 'audioBuffer' was not declared in this scope

  *out++ = (audioBuffer[l0] | (audioBuffer[++l0] << 8) | (audioBuffer[++l0] << 16)) >> 8;

            ^

SDPlayPCM.cpp:436:16: error: 'audioBuffer' was not declared in this scope

  *out++ = (audioBuffer[l0] | (audioBuffer[++l0] << 8) | (audioBuffer[++l0] << 16)) >> 8;

            ^

SDPlayPCM.cpp:469:16: error: 'transmit' was not declared in this scope

transmit(block);

            ^

SDPlayPCM.cpp:470:15: error: 'release' was not declared in this scope

release(block);

           ^

In file included from sketch\SDPlayPCM.cpp:27:0:

sketch\SDPlayPCM.cpp: In member function 'bool SDPlayPCM::fillBuffer(int32_t)':

SDPlayPCM.h:42:23: error: 'AUDIO_BLOCK_SAMPLES' was not declared in this scope

define AUDIOBUFSIZE (AUDIO_BLOCK_SAMPLES * 27)

                   ^

sketch\SDPlayPCM.cpp:480:22: note: in expansion of macro 'AUDIOBUFSIZE'

spaceLeftInBuffer = AUDIOBUFSIZE - bufferFillPosition;

                  ^

SDPlayPCM.cpp:550:26: error: 'audioBuffer' was not declared in this scope

read = rawfile.read(&(audioBuffer[bufferFillPosition]),

                      ^

SDPlayPCM.cpp:642:26: error: 'audioBuffer' was not declared in this scope

read = rawfile.read(&(audioBuffer[bufferFillPosition]),

                      ^

SDPlayPCM.cpp:689:26: error: 'audioBuffer' was not declared in this scope

read = rawfile.read(&(audioBuffer[bufferFillPosition]), requiredBytes);

                      ^

SDPlayPCM.cpp:717:26: error: 'audioBuffer' was not declared in this scope

read = rawfile.read(&(audioBuffer[bufferFillPosition]),

                      ^

exit status 1 In file included from sketch\AudioSystemHelpers.h:5:0,

             from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:44:

sketch\RamMonitor.h: In member function 'uint32_t RamMonitor::heap_total() const':

RamMonitor.h:141:49: error: 'mallinfo' was not declared in this scope

uint32_t heap_total() const { return mallinfo().arena; }; // returns heap size: grows into unallocated

                                             ^

sketch\RamMonitor.h: In member function 'uint32_t RamMonitor::heap_used() const':

RamMonitor.h:142:48: error: 'mallinfo' was not declared in this scope

uint32_t heap_used() const { return mallinfo().uordblks; }; // returns heap allocated

                                            ^

sketch\RamMonitor.h: In member function 'uint32_t RamMonitor::heap_free() const':

RamMonitor.h:143:48: error: 'mallinfo' was not declared in this scope

uint32_t heap_free() const { return mallinfo().fordblks; }; // returns free heap

                                            ^

In file included from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:44:0:

sketch\AudioSystemHelpers.h: At global scope:

AudioSystemHelpers.h:21:1: error: 'elapsedMillis' does not name a type

elapsedMillis cpuCheckTimer;

^

sketch\AudioSystemHelpers.h: In function 'void checkCPU()':

AudioSystemHelpers.h:24:9: error: 'cpuCheckTimer' was not declared in this scope

 if (cpuCheckTimer > 3000) {

     ^

AudioSystemHelpers.h:25:42: error: 'AudioProcessorUsageMax' was not declared in this scope

  int maxCPU = AudioProcessorUsageMax();

                                      ^

AudioSystemHelpers.h:43:34: error: 'AudioProcessorUsageMaxReset' was not declared in this scope

  AudioProcessorUsageMaxReset();

                              ^

In file included from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:46:0:

sketch\LedControl.h: At global scope:

LedControl.h:28:3: error: 'elapsedMillis' does not name a type

elapsedMillis bankFlashTimer = 0;

^

In file included from sketch\AudioEngine.h:5:0,

             from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:48:

SDPlayPCM.h:44:37: error: expected class-name before '{' token

class SDPlayPCM: public AudioStream {

                                 ^

SDPlayPCM.h:42:23: error: 'AUDIO_BLOCK_SAMPLES' was not declared in this scope

define AUDIOBUFSIZE (AUDIO_BLOCK_SAMPLES * 27)

                   ^

sketch\SDPlayPCM.h:82:28: note: in expansion of macro 'AUDIOBUFSIZE'

unsigned char audioBuffer[AUDIOBUFSIZE];

                        ^

sketch\SDPlayPCM.h: In constructor 'SDPlayPCM::SDPlayPCM()':

SDPlayPCM.h:46:20: error: class 'SDPlayPCM' does not have any field named 'AudioStream'

SDPlayPCM(void) : AudioStream(0, NULL) { begin(); }

                ^

In file included from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:48:0:

sketch\AudioEngine.h: At global scope:

AudioEngine.h:17:3: error: 'AudioEffectFade' does not name a type

AudioEffectFade *pFadeOut;

^

AudioEngine.h:18:3: error: 'AudioEffectFade' does not name a type

AudioEffectFade *pFadeIn;

^

AudioEngine.h:23:3: error: 'AudioEffectFade' does not name a type

AudioEffectFade fade1;

^

AudioEngine.h:24:3: error: 'AudioEffectFade' does not name a type

AudioEffectFade fade2;

^

AudioEngine.h:25:3: error: 'AudioMixer4' does not name a type

AudioMixer4 mixer;

^

AudioEngine.h:26:3: error: 'AudioAnalyzePeak' does not name a type

AudioAnalyzePeak peak1;

^

AudioEngine.h:27:3: error: 'AudioOutputAnalog' does not name a type

AudioOutputAnalog dac1;

^

AudioEngine.h:28:3: error: 'AudioConnection' does not name a type

AudioConnection patchCord1;

^

AudioEngine.h:29:3: error: 'AudioConnection' does not name a type

AudioConnection patchCord2;

^

AudioEngine.h:30:3: error: 'AudioConnection' does not name a type

AudioConnection patchCord3;

^

AudioEngine.h:31:3: error: 'AudioConnection' does not name a type

AudioConnection patchCord4;

^

AudioEngine.h:32:3: error: 'AudioConnection' does not name a type

AudioConnection patchCord5;

^

AudioEngine.h:33:3: error: 'AudioConnection' does not name a type

AudioConnection patchCord6;

^

AudioEngine.h:35:3: error: 'elapsedMillis' does not name a type

elapsedMillis prevAudioElapsed;

^

AudioEngine.h:68:3: error: 'elapsedMillis' does not name a type

elapsedMillis elapsed = 0;

^

sketch\AudioEngine.h: In constructor 'AudioEngine::AudioEngine()':

AudioEngine.h:39:4: error: class 'AudioEngine' does not have any field named 'patchCord1'

patchCord1(playRaw1, fade1),

^

AudioEngine.h:39:25: error: 'fade1' was not declared in this scope

patchCord1(playRaw1, fade1),

                     ^

AudioEngine.h:40:4: error: class 'AudioEngine' does not have any field named 'patchCord2'

patchCord2(playRaw2, fade2),

^

AudioEngine.h:40:25: error: 'fade2' was not declared in this scope

patchCord2(playRaw2, fade2),

                     ^

AudioEngine.h:41:4: error: class 'AudioEngine' does not have any field named 'patchCord3'

patchCord3(fade1, 0, mixer, 0),

^

AudioEngine.h:41:25: error: 'mixer' was not declared in this scope

patchCord3(fade1, 0, mixer, 0),

                     ^

AudioEngine.h:42:4: error: class 'AudioEngine' does not have any field named 'patchCord4'

patchCord4(fade2, 0, mixer, 1),

^

AudioEngine.h:43:4: error: class 'AudioEngine' does not have any field named 'patchCord5'

patchCord5(mixer, 0, dac1, 0),

^

AudioEngine.h:43:25: error: 'dac1' was not declared in this scope

patchCord5(mixer, 0, dac1, 0),

                     ^

AudioEngine.h:44:4: error: class 'AudioEngine' does not have any field named 'patchCord6'

patchCord6(mixer, 0, peak1, 0){

^

AudioEngine.h:44:25: error: 'peak1' was not declared in this scope

patchCord6(mixer, 0, peak1, 0){

                     ^

AudioEngine.h:51:4: error: 'pFadeOut' was not declared in this scope

pFadeOut = &fade1;

^

AudioEngine.h:52:4: error: 'pFadeIn' was not declared in this scope

pFadeIn = &fade2;

^

In file included from sketch\Interface.h:8:0,

             from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:49:

sketch\AnalogInput.h: At global scope:

AnalogInput.h:13:20: error: expected ')' before 'pinIndex'

AnalogInput(uint pinIndex);

                ^

In file included from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:49:0:

Interface.h:50:2: error: 'elapsedMillis' does not name a type

elapsedMillis buttonHoldTime;

^

Interface.h:74:2: error: 'Bounce' does not name a type

Bounce resetButtonBounce;

^

Interface.h:75:2: error: 'elapsedMillis' does not name a type

elapsedMillis buttonTimer = 0;

^

sketch\Interface.h: In constructor 'Interface::Interface()':

Interface.h:10:22: error: 'A9' was not declared in this scope

define CHAN_POT_PIN A9 // pin for Channel pot

                  ^

sketch\Interface.h:55:20: note: in expansion of macro 'CHAN_POT_PIN'

channelPotInput(CHAN_POT_PIN),

                ^

Interface.h:13:21: error: 'A8' was not declared in this scope

define TIME_CV_PIN A8 // pin for Time CV

                 ^

sketch\Interface.h:56:17: note: in expansion of macro 'TIME_CV_PIN'

startCVInput(TIME_CV_PIN),

             ^

Interface.h:57:30: error: no matching function for call to 'AnalogInput::AnalogInput(const uint8_t&)'

startPotInput(TIME_POT_PIN)

                          ^

In file included from sketch\Interface.h:8:0,

             from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:49:

sketch\AnalogInput.h:11:7: note: candidate: AnalogInput::AnalogInput()

class AnalogInput {

   ^

sketch\AnalogInput.h:11:7: note: candidate expects 0 arguments, 1 provided

sketch\AnalogInput.h:11:7: note: candidate: constexpr AnalogInput::AnalogInput(const AnalogInput&)

sketch\AnalogInput.h:11:7: note: no known conversion for argument 1 from 'const uint8_t {aka const unsigned char}' to 'const AnalogInput&'

sketch\AnalogInput.h:11:7: note: candidate: constexpr AnalogInput::AnalogInput(AnalogInput&&)

sketch\AnalogInput.h:11:7: note: no known conversion for argument 1 from 'const uint8_t {aka const unsigned char}' to 'AnalogInput&&'

In file included from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:49:0:

Interface.h:57:30: error: no matching function for call to 'AnalogInput::AnalogInput(const uint8_t&)'

startPotInput(TIME_POT_PIN)

                          ^

In file included from sketch\Interface.h:8:0,

             from C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino:49:

sketch\AnalogInput.h:11:7: note: candidate: AnalogInput::AnalogInput()

class AnalogInput {

   ^

sketch\AnalogInput.h:11:7: note: candidate expects 0 arguments, 1 provided

sketch\AnalogInput.h:11:7: note: candidate: constexpr AnalogInput::AnalogInput(const AnalogInput&)

sketch\AnalogInput.h:11:7: note: no known conversion for argument 1 from 'const uint8_t {aka const unsigned char}' to 'const AnalogInput&'

sketch\AnalogInput.h:11:7: note: candidate: constexpr AnalogInput::AnalogInput(AnalogInput&&)

sketch\AnalogInput.h:11:7: note: no known conversion for argument 1 from 'const uint8_t {aka const unsigned char}' to 'AnalogInput&&'

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: At global scope:

RadioMusic:75:1: error: 'elapsedMillis' does not name a type

elapsedMillis showDisplay;

^

RadioMusic:76:1: error: 'elapsedMillis' does not name a type

elapsedMillis resetLedTimer = 0;

^

RadioMusic:77:1: error: 'elapsedMillis' does not name a type

elapsedMillis ledFlashTimer = 0;

^

RadioMusic:79:1: error: 'elapsedMillis' does not name a type

elapsedMillis meterDisplayDelayTimer; // Counter to hide MeterDisplay after bank change

^

RadioMusic:80:1: error: 'elapsedMillis' does not name a type

elapsedMillis peakDisplayTimer; // COUNTER FOR PEAK METER FRAMERATE

^

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: In function 'void setup()':

RadioMusic:111:6: error: 'class SPIClass' has no member named 'setMOSI'

SPI.setMOSI(7);

  ^

RadioMusic:112:6: error: 'class SPIClass' has no member named 'setSCK'

SPI.setSCK(14);

  ^

RadioMusic:138:3: error: 'ledFlashTimer' was not declared in this scope

ledFlashTimer = 0;

^

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: In function 'void loop()':

RadioMusic:203:6: error: 'ledFlashTimer' was not declared in this scope

if(ledFlashTimer > 100) {

  ^

RadioMusic:241:3: error: 'resetLedTimer' was not declared in this scope

resetLedTimer = 0;

^

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: In function 'void updateDisplay(uint16_t)':

RadioMusic:254:6: error: 'showDisplay' was not declared in this scope

if (showDisplay > SHOWFREQ) {

  ^

RadioMusic:264:24: error: 'resetLedTimer' was not declared in this scope

ledControl.showReset(resetLedTimer < FLASHTIME); // flash reset LED

                    ^

RadioMusic:268:7: error: 'ledFlashTimer' was not declared in this scope

if (ledFlashTimer < FLASHTIME * 4) {

   ^

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: In function 'uint16_t checkInterface()':

RadioMusic:341:4: error: 'resetLedTimer' was not declared in this scope

resetLedTimer = 0;

^

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: In function 'void nextBank()':

RadioMusic:393:2: error: 'meterDisplayDelayTimer' was not declared in this scope

meterDisplayDelayTimer = 0;

^

C:\Users\Scott R\Desktop\RadioMusic-master\RadioMusic-master\RadioMusic\RadioMusic.ino: In function 'void peakMeter()':

RadioMusic:424:7: error: 'peakDisplayTimer' was not declared in this scope

if( (peakDisplayTimer < 50) || (meterDisplayDelayTimer < settings.meterHide) ) return;

   ^

RadioMusic:424:34: error: 'meterDisplayDelayTimer' was not declared in this scope

if( (peakDisplayTimer < 50) || (meterDisplayDelayTimer < settings.meterHide) ) return;

                              ^

RadioMusic:431:2: error: 'peakDisplayTimer' was not declared in this scope

peakDisplayTimer = 0;

^

expected ')' before 'pinIndex'

This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

Normalised commented 6 years ago

Do you just want your Chord Organ to be a Radio Music or do you want to customise the Radio Music code?

You can download the Radio Music firmware from here :

http://polyfather.com/radio_music/

And load that onto the module without compiling or editing code.

TomWhitwell commented 6 years ago

You should NOT use the Arduino IDE to change the firmware. Download the firmware .hex files from:

http://polyfather.com/radio_music/ http://www.polyfather.com/radio_music/

Then install with Teensy Loader, as described in the the instructions here: https://github.com/TomWhitwell/RadioMusic/wiki/Preparing-the-Teensy

dimleaffall commented 6 years ago

I feel like I'm SO close. In the Teensy loader it says this: can't open file 'C:\Users\Scott R\Desktop\Radio_Music_2017.2\Radio_Music_2017.2.elf' (error 2: the system cannot find the file specified.)

On Sun, Sep 30, 2018 at 10:51 PM Tom Whitwell notifications@github.com wrote:

Closed #149 https://github.com/TomWhitwell/RadioMusic/issues/149.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/TomWhitwell/RadioMusic/issues/149#event-1875831427, or mute the thread https://github.com/notifications/unsubscribe-auth/AlKLEDxPvv9pdwzzCuig6e2qPvprLgksks5uga1qgaJpZM4XBNdj .

-- dum spiro, spero

TomWhitwell commented 6 years ago

Sounds like you are close! I think you need a hex not an .elf - follow the instructions for teensy loader