By this point I am getting more realistic about my final project, and tried to adapt this week's assignment accordingly. I had been researching this already, and was already quite interested in the nRF24L01 transceiver modules. I got some great advice from Charles Fracchia and NovySan this week regarding the capabilities of these modules. It seemed like the right choice for my final, though it would require quite some coordination.
TTL-232R-3V3 TTL-232R-5VAs far as I understood, that's all there was to it. But it turns out it's not so simple, as after much investigation and failed diagnoses, I discovered that my FTDI cable was 3.3V VCC but 5V logic. I had purchased my own FTDI cable from Amazon. The vendor was called "bluesky", and looking back for details, I could't find anything about the company, or even a part number of the product I ordered. So that's all pretty suspicious, and I remember banter in the class about "knock-off" or "fake" FTDIs, but what does that actually mean? I was discussing this issue with NovySan in the lab, and when we couldn't find any conclusive answers, he asked Brian Mayton. I've pasted his answer below, as this should clear up any confusion.
"All FTDI cables originally put out 5V on the VCC line. The idea is that you might want to power your device from the VCC line, but it would be hard to include a regulator inside the cable end that could handle the full 500mA that USB can provide. So, the FTDI cable designers wired the VCC pin *directly* to the pin on the USB port, so you get on that pin whatever voltage the USB port is putting out.
Sparkfun and a few other vendors messed up that convention when they made their own FTDI adapter boards, and made the 3.3V I/O boards also have a 3.3V VCC pin. Some variants have a dedicated 3.3V regulator for this, and others use a 3.3V regulator that's built into the FTDI chip itself. The built-in regulator is not really intended to supply very much current to external circuitry (it's meant to just run the internal stuff in the FTDI chip itself). But you can pull 20-30mA off of it which is sometimes enough to run a microcontroller.
Since then, there are so many versions of FTDI cables and adapter boards (both authorized ones using real FTDI chips, and counterfeit knockoffs) that are wired in so many different ways that it's hard to tell what you have unless you are buying direct from FTDI or a very reputable vendor like Digikey (even places like Sparkfun sometimes source stuff from weird places).
The 5V on the VCC pin is really the best way to go, since then you get access to the full 2.5W from the USB port and can regulate it to whatever you want (and do so outside of the cable where you can actually dissipate a little bit of heat if you need to) but it's slightly less convenient because you have to include the regulator if you're making a 3.3V board.
In general, you just need to test the cables with a multimeter to see what you have."
RF24/examples/GettingStarted/Instead, I saw all zeroes. Apparently from the tutorial, this basically can only mean that there is a bad connection somewhere. I refused to believe it at first, but finally realize I had two wires switched. I fixed that and then the COM port displayed the above information as was expected.
ROLE: Pong back
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0xf0f0f0f0d2
RX_PW_P0-6 = 0x08 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01
CRC Length = 16 bits
PA Power = PA_HIGH