Home | pfodApps/pfodDevices | WebStringTemplates | Java/J2EE | Unix | Torches | Superannuation | | About Us
  Remove adds from the search results by clicking Settings on the search results page, then Other Settings,
then DuckDuckGo Advertising OFF then clicking Save and Exit (at the bottom of the settings page)

Forward Logo (image)      

pfodApp V3™ and

The General Purpose Android/Arduino
Control App

None of these displays are built into pfodApp

They are all completely created and controlled by the code in your Arduino or other micro.
Click on an image to get more details about that example.

pfodApp connects to Arduino101, BBC micro:bit, other BLE modules including Adafruit Feather nRF52, ESP32, RedBear Nano V2 and V1, DFRobot BLUNO, DFRobot Remo BLE, RFduino, Itead BLE Shield, Bluefruit LE Flora and UART Friend, Bluefruit LE SPI, RedBearLab BLE Shield, ESP32, ESP8266 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.
Check out the new free GUI designer/Arduino code generator Android app
Also Brian's YouTube series on using pfodDesigner and pfodApp

pfod™ (Protocol For Operations Discovery)
NO Android Programming required.
Control Arduino and other microprocessor devices
from your Andriod
TM mobile, in your own native language, via
ESP8266ESP32Bluetooth Low Energy (BLE)
NANO 33 - Non-Arduino based micros, PIC etc.
Cheap/Simple WiFi ShieldAdafruit WICEDRadio/LoRa
with optional 128 bit security. BBC micro:bit
Turn relays on and off, Plot and log data on your mobile
Arduino for Beginners controlled by Android
Multiple Connections to a pfodDevice

Arduino for Beginners, Next Steps
Taming Arduino Strings - How to avoid memory issues
Very Low Power BLE - 2022 (nRF52832)
How to write Timers and Delays in Arduino
SafeString Processing for Beginners
Simple Arduino Libraries for Beginners
Arduino Serial I/O for the Real World
Arduino Serial – Reading/Parsing
High Speed ESP32,
ESP32 / ESP8266 Auto WiFi Config
Simple Multi-tasking in Arduino

pfodApp V3 adds interactive controls and menu and drawing 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

For pfodApp app users see pfodAppForAndroidGettingStarted.pdf and Arduino for Beginners, controlled by Android
For support post your question on the pfodApp Forum and also see pfodSpecification.pdf
If updating pfodApp see
Help pfodApp has stopped working when I changed phones / recreated the connection

BLE Connections: If pfodApp has trouble re-connecting to your BLE device, use the nRF Connect app to connect first. Deleting and re-creating the connection in pfodApp also works. Also check Tips for Connecting to BLE devices below.

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.

pfodApp TM (revision history)

To download pfodAppTM V3.0 visit GooglePlay

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

Notes about Location permission usage on Android V12+
pfodApp does not and never has used or stored or sent any location information. However prior to Android V12, Google insisted on pfodApp requesting Location permission in order to make Bluetooth connections. On Android 12+ it is possible to avoid asking for the Location permission since pfodApp does not actually use , store or send any location information. However pfodApp still runs mobiles back to Android V4.4 and currently does not take advantage of that aspect of Android V12. So for now on Android V12+ allow Location permission “While using the app” . NOTE: Do not choose “Only this time” because pfodApp only checks for permissions on start up not every time it is needed. So choosing “Only this time” will cause pfodApp to fail at some later time.

Since pfodApp still runs on old Android mobiles, V4.4+, you can re-purpose your old mobile as a dedicated controller/user interface for your projects.

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.

For BLE connection problems see Tips for Connecting to BLE devices below and Help pfodApp has stopped working when I changed phones / recreated the connection. For Classic Bluetooth connection problem see this page.

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

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. There is also a NMEA / AIS (RS232) to WiFi Bridge based on this.

Simple WiFi to Bluetooth Low Energy (BLE) Bridge This WiFi to BLE Bridge is simple to build and allows you to control your BLE projects via WiFi and so no need to have to code a BLE app. Also see Single Board ESP32 C3 BLE to WiFi BridgeProvides a simpler/cheaper WiFi connection to your BLE projects

Home Automation
Automatic Lights – Turns light on, if it is dark, when anyone enters and off when they leave. Suitable for beginners.
BLE Window/Door Open Detector and Rain DetectorSound Alarm if there is a window open when it starts raining. There is also an Hydreon RG-9 version.
BLE Led Light Switch – 2023 – Retrofit existing light switch with Android BLE remote control. Controls up to 200W
BLE High Power Light Switch - 2023Retrofit existing light switch with Android BLE remote control. for Hallway switches and higher wattages.
BLE Led Light Switch – 2023 and BLE High Power Light Switch – 2023 supersedes these previous BLE light switch projects:-
               Remote Controlled Light Switch – 2017, BLE Power Control with pfodApp
