As mentioned in Part 6 I got my RF transmitter working and spent the rest of that day (and the next) sending ‘random’ bytes of data at different Baud rates to the transmitter. Some were interesting to listen to on my scanner but there was not even the remotest flicker of lights on the Xyloband (apart that is from the initial flash when power was applied). I started to wonder what to try out next and then started to doubt I’d picked the correct frequency. The bandwidths are small and well controlled in the SRD band so how about if it was 869.2MHz rather than 869.5MHz ?
However, ayelix kindly mentioned the receiver within the Xyloband was the Si4362 and looking at that datasheet confirmed the odd numbers that appeared on my Xyloband’s IC. That made me think….’Why not grab the SPI setup data that is sent from the Atmel microcontroller to the Si4362?’. I’d be able to compare SPI bytes with those on the Si4362 datasheet and hopefully determine some key parameters. I’d then be able to set and forget these in my Xyloband Transmitter project.
So my breadboard just got a little bit more crowded as “SPI Spy” was born. It monitors the SPI SCLK and SDO from a microcontroller and grabs each byte up to a maximum of 512. I can then scroll though the bytes looking at address and contents. There are five buttons: Rewind (to first byte of data), Back One, Forward One, Exit/Reset and Start/Stop. There’s a CD4011 CMOS logic gate to take the 3.3v inputs up to 5v. Why? If you’ve read my intro blog page I mention I’ve little spare cash. Well I only have one 74HCT573 to act as a buffer on the Xyloband project in order to allow me to run the LCD at 5v and the PIC16F1789 and MRF89XAM8A at 3.3v. Therefore the SPI Spy had to run at 5v but I needed to boost the SCLK and SDO being monitored. Luckily I had a CD4011….maybe I’ll ask Texas Instruments nicely for some samples later in the year.
I’ve grabbed the SPI data successfully from my Xyloband/MRF89XAM8A module and it almost makes sense. I need to spend just a little longer tweaking this as I believe I’m currently missing a byte as the C code takes too long to run and missing the SPI event.
So, that’s where I’m at currently. I need to:
- Be 100% confident in the SPI Spy.
- Carefully solder two tag wires to the Xyloband’s RF Receiver IC.
- Run SPI Spy and interpret from the datasheet.
- Setup my MRF89XAM8A module accordingly.
- Then play with the variables that are left.
Things I don’t know:
- What colours can a Xyloband do? Red,Green, Blue, White, Yellow, Cyan or every hue/saturation? e.g. Is each RGB element assigned its own byte.
- Do different Xylobands (at the same concert) give different colours. If so perhaps there are several Tx codes. e,g, all bands in group A go to this colour, all bands in group B go to this colour etc.
I’m still assuming the data is a one way push, no handshaking, no clock. Just an asynchronous stream of bytes….perhaps eight in total.
When I get this to work I’ll spend a while returning the ‘technical debt’ on my C code and the upload the source to my Github account so other people can copy/fork the code for their own projects. [Technical Debt is the term I use to professionally describe messy code, eg I owe it some more attention !]