All Projects → cariboulabs → cariboulite

cariboulabs / cariboulite

Licence: other
CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR

Programming Languages

c
50402 projects - #5 most used programming language
AGS Script
88 projects
C++
36643 projects - #6 most used programming language
CMake
9771 projects
Verilog
626 projects
Makefile
30231 projects

Projects that are alternatives of or similar to cariboulite

iceskate
A low cost FPGA development board for absolute newbies
Stars: ✭ 15 (-98.09%)
Mutual labels:  fpga, icestorm, ice40
spu32
Small Processing Unit 32: A compact RV32I CPU written in Verilog
Stars: ✭ 51 (-93.5%)
Mutual labels:  fpga, icestorm, ice40
Hackrf
low cost software radio platform
Stars: ✭ 4,286 (+445.99%)
Mutual labels:  radio, sdr, rf
Virgo
📡 Virgo: A Versatile Spectrometer for Radio Astronomy
Stars: ✭ 85 (-89.17%)
Mutual labels:  radio, sdr, rf
UA3REO-DDC-Transceiver
DDC/DUC SDR Tranceiver project
Stars: ✭ 93 (-88.15%)
Mutual labels:  fpga, sdr, rf
opencv3-setup
Raspberry Pi whiptail Menu driven Easy Install and Compile of opencv3 python from source files.
Stars: ✭ 47 (-94.01%)
Mutual labels:  rpi, pi, raspberry
Red Pitaya Notes
Notes on the Red Pitaya Open Source Instrument
Stars: ✭ 205 (-73.89%)
Mutual labels:  radio, fpga, sdr
HyperBian
Hyperion pre installed on Raspberry Pi OS Lite
Stars: ✭ 192 (-75.54%)
Mutual labels:  rpi, pi, raspberry
verifla
Fork of OpenVeriFla - FPGA debugging logic analyzer to use with your designs - examples (so far) for ice40/IceStorm
Stars: ✭ 21 (-97.32%)
Mutual labels:  fpga, icestorm, ice40
gba-remote-play
Stream Raspberry Pi games to a GBA via Link Cable
Stars: ✭ 356 (-54.65%)
Mutual labels:  rpi, pi, raspberry
risc8
Mostly AVR compatible FPGA soft-core
Stars: ✭ 19 (-97.58%)
Mutual labels:  fpga, yosys, ice40
shapool-core
FPGA core for SHA256d mining targeting Lattice iCE40 devices.
Stars: ✭ 19 (-97.58%)
Mutual labels:  fpga, icestorm, ice40
quince
a 2.4 GHz SDR neighbor using 1 bit ADC
Stars: ✭ 24 (-96.94%)
Mutual labels:  radio, sdr
102shows
Raspberry Pi + APA102 + MQTT + 102shows = LED awesomeness!
Stars: ✭ 15 (-98.09%)
Mutual labels:  pi, raspberry
RAK831-Zero
Pi Zero RAK831 Adapter board
Stars: ✭ 98 (-87.52%)
Mutual labels:  pi, raspberry
iRadio
Ein Softwarebaukasten für den Aufbau/Umbau von Radios auf Raspberry Pi Basis
Stars: ✭ 15 (-98.09%)
Mutual labels:  radio, raspberry
RTLion
Multipurpose RTL-SDR Framework for RTL2832 based DVB-T receivers
Stars: ✭ 88 (-88.79%)
Mutual labels:  radio, sdr
nfc-laboratory
NFC signal and protocol analyzer using SDR receiver
Stars: ✭ 41 (-94.78%)
Mutual labels:  radio, sdr
stenogotchi
Portable stenography using Plover and bluetooth keyboard emulation on a Raspberry Pi Zero W
Stars: ✭ 71 (-90.96%)
Mutual labels:  pi, raspberry
gateware
A collection of little open source FPGA hobby projects
Stars: ✭ 38 (-95.16%)
Mutual labels:  fpga, ice40

CaribouLite

CaribouLite is an affordable, educational, open-source SDR evaluation platform and 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 has been submitted to CrowdSupply and has been pre-launched! Visit our page

Open source hardware association certificate This project has been certified by OSHWA
CaribouLite R2
CaribouLite R2.5 SDR mounted on a RPI-Zero

Getting Started & Installation

Use the following steps to install the CaribouLite on your choice of RPI board

  1. Mount the CaribouLite on a un-powered RPI device using the 40-pin header.
  2. Power the RPI device, wait for it to finish boot sequence.
  3. Clone this repository into a local directory of your choise (in this case ~/projects)
mkdir ~/projects
cd ~/projects
git clone https://github.com/cariboulabs/cariboulite
cd cariboulite
  1. Depending on whether you run on a headless (not monitor nor keyboard / mouse) system or not use the following setup command:

    sudo setup.sh gui
    # or
    sudo setup.sh
    

    The setup script requires internet connection and it follows the following automatic steps: I. System type discovery and dependency check II. Installation of the not-found dependencies III. CaribouLite code compilation and installation IV. EEPROM setup - boot time module's loading and device tree definition.

Following these steps, the RPI has to be rebooted before starting using it as an SDR.

To compile the API library and SoapySDR API from code please click here

SMI Interface

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 ~500 Mbit/s (depending on the FPGA, data-bus width, etc.) 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 Broadcomm also provided 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. This device driver needs to be loaded using modprobe.

More information on this interface can be found here (HW side) and here (SW side).

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.

CaribouLite R1 CaribouLite Connectors
CaribouLite Rev1 - the prototype version CaribouLite Rev2.5 - Production Revision

The second revision (REV2) - White - 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 with much better out-of-band rejection than the former ones.
  2. Removing FPGA flash - redundant given the fact that the the RPI configures the FPGA in <1sec over SPI. Even if we have a whole library of custom made FPGA firmware files, switching between them is as simple and fast as a single linux command.
  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. Top and bottom EMI sheilding option - the EMI/RFI shield design models are provided in the 3d directory
  6. More detailed changes in the schematics.

In summary, in CaribouLite-Rev2.5 PCB design has been thoroughly re-thought to meet its educational needs with performance in mind. 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 View
Top and Bottom views of CaribouLite Rev2.4 (pre-production)
Top View Top View
Top View Top View
Top and Bottom views of CaribouLite Rev2.5 Top and Bottom views of CaribouLite Rev2.5 with EMI/RFI shields

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) 2.5 MHz 2.5 MHz
Max Transmit power 14 dBm >10 dBm @ 30-2400 MHz, >5 dBm @ 2400-6000 MHz
Receive noise figure <5 dB <6 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 (4) The ISM version of the board doesn't contain the wide-range of frequencies (30-6000 MHz) and contains the native capabilities of the Modem IC.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].