SDR integration for OnSemi AX5043

Hi all,

First of all, thank to all the community, I do not usually to write in this forum, but I read a lot and catch a lot of information:D

But thos time I’m very stucked on this problem.
During the last week I’ve tried to develop an SDR interface to the AX5043 RF transceiver chip but I do not understand how the FEC option + interleaving works.

If someone had any experience on that I will really glad to catch some information.

Thanks in advance,


Hi all again,

Anyone can halp me? maybe the topic is in the wrong section?

Thank you again,


Your question is too generic. Have you done the mdoulation/demodulation part already? Have you success without FEC and now you want to continue with FEC?

Hi surligas,

yes, I have already done the mod and demod part and without FEC all work fine. Exactly, now I would like to introduce the FEC correction.

The problem is that from the program manual of the chip I do not understand how it works, even if it seems quite easy.

Thanks again,


I would suggest to start without interleaving fist and make sure that your FEC is ok. Encoding should be trivial. For the decoding you will have to use the Viterbi. Check for the corresponding block in GNU Radio. There are many examples.

The good thing with the convolutional codes is that they are stream oriented, so eventually even if you do not know the exact start of the frame or the initial state, they should converge. Try to send from the IC a long known pattern (for the first steps it is convenient to fill the frame with a random byte) and if you have selected the proper states for the decoder, eventually you will start seeing a good portion of that pattern. Some bits maybe off at the beginning or the end of your frame, but we can discuss later how you can deal with them.

Hi Surligas,

After some time spent on it, finally I found something that works.
I have recorded a long pattern of from the IC composed as follow:

20 HDLC flag (0x7E) + 10 bytes of random data set from the Programming User interface of the chip. Then I enabled the FEC correction.

Analysing the acquisition I found a repetitive pattern, after some initial bytes, that I think it represents the HDLC flag convolved. The message recorded is exactly doubled in time respect the same message without the FEC enabled-

The interesting part is that, with gnuradio native blocks for convolutional decoder definition I can’t retrieve the initial sequence, I think that it can not work with a constraint length of 5, but nevermind, I built my own convolutional decoder and it works.

My current gnuradio version is the 3.7.9. Do you have any council for me regarding the native Convolutional decoding block from gnuradio and why should it not work with these parameters?

After that, I have enabled the Interleaving option and made another recording but this time even if the initial sequence is still repetitive it does not any sense for me :frowning:

Can you please give me some information about the interleaving?

Thank again


This is normal. You use a convolutional code of 1/2. For every input bits, two are generated.

Can you post your flowgraph please?

Here my flowgraph!

1 Like

Seems ok, but I need more info:

  • The source file
  • Sampling rate of the source file
  • baudrate of the transmitter

The source file is 20 HDLC flag (0x7E) + 10 bytes of random data set from the Programming User interface of the chip where FEC correction is enabled.

The sampling rate of the recorded file, through GRC, is 96kHz.

The baudrate of the transmitter is set to 1200bps

In addition this is the images that I used to program the IC

1 Like

I have seen Gomspace use this IC (if it can help) @EA4GPZ has written many decoders for satellites.

These are the Mode 5 and Mode 6 also supported at gr-satnogs starting from v2.1.1

However, @francescstig tries to use the IC internal capabilities. The FEC on these modes are completely different.

1 Like