Hardware Support

Flowcode App Developer allows you to connect to a wide range of devices. Some of these might be devices you have purchased, and others might be your own embedded projects. The only requirement is that the method of communication is supported by App Developer and the commands (or API) needed to communicate with the device are known and supported.

Web Developer projects will generally use web-based communications protocols to communicate with external devices and websites. When communicating with hardware, this often requires the device to act as a webserver which publishes webpages that are available on the local network. Typical protocols used are HTTP and MQTT.

PC Developer will communicate with connected devices using serial and network communications protocols. It can also be used to take full control of popular boards such as Arduino, Raspberry Pi and ESP32 using our pre-built Slave API firmware.

App Developer projects are not limited to a single hardware device and the same project can communicate with any number of external devices and websites.

External Devices

When linking to external devices, different approaches may be required depending on the type of device and level of control required. There are 3 types of device we need to consider when communicating with external devices using Flowcode App Developer:

Open devices
Closed devices
Slave devices

Our customers usually use Flowcode to develop embedded projects and App Developer allows them to create visually appealing PC and web apps that control and/or gather data from them. Suggestions for hardware and communications methods are presented below.

Recommended Hardware

App Developer allows you to create Windows and Web based applications and is compatible with a wide range of local and remote hardware for control, data gathering, test and analysis.

For creating embedded devices and systems using Flowcode Embedded for use with App Developer we recommend the following devices.

  USB ** Bluetooth ** WIFI Ethernet
  Arduino ESP32 ESP32 Raspberry Pi
Internal Hardware

(Microcontroller Specific)

  FTDI USB to Serial HCxx / RN46xx ESP8266 WIZ5500
External Hardware

(Microcontroller Nonspecific)

** Not currently available in Web Developer.


Following is a breakdown of the communications methods and features of App Developer broken into PC Developer and Web Developer and showing compatible Flowcode Embedded components.

  PC Developer Web Developer Compatible Embedded Components
Raw TCP/IP Network Comms TCP/IP (ENC28J60), WLAN (ESP8266), WLAN (ESP32), etc
HTTP Network Comms HTTP Fetch Webserver Generic
MQTT MQTT Client MQTT Client MQTT Client, IoT Made Easy
Serial Port COM Port ** UART (RS232), USB Serial
Bluetooth COM Port ** Bluetooth (HC05/HC06), Bluetooth (ESP32), etc
** Not currently available in Web Developer.

PC Developer I/O API

To provide I/O (Digital/Analogue/PWM) and bus capabilities (UART/SPI/I2C/OneWire) we have created a number of example API firmwares and corresponding components. These can be used together with the API Library components to drive advanced functionality for example interfacing with sensors and displays.

APIs are open source and developed in Flowcode Embedded and are available from the Flowcode Wiki. They are provided as working examples to be used as is or tailored to meet your needs, for example combining a stand alone embedded application with App Developer based configuration and test. For example in an LED control application you would want the embedded device to do the task of controlling the LEDs and the App Developer application would just allow control over higher level functions such as the LED colour or animation mode or on/off schedule.

If you need a different input output device from the ones on the list below you can edit our APIs and create your own based on one of the other devices in the Flowcode Embedded target list.

  Local Only (USB/Bluetooth) Local & Remote (USB/BT/WIFI/Eth)
Hardware Platform Arduino Uno / Nano Arduino Mega ECIO28P ECIO40P BL0032 / EB091 MIAC NXT Raspberry Pi ESP32
  ATMEGA328P ATMEGA2560 18F2455 18F4455 33EP256MU806 33EP256MU810 Raspberry Pi ESP32
Bluetooth *1 *1 *1 *1 *1
Wifi/Ethernet *1 *1 *1 *1 *1
Method AVRdude AVRdude mLoader mLoader mLoader mLoader SDCard/SSH ESPIDF
Wifi/Ethernet *2
Basic I/O
Digital Output Pins 14 54 19 30 47 8 26 32
Digital Input Pins 14 54 19 30 47 8 26 32
Analogue Output Pins 2 6 1
Analogue Input Pins 6 16 10 14 13 8 14
SPI 1 1 1 1 4 1 1
I2C 1 1 1 1 1 2
UART 3 1 1 6 1 3
PWM 6 16 2 2 27 4 2 2
OneWire 1 1 1 1 1 1

*1 Requires additional hardware in the form of an external module.
*2 Requires firmware containing OTA enabled code