ezradios check for every point in that list.
they can be configured only with their WDS application, god forbid they provide the algorythm to calculate the radio parameters
WDS has three output modes:
-Header file with many defines containing all sorts of binary blobs, space separated hex numbers
-Sample project for their IDE which by the way uses SDCC (puke) and assumes you are using a specific 8bitter from them
-Sends the confiuration directly to the demoboard in case one is connected
The communication protocol is not documented. you only know it's SPI, no idea on the mode or how it works so you need to decipher the sample project, which contains only a handful of comments for the useless bits like "now i'm turning on a LED" and the next function is something akin to "SetLedOn(LED1)"
Well, actually one of the datasheets for one of the parts in the ezradio line briefly mention how to communicate with the radio so how to send requests and read data, which i would never figure out in a million years and gives some hints on an initialization sequence, which i couldn't figure out in on my own.
Oh, and the information is scattered across several datasheets, app notes and reference manuals some of which won't be found in the product page nor mentioned in other datasheets with thei identification code code so you know it's the right one.
But then there is this other archive which contains the programming interface in an htm format. doxygen!!!!! but at least formatted a bit to not look like an aftertought and THAT's probably what you need to understand the various commands, what they expect and what the device responds, once you figure out how to communicate
Back to the initialization sequence, only found in the sample project: remember that we have an array of hundreds of space separated hex? how the hell am i supposed to put them in an array? but with a macro of course. containing macros. containing macros. I think four layer of macros unpack the patch because of course there was some formatting to do, every nth bythe is the lenght of the next message, same for the various configuration parameters. It took me a whole day to decypher the macros and port everything to platform independent C because their ancient IDE doesn't do expansion nor symbol navigation and also the funcions, I HATE SDCC with all my heart.
Also, undocumented gotchas to put the radio into sleep, how to achieve low power.
Once you get over all this the radio itself is pretty nice to use.. well would be better if it didn't have an extremely retarded QFN with 4 LGA pads on the corners containing both power and essential signals. why, oh why
but they're still the cheapest radio chips (by a lot!) that fit my requirements
At the time i was tempted to try the radio and bluetooth enabled mcus from them to try and reduce costs but i was put off by the lack of documentation