Project update 6 of 11
Microchip’s AT86RF215 is a multi-band radio transceiver with dual Radio RF Front-ends—one sub-GHz and one at 2.4 GHz—that cover nearly all of the unlicensed IoT bands, making it ideal for all-in-one IoT solutions. iotSDR’s dual AT86RF215 chips open the door to next generation, multi-mode, multi-network IoT solutions in which a single gateway can host multiple IoT networks independently on different bands at the same time and in the same space. Both RF chips can be configured for I/Q streaming while baseband modulations are carried out on the FPGA side of the ZYNQ SoC. That modulation might take the form of FSK, O-QPSK, or one of the popular modulation schemes (such as Chirp Spread Spectrum) that run at the heart of LoRa® networks. Other IoT network solutions can be designed through the use of the IEEE-802.15.4 PHY cores built into the AT86RF215 chip.
(You can download a high-resolution version of the above schematic here)
Several of the applications we’ve been testing and developing rely on the feature set of the transceiver’s built-in baseband cores. One example is our Chat* application, which uses the radio chip’s IEEE-802.15.4 PHY cores. A high-level python driver running in Linux user-space makes it easier for a researcher or developer to play around with the AT86RF215 features and to rapidly test their own use cases.
Another application involves GPS Receiver NMEA Forwarding, in which the transceiver uses the IEEE-802.15.4 PHY cores for over-the-air data communication while the FPGA handles any necessary real-time processing tasks. (The GPS receiver can be interfaced with one of iotSDR’s PMODs.) This application uses UART to send NMEA strings to a Linux user-space running running on the processing side of the ZYNQ SoC.
The AT86RF215 provides sub-GHz and 2.4 GHz I/Q streams simultaneously, with sample rates configurable up to 4 MSPS, thereby allowing 4 MHz of bandwidth to be monitored. Leveraging this simultaneous reception, one possible application is to use the I/Q samples received at 2.4 GHz for ranging and localization, while using the Sub-GHz channel for communication (or vice versa). With some help from Linux and a PYNQ Server implementation, this functionality can be achieved with high-level python APIs that allow I/Q samples to be received or generated by the Linux user-space with the ease of a Jupyter Notebook.
For more information, have a look at the Board Support and Documentation sections of our GitHub repository.