Home | pfodApps/pfodDevices | WebStringTemplates | Java/J2EE | Unix | Torches | Superannuation | | About Us
 

Forward Logo (image)      

pfodApp V2™ and
pfodDevices™

Arduino for Beginners
controlled by Android

For pfodDevice Programmers see pfodSpecification.pdf and the pfod libraries and
the free pfodDesignerV2 for designing pfodApp menus
Bluetooth Low Energy (BLE)BBC micro:bitESP8266
Non-Arduino based micros, PIC etc.Adafruit WICED
Cheap/Simple WiFi Shield

For support post your question on the pfodApp Forum
pfodApp V2 users see pfodAppForAndroidGettingStarted.pdf

pfod™ (Protocol For Operations Discovery)
Control Arduino and other microprocessor devices
from your Andriod
TM mobile, in your own language,
via Bluetooth, Bluetooth LE, Wifi/ethernet or SMS with optional 128 bit security.
Plot data on your mobile and capture it for later downloading to your computer.
NO Android Programming required.
pfodApp V2 adds interactive drawings and menu and image caching

A really great app but the underlying protocol is the real genius behind the app.
Was able to develop a relatively sophisticated interface for an arduino project in a short time with straight forward code.
Just about any embedded micro project can benefit from the interface that this app provides.”
Google Play review posted by Greg Brandt

Check out the new Arduino for Beginners, controlled by Android. Also see Single Click Control for turning devices on and off with one click.

For programmers check out the new pfodDesignerV2 which lets you interactively designs pfodApp menus and then generate the Arduino sketch to serve the menu via bluetooth or Wifi/ethernet or SMS and handles the commands returned.

Unleash the power of your Arduino or other micro project with pfodApp. Show people that you are not just playing with circuits but building useful devices, like a garage door remotes, dimmable room lighting, etc, that they can control from their Android mobile. This single pfodApp can control multiple devices each with different functions.

Using pfodApp on an Andriod mobile, your users can read text prompts in their own language, send navigation commands, traverse menu hierarchies, choose from single and multi-selection lists, input numbers and text and plot and view data sent by your micro.

You can send sensor readings to your mobile and have them plotted and saved in a file for later downloading to your computer.

The pfodApp does all of the Android stuff for you and remembers the menu hierarchy. You only need to code your micro to be a pfodDevice which responds to simple requests over Bluetooth or Wifi/Internet or SMS and sends back simple micro-pages in response. The text and user choices displayed on the Android mobile by the pfodApp are completely controlled by what you code in your micro. No Android coding is required. The pfodApp handles it all.

Each connection offers optional 128 bit security to guard against hackers connecting to or taking control of your device. See Challenge and Response Security for Internet connected pfodDevices for the details. An Arduino library, pfodSecurity, part of the pfod libraries, implements this 128 bit security on the pfodDevice. See A Simple WiFi/Arduino pfodDevice for example code and how to generate and load the 128 bit password. For details of SMS connection see this page.

Cheap and Simple WiFi Shield

If you need a WiFi Shield for your micro project, check out this Cheap and Simple WiFi Shield. Works with all 5V and 3.3V micros that have a serial connection. Includes push button configuration via a secure web page.

pfodApp TM (revision history)

To download pfodAppTM V2.0 visit GooglePlay

This one application controls all the pfodDevices below and any one else creates. You can even show menus in your own (non-english) language.
For instructions see the pfodAppForAndroidGettingStarted.pdf

See below for how to turn your micro processor project into a pfodDevice that can be controlled by this pfodApp. You can also just connect to your PC via bluetooth or wifi or SMS to test out how your micro-pages will be displayed on the pfodApp and what message will be returned when the users makes selections. See Serial Bluetooth Connections from your Mobile Phone to you PC for details on making bluetooth connections from you mobile to Window, Mac and Linux.

Help my pfodApp won't connectThis page provides a step by step fault finding guide to help you get your bluetooth hardware and your Arduino code running.

pfodDevicesTM (pfod parser libraries for Arduino)

To convert you micro processor project to be pfodDevice, check out these links. None of these require Android programming. All of them use the one same pfodApp on their mobile

Android / Arduino for Beginners
see also Help my Arduino program stopped working!!

