How is the DECIMATION working?

Hello !

I have been working on the transceiver for quit a while now and I still do not understand how the DECIMATION register’s value is computed in AXRadioLab. So far I was able to receive some packets, but with a poor success/failure ratio. As this parameter is used for the computation of a lot of registers, I am starting to think that the performance I have in packet reception are highly impacted by this value.

On the programming manual it is stated that:
Capture d’écran du 2022-03-14 11-10-33

I have found on this website [NotBlackMagic]( that it could be depending on the Phase filter and it should be set to half the receiver’s BW.

And then, on AXRadioLab I have a third result that does not correlate to the two previous.

It is rather sad (and honestly really annoying) that the documentation provided by OnSemi is really poor on information, regarded the importance of that register.

Can you give us more information on that register’s purpose and how to set it up ?

Thanks in advance


Yes it’s really sad. Because it’s a really good chip.

The reason that onsemi does not release the source code for ax radio lab, is that it is made with LabVIEW and thus no real source code exists. Most of the logic is probably fine tuned by the axsem engineers after years of experience and tinkering with the chip.

Onsemi clearly doesn’t have the experience of the axsem engineers, do a lot of information has been lost in the technology transfer. They are not likely to use any time on small products lower than a few million chips on technical support.

I have worked with the 5043 for over 10 years and I have really struggled hard to reverse engineer the axsem axradiolab.

I have finally, as perhaps the only person in the world, a fully complete library written in C that can accurately calculate all registers to the exact same value os ax radio lab. (Within the fsk modes). I made a ful sweep over all bitrates and bandwidths to verify the library.

And I can say that most of what is in the programming manual does not fit any longer with ax radio lab.

Since this library is part of our product at space inventor i also cannot disclose everything. But the decimation is the firs thing that is calculated and is pretty simplesimple

rx_bw = (baudrate * 3) / 2;

int decimation = floor(F_XTAL / (16.0 * rx_bw * 5));

if (decimation == 0)
decimation = 1;
if (decimation > 0x7F)
decimation = 0x7F;

Notice this is not documented anywhere but found by weeks and months of reverse engineering.


Hello Johan !

Thanks a lot for your answer. I will try it on my side.


Thanks to Johan for sharing his experience with the AX5043. But in regards to Onsemi’s poor support on this product,
for me it is not justified at all, because AX5043 is not just an old legacy of AXSEM, but the heart of other recent products, such as AXM0F343, AXM0F243, AX8052F143.