necAnalyzer is an online NEC infrared remote control decoding and analysis tool. It analyzes the received level data to perform basic infrared decoding and graphically display the infrared level signals. It also compares the data with the NEC protocol standard definition to assist in analyzing the quality of infrared remote control signals.
How to use the tool:
1. Each data bit is enclosed in curly braces
The first position represents the level: 0 or 1
The second position represents the duration of the level in microseconds (us)
2. The standard 0038 reception header defaults to a high level output, and outputs a low level when a signal is received. The NEC protocol start bit is 9ms, so the standard start bit should be: {0:9000}
3. Data explanation
PS.
Data can be automatically uploaded and parsed via USB or network. If you're up for it, you can totally use both at the same time!
USB Upload
Connect the device to your computer, click "Connect Device," and select the appropriate port.
* If the device is not found, it is recommended to check the device manager to ensure the drivers are installed correctly. Common USB to serial converter drivers include: CH340/CH341, CP210x.
Network Upload
The solution is based on WebSocket implementation. Due to server latency and bandwidth limitations, you currently need to set up your own server:
Server Side
* Requires a Node.js environment, tested version v20.15.1.
Web Client
USB-Serial Communication
WiFi-webSocket Communication
Flashing
You can use the Flash Download Tool or ESP Launchpad for flashing.
Serial Communication
Network Communication
The client is identified as necAnalyzerClient, and the terminal device is identified as
necAnalyzer.
You can customize the connection identifier for the terminal device on the server side.
There are already numerous explanations about the NEC protocol online, so I won't repeat them here. No "official documentation" was found, but you can refer to SB-Projects - IR - NEC Protocol for more information.
An interesting point is that in the Extended NEC protocol found in the materials, the user code inverse is also included in the user code, expanding the user code from 8 bits to 16 bits. The instruction data segment is still parsed using 8 bits + inverse checksum, while the IDF example routine parses the data code as 16 bits.
I don't get it, I really don't. I found out about the SB-Projects website through their example routines!
To prevent misunderstandings among beginners, the display of the 16-bit code
will temporarily follow the IDF example routine, but...
Surprise, I didn't plan on parsing the extended protocol, so if the inverse checksum doesn't
pass, the parsing result will not be displayed and a prompt will be given, but the logic
waveform will be shown. You're on your own with that.