Text-to-speech problem in Arduino 1.6.* vs 1.0.6 (Talkie) not sure why

Hey all!

Background: It's a text-to-speech synthesizer. The output is generated via (timer2/PWM) on pin 3.

First time posted. I downloaded the Talkie library and installed it. https://github.com/going-digital/Talkie

It's GREAT! Except it doesn't work now that I installed Arduino 1.6.3. :(

It compiles and runs well on Arduino 1.0.6.

However, after I upgraded to Arduino 1.6.3, the PROGMEM is causing an error that I don't really know how to fix (1_Getting_Started.ino:18:20: error: variable 'spDANGER' must be const in order to be put into read-only section by means of 'attribute((progmem))'). Instead, I just remove the PROGMEM and it compiles fine.

The biggest problem is that it doesn't work anymore. Just produces garbage noise in new Arduino version. The PWM or something in the timer isn't working properly anymore.

I can't seem to figure out what the difference is between the Arduino 1.0.6 and 1.6.*.

Figured I'd post this in general programming question since the problem isn't the audio, but the Arduino software / programming itself.

Any ideas?

Between 1.0.6 and 1.6.0 the compiler changed and there are some changes to the way PROGMEM is handled.

The easiest solution is to stick with 1.0.6 until someone updates those libraries. If you want to try to update them yourself it is certainly doable, but not necessarily trivial.

Is there any reason that you can't just use version 1.0.6?

Delta_G: Is there any reason that you can't just use version 1.0.6?

I was thinking newer is better. More features, better compiler. Bug fixes, etc.

Arduinutty: I was thinking newer is better. More features, better compiler. Bug fixes, etc.

Not always. Add to your list, doesn't work with older libraries.

The significant portion of the error message says that only const variables can now be stred in PROGMEM. So, why not make the variable( s ) const instead of pissing and moaning?

PaulS: The significant portion of the error message says that only const variables can now be stred in PROGMEM. So, why not make the variable( s ) const instead of pissing and moaning?

I'm trying to learn.

I did make them const. I also tried removing the PROGMEM keyword.

It compiled fine, but the PWM output on 1.6 was just noise and not proper compared to 1.0.

I know this thread is old but to add a solution to the thread See this post http://forum.arduino.cc/index.php?topic=363693.15

https://github.com/norberthidas/Talkie-FIX