FAQ
TL;DR: SniffUART adds robust Tuya MCU decoding and USB‑serial handling. It ships with ~3,500 lines of decoders; "all known messages should decode." [Elektroda, mkmunichmk, post #20677748]
Why it matters: You’ll capture and decode Tuya traffic more reliably, even with finicky USB adapters—ideal for firmware tinkerers and integrators.
Quick Facts
- Coverage: Decodes all Tuya-specified messages and is built for maintainability and extendability. [Elektroda, mkmunichmk, post #20672453]
- Protocols: Supports Tuya MCU Serial Port, Low Power, and completed HomeKit decoding. [Elektroda, mkmunichmk, post #20672736]
- Reliability: End-of-message detection via inter-byte timeout improves UART stability. [Elektroda, mkmunichmk, post #20678142]
- Tuning: Default ReceivedBytesThreshold set to 75; increase for longer frames. [Elektroda, mkmunichmk, post #20676456]
- Baud: Supports all typical baud rates; per-port settings with “One port” option. [Elektroda, mkmunichmk, post #20676837]
What’s the main difference between SniffUART and TuyaMCU Analyzer?
SniffUART focuses on stronger USB‑serial communication, full Tuya-specified message decoding, and maintainable code for fast fixes and extensions. It’s a Windows tool with a GitHub README and active iteration. These priorities address real-world capture reliability and long-term decoder growth. [Elektroda, mkmunichmk, post #20672453]
Does SniffUART decode Tuya date/time (calendar) packets?
Yes. If Tuya defines the calendar or time messages in MCU Serial Port or MCU Low Power specs, SniffUART includes them. That covers items like server time queries documented in Tuya’s serial protocols. This ensures time sync frames parse correctly in typical devices. [Elektroda, mkmunichmk, post #20672736]
Is the Tuya HomeKit serial protocol different from standard TuyaMCU?
At first glance, they are very similar, with some responses differing in meaning. When identical, decoding routes to the MCU Serial Port handler to avoid duplication. "At first glance, the messages are very similar." This keeps behavior consistent across overlapping frames. [Elektroda, mkmunichmk, post #20673305]
How do I fix frames not decoded or garbled in SniffUART?
Try this:
- Update to the latest GitHub build.
- Set Read Timeout around 100 ms to separate frames.
- Raise ReceivedBytesThreshold from 75 if frames are long.
The author restored normal thread priority and advises longer gaps between messages for Tuya devices. [Elektroda, mkmunichmk, post #20676456]
Why does SniffUART sometimes mis-detect message boundaries?
Windows drivers can split serial reads, and some chips use a 16‑byte buffer. SniffUART initially assumed a minimal 2‑byte message, which can fragment frames. Increase Read Timeout to about 100 ms so gaps terminate messages. This reduces boundary errors on busy systems. [Elektroda, mkmunichmk, post #20675424]
Does SniffUART support 115200 bps devices?
Yes. "SniffUART supports all (typical) baud rates." You can also set different parameters per port, or enable the One port option for uniform settings. This covers 9600 and 115200 bps TuyaMCU devices used by Tasmota or OpenBK setups. [Elektroda, mkmunichmk, post #20676837]
Which Tuya protocols are supported out of the box?
SniffUART targets Tuya MCU Serial Port, MCU Low Power, and HomeKit-related serial protocols. If Tuya’s spec defines a message for these, SniffUART includes the decoder. This ensures broad coverage for common Wi‑Fi and low-power modules. [Elektroda, mkmunichmk, post #20672736]
How can I test the decoder offline without hardware?
Open File → Decode Messages, paste one of the bundled “Test Mcu*.txt” samples, and click Decode. This lets you preview how frames parse before attaching any device. It’s useful for learning field names and verifying custom captures. [Elektroda, mkmunichmk, post #20677748]
Where do I download the latest SniffUART binary?
Grab the current build from the project’s GitHub. Recent updates improved UART reliability by detecting end-of-message via a timeout after the last byte arrives. Use that build before tuning port parameters. [Elektroda, mkmunichmk, post #20678142]
Does SniffUART use a ring buffer for serial data?
The author avoided a ring buffer due to varied protocol structures and boundary detection concerns. Tuya frames help by having a 2‑byte header, and a ring buffer could still be added if needed. The design favors clear, maintainable parsing. [Elektroda, mkmunichmk, post #20675445]
What decoder profile should I choose for Low Power TuyaMCU captures?
Select the MCU Low Power decoder when your device uses that protocol. This is crucial for proper field mapping and DP parsing. Mis-matched profiles will cause undecoded payloads or wrong values. [Elektroda, p.kaczmarek2, post #20674055]
How exactly does SniffUART improve USB adapter communication?
It now detects the end of a message by timing out after the last received byte. This approach reduces split or merged frames from driver buffering and makes captures cleaner on common USB‑serial adapters. [Elektroda, mkmunichmk, post #20678142]
What if my frames exceed 75 bytes?
Increase ReceivedBytesThreshold beyond 75 so longer messages don’t split mid-frame. The author raised the default but noted very long frames may still need higher thresholds. Combine this with an adequate Read Timeout. [Elektroda, mkmunichmk, post #20676456]
Can I contribute issues or suggest new decoders?
Yes. Report issues on GitHub. The codebase is designed for maintainability, and the author invites feedback using samples and the test files to refine decoders. Include captures and device details. [Elektroda, mkmunichmk, post #20677748]
Do I need to change thread priority for better captures?
No. The author reverted to normal thread priority in newer builds. Focus on Read Timeout and threshold tuning instead of thread tweaks for stability. Update first, then adjust serial settings. [Elektroda, mkmunichmk, post #20676456]