How to Display Arduino Data on Android, for Beginners Absolutely NO Coding Required. No Android Programming and No Arduino Programming. This tutorial shows you how to use the pfodDesignerV2 and pfodApp to create custom menus to plot and log Analog reading, display Analog readings and the state of a Digital inputs and control PWM outputs and set/pulse Digital Outputs. All the Arduino code is generated for you by pfodDesignerV2. pfodApp connects to your Arduino and displays the menu and lets you interact with your Arduino. The Arduino 101 board is used as an example but many other boards are supported.

Simple Home Automation for Beginners – Android/Arduino menus for switching things on and off. Absolutely No Programming Required. This tutorial shows you how to use the pfodDesignerV2, pfodApp, Arduino Uno, a bluetooth module and a relay shield to switch things on and off in your home from custom menus on your Android mobile with out writing any code at all. It also covers choosing relay modules to add to your Arduino board.

How to connect your DIY IoT (Internet of Things) device to the InternetHow to use the same connection at home and away.

How to add a Relay to ArduinoThis page covers how to choose which relay to use and how to interface it with your Arduino board.

Design Custom menus to switch Arduino outputs on and offAbsolutely No Programming Required. This tutorial shows you how to use the pfodDesignerV2 to design custom Android menus to switch things on and off with no programming required. The pfodDesignerV2 app takes you though building the menu on your mobile and then generating all the Arduino code needed to show that menu via pfodApp and switch things on and off.

Control your Uno from your mobile – This is a simple and inexpensive (~US50.00) quick start to controlling your Arduino Uno from your Android mobile. Lets you change digital pins from inputs to outputs to PWM and lets you read analog inputs. All from your Android mobile via bluetooth.

Bluetooth Low Energy projects
Arduino 101 / Genuino 101
RFduino
Adafruit Bluefruit LE UART Friend and Flora LE
Adafruit Bluefruit LE SPI Boards
– Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE or Bluefruit LE SPI Friend
Itead BLE shield and HM-10 modules
RedBearLab's BLE shield
BBC micro:bit


BBC micro:bit
BBC micro:bit C++ coding with pfodApp and pfodDesignerV2 Design custom Android menus to control the BBC micro:bit, NO Android or C++ Programming required
Setting up the C++ off line compiler
Getting Started with micro:bit C++


Adafruit WICED (No Coding Required)

ESP8266 based projects (Note: Do Not use the Arduino ESP board library V2.3.0 for these projects. V2.2.0 works)

ESP8266 Programming Tips (espcomm failed)Tips on how you get your ESP8266 to program.
ESP8266-01 Using GPIO0 / GPIO2 as I/OA note on how to use GPIO0, GPIO2 and how to get an extra input using GPIO0 and GPIO2
ESP8266 Cheap and Simple WiFi ShieldUses Adafruit HUZZAH ESP8266 as UART-WiFi bridge with push button web page configuration. No re-programming required to set or change WiFi network parameters and DHCP/StaticIP and port numbers.
ESP8266-01 Simple WiFi ShieldSimilar to above but using ESP8266-01 as UART-WiFi bridge with push button web page configuration. No re-programming required to set or change WiFi network parameters and DHCP/StaticIP and port numbers.
ESP8266 OLIMEX menu generatorNo coding required. Using an ESP8266 as the complete micro solution with a WiFi connection. No additional Arduino board required.
ESP8266 OLIMEX Garage Door Opener with Position SensorUses OLIMEX EVB board with built in relay to open/close garage door. Adds ADXL335 accelerometer to measure position of the tilt-a-door.
Simple, Secure, Internet Power Switch with Manual OverrideUses OLIMEX EVB board with built in relay to provide an IoT Extension Cable Inline Switch, Android controlled by pfodApp
Barthroom Fan Timer RetrofitUses an ESP9266-01 to retrofit a timer to a bathroom fan. Includes manual override off and web page for setting up. (Does not use pfodApp)
Retrofit House Lights with WiFi - keeping existing wall switchUses an ESP9266-01 and pfodApp to retrofit existing Light with remote control while keeping the operation of the existing wall switch.

Non-Arduino based microprocssors (e.g. PIC etc)

