Modbus TCP FieldKit For iPhone and iPad

Modbus TCP client, server and simulator for iPhone and iPad

Find a device on your Wi-Fi, read its coils and registers, chart live values and confirm each write before it leaves the phone. RS-485 devices work through a Wi-Fi or Ethernet converter with RTU over TCP.

Download on the App Store
Scan to open it on your iPhone

$5.99 one-time No subscription No account iOS 18 or later

FieldKit client screen connected to a Modbus TCP device, showing three holding register values
TX00 01 00 00 00 06 01 03 00 00 00 03
RX00 01 00 00 00 09 01 03 06 00 64 00 FA 04 00
=Holding registers 0 to 2: 100, 250, 1024

One purchase

$5.99 once. No subscription, no in-app purchases, no account.

You confirm each write

FC 05, 06, 15 and 16 stop on a sheet that lists the target and each value. You confirm or nothing goes out.

Scans only read

Find devices and Scan Unit IDs send one FC 03 read at a time and write nothing.

Your register maps stay with you

Profiles, logs and scan results stay on the device until you export them. What can leave the device.

On the wire

The bytes behind one read

This is the request FieldKit sends when you read three holding registers from address 0. Start with this frame when a device gives an odd answer.

00 01 Transaction ID
00 00 Protocol ID
00 06 Length
01 Unit ID
03 Function
00 00 Address
00 03 Quantity
MBAP header PDU

Decode your own frame The frame explained byte by byte

How it works

From an unknown device to live values

You can start with only the Wi-Fi network. The app takes you from finding the device to charting its registers.

Find the device
Features

What is in the app

One purchase includes everything below.

Modbus TCP client

Function codes 01, 02, 03, 04, 05, 06, 15 and 16, with per-connection timeout, retries and errors that name the cause.

RTU over TCP

Reach RS-485 devices through a transparent Wi-Fi or Ethernet converter. If a read times out, the app offers one read with the other framing.

Find devices

Scan your own Wi-Fi subnet on up to eight ports. Results show who answered Modbus, who answered with an exception and which open ports gave no Modbus answer.

Scan Unit IDs

Try 1 to 10 plus 0 and 255, or the full range 1 to 247. A full scan takes about 75 seconds. It reads one register per unit and writes nothing.

Live monitoring and charts

Up to 16 blocks at 1 to 60 second intervals. Charts cover 5 minutes, 15 minutes or 1 hour, and a failed poll shows up as a gap in the line.

CSV export

Columns timestamp, block, address, raw, value, unit and status, in UTF-8 with UTC times. The file leaves only through the share sheet.

Device profiles

Save endpoints and register definitions with value format, byte and word order, scale and unit. Default export strips hosts, labels and values.

Request logs

Filter Client, Server or combined entries and export sanitized JSON for a colleague or a support ticket. Raw frames and register values stay out of it.

Safe write

A write can move a real machine, so the app makes you look first

Modbus has no undo. FieldKit keeps reads and writes apart and puts a confirmation between you and each write.

  • The sheet shows host, port, Unit ID, framing, function code, address, quantity and each value, with ON or OFF for coils.
  • If you reconnect or change the target after Prepare write, the app cancels that write.
  • Cancel sends nothing. A second tap on Confirm write while one is in flight sends nothing either.
  • The app does not retry a write once its bytes may have gone out.
  • Live monitoring and both scans only read. They cannot write.

You remain responsible for the equipment. Try writes on a simulator or a non-production register map first.

Read more about the client

The sheet you check before a write leaves the phone.
Server and simulator

A Modbus TCP device in your pocket

Start the server, point your SCADA, HMI or client code at the iPhone's address, and test against a register map you control.

  • Edit coils and holding registers on screen. Discrete inputs and input registers stay read-only for clients.
  • Values written by a client appear in the map about twice a second and survive Stop and Start.
  • Counters show active clients, connections, requests, responses, exceptions and bytes.
  • The server runs while the app is open, on port 1502 by default. We don't promise background operation or port 502 on iOS.

Read more about the server

FieldKit server screen running on port 1502 with counters and endpoint details
RTU over TCP

RS-485 devices through a converter

An iPhone has no RS-485 port, but a transparent converter on your Wi-Fi or Ethernet does the job. Choose RTU over TCP and the app sends RTU frames with CRC to the converter's TCP port.

  • Set baud rate, parity and stop bits in the converter. They have to match the device.
  • Works with transparent Wi-Fi or Ethernet to RS-485 converters, for example Elfin EW11, USR or Waveshare models.
  • Pick Modbus TCP instead if the converter acts as a Modbus TCP gateway.
  • Keep one master on the RS-485 line. A second master can make the app accept someone else's values.

Modbus TCP or RTU over TCP: how to tell

