ProtoLink 0.2.0
Frequently asked questions
Common launch, port, and installation answers
What does ProtoLink do, and what is it for?
ProtoLink 0.2.0 is a local tool for quick checks of Modbus TCP and Modbus RTU devices. It opens in your browser at 127.0.0.1:8000, can read coils, discrete inputs, holding registers, and input registers, and can write one holding register. It is a communication and register-checking tool, not a SCADA system, slave simulator, or historian.
Which Modbus operations are supported now?
Version 0.2.0 supports reading coils (FC01), discrete inputs (FC02), holding registers (FC03), input registers (FC04), and writing one holding register (FC06). For RTU requests, addresses are 0-65535, Unit ID is 1-247, timeout is 0.5-30 seconds, and holding/input register reads support up to 125 registers per request. Coil writes, multiple-register writes, and automatic address scanning are not advertised as 0.2.0 features.
Why does the device not respond or return a timeout?
A timeout usually means the request was sent but no valid response came back. For TCP, check the device IP address, port, network reachability, and Unit ID. For RTU, check the selected COM/serial port, baudrate, parity, stop bits, byte size, Unit ID, device power, RS-485 A/B wiring, termination on long lines, and whether another app is already using the port. If the link is slow or goes through a radio/gateway, increase the timeout.
Which register address should I enter: 0, 1, 40001, or 30001?
ProtoLink uses the protocol/data address, which is zero-based. For example, if a device manual lists holding register 40001, you often enter address 0 in ProtoLink and choose holding registers (FC03). If the manual is unclear and the value does not read correctly, try the neighboring address +1 or -1 and confirm the selected type: coil, discrete input, input register, or holding register.
Why is my COM or serial port missing?
On Windows, check the USB-RS485 driver and the Ports (COM & LPT) section in Device Manager. On Linux, check /dev/ttyUSB*, /dev/ttyACM*, or /dev/ttyS* and your user permissions; the dialout group is often required. On macOS, serial devices usually appear as /dev/cu.*. Also make sure another application is not already using the port: a serial port is usually opened by only one process at a time.
Do I need Python, Node.js, or Docker to run the packaged app?
For normal use of the packaged builds, Python, Node.js, and npm are not required: the package already includes the backend and built frontend. Docker is not used for ProtoLink and is intentionally outside the current runtime scope. Python and Node.js are only needed when running the project from source for development.
How do I check that ProtoLink started correctly?
Open 127.0.0.1:8000 in your browser. For a technical check, request 127.0.0.1:8000/api/healthz. In version 0.2.0 the expected response contains {"status":"ok","version":"0.2.0"}. If the page does not open, check that the app is running and that local port 8000 is not already occupied.
What does a Modbus error or exception mean?
This is different from a timeout. With a timeout, the device did not return a valid response. With a Modbus exception, the device received the request but could not process it: for example, the function code is unsupported, the register address does not exist, or the value is not allowed. Check the data type, address, count, Unit ID, and the device manual.
Does ProtoLink include a device simulator, address discovery, or float/endianness decoding?
These are not advertised as current 0.2.0 features. ProtoLink focuses on local connection to a Modbus TCP/RTU device, reading the basic Modbus areas, and writing one holding register. If you need to test without hardware, use a separate Modbus slave simulator; if you need to discover an unknown register map or tune byte/word order, specialized diagnostic tools are still a better fit for now.
Ready to download?
Open the platform cards.