[solved] Phi Prompt menu examples will not compile

The solution found was to not the arduino IDE version 1.0.1? Use 1.0, 1.0.3 or 1.5 Thanks.
//=========================================================================

I downloaded the Phi Prompt library zip file from Google Code Archive - Long-term storage for Google Code Project Hosting. and tried some of the examples.

Nothing will compile. Firstly I got lot's of errors about prog_char which I fixed using this suggestion I found on the forum

2) change the data type from "prog_char" to "char PROGMEM" in print(const _FlashStringHelper*).

Now I am getting lot's of errors like

phi_prompt_example_menu_20X4_display_phi_panel.cpp:63:29: error: variable ‘msg_00’ must be 
const in order to be put into read-only section by means of ‘__attribute__((progmem))’

First question - where is the file "phi_prompt_example_menu_20X4_display_phi_panel.cpp"? Is that an intermediate file generated from the .ino file?

Second - are all these errors due to wrong versions of the IDE (I am using 1.01 under linux).

Post the locations where the uncompressed files are. They may be just in the wrong location.

liudr:
Post the locations where the uncompressed files are. They may be just in the wrong location.

I uncompressed them to the same place as all my other 3rd party libraries (the others work fine). Because it's linux, they are under ~/sketchbook/libraries ( ~ meaning home directory under linux)

Post the first few lines of the error message. "Nothing will compile" could mean a billion different problems.

liudr:
Post the first few lines of the error message. "Nothing will compile" could mean a billion different problems.

An example error is in my first post.

OK I re-read your OP and you shouldn't have made the changes. Now change them back and post the ORIGINAL error messages. the prog_char and char are the same sizes (1-byte) but the similarity ends there.

liudr:
OK I re-read your OP and you shouldn't have made the changes. Now change them back and post the ORIGINAL error messages. the prog_char and char are the same sizes (1-byte) but the similarity ends there.

I changed them because I found a forum post that said prog_char was deprecated, and a bug report was around to get it's handling fixed. However, as you requested

phi_prompt_example_menu_20X4_display_phi_panel.cpp:63:9: error: ‘prog_char’ does not name a type
phi_prompt_example_menu_20X4_display_phi_panel.cpp: In function ‘void show_credit()’:
phi_prompt_example_menu_20X4_display_phi_panel.cpp:96:23: error: ‘msg_00’ was not declared in this scope
phi_prompt_example_menu_20X4_display_phi_panel.cpp: At global scope:
phi_prompt_example_menu_20X4_display_phi_panel.cpp:136:9: error: ‘prog_char’ does not name a type
phi_prompt_example_menu_20X4_display_phi_panel.cpp:137:9: error: ‘prog_char’ does not name a type

Mine compiled just fine on arduino 1.0 and 1.5 just now.

Can you compile sample code phi_button_groups_01 inside phi_interfaces library sample code collection? I want to know if this library is working.

Also have you restarted arduino ide (closing all windows) after you install the libraries?

liudr:
Mine compiled just fine on arduino 1.0 and 1.5 just now.

Can you compile sample code phi_button_groups_01 inside phi_interfaces library sample code collection? I want to know if this library is working.

Also have you restarted arduino ide (closing all windows) after you install the libraries?

phi_button_groups_01 compiles without problem. (and yes, the IDE has been restarted)

Just wanted to note here, I downloaded the version linked on the web site - v1.0, but it is pre-release. I see there was an older version - v523 - should I be using that one.

digimate:
Just wanted to note here, I downloaded the version linked on the web site - v1.0, but it is pre-release. I see there was an older version - v523 - should I be using that one.

I've been procrastinating with the formal release 1.0 so the pre-release is the latest working version. The 523 version is not compatible with arduino 1.x. Now that phi_interfaces works, the problem lies in the phi_prompt library. Can you compile a simpler example code such as phi_prompt_example_int? This code has no PROGMEM in it.

liudr:
I've been procrastinating with the formal release 1.0 so the pre-release is the latest working version. The 523 version is not compatible with arduino 1.x. Now that phi_interfaces works, the problem lies in the phi_prompt library. Can you compile a simpler example code such as phi_prompt_example_int? This code has no PROGMEM in it.

Sorry for taking a while - I had to go out. phi_prompt_example_int gives the following errors...

/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:30:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:31:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:32:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:33:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:34:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:35:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:44: error: variable ‘phi_prompt_lcd_ch_item’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:49: error: ‘phi_prompt_lcd_ch0’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:69: error: ‘phi_prompt_lcd_ch1’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:89: error: ‘phi_prompt_lcd_ch2’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:109: error: ‘phi_prompt_lcd_ch3’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:129: error: ‘phi_prompt_lcd_ch4’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:36:149: error: ‘phi_prompt_lcd_ch5’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:38:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:39:9: error: ‘prog_char’ does not name a type
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:40:30: error: variable ‘yn_items’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:40:34: error: ‘yn_00’ was not declared in this scope
/home/myhome/sketchbook/libraries/phi_prompt/phi_prompt.cpp:40:40: error: ‘yn_01’ was not declared in this scope

This is what I originally read that I thought might be the problem (only because it is the same/similar error message)

http://code.google.com/p/arduino/issues/detail?id=795

(referred from here http://arduino.cc/forum/index.php/topic,87186.0.html)

I'm puzzled. I can compile with 1.0 and 1.5 so let me get 1.0.3 and try to compile again.

liudr:
I'm puzzled. I can compile with 1.0 and 1.5 so let me get 1.0.3 and try to compile again.

Mine says 1.0.1 and it's running under Ubuntu linux 12.10 if that makes any difference.

I go to wondering why I have version 1.0.1 Maybe it's just because that was what had been packaged for the distro. So, I just downloaded 1.5.1 and installed in a temp directory. It seems to work fine, and it compiles the Phi prompt examples without error too.

So I guess that gets around the problem for me. Strange how 1.0.1 wouldn't work though...

Let's get rid of that version then. I just wasted my time install 1.0.3 then. It compiles as well as 1.0 and 1.5.

The program you are trying to compile will need a 4*4 matrix keypad to navigate the menu, just FYI.

liudr:
Let's get rid of that version then.

Yep, and thanks for the help. Being new to this, if you hadn't mentioned other versions of the IDE, I would never have thought to go looking.

1.5 is probably considered experimental. It does have nice compiler option feature though.

A request: could you change the topic to [solved] and edit the first post to say don't use arduino 1.0.1? Use 1.0, 1.0.3 or 1.5 Thanks.