The app spots a transparent converter and offers to switch framing.
Protocol coverage

What it supports, and what it does not

Check this list before you buy. It tells you whether FieldKit fits your job.

CodeFunctionLimit per request
01Read Coils2000 bits
02Read Discrete Inputs2000 bits
03Read Holding Registers125 registers
04Read Input Registers125 registers
05Write Single Coil1 coil
06Write Single Register1 register
15Write Multiple Coils1968 coils
16Write Multiple Registers123 registers

Not supported

  • Direct Modbus RTU over RS-485, USB, serial or Bluetooth. Use a converter.
  • Modbus ASCII, Solarman V5 and vendor-specific extensions.
  • RTU over TCP in server mode. The server speaks Modbus TCP only.
  • Running the server or monitoring in the background.
  • Device search outside your own IPv4 Wi-Fi subnet, or through mDNS.
  • Cloud sync and user accounts.
  • Mac and Android. The app runs on iPhone and iPad with iOS 18 or later.
Screens

The app, as it runs

Real screens from the App Store listing, with demo addresses.

Client: Connect, read a saved register and see the values.
Client. Connect, read a saved register and see the values.
Chart: A value over 5 minutes, 15 minutes or 1 hour. Gaps mark failed polls.
Chart. A value over 5 minutes, 15 minutes or 1 hour. Gaps mark failed polls.
RTU over TCP: The app spots a transparent converter and offers to switch framing.
RTU over TCP. The app spots a transparent converter and offers to switch framing.
Find devices: Who answered, on which port, and with which framing.
Find devices. Who answered, on which port, and with which framing.
Write confirmation: The sheet you check before a write leaves the phone.
Write confirmation. The sheet you check before a write leaves the phone.
Server: A foreground simulator with counters and an editable map.
Server. A foreground simulator with counters and an editable map.
Logs: Client and server history with filters and sanitized export.
Logs. Client and server history with filters and sanitized export.
Profiles: Saved devices and their register definitions.
Profiles. Saved devices and their register definitions.
Pricing

One price, all features

You pay Apple once. The App Store shows the price for your country.

There is no free version or trial. Apple handles refund requests at reportaproblem.apple.com.

$5.99 one-time purchase

  • All features on this page included
  • No subscription and no in-app purchases
  • No account to create
  • Updates through the App Store
Questions

Before you buy

Which devices does it work with?

Devices that speak standard Modbus TCP on your network: PLCs, energy meters, HMIs, gateways, inverters, and ESP32 or Raspberry Pi projects. RS-485 devices work through a transparent Wi-Fi or Ethernet converter.

The app doesn't support vendor-specific extensions such as Solarman V5, even on port 8899.

Does it support Modbus RTU?

It supports RTU over TCP: the app sends RTU frames with CRC to a converter's TCP port. It has no RS-485, USB, serial or Bluetooth connection of its own, and it does not support Modbus ASCII.

I don't know the IP address or the Unit ID. Can it find them?

Find devices checks your Wi-Fi subnet, up to a /24, on ports you choose. Scan Unit IDs tries the unit numbers on a known host and port. Both only send FC 03 reads.

My device expects 40001. What do I enter?

Switch the address notation to PLC 4xxxx and enter 40001. The app sends protocol address 0. The same setting offers 0-based and 1-based. How Modbus addressing works.

Can a scan or the monitor change something on my device?

No. Find devices, Scan Unit IDs and Live monitoring send read function codes only. Writes go through Prepare write and Confirm write, and nothing else sends them.

Does the server run in the background?

No. Plan on the server running while the app is open on screen. The default port is 1502, and iOS doesn't guarantee port 502, so point your client at 1502.

Can I test without a PLC?

Yes. Run the FieldKit server on a second iPhone or iPad, or start a Python simulator on your laptop. Three ways to test Modbus TCP without a PLC.

Does it need the internet?

Modbus work needs only the local network, and iOS asks for Local Network permission on the first connection. The app uses the internet for crash reports and usage counts while those switches are on, and for feedback you choose to send.

What data leaves my iPhone?

Crash reports go to Sentry and anonymous usage counts to our own Aptabase server. Both switches start on, and you can turn each off in Settings. Neither includes hosts, IP addresses, profile names, register values or raw frames. Read the policy.

Does it run on Mac or Android?

Not at the moment. FieldKit runs on iPhone and iPad with iOS 18 or later.

Which languages does the app use?

The app's interface is available in English, German, Brazilian Portuguese, Russian, Japanese, Korean, Simplified Chinese, and Traditional Chinese.

Put Modbus TCP on your iPhone

Find the device, read the register, confirm the write. $5.99 once, with no account.

$5.99 one-time No subscription No account iOS 18 or later