Liudr arduino and physics gadgets
Dr. Liu A.K.A. liudr@arduino forum specializes in LCD user interface data logging and contract programming
Joined: February 24, 2011
Country: USA
Phi-3 shield
Phi-3 shield
Phi-3 shield
Phi-3 shield
Phi-3 shield
Phi-3 shield

Phi-3 shield is one of the most versatile shields on the do-it-yourself electronics market! It is the latest update from my Phi-shield. This shield is intended for an Arduino MEGA2560, although you can still use it on an Arduino UNO.

List of features
The following hardware are provided by the shield:
+ 20X4 LCD with back light on/off control
+ Six buttons (up/down/left/right/B/A)
+ Two LED indicators
+ Speaker
+ MicroSD card slot
+ Real-time clock (DS3231)
+ EEPROM (32KB 24LC256)
+ Connector for Adafruit Ultimate GPS module or Bluetooth module
+ Stacking headers for easy access to all pins.
+ Recessed board right edge for easy access to MEGA's 18X2 pin headers on the right side.
+ Reset button

The following software functions are provided by various supporting libraries:
+ User-selectable menu (LCD + buttons)
+ Number and text entry (LCD + buttons)
+ Scrollable long text (LCD + buttons)
+ Date and time (DS3231 or GPS)
+ Location (GPS)
+ Data and configuration storage (MicroSD card and EEPROM)
+ Playing simple tones (speaker)
+ Indicators (LEDs)
+ Wireless connection (Bluetooth module)

Alarm clock program with the shield:

Components of the shield:

Assembling modules of the shield:

Different kits:

Kit0: board parts, no LCD, MicroSD card slot, or DS3231/EEPROM.
Kit1: Kit0, MicroSD card board, and DS3131/EEPROM. The MicroSD card board and DS3231/EEPROM have been tested against flaws.
Kit2: Kit1 and a yellow/black I2C LCD that has been adjusted and tested.

First batch of 10 kits will come with colorful button caps. Next batch will have buttons with long black plungers.

Project ideas
+ Standalone or PC data logger
+ Lab data acquisition system (Physics, Chemistry, Earth science etc.)
+ Weather station
+ Input or operating panel, like security panels or garage door opener
+ Handheld GPS
+ Alarm clock (see complete project code)
+ Tweet update display
+ Morse code trainer (see complete project code)
+ The list goes on…

Flow of the test code
The test code tests all functions of the shield. You will need to make sure you adjusted your LCD's contract to see the text on screen. The code does the following:
1. It displays a long message. You can scroll it with up/down and dismiss it with B or A.
2. It displays a sample menu with six items. Use up/down to navigate through the menu and press B to select an item. Your selection will be displayed (0-5).
3. It displays a number entry with a default value of 40000. Use left and right to select which digit to modify and up/down to modify the digit. Press B to confirm. Your number will be displayed and saved to SD card. The file name is LOG.TXT. The time stamp of the file will come from either the RTC or GPS, depending on the value of use_GPS. The code will restart.

Menus, number entries, and scrollable text
The code is quite self-explanatory. You can try and modify the code to see what happens. The menu and number entry are extremely easy to do, thanks to my phi_prompt library.
Scrollable text
All you need to do is to call simple_text_area() function and include the text in the parenthesis. The function will return when the user dismisses the message with B or A.
// Displays a long message
simple_text_area("This is a sample code for displaying information, menu, and collecting user inputs on phi-3 shield with phi_prompt library.\nAuthor: Dr. Liu\nDate: 2017-02-17");

Menu is also very easy. Define a variable ret_val to store return value. Call simple_select_list() function with the content of the menu. Each item is ended by a "\n" including the last item. The first item is treated as menu title and will always be displayed on the top line. The return value ranges from 0-5 for the following menu that has 6 options.
int ret_val=255;
ret_val=simple_select_list("Main menu:\nDisplay GPS info\nRecord GPS info\nErase data\nDisplay records\nParameters\nShow credit\n");

Number/text entry
This is not too hard either. You first define a user_input as long integer if you want number entry. Then you define a char string to hold the initial value, which will turn into final value when the user confirm with B. Print a prompt with lcd.print(). Then call simple_input_panel(). The function needs the buffer's name, and the lower and upper limits of the characters that are allowed. In the following example '0' and '9' limits the entry to be only number. Once done, call sscanf() to turn the text into number and store in user_input.
long user_input;
char input_buffer[]="40000";
lcd.print("Enter 5-digit:");

Attributions & Referenced Items
Phi-2 interactive arduino shield 2004

Update: Due to USPS mailing restrictions, a coin battery is no longer included in the kit. Sorry for the inconvenience. The new kits now come with female stacking headers with ...

Phi-2 interactive shield for arduino

In case you have trouble ordering, you may order a kit directly from my blog at USPS has doubled international rates to around $12.75 to most part of the ...

Shipping Options
Destination & Service Shipping Time Cost
Worldwide - Standard 7-14 Business Days $12.95 for first item, $3.95 for each additional item
Domestic (USA) - Standard 3-7 Business Days $3.75 for first item, $1.50 for each additional item
Domestic (USA) - Express 2 Business Days $7.50 for first item, $1.50 for each additional item
* shipping times are estimates.
Community Feedback
Assembled Kit2 (GPS not included)
- no items in stock -
login to request one
- Ships in 3 -
Includes basic components, not included MicroSD board, RTC, or LCD
- Ships in 3 -
Includes basic components, MicroSD board, and DS3231 RTC/EEPROM, not including LCD
(only 4 left!)
- Ships in 3 -
Includes basic components, MicroSD board, and DS3231 RTC/EEPROM, and LCD
Note: If shipping internationally, special local taxes (VAT) and customs may apply and are not included in prices or invoices unless otherwise noted. All prices are in USD.
Ships To
Payment Methods
PayPal Visa, MasterCard, American Express, Discover

Open Hardware Definition v1.0 InMojo supports the Open Source Hardware Definition v1.0