Hi,
What I am trying to create is a sniffer, a device that intercepts the radio communication between two devices and displays the hex values on a serial monitor. This would greatly facilitate debugging for devices using the Si4463 radio chip.
How do I "know" that these hex data should be on the SPI bus? What do they represent?
Since the hex values are printed on the transceiver.
What device uses the Si446x chip?
It's a home automation gateway that measures the temperature of outdoor plants, etc.
Does this device monitor communication between other devices, or is it one of the communication endpoints?
The system includes 3 transmitters and 1 receiver, which records and stores the received data.
What do the other devices communicate?
They all communicate via radio.
What RF communication protocol is used between the devices?
2 FSK.
Technical Details and Steps:
Current Configuration:
I have a transmitter using a FG32 radio chip from Silicon Labs to send radio messages to a receiver using the Si4463 chip.
What I have done so far:
To create a sniffer that intercepts the communications between the transmitter and receiver, I need certain parameters (registers and their configuration) to replicate the radio settings. For this, I used a Saleae logic analyzer to intercept the data sent and received between the FG32 and Si4463 over the SPI bus to the microcontroller. I connected to the SPI bus, powered the receiver, and recorded all commands.
What needs to be done now:
Extract all the commands, check them in the datasheet, and identify only the necessary registers, such as: the frequency used (I know it's 868 MHz), modulation (I suspect it's 2FSK), synchronization (sync word), and other essential parameters.
Write code that uses these registers and configures a Si4463 Breakout module (e.g., Si4463 Breakout) connected to an Arduino (or similar) to intercept and display the data sent from the transmitter to the receiver.
Current Issue:
The transmitted and received data seems to be encrypted, but I don’t need to decrypt it – I just want to visualize the communication. Currently, I use a logic analyzer to see the communication, but it is extremely difficult to connect to the SPI bus because the Si4463 is a 4x4 mm radio module and there are no other contact points besides its pins. A sniffer would help me enormously to intercept and debug communications in real time.
Functional Example:
I already have a CC1101 module connected to an Arduino, which does exactly what I described above: it intercepts the "over-the-air" communication between two devices using CC1101 and displays the necessary information on the serial monitor. I would like the same thing for Si4463.
Final Objective:
I need to decode the SPI communication to create a sniffer based on the Si4463 registers, then develop code that can be used with a Si4463 Breakout (or something similar) connected to an Arduino or an equivalent device. This should display the communication between the two devices on the serial monitor.