Portapack application development tutorial (eight) pocsag transceiver improvement

The pocsag signal is the bb machine. In fact, the havoc firmware has realized the reception and transmission of pocsag signals. But I found a problem, I cannot use one portapack to send pocsag to another portapack.

When I adjust to the same center frequency, I can see that when the transmitter is transmitting, the signal strength of the receiver will increase. But no data came out.

I originally thought it was an address problem, but after consulting a few friends, I learned that the portapack receiver supports receiving at any address. As long as the ignore address is not checked, the message will be displayed regardless of the address.

Later, after testing by several friends, it was found that the portapack receiver can only support the inverted mode, while the transmitter only supports the normal mode. The two modes cannot communicate with each other, which makes it impossible to use portapack to send to another portapack.

I looked at pocsag's transmit and receive code, it was actually made by fm. When transmitting, the phase is determined based on a bit like 01010, so I plan to add an exclamation mark before the cur_bit in line 62 in the figure below, and it succeeded.

However, there are still several problems. One is that proc_fsk is shared by several apps. If I change other programs like this, it may not work properly.

There is another problem. In fact, I want the opposite. Otherwise, if I change it like this, it will only allow portapack to send messages to each other, but it cannot support all bb machines.

So what I want to do is to switch between positive and negative phases on the interface. Not only the transmitter, but the receiver must also switch between positive and negative.

Later, I processed the pocsag encoding process to keep the modulation part unchanged from the original code, and the main change was ui_pocsag_tx.

I did the receiving part in demodulation, because demodulation is done before decoding. If decoding is done before processing, the preamble cannot be detected. But the selection mode is still on the interface, so I also made the interface to pass the parameters to the demodulation part, which is a bit troublesome.

The code has designed several files, and I uploaded them to my github repo.

Demo video:

https://www.bilibili.com/video/BV1nf4y1m7dn

Guess you like

Origin blog.csdn.net/shukebeta008/article/details/105764084