CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR
 
 
 
 
 
 
Go to file
meexmachina 2b3cefbea5 readme update 2021-09-07 13:58:33 +03:00
.vscode modem time synchronization 2021-09-02 00:50:13 +03:00
build starting soapy!! :) 2021-09-05 10:21:08 +03:00
docs backup 2021-07-13 14:36:54 +03:00
firmware bug fix spi + smi integration (firmware) 2021-09-06 14:43:01 +03:00
scripts cleaned up and added licenses 2021-06-18 15:45:15 +03:00
software readme update 2021-09-07 13:58:33 +03:00
.gitignore
README.md readme update 2021-09-07 13:58:33 +03:00
_config.yml
goto_lite_src_build.sh added lvds rx code 2021-07-07 15:29:32 +03:00
kitspace.yml Add kitspace.yml 2021-06-20 15:49:36 +01:00

README.md

CaribouLite

CaribouLite is an affordable, educational, open-source SDR platform that is also a HAT for the Raspberry-Pi family of boards (40-pin versions only). It is built for makers, hackers, and researchers and was designed to complement the current SDR (Software Defined Radio) eco-systems offering with a scalable, standalone dual-channel software-defined radio.

CaribouLite R2
CaribouLite Rev#2 SDR mounted on a RPI-Zero
CaribouLite R1 CaribouLite Connectors
CaribouLite Rev#1 - the prototype version CaribouLite Rev#2 - connectors view

Unlike many other HAT projects, CaribouLite utilizes the SMI (Secondary Memory Interface) present on all the 40-pin RPI versions. This interface is not thoroughly documented by both Raspberry-Pi documentation and Broadcomm's reference manuals. An amazing work done by Lean2 (code in git repo) in hacking this interface has contributed to CaribouLite's technical feasibility. A deeper overview of the interface is provided by G.J. Van Loo, 2017 Secondary_Memory_Interface.pdf. The SMI interface allows exchanging up to ~500Mbit/s between the RPI and the HAT, and yet, the results vary between the different versions of RPI. The results further depend on the specific RPI version's DMA speeds.

The SMI interface can be accessed from the user space Linux applications as shown in Lean2, but it also provides a neat minimal charachter device interface in the /dev directory using the open, close, write, read, and ioctl system calls. More on this interesting interface in the designated readme file.

The SMI interface is used as memory interface that pipes the I/Q complex samples from the CaribouLite to the RPI Broadcomm SoC (on RX) and from the Broadcomm SoC to the board (on TX). A single ADC sample contains 13 bit (I) and 13 bit (Q), that are streamed with a maximal sample rate of 4 MSPS from the AT86RF215 IC to an FPGA. The FPGA emulated SMI compliant memory interface for the RPI SoC. Each RF channel (CaribouLite has two of them) requires 4 bytes (samples padded to 32-bit) per sample (and I/Q pair) => 16 MBytes/sec which are 128 MBits/sec. In addition to the 13 bit for each of I/Q, the Tx/Rx streams of data contain flow control and configuration bits. The modem (AT86RF215) IC by Microchip contains two RX I/Q outputs from its ADCs (one for each physical channel - sub-1GHz and 2.4GHz), and a single TX I/Q intput directed to the DACs.

CaribouLite has been submitted to CrowdSupply and has been pre-launched! Visit our page

Top View
Cariboulite /w RPI Zero, two channels occupied

Hardware Revisions

The board first prototyping (Red) revision (REV1) has been produced and tested to meet our vision on the board's capabilities. This revision was used to test its RF parts, the digital parts, and to develop its firmware and software support over the RPI. The second revision was then designed to further refine the design as described below:

  1. Image rejection filtering improvement - U10 and U12 (HPF & LPF) - have been replaced by integrated LTCC filters by MiniCircuits
  2. Removing FPGA flash - redundant given the fact that the the RPI configures the FPGA in <1sec over SPI.
  3. Board layout improvements and overlays (silkscreen) beautification (including logo)
  4. A single system level 3.3V power (while the FPGA still receives 2.5V and 1.2V for its core). A linear regulator (rather than a switching DC-DC) was used to reduce conducted (power and ground) noise levels.
  5. More detailed changes in the schematics.