Auto Night LightsLights turn on at Dusk and off at Dawn using an external BLE ambient light sensor.
BLE Temperature sensor Controlled Room Heater, Android Controlled IR Remotes, Remote control of Light, Power Switches and Fans.
BLE Remote Control Power Switch – Very simple, suitable for beginners. Switches all common household devices from 5V (100mA) UBS to 240VAC 10A / 110VAC 16A heaters. Also has a low voltage low current version. Option to control this Power Switch by a remote BLE sensor (temp/RH/lx)
Long life battery powered wireless remotes
ESP-01 Timer Switch – Suitable for beginners. This Power Timer turns low voltage devices on/off at set times during the day. Keeps accurate time and handles time zones and daylight saving changes without re-programming. Uses webpages instead of pfodApp. Also see Water Pump Control using this Timer Switch
IoTaWatt Real Time Electricity Cost and Reprogramming with Arduino IDE
Shows how to program IoTaWatt using Arduino IDE and remove any WiFi settings and how to plot the Electricity cost in real time.
HotWater from Excess Solar – How to store excess solar cell generation in the hot water tank.

Arduino for Beginners see also Help my Arduino program stopped working!!
Next Steps
How to write Timers and Delays in ArduinomillisDelay library
Taming Arduino StringsHow to avoid memory issues
Safe Arduino String Processing for BeginnersSafeString library
Arduino Serial I/O for the Real World
a replacement for Arduino Serial that works in Real World applications (uses the SafeString library)
Simple Arduino Libraries for Beginnerslibraries for complete beginners/non-programmers.
Simple Multi-tasking in Arduino on any boardMultitasking made easy. Uno and ESP32 examples
Debouncing Switches in ArduinoDebounceSwitch library
Using Non-ASCII/Non-English chars in Arduinousing Unicode/UTF8 – UTF8converter program
Out of memory when you add lots of stringsUse F( )

Android + Arduino for Beginners

Arduino GUI designer/code generator Use the drawing package running on an ESP32 to design your custom GUI components and generate the Arduino class files. Position and scale the components to build you complete user interface. Uses any Android mobile upto 8 years old and pfodApp. No Android Programming

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.
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 Multimeter/Arduino/pfodApp
For date and time plots using only Arduino's millis() function, see Arduino Date and Time using millis() and pfodApp
For high speed, long duration data logging, i.e. 2K samples/sec for 30 days, see High Frequency, Long Duration Datalogging with remote control via Teensy3.2 and SD Card

Simple Home Automation for BeginnersAndroid/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.

Single Click ControlThis 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 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.

How to make an Arduino output pulse controlled from your Android MobileAbsolutely 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 mobileThis 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 ControlsFor more sophisticated custom controls via interactive graphical components, see this tutorial. Also see the latest Arduino GUI designer/code generator tutorial.


LoRa/Radio Long Range Garage Door ControllerA point-to-point LoRa in-car remote control and garage door receiver. 128bit security and indication the door has reached the required position. The door can also be controlled from your Android mobile, via a WiFi to Radio bridge, with a visual display of the door's position

LoRa/Radio Remote Control Android Code GeneratorControl from your Arduino via LoRa. No Coding Required. Includes an Android to LoRa bridge using an ESP32 (WiFi or BLE or Bluetooth)


Romeo BLE (Flamewheel robot)How to make custom robot controller Android apps with pfodApp. No Android coding required.
Stepper Motor Speed control library A stepper motor speed control library with an example menu driven interface to set home and position limits and run the motor.

Bluetooth Low Energy projects
Tips for connecting to BLE device

Using BLE boards with pfodApp/pfodDesignerV3how to use/program various BLE boards

Very Low Power BLE programming via Arduino - 2022program nRF52 devices from Arduino to use <100uA while connected and sending data. Use pfodDesigner to generate very low power sketches to display menus and plot and log data in pfodApp. Part 2A Very Simple, Very Low Power Temperature Monitor covers using just a minimal nRF52 module and a coin cell to build a temperature monitor that runs for 5 years. Part 3An Indoor / Outdoor Weather Station covers extending the very low power temperature sensor to add a sensor for temperature, relative humidity and barometric pressure and display the values on a Weather Station. The sensors run for ~4 ½ years

BLE problems and solutions Some solutions to common problems with using BLE for general control.
Simple WiFi to BLE BridgeProvides WiFi connection to your BLE projects
Single Board ESP32 C3 BLE to WiFi BridgeProvides a simpler/cheaper 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.
NANO 33 BLE (and WiFi)
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)
BBC micro:bit using Arduino IDE
Romeo BLE (Flamewheel robot)
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.

BBC micro:bit using C++
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)

ESP32 projects BLE, WiFi and Bluetooth connections
Multiple Connections to a ESP32 based pfodDevice
ESP32 / ESP8266 Auto WiFi Config
ESP8266 based projects

