They are all
completely created and controlled by the code in your Arduino or
Click on an image to get more details about that example.
connects to Arduino101,
other BLE modules including Adafruit
Feather nRF52, ESP32,
RedBear Nano V2
DFRobot BLUNO, DFRobot Remo BLE,
Itead BLE Shield,
Bluefruit LE Flora
and UART Friend,
Bluefruit LE SPI,
RedBearLab BLE Shield,
modules, Classic Bluetooth e.g. Itead
Bluetooth Shield, SIM900
GPRS SMS shields, Adafruit
Feather WICED, Arduino
Ethernet shield, and others
Get the free pfodDesignerV3 Android app for designing pfodApp menus and generating the Arduino code.
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
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. pfodApp V3 add support for creating your own sophisticated controls, No android programming required.
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, BLE or Wifi/Internet or SMS and sends back simple micro-pages in response. The controls, text and user choices displayed on the Android mobile by the pfodApp are completely determined by what you code in your micro. No Android coding is required. The pfodApp handles it all.
Wifi/Ethernet and SMS connections offer 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.
Although pfodDesignerV3 handles all the coding for you, if you are interested in more detail on how pfod handles logical differences between connection types, Bluetooth, BLE (Bluetooth Low Energy), WiFi/Ethernet (TCP/IP), Mobile SMS and LoRa/Radio, see Design Considerations for pfod Links.
To download pfodAppTM V3.0 visit GooglePlay
one application controls all the pfodDevices below and any ones
someone else creates. You can even show menus in your own
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 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 connect – This page provides a step by step fault finding guide to help you get your bluetooth hardware and your Arduino code running.
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
Home Automation – Andriod Controlled IR Remotes, Remote control of Light, Power Switches and Fans. Long life battery powered wireless remotes
to Display Arduino Data on Android, for Beginners –
NO Coding Required. No Android Programming and No Arduino
Programming. This tutorial shows you how to use the pfodDesignerV2
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.
For high speed data logging and plotting see Remote High Speed Data Logging using Arduino/GL AR150/Android/pfodApp
For high accuracy data logging and plotting see High Accuracy Remote Data Logging using Mulitmeter/Arduino/pfodApp
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 Internet – How to use the same connection at home and away.
How to add a Relay to Arduino – This page covers how to choose which relay to use and how to interface it with your Arduino board.
Single Click Control – This page covers how turn devices on and off with one click on the mobile's main screen board.
Design Custom menus to switch Arduino outputs on and off – Absolutely 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.
to make an Arduino output pulse controlled from your Android Mobile
NO programming required.
This tutorial generates ALL the Arduino code necessary to pulse an output pin for a specified time, controlled from your Android Mobile via pfodApp. The example here is to have an Arduino driven relay simulate pushing the Garage Door open/close pushbutton.
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.
Custom Graphical Interactive Controls – For more sophisticated custom controls via interactive graphical components, see this tutorial.
Romeo BLE (Flamewheel robot) – How to make custom robot controller Android apps with pfodApp. No Android coding required.
Low Energy projects
Some BLE boards / software stacks deliver the same cmd twice in quick succession. Update to pfodApp V3.322+ and pfodParser V3.17+ to solve this. pfodApp V3.322+ adds a cmd sequence number and pfodParser V3.17+ filters out duplicate cmds.
BLE problems and solutions – Some solutions to common problems with using BLE for general control.
Simple WiFi to BLE Bridge – Provides WiFi connection to your BLE projects
Remote Controlled Light Switch – Retrofit existing switch with BLE Nano for Android remote control.
Remote Controlled Loads – Retrofit existing switch with BLE Nano for Android remote control of high power, kilowatt loads.
Adafruit Bluefruit Feather nRF52 LE
Arduino 101 / Genuino 101
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
RedBearLab's BLE Nano V2 and BLE Nano (V1-1.5)
Romeo BLE (Flamewheel robot)
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)
Programming Tips (espcomm failed)
on how you get your ESP8266 to program.
Simple WiFi to BLE Bridge – Use HUZZAH ESP8266 to provide WiFi connection to your BLE projects
ESP8266-01 Using GPIO0 / GPIO2 as I/O – A note on how to use GPIO0, GPIO2 and how to get an extra input using GPIO0 and GPIO2
ESP8266 Cheap and Simple WiFi Shield – Uses 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 Shield – Similar 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 generator – No 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 Sensor – Uses 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 Override – Uses OLIMEX EVB board with built in relay to provide an IoT Extension Cable Inline Switch, Android controlled by pfodApp
Barthroom Fan Timer Retrofit – Uses 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 switch – Uses 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 pfodApp – pfodParserC library, a C/C++ compatible library for use with non-Arduino base microprocessors with detailed PIC examples
Reliable, Secure, Customizable 3G/2G SMS remote control (Arduino/pfodApp) – This is an example of using pfodApp's SMS connection to control a Hot Water service using a SIM5320 3G/2G GPRS board. The pfodDesignerV3 generates all the code you need to do this. NO coding required!
the Power and Efficiency of a Wood Gas Stove (Nano/pfodApp)
this project Ian used pfodApp to log and plot data to test the
efficiency of a Wood Gas Stove for Engineers Without
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 Path– Updated 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 Remote High Speed Data Logging using Arduino/GL AR150/Android/pfodApp
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 Entry – This 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 Driver – This 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.
Programming Arduino quickly becomes 'Advanced Programming'
Which Version of Arduino IDE to use?
fails when you add more strings to your Arduino program (and how to
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 8th 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.
Parses for the pfod messages sent by the pfodApp are currently available for Arduino here.
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.
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.
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)
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.
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.
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,
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.
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.
AndroidTM is a trademark of Google Inc, For use of the Arduino name see http://arduino.cc/en/Main/FAQ
The General Purpose Android/Arduino Control App.
pfodDevice™ and pfodApp™ are trade marks of Forward Computing and Control Pty. Ltd.
by Matthew Ford - 26th March 2018
(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.
Contact Forward Computing and Control by
©Copyright 1996-2018 Forward Computing and Control Pty. Ltd. ACN 003 669 994