Dear Customers, please note that we will be closed on Wednesday, October 28. Orders will be processed again from Thursday, October 29, 2026. Have a nice day.
Notice regarding a critical vulnerability in the PHP core known as "PHP2Shell": Devices manufactured by Papouch do not use a PHP server solution; therefore, they are not affected by this vulnerability.
Do you use Spinel? Are you working on an implementation and need to quickly verify that your data packet is valid? The parser on this page will come in handy. Here is a simple Spinel parser and validator that finds Spinel packets in the text and lists them clearly. It can also generate a Spinel packet including a checksum. No need to install anything - it works online.
If you don't know what we call Spinel, it's a binary communication protocol that we've been using for years in a lot of our devices. It is free to use in your devices (including commercial use). For more information about the Spinel protocol, see the SpinelTerminal page, which is a desktop application for debugging Spinel communications. For developers, there is also a .NET SDK in C# available on GitHub (with descriptions only in Czech for now). Also, detailed information about the Spinel implementation is always provided in the manual for the specific device.
In the following text box, enter text in one of the formats listed. For each format you can view a specific example by clicking on "example". The found Spinel packets are updated in the Spinel packets section below each time the input field is changed.
The output contains valid packets or packets with an incorrect checksum. Errors are highlighted in red. Mouse over to display the correct value or a hint:
Customizing the view: labels, 0x0B, 0BH, 0B, 10 • copy all
Detailed description of the structure of the Spinel packet is always in the manual for the specific device. Here is only a basic description of the data format.
| PRE | FRM | NUM | NUM | ADR | SIG | INST | DATA... | SUM | CR |
| PRE | FRM | NUM | NUM | ADR | SIG | ACK | DATA... | SUM | CR |
NUM: Number of bytes from ADR (inclusive) up to and including CR. It is two bytes, so the NUM can be up to 65535. The minimum is 5, which corresponds to an instruction with no data. If the NUM is less than 5, the packet is not valid. The upper byte is the MSB, the lower byte is the LSB. If the number of bytes is less than 256, the upper byte is null.
ADR: The device address can be in the range 0x00 to 0xFD (253). The following addresses are reserved for special use:
ACK ACK in the same place as the INST byte in the query. It is in the range 0x00 to 0x0F. This byte is used to inform the device about the status of the last received instruction. The reserved ACKs are as follows:
SUM is the checksum. A message with an incorrect checksum is not responded to. The CR byte is waited for even if an incorrect checksum is received. It is calculated as follows: SUM = 0xFF – ((PRE + FRM + ((NUM & 0xFF00) >> 8) + (NUM & 0xFF) + ADR + SIG + ACK_INST + DATA) & 0xFF)