Phi_prompt is upgrading to arduino 1.0

After some tireless work, my phi_prompt user interface library is upgraded to arduino 1.0 and takes full advantage of phi_interfaces library as physical layer to sense key presses. I was able to revamp my sample codes without much change at all. All call conventions are kept the same. Most change you will need as a project developer with phi_prompt is to include phi_interfaces library instead of the phi_buttons library, and set up keypads to pass to phi_prompt initialization call. An added perk is that in each sample code, I defined two input keypads, i.e. an actual keypad on arduino and a serial keypad either I can use a PC serial terminal or a bluetooth phone. I can operate the menu or any function on my arduino’s buttons, by typing in characters on my PC serial terminal, or with my bluetooth phone (adding a bluetooth shield to arduino of course). It’s super cool. You develop one interface, say a menu system, then you can interact with the menu with local buttons (on arduino), or remotely without any more coding.

Here is a depiction of what you could be doing with this new system:

12 Responses to Phi_prompt is upgrading to arduino 1.0

  1. hyrum says:

    Great work John!

  2. liudr says:

    Thank you! FYI, I am working on documentation so the library will not be available for download for another few days. Please be patient. The stuff on the google code is not this upgrade. It’s something half-cooked πŸ˜‰

  3. fara says:

    Hello =) !

    I am trying to interface a bluetooth keyboard to an arduino via a bluetooth shield. However I am an absolute beginner. I tried looking at your libraries but I couldn’t find the bluetooth part and was wondering if you could help me out and point me to some resources that would help me write a code that would communicate with the keyboard, because at this point I have no idea where to even start establishing a connection between the two (since I have no way of “reading” the information on the keyboard side of the system)

    Thank you =) !

    • liudr says:


      Thanks for your message. The blue tooth keypad that I am talking about is a serial device that streams characters to arduino, on a blue tooth serial port physical layer. What you are talking about is probably a blue tooth HID layer device. Most arduino blue tooth shields or hardware probably can handle blue tooth HID device connections but none that I have seen has such library to do it. Most of these arduino blue tooth shields only have blue tooth serial port broken out to connect to arduino so you won’t be able to use your blue tooth keypad/keyboard on arduino, unless you find an arduino shield that can do it.

  4. fara says:


    Thank you for your quick response πŸ™‚ . I’m a little bit confused thought. I have this shield ( which acts both as a master bluetooth device and a slave bluetooth device. and I’m trying to interface it with this ( keyboard. I was under the impression that that would be possible and I don’t understand why it’s not the case?

    Thank you so much!

    p.s: I’m sorry if this comment shows up twice my internet has been crazy πŸ™‚

  5. fara says:

    yes! the keyboard is really cool! which is why I really wanted to make it work =( !

    Do you have any suggestions for how I could make that happen? or should I just give up on this project?

    Thanks again for all your help =)
    Have a great night!

    • liudr says:


      If you google bluetooth HID arduino, there are lots of hits. I think, after reading through some hits, doing bluetooth HID on arduino is doable but a bit expensive. may have a version of blueSmurf that does bluetooth HID πŸ™‚

  6. fara says:

    Hello liudr,

    Thank you so much for all your help πŸ™‚ ! I will definitely try it out!

    Have a great day!

  7. oneguydid says:

    I’m having some hassles incorporating your library into a project, but finally getting somewhere. Storing the menu strings and the array of string pointers in progmem is generating “causes a section type conflict” errors. I can get rid of those by making the strings PROGMEM but the pointer arrays just in SRAM. I indicate it by adding a
    #define phi_prompt_strings_in_SRAM 0x200
    and checking for it in render_list().

    I still have a problem with my analog keypad. Once that’s resolved I’ll be creating an input function for IP addresses. Down the track, support for a couple of IIC displays (one with incorporated keypad), if you don’t get to it first.
    Your library has been a useful start.

  8. Temeka says:

    Hi! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on.
    Any recommendations?

Leave a Reply