Android control of Non-Arduino based micros using pfodApppfodParserC library, a C/C++ compatible library for use with non-Arduino base microprocessors with detailed PIC examples

Other pfodDevice Projects and Tutorials

Measuring the Power and Efficiency of a Wood Gas Stove (Nano/pfodApp)In this project Ian used pfodApp to log and plot data to test the efficiency of a Wood Gas Stove for Engineers Without Borders
Reliable, Secure, Customizable SMS remote control (Arduino/pfodApp)This is an example of using pfodApp's SMS connection to control a Hot Water service using a SIM900 GPRS shield. The pfodDesignerV2 generates all the code you need to do this. NO coding required!
SingleClick Control of an on/off device from your Android mobile – This minimal sketch lets you turn an Arduino output on/off with a single click from your Android mobile's main screen. Just attach a relay to drive your hardware.
How to switch an Arduino output on and off from your Android mobile – This example follows on from Arduino for Beginners and provides a simple sketch which can be used as a basis for your own projects controlled from a Android mobile.
Non-English menus for pfodApp and pfodDevices – How to code messages in Your Own (non-English) Language for pfodDevices using Arduino and other micro-processors.
Remote Controlled Robotic Arm and Interactive Programmable Arm PathUpdated 28th August 2015 Control your MeArm from your Android mobile using pfodApp.
SAMSUNG LCD controller using pfodApp™ – This outlines how one user used pfodApp to control his SAMGSUNG LCD TV and stereo system.
Portable IR + TypeK Temperature Meter (Arduino)This series of projects builds up to a rechargeable, battery powered, data logging, IR and Type K temperature meter that is controlled from your Android mobile.
Simple Mobile Data Logging and Plotting (Arduino) – This is a simple example of how to log data on your Android mobile from your Arduino board. Also see How fast can Arduino transfer Sample Data
A Simple Wifi/Internet pfodDevice with 128bit security (Arduino)This is a simple example of connecting Arduino via wifi and adding 128bit security
Android controlled KnightRider Lights – This shows to results of converting an RF controlled KnightRider Lights to be a pfodDevice with much improved options and control. (YouTube link updated for multi-coloured V7 pfodApp control is about 5mins into the video, 10th Mar 2013)
Remote Car EntryThis uses pfodApp and Arduino to open the car doors, not just unlock them but actually open them.
Android controlled Robotic Lawn Mower(See this YouTube of pfodApp/robot in action) This site describes how to build a robotic lawn mower . They use pfodApp to show Status Information (battery voltage, charge current, etc.), set mowing times, etc. and for Remote control (start / stop, OFF of of mower blade modulation, etc.)
Discretionary Load Control on an Off The Grid Power System – This outlines how one user controls the load on his Of the Grid Solar Powered home using pfodApp to configure the settings and monitor state.
Home Climate Control – This outlines how one user controls his home environment using pfodApp to configure the settings and monitor state.
Dual Power Switch – WiFi/Internet controlled Dual Power Switch with Manual Override and Memory
Android controlled Led DriverThis project lets you control the led brightness from your Andriod phone. It is also an introduction to pfodDevices and pfodApps.
Android controlled Garage Door Remote (Arduino)This is a simple project that converts an Arduino Uno into a remote garage door open controlled from your Android phone. No Soldering required. Uses a simple command parser.
Android controlled LCD/LED display (Arduino)This project lets you enter text on your Android phone and have it displayed on a LCD/LED Matrix display. No Soldering required. Includes a complete pfod message parser.
Android controlled Lights and Power (Arduino)This project lets you switch your lights and power points on and off from your mobile.

Arduino libraries that will parse the pfod messages sent by pfodApp are available.

Help my Arduino program stopped working!!

Why Programming Arduino quickly becomes 'Advanced Programming'
Which Version of Arduino IDE to use?