In summary, in CaribouLite-Rev#2 PCB design has been thoroughly re-thought to meet its educational needs. The RF path has been annotated with icons to ease the orientation in the schematics sheets, friendly silk writing was added describing system's components by their functionality rather than logical descriptors, and more.

Top View
Top & Bottom view, Production Rev2

Deeper project details will be published shortly in our Wiki pages.

Specifications

RF Channels:

  • Sub-1GHz: 389.5-510 MHz / 779-1020 MHz
  • Wide tuning channel: 30 MHz - 6 GHz (excluding 2398.5-2400 MHz and 2483.5-2485 MHz)
spectra
Applicable spectra, S1G - sub-1GHz, WB - Wide tuning channel
Note: The gaps are defined by the design constraints of the system and may not exist in real-life hardware. Actual modem synthesizer outputs test show wider margins at room temperature than those written in the datatsheet, but, as noted by Microchip, performance may suffer.

FPGA specifications:

  • 160 LABs / CLBs
  • 1280 Logic Elements / Cells
  • 65536 Total RAM bits
  • 67 I/Os, Temp: -40-100 degC

Applicable RPI models: RPI_1(B+/A+), RPI_2B, RPI_Zero(Zero/W/WH), RPI_3(B/A+/B+), RPI_4B

Parameter Sub-1GHz Wide Tuning Channel
Frequency tuner range 389.5-510 MHz / 779-1020 MHz 30 MHz - 6 GHz (excluding 2398.5-2400 MHz and 2483.5-2485 MHz)
Sample rate (ADC / DAC) 4 MSPS 4 MSPS
Analog bandwidth (Rx / Tx) <4 MHz <4 MHz
Max Transmit power 14.5 dBm >14 dBm @ 30-2400 MHz, >13 dBm @ 2400-6000 MHz
Receive noise figure <4.5 dB <4.5 dB @ 30-3500 MHz, <8 dB @ 3500-6000 MHz

Note: (1) Feature comparison table with other SDR devices will be published shortly (2) Some of the above specifications are simulated rather than tested (3) Analog bandwidth controlled by the modem

Board Layout

2d_nums

Description:

  1. Raspberry-Pi 40-pin connector
  2. A modem - AT86RF215
  3. TCXO - 0.5 ppm @ 26 MHz
  4. FPGA - ICE40LP series from Lattice Semi.
  5. A frequency mixer with integrated synthesizer - RFFC5072
  6. External reference clock connector (may be used to acheive coherence between many CaribouLite units.
  7. A PMOD connector for FPGA expantion
  8. RPI configuration EEPROM (following RPI-HAT specifications)
  9. RF front-end - switched, amplifiers, and filters.
  10. Reset switch
  11. User custom switch + RPI HAT EEPROM reconfiguration (write-enable) switch
  12. Wide band SMA connector
  13. Sub 1-GHz SMA connector

Disclaimer

CaribouLite is a test equipment for RF systems. You are responsible for using your CaribouLite legally.

Definitions: THE SUBJECT CONTENT: all files, software, instructions, information, ideas and knowledge located in this git repository.

No Warranty: THE SUBJECT CONTENTS ARE PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT CONTENTS WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT CONTENTS WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT CONTENTS. FURTHER, THE REPOSITORY OWNERS AND CONTRIBUTORS DISCLAIM ALL WARRANTIES AND LIABILITIES REGARDING THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE, AND DISTRIBUTE IT "AS IS."

Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS AGAINST THE REPOSITORY OWNERS AND CONTRIBUTORS, THEIR CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF THE SUBJECT CONTENTS RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT CONTENTS, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE REPOSITORY OWNERS AND CONTRIBUTORS, THEIR CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.