I'm considering using the information at the following link to try and build a homebrew replacement for the receiver dongle of the Wavebird wireless controller for the Nintendo Gamecube:
The controller works by encoding state data for the buttons and axes, then sending it via FM/FSK in the 2.4GHz band. The receiver then demodulates, decodes, and pipes the data into the controller port.
I rushed off and bought an nRF24L01 module, but now I'm not sure it does what I want. The wavebird's FSK/FM protocol looks to be proprietary, and I think, from reading more, the nRF24L01 doesn't support such low level control - just has a few of it's own protocols built in.
Am I right here? Is the nRF24L01 not right for the task? Otherwise, any pointers on what I should use instead? And generally, is this project actually possible?
No, the nRF24L01 will not send or receive what the WaveBird does. the documentation you linked to has: " The 2800 chips, transmitted at a rate of 1,344,000 chips/sec, where a '+' chip is +500KHz off the center frequency, and a '-' chip is -500KHz."
That is totally outside the capability of the nRf devices, which transmits/receives 32 byte messages with acknowledgement.
@Paul_KD7HB That depends what you mean by engineering skills... My software engineering skills are up there - I can follow that specification without too much trouble. My electrical engineering skills... not so much. I have to google a lot, and ask questions in forums (hence why I'm here).
@jremington Thank you for your advice. However, I might need you to treat me like an idiot in this area! It's all well to say "it doesn't matter what unit you use", but I don't know how to tell if a given device can produce the digital signals I want to read - I don't know where to begin! Can you recommend any specific devices?
Sorry, I feel maybe I wasn't clear enough in my first post. My question is:
What unit could I buy, that I can connect to an arduino, that will receive signals from the wavebird, and on which I could implement the protocol in that specification?
From the description, the Wavebird RF transmission protocol appears to be proprietary, in which case your only option to receive and decode Wavebird transmissions is a Wavebird chip.
Otherwise you have to develop special hardware to substitute for the commercial chip. Or use an SDR like the author of the Github article.
Ahhh, I seee... So the protocol is always built into whatever radio transceiver you buy. I couldn't buy a radio that pipes the plain signal into the arduino, and then write the protocol code to demodulate it... I guess for one thing, the arduino probably isn't fast enough.
I understand better what Paul was getting at as well now. Damn, that's a shame! My engineering skills definitely aren't up to this!
I think that is generally true at such high frequencies, but other types of radios are more flexible.
For example there are several radio modules in the sub GHz bands that allow for various combinations of amplitude and/or frequency modulation.
Manufacturers don't want people to be able to easily duplicate their products, so it is common to develop proprietary protocols and custom chips to implement them. In the Wavebird case, cheaply (it appears).