What fails when you add more strings to your Arduino program (and how to fix it)
What's wrong with Arduino's flush() - Why you should never call flush() – Delays are evil, flush() is very evil.
Why does the sketch I downloaded not run on a compatible Arduino board
Help my Arduino IDE is running very slowly
How to change the colour of the Arduino Error Messages
How to turn off compiler optimizations in the Arduino IDE (and why you might need to) – Updated 8
th March 2015 to work with all IDE versions.
How to see the Assembler instructions your Arduino Code is producing.
How to write Timings and Delays in Arduino (Why your program might fail after 50 days).
Using Non-ASCII chars in Arduino and other micro-processors
PollingAnalogRead - Read Analog values reliably without holding up the loop()
Debouncing Switches – How to detect a clean switch change in Arduino
How to reliably restart Arduino when connected to a battery backed RTC (real time clock) module
– How to clear/reset the I2C bus.

pfodTM Message Parsers

Parses for the pfod messages sent by the pfodApp are currently available for Arduino here.

What is pfod?

The Protocol For Operation Discovery (pfod) is simple request/response protocol for use with micro-controllers. Think HTML replacement, but with a much simpler format and much shorter messages designed for ease of coding in a micro processor. The pfodApp functions as micro-browser and the pfodDevice is the micro-server.

pfod Specification V2.0.2 – For the complete pfod specification download the pfodSpecification.pfd. (includes sample screen shots of how the various messages are displayed by pfodApp V2.0 for Android)
For J2ME mobiles there is a more limited application available here which does not implement the full specification.

How to connect your Mobile to your PC or Mac via Bluetooth

You can just connect to your PC via bluetooth to test out how your micro-pages will be displayed on the pfodApp and what message will be returned when the users makes selections. See Serial Bluetooth Connections from your Mobile Phone to you PC for details on making bluetooth connections from you mobile to Window, Mac and Linux.

How to setup RN-42XV Bluetooth and RN-XV Wifi XBee format modules on SparkFun's FioV3 Arduino board.This page shows you how to configure the RN bluetooth and wifi modules on SparkFun's FioV3 Arduino board.

Challenge and Response Security for Internet connected pfodDevices.This details how pfodApp implements 128bit Challenge and Response access protection for an internet connected pfodDevice.

pfodWifiConfigV1 How to automatically connect Arduino to your WiFi network. A open source design for connecting wifi (IoT) devices to the local network, simply. (Note: for WiFi chips that support a SoftAP, like the ESP8266, it is easier to do the config that way. See pfodWifiWebConfig used in Cheap and Simple WiFi Shield)

Product Warning and Limitation of Liability and Copyrights

This pfodApp has intentional limitations in functionality and the software will have unintentional coding errors. It must NOT be used in any situation where there is any risk of personal injury or damage to property.

Limitations on Liability and Remedies

All implementations of pfod provided by Forward Computing and Control Pty. Ltd. (Forward), either as, but not limited to, applications, devices or example code, are provided “as is” and are not warranted to be fit for any purpose.
To the extent allowed by the law, Forward and its Directors, Employees and Agents' only obligation, liability and/or remedy, with respect to any claim shall be to refund the license fee paid to Forward.

Applicable Law, Jurisdiction, and Venue

This Product Warning and Limitation of Liability shall be interpreted under the laws of the State of New South Wales, Australia, notwithstanding the application of any jurisdiction's choice-of-law rules to the contrary. Any action relating to this must be brought in the state or federal courts located in New South Wales, Australia.
In the event legal action is brought, the prevailing party shall recover its reasonable attorney's fees, costs, and expenses, including, but not limited to, fees, costs and expenses of collecting any judgement.

Copyrights

The copyright in this document and in any implementations of pfod provided by Forward Computing and Control Pty. Ltd. (Forward), either as, but not limited to, applications, devices or example code is owned by Forward under the copyright laws of the Australia, the Universal Copyright Convention, and the Berne Convention.


Android
TM is a trademark of Google Inc, For use of the Arduino name see http://arduino.cc/en/Main/FAQ


pfodDevice™ and pfodApp™ are trade marks of Forward Computing and Control Pty. Ltd.

by Matthew Ford - 26th May 2016 (original 21st July 2012)
© Forward Computing and Control Pty. Ltd. NSW Australia
All rights reserved.
If you want to be notified of updates to this site, send me an email via the Contact link above.


Forward home page link (image)

Contact Forward Computing and Control by
©Copyright 1996-2015 Forward Computing and Control Pty. Ltd. ACN 003 669 994