I got up at sparrow's fart this morning (6.30) so I could try to understand how, and why DW set up all their radio parameters.   There are literally many dozens of them, and some seem to be about 1024 bytes long, if the indexes are to be believed.
The demo runs at 110Kb, which gives longer range, but we should try to run faster so we can save energy – assuming that the range is adequate at 6.8Mb.   You might think that changing that parameter is easy-peasy, but in fact there seem to be about a dozen others that are contingent, and are all funny numbers like 0x353b015e, etc.
The DW code is for setting them up is really complex, using 2D tables of constants that are hidden deep in the code, and various calculations that are not explained.  So first I look at the manual to see what I would expect a configuration register to contain.  Then I run the code and stop it in the debugger to see what is being set.  Of course it is different from my prediction.  Then I try to make sense of it, during which I start to understand what the manual probably means.  So I'm learning a lot of useless stuff I will take to my grave, but hopefully at the end I will understand how to set this damned thing up to suit our needs.


Leave a Reply