Is your feature request related to a problem? Please describe.
currently everything is hardcoded and in just two files which can be very annoying when for example european ducks should use different RF parameters.
Describe the solution you'd like
i would like to move the currently hardcoded configurables out of the cdp library code.
as step one, just replace them all by CDP_something defines that go into a separate cdp-config.h in the same dir.
while this is not a longterm-best solution, it is one that is really low effort and unlikely to break anything and already solves the "i commited the wrong frequency/pinout by accident" issue.
this also bundles all configurables in one place which is a good step towards making them actualy configurable.
next step could be to move some of them into even more separate .h files to keep pinout specs for different boards or sensor loadouts or deployment-specific wifi setups in one place each.
this also makes it more obvious which parts could be useful to have runtime-configurable.
Describe alternatives you've considered
there is certainly potential to use an "if xml is not solving your problem, you are not using enough of it" approach.
but i dont see any way to make it as low-effort, gradual and "as needed" scalable.
the define-and-refine way also leaves all options open for runtime-config-storage later, so we can see what works best when we get there.
Additional context
candidates, grouped by "dynamic range":
this change will be all over the cdp codebase for the first step, so will have maximal merge-conflict potential there. otoh, that first step is 1-3 hours max.
i would like to get an OK for this from @nfeuer and suggest we coordinate a suitable timeslot (where no one else has major changes open) on slack.
after that first step, the potential for merge conflicts is greatly reduced, so any additional steps (like adding the definition for another board) should require almost no coordination.