ESP8266 Programming Tips (espcomm failed)Tips on how you get your ESP8266 to program.
Simple WiFi to BLE BridgeUse HUZZAH ESP8266 to provide WiFi connection to your BLE projects
Cheap NMEA/AIS Hub to Wifi BridgeRS232 to Wifi Bridge for Onboard Use
ESP8266 Controlled Garage Diesel HeaterA truck diesel heater for the garage with WiFi remote control and fuel/air flow/air temperature monitoring.
ESP8266 AutoLocking DoorControlled and monitored by pfodApp
ESP-01 Timer SwitchSuitable for beginners. This Power Timer turns low voltage devices on/off at set times during the day. Keeps accurate time and handles time zones and daylight saving changes without re-programming. Uses webpages instead of pfodApp
ESP-01 and ESP-01S using Led and Pins and extra I/OHow to program the ESP-01 and use the led and pins. How to use GPIO0, GPIO2 and how to get an extra I/Os using GPIO0/GPIO2 Tx/Rx
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, STM32 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
Programming STM32/BluePill using Arduino IDEThree ways to program STM32F103C8 (“BluePill”) board via ArduinoIDE

SMS based projects

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!

SMS Version of pfodApp

In March, 2019, Google Play started removing apps that included SMS permissions. Apps can apply for exemptions but Google Play rarely grants them. Although pfodApp provides a legitimate use of SMS for connecting to pfodDevices over 2G/3G SMS networks, Google Play refused to host pfodApp with SMS capabilities. pfodApp still supports SMS, but the version available from Google Play has it disabled. If you want to control your devices via SMS, or you want to update your existing pfodApp to the latest version, but including SMS support, then install pfodApp from Google Play and then contact pfod.com.au via support email to obtain pfodApp with SMS support.

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
SingleClick Control of an on/off device from your Android mobileThis 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 mobileThis 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 pfodDevicesHow 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 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 LightsThis 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 SystemThis 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 ControlThis outlines how one user controls his home environment using pfodApp to configure the settings and monitor state.
Dual Power SwitchWiFi/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 pfodApp has stopped working when I changed phones / recreated the connection

When you change phones and re-install pfodApp on your new phone, you will need to re-create the connection to your pfodDevice. If you find pfodApp is now just repeatedly re-connecting, then open the new connection you have just created and set the “KeepAlive in Secondsto 0 AND un-tick the “Request pfodDevice time {@}option, as shown below

Also make sure the old mobile is switched off so it is not holding the connection and preventing the new mobile connecting.

The pfodApp connection will now operate as it did in your old version.

By default, new connections on the latest versions of pfodApp, send a 'Current' time request, {@} on connection AND send KeepAlive cmds, { }, every 5sec when idle.
The pfodSpecificiation says ALL un-recognized commands must be responded to, to prevent the connection timing out. The pfodDesigner generates code that sends back an empty response, {}, for all un-recognized commands.

However some pfodDevices are coded to only handle their expected commands and just ignore all others, not sending any response. These pfodDevices will timeout about 10 secs after it connects and start re-connecting, without displaying the main menu, due to pfodApp sending the {@} command to enable Date/Time plots and the pfodDevice not responding to it.
Open the Connections screen and select Add/Edit and open your new connection. Then un-tick the “Request pfodDevice time {@}” option, to disable sending the {@} cmd.

You will then be able to connect and display the main menu, however after about 15sec of doing nothing the pfodApp will disconnect and start re-connecting again. This is due pfodApp sending a KeepAlive message after 5 secs on idle to see if the pfodDevice is still in range.
To fix this, open the Connections screen and select Add/Edit and open your new connection. Then set the “KeepAlive in Seconds” to 0 to disable KeepAlive messages.

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.

Tips for Connecting to BLE devices

If pfodApp has trouble re-connecting to your BLE device, use the nRF Connect app to connect first. Deleting and re-creating the connection in pfodApp also works.

If you have trouble connecting to your BLE device try these steps:-
i) Check out the “Help pfodApp has stopped working” tips above.
ii) Move closer to your BLE device, you may be out of range.
ii) Turn off all other Android devices. One of them may be holding the connection.
iii) Open Settings on your Android mobile and click on the Bluetooth option (make sure Bluetooth is turned on) and then “Search for Devices” OR “Pair new device”. NOTE: You don't want to pair a BLE device, just have you mobile find it. If you cannot see your device there, the you cannot connect, see points i) and ii) above. If the Bluetooth Setting finds your BLE device, go back to pfodApp and connect to it.
iv) Try turning Bluetooth OFF, restarting your mobile and then turn Bluetooth ON again. This clears out the mobiles bluetooth software.
v) Install Nordic's nRF UART V2.0 app from Google Play and see if it can connect.

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 V3.0.0 – For the complete pfod specification download the pfodSpecification.pfd. (includes sample screen shots of how the various messages are displayed by pfodApp V3.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.


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.

TM 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.

Forward home page link (image)

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