CycBox is a powerful and highly extensible IoT debugging toolkit that helps developers and engineers achieve real-time monitoring, analysis, and debugging of IoT devices. It supports multiple communication protocols, flexible data visualization methods, and a Lua/WebAssembly-based plugin architecture that can be flexibly customized for different debugging needs.
Key Features#
- Integrated serial port and TCP network debugging with data pass-through between both
- Features 1ms high-precision timer with 1ms low-latency response
- Message processing and response through Lua scripting
- Supports WebAssembly plugins for complex custom functionality
- Data visualization panel with chart plotting, snapshot capture, and data export
- Search function supports keyword highlighting and filtering to show only matched messages
- Supports multiple standard protocols like AT commands and Modbus RTU, with custom frame structure configuration
- Built-in multiple checksum algorithms that automatically add checksum to outgoing data and verify incoming data
- Supports timed sending and command sequence configuration for one-click execution of complex debugging workflows
- Cross-platform support for Windows, Linux, Android (experimental feature)
- Provides MCP interface for AI Agent integration (experimental feature)
Whether debugging embedded systems, monitoring sensor networks, or analyzing device communication, CycBox provides the tools you need in a unified and efficient interface. Suitable for embedded developers, IoT engineers, hardware enthusiasts, and anyone working with connected devices.

Data Transport Layer#
CycBox’s architecture supports any type of streaming data transmission. Currently implemented are serial port and TCP client connections, with future versions expanding to more transport layer types. Supports a secondary transport layer for data monitoring or bridging between two transport layers. For example, you can configure serial port as the primary transport layer and TCP as the secondary transport layer, enabling data forwarding between serial port and remote TCP server through bridging mode.


Data Codec#
CycBox uses a codec mechanism to process data streams:
- Decoder: Splits data streams into independent message packets (Messages) according to protocol rules, then passes them to upper layer modules for processing.
- Encoder: Converts upper layer messages to byte streams and sends them according to protocol rules.
CycBox has multiple built-in common codecs and supports custom codecs through WebAssembly plugins.
- Line Codec: Splits message packets based on newline characters, suitable for text protocols.
- Timeout Codec: Suitable for scenarios without specific frame structure but with fixed intervals between message transmissions.
- Frame Codec: Flexibly configurable data frame structure supporting prefix, header, length, checksum fields, etc. Can automatically verify frame data according to selected checksum algorithm and automatically add checksum data when sending.
- AT Command Codec: Suitable for debugging AT command set-based devices, supporting parsing and encapsulation of common AT command formats.
- Modbus RTU Codec: Built-in Modbus RTU protocol parsing and data verification, automatically adds checksum when sending data.
- WebAssembly Plugins: WebAssembly plugins can implement custom codecs through encode/decode interfaces to meet complex protocol requirements.

Data Formatting#
Data formatting converts message packets (Messages) to readable text or visual content for display in terminals or panels. Currently CycBox supports text terminal and hexadecimal display formatting methods, both supporting search highlighting and filtering. (Note: To ensure fast send/receive performance, currently only supports search and highlighting of new messages)
Text Terminal#
Similar to common serial debugging software, text terminal attempts to decode messages as strings.
Supports the following encodings:
utf-8, utf-16le, utf-16be, gb18030, big5, shift_jis, euc-jp, euc-kr, iso-8859-1
For other encoding support, please contact us.


Hexadecimal Display#
For non-visual data, displays raw byte streams in Hexdump format for debugging binary protocols.

Data Sending#
CycBox provides flexible data sending configuration:
- Supports text sending and hexadecimal sending modes, with automatic newline addition in text mode.
- Supports sequential sending of multiple commands with configurable send intervals for each command. Supports loop sending for stress testing and data query polling.
- Can dynamically add/remove send boxes for convenient debugging of different commands.
- Can implement message response, processing, and sending logic through Lua scripting. Lua scripting supports delayed sending.
- Supports predefined message sets through WebAssembly plugins for convenient debugging of specific devices or protocols.
- Timer resolution is 1ms with 0.5ms precision, suitable for high-precision timed sending requirements.

Data Panel#
The data panel feature parses raw data into physical quantities (such as temperature, humidity, acceleration, etc.) and displays them through charts. CycBox has built-in automatic data panel parsers for text format and JSON format. Supports custom data panel parsing through Lua scripting or WebAssembly plugins.


Scripting & Plugins#
CycBox supports complex message processing and custom functionality through Lua scripting and WebAssembly plugins. For example, Lua scripts can read message frame data and parse it into physical quantities. Lua scripts can dynamically generate response messages based on received message content and support delayed sending. WebAssembly plugins can implement custom codecs, message formatting, data panel parsing, predefined message sets, and other functions allowed by the WASM specification.

MCP Interface#
CycBox provides an MCP (Message Control Protocol) interface for convenient AI Agent and other external system integration. Through the MCP interface, external systems can send and receive messages, preset message sending sequences, etc. (Note: MCP interface is an experimental feature that will continue to be improved in future versions)
Development Roadmap#
- v1.0: Support basic serial port and TCP/IP debugging functionality
- v1.1: Improve physical model and data panel functionality, support Modbus RTU protocol parsing
- v1.2: Screenshot and output export, improve UI performance
- v1.3: Search functionality, optimize high-precision timer and low-latency response (1ms)
- v1.4: Lua scripting support
- v1.5: WebAssembly plugin support
- v1.6: MCP interface support for convenient AI Agent debugging integration