
FE 4CH
osqzss/PocketSDR
The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands.

The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands.
FE 8CH is an open-source printed circuit board by osqzss, from the osqzss/PocketSDR repository on GitHub. It is a 4-layer board of 70 × 92.8 mm with 238 parts on 247 nets, routed with 2,964 tracks and 1,445 vias.
It is built around the CYUSB3014-BZXC, MAX2771ETI+ and 74AVC9112DCH, with the 74FCT3807APYG, AT24CM01-XHM-T and PI3USB302-AZBEX among its other parts. Its parts include 140 capacitors, 27 resistors, 16 ICs, 16 inductors and 13 connectors. It belongs with the radio and wireless boards of this library.
Pocket SDR is an open-source Global Navigation Satellite System (GNSS) receiver based on software-defined radio (SDR) technology. It consists of RF frontend devices named Pocket SDR FE, utilities for these devices, and GNSS SDR applications (APs) written in Python, C, and C++. It supports almost all signals for GPS, GLONASS, Galileo, QZSS, BeiDou, NavIC, and SBAS.
The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands. Each RF channel of the Pocket SDR FE device provides IF (intermediate-frequency) bandwidth of up to 36 MHz. The ADC sampling rate can be configured up to 32 Msps (FE 2CH) or 48 Msps (FE 4CH and FE 8CH).
Pocket SDR also includes utility programs to configure the Pocket SDR FE devices, capture, and dump digitized IF data. Additionally, Pocket SDR provides GNSS SDR APs to display the PSD (power spectrum density) of captured IF data, search for GNSS signals, track these signals, decode navigation data, and generate PVT (position, velocity, and time) solutions. These utilities and APs are compatible with Windows, Linux, Raspberry Pi OS, macOS, and other environments.
The supported GNSS signals by Pocket SDR are as follows. For details on these signals and Pocket SDR signal IDs, refer to GNSS Signals.
These utilities and APs are written in Python, C, and C++ in a compact and modular way, making them easy to modify for adding custom algorithms.
In addition to the Pocket SDR FE devices, Pocket SDR supports third-party SDR hardware (USRP, LimeSDR, bladRF, PlutoSDR, RTL-SDR, and so on) via SoapySDR. See SoapySDR Device Notes for verified devices, installation notes, and device-specific caveats.
Pocket SDR FE 2CH (v.2.0 and v.2.3), FE 4CH
Pocket SDR FE 8CH (2-RF-inputs and 8-RF-inputs)
GUI-based Real-Time GNSS SDR Receiver AP
Pocket SDR C Library API Reference (https://github.com/tomojitakasu/PocketSDR/tree/master/doc/api_ref.pdf)
Pocket SDR Command Reference (https://github.com/tomojitakasu/PocketSDR/tree/master/doc/command_ref.pdf)
Pocket SDR GNSS SDR Algorithm Description (https://github.com/tomojitakasu/PocketSDR/tree/master/doc/algo_desc.pdf)
Pocket SDR GNSS SDR アルゴリズム解説 (https://github.com/tomojitakasu/PocketSDR/tree/master/doc/algo_desc_jp.pdf)
T.Takasu, An Open Source GNSS SDR: Development and Application, IPNTJ Next GNSS Technology WG, February 21, 2022 (https://gpspp.sakura.ne.jp/paper2005/IPNTJ_NEXTWG_202202.pdf)
T.Takasu, Development of QZSS L6 Receiver without Pilot Signal by using SDR, IPNTJ Annual Conference, June 10, 2022 (https://gpspp.sakura.ne.jp/paper2005/IPNTJ_20220610.pdf)
T.Takasu, Pocket SDR: Design, Implementation and Applications, A seminar for GNSS Software Defined Receivers, Nov 19, 2024 (https://gpspp.sakura.ne.jp/paper2005/pocketsdr_seminar_202411_revA.pdf)
PocketSDR
├── bin # Pocket SDR APs binary programs
├── app # Pocket SDR APs source programs
│ ├── pocket_conf # Pocket SDR FE device configurator
│ ├── pocket_dump # Dump digital IF data of Pocket SDR FE device
│ ├── pocket_scan # Scan and list USB devices
│ ├── pocket_acq # GNSS signal acquisition
│ ├── pocket_trk # GNSS signal tracking and PVT generation
│ ├── pocket_web # GNSS receiver server with Web UI
│ ├── pocket_snap # Snapshot Positioning
│ ├── pocket_calib # Antenna array attitude / per-CH bias calibration
│ ├── convbin # RINEX converter supporting Pocket SDR
│ └── str2str # Stream converter (RTKLIB-derived)
├── src # Pocket SDR library source programs
├── html # Web UI files served by pocket_web (JS + CSS, no build step)
├── python # Pocket SDR Python scripts (incl. pocket_sdr.py GUI)
├── lib # Libraries for APs and Python scripts
│ ├── win32 # Built libraries for Windows (UCRT64)
│ ├── macos # Built libraries for macOS
│ ├── linux # Built libraries for Linux or Raspberry Pi OS
│ ├── build # Makefiles to build libraries (UCRT64 / Linux / macOS)
│ ├── cyusb # Cypress EZ-USB API (CyAPI.a) and includes
│ ├── RTKLIB # RTKLIB source programs based on 2.4.3 b34
│ ├── pocketfft # PocketFFT (header-only FFT, used internally)> unzip PocketSDR.zip
or
> git clone https://github.com/tomojitakasu/PocketSDR> pip install numpy scipy matplotlib<radioconda_install_dir>\Library\bin to PATH. See
SoapySDR Device Notes for per-device
packages, Zadig driver setup, and bladeRF version caveats.If you want to rebuild the binary utilities, APs, or shared libraries for the python APs
for Windows, you need MSYS2 with the UCRT64 environment.
The UCRT64 toolchain links against the same C runtime (ucrtbase.dll) as
radioconda's SoapySDR DLLs, which
gives stable high-rate streaming with SDR hardware (e.g., LimeSDR at 64 Msps).
The legacy MINGW64 environment also builds, but suffers significant
performance loss with SoapySDR devices due to msvcrt/UCRT mixing.
Open the MSYS2 UCRT64 shell and install the development tools and the Python stack used by the python APs:
$ pacman -Syy
$ pacman -S git make
$ pacman -S mingw-w64-ucrt-x86_64-gcc
$ pacman -S mingw-w64-ucrt-x86_64-binutils
$ pacman -S mingw-w64-ucrt-x86_64-python
$ pacman -S mingw-w64-ucrt-x86_64-python-numpy
$ pacman -S mingw-w64-ucrt-x86_64-python-scipy
$ pacman -S mingw-w64-ucrt-x86_64-python-matplotlibIf you intend to use SoapySDR-supported devices, install radioconda first.
The default radioconda location used by the Makefiles is
/c/Users/<user>/radioconda/Library. If installed elsewhere, override
with SOAPY_ROOT on the make command line. See
SoapySDR Device Notes
for details.
If SoapySDR device support is not required, build libsdr, pocket_trk,
and pocket_dump with USE_SOAPY=0. Pocket SDR FE USB devices and
IF-file based processing still work; only SoapySDR device input is
disabled. If you are rebuilding an existing tree, run make clean first.
$ cd <install_dir>/lib/build
$ make clean && make USE_SOAPY=0 && make install
$ cd <install_dir>/app/pocket_trk
$ make clean && make USE_SOAPY=0 && make install
$ cd <install_dir>/app/pocket_dump
$ make clean && make USE_SOAPY=0 && make install$ cd <install_dir>/lib/build
$ make
$ make installThe default radioconda location is /c/Users/<user>/radioconda/Library. If
installed elsewhere, override on the command line:
$ make SOAPY_ROOT=/c/path/to/radioconda/Library$ cd <install_dir>/app
$ make
$ make install$ cd <install_dir>/test/utest
$ make
$ make test
==> test_sdr_array.exe
test_sdr_array_new_free_api ... OK
test_sdr_array_ant_pos_api ... OK
t...
test_sdr_usb_req_control ... OKNote: Pocket SDR has been verified on Ubuntu / Debian-based Linux distributions and on Raspberry Pi OS (Bookworm) on Raspberry Pi 5 (aarch64). The Pi 5 has been confirmed to handle Pocket SDR FE and the apt-installed SoapySDR devices for typical L1 / L2 single-channel use; see the Notes for Raspberry Pi 5 subsection below for hardware caveats (USB power, USB 3.0 routing, CPU limits).
$ sudo apt install libsoapysdr-dev soapysdr-tools soapysdr-module-allSee SoapySDR Device Notes for per-device package names, udev access, UHD image installation, and the Ubuntu 24.04 bladeRF module update workaround.
$ unzip PocketSDR.zip
or
$ git clone https://github.com/tomojitakasu/PocketSDR$ cd <install_dir>/lib/build
$ make
$ make install$ cd <install_dir>/app
$ make
$ make installAdd the Pocket SDR binary programs path (<install_dir>/PocketSDR/bin) to the command search path.
(Recommended) Install the udev rule so the Pocket SDR FE device is
accessible to a normal user account (no sudo required). The repository
ships a ready-to-use rule at driver/99-pocket-sdr.rules that grants the
plugdev group read/write access to Pocket SDR FE 2CH (Cypress
EZ-USB FX2LP, VID 04B4 / PID 1004) and FE 4CH / 8CH (Cypress
EZ-USB FX3, VID 04B4 / PID 00F1):
$ sudo cp <install_dir>/driver/99-pocket-sdr.rules /etc/udev/rules.d/
$ sudo udevadm control --reload-rules && sudo udevadm trigger
$ sudo usermod -aG plugdev $USER # add yourself to plugdevLog out and back in (or reboot) so the new group membership takes effect,
then unplug and re-plug the device. After that, pocket_scan,
pocket_conf, pocket_dump, pocket_trk, and pocket_sdr.py all run
without sudo.
Verify the rule is in effect:
$ lsusb -d 04b4: # confirm the device is enumerated
$ ls -l /dev/bus/usb/<bus>/<dev> # group should be "plugdev", mode 0660
$ pocket_scan # should list the deviceIf your distribution uses a different group than plugdev (e.g.
dialout on some systems, or systemd-logind's uaccess is sufficient
on its own), adjust GROUP= in the rule file or rely on the
TAG+="uaccess" line which grants access to the currently logged-in
seat user on systemd-based systems.
sudo to access the USB device:$ sudo pocket_conf ../conf/pocket_L1L6_12MHz.conf
$ sudo pocket_dump -t 10 ch1.bin ch2.bin
$ sudo pocket_sdr.pyRaspberry Pi 5 (Cortex-A76 4-core @ 2.4 GHz, aarch64) runs the same
build path as desktop Linux above. The Makefiles auto-detect aarch64
and enable NEON SIMD optimizations (-DNEON). A few Pi-specific
constraints to be aware of:
USB power budget: Pi 5 advertises 5V / 5A on the official PSU but the USB ports share a ~1.6 A budget. USRP B210 (~2 A peak), Pocket SDR FE 8CH, and BladeRF 2.0 typically need either a USB Y-cable (separate +5V feed) or a self-powered (externally-fed) USB hub. Symptoms of insufficient power are intermittent USB resets, FPGA bitstream upload failures (USRP), and dropped samples.
USB 3.0 routing: Pi 5 has 2× USB 3.0 + 2× USB 2.0 ports. Always connect high-rate SDRs (LimeSDR, USRP B210, Pocket SDR FE 8CH) to a USB 3.0 port. Verify enumeration speed with:
$ lsusb -tThe relevant device should show 5000M (USB 3.0) ? 480M means the
device fell back to USB 2.0, which is bandwidth-limited and will drop
samples at high rates.
CPU / sample rate limits: Pi 5 holds up well thanks to NEON SIMD
acceleration. Measured load (pocket_trk realtime, single-band L1
tracking, all-in-view PRNs):
| Device | Sample rate × tracked channels | CPU load (of 400% = 4 cores) |
|---|---|---|
| LimeSDR USB | 32 Msps × 7 ch | ~280% |
| USRP B210 | 32 Msps × 8 ch | ~290% |
| PlutoSDR | 6 Msps × 10 ch | ~121% |
| RTL-SDR | 2.4 Msps × 16 ch | ~102% |
32 Msps with many tracked channels is workable but leaves limited headroom for additional bands or PVT processing. 8 Msps is a comfortable sweet spot for general L1 use on Pi 5. Heavier configs (LimeSDR 60 Msps × 2-band, Pocket SDR FE 8CH × multi-band) will saturate the Pi 5 CPU and are intended for desktop use.
PocketFFT vs FFTW3: PocketFFT (default) works on aarch64 with
NEON. If FFT becomes a bottleneck for your workload, FFTW3 is
marginally faster on large transforms ? install with
sudo apt install libfftw3-dev and switch the build per the
Using FFTW3 instead of PocketFFT
section below.
Storage: For long IF data captures (pocket_dump -t <long>,
pocket_trk -raw), use a USB 3.0 SSD or NVMe HAT. The microSD card
on stock Pi 5 cannot sustain >50 MB/s writes for extended periods
and will drop samples.
Note: Verified on Apple Silicon (arm64). Pocket SDR FE 2/4/8CH (USB) has been confirmed working. For SoapySDR devices on macOS, see SoapySDR Device Notes.
$ brew install libusb fftw$ curl -L -O https://github.com/ryanvolz/radioconda/releases/latest/download/Radioconda-MacOSX-arm64.sh
$ bash Radioconda-MacOSX-arm64.shFor Intel mac use Radioconda-MacOSX-x86_64.sh. Known macOS SoapySDR
packaging workarounds are collected in
SoapySDR Device Notes.
$ unzip PocketSDR.zip
or
$ git clone https://github.com/tomojitakasu/PocketSDRDarwin arm64) and use clang++ for C++ sources and pull
Homebrew's libusb / fftw headers from /opt/homebrew/include:$ cd <install_dir>/lib/build
$ make
$ make install
$ cd <install_dir>/app
$ make
$ make installAdd <install_dir>/PocketSDR/bin to the command search path.
For SoapySDR-supported devices, use the driver shortcuts in
<install_dir>/app/pocket_trk/pocket_trk.sh. See
SoapySDR Device Notes.
Pocket SDR FE 2CH / 4CH / 8CH USB devices work on macOS via libusb-1.0 with no driver install needed (Apple's IOUSB stack provides raw USB access through libusb). Plug in the device and run:
$ pocket_scan # device should be listed
$ pocket_conf <install_dir>/conf/pocket_L1L6_12MHz.conf
$ pocket_dump -t 10 ch1.bin ch2.binStarting from version 0.15b, Pocket SDR ships with PocketFFT (BSD-3-Clause) as the default FFT backend, replacing FFTW3 (GPL). The change is licensing-driven; for most workloads PocketFFT is competitive, but FFTW3 is still slightly faster on large transforms and supports runtime wisdom (auto-tuned plans) ? pocket_trk / pocket_snap / pocket_acq can read python/fftw_wisdom.txt for further speed-up.
To build with FFTW3 instead, install the library and build libsdr and the
FFT-using applications with USE_FFTW=1.
$ pacman -S mingw-w64-ucrt-x86_64-fftw # MSYS2 UCRT64 (Windows)
$ sudo apt install libfftw3-dev # Ubuntu / Debian / Raspberry Pi OS
$ brew install fftw # macOS$ cd <install_dir>/lib/build
$ make clean && make USE_FFTW=1 && make USE_FFTW=1 install
$ cd <install_dir>/app/pocket_acq
$ make clean && make USE_FFTW=1 && make install
$ cd <install_dir>/app/pocket_snap
$ make clean && make USE_FFTW=1 && make install
$ cd <install_dir>/app/pocket_calib
$ make clean && make USE_FFTW=1 && make install
$ cd <install_dir>/app/pocket_dump
$ make clean && make USE_FFTW=1 && make install
$ cd <install_dir>/app/pocket_trk
$ make clean && make USE_FFTW=1 && make installpocket_trk, pocket_snap, and pocket_acq pick it up automatically.$ cd <install_dir>/app/pocket_trk
$ ./fftw_wisdom -n 4096
$ cp fftw_wisdom.txt ../../python/Note: FFTW3 is GPL-licensed, so a binary linked against it inherits GPL terms. Keep this in mind when redistributing.
On x86-64 CPUs with AVX-512 (AMD Zen 4 or later such as Ryzen 9000 series,
Intel Ice Lake or later), libsdr can be built with USE_AVX512=1 to use the
AVX-512 versions of the carrier mixer, correlator, LPF and array covariance
kernels (-DAVX512) instead of the default AVX2 ones. The APs link libsdr
statically, so rebuild them after the library. A binary built with
USE_AVX512=1 does not run on a CPU without AVX-512.
$ cd <install_dir>/lib/build
$ make clean && make USE_AVX512=1 && make install
$ cd <install_dir>/app
$ make clean && make && make installThe unit tests can be built with the same option: make -C test/utest USE_AVX512=1.
Pocket SDR includes the following utilities for the Pocket SDR FE.
Pocket SDR also provides the following GNSS SDR APs:
For more details about these utilities and APs, please refer to Pocket SDR Command References.
Starting from version 0.13, Pocket SDR includes a GUI-based real-time GNSS SDR receiver AP, pocket_sdr.py. To execute the application, follow these steps:
$ chmod +x <install_dir>/python/pocket_sdr.py
$ sudo ./<install_dir>/python/pocket_sdr.py
or alternatively:
$ sudo python <install_dir>/python/pocket_sdr.pyFor more information about this application, please refer to pocket_sdr.py help.
Starting from version 0.20, Pocket SDR includes pocket_web, a real-time GNSS SDR receiver AP controlled from a Web UI in a browser. It provides the same receiver as pocket_trk and the same screens as pocket_sdr.py, but needs no GUI toolkit on the machine running the receiver, so it also suits a headless Raspberry Pi. To execute the AP:
$ cd <install_dir>/bin
$ sudo ./pocket_web -web 8080Then open http://localhost:8080/ in a browser. The receiver starts stopped:
set the input source, output streams and signals in the Input, Output and
Signal Options pages, and press Start. The settings are saved when the
receiver is stopped and when the AP exits, and are restored at the next
start, so -start starts the receiver right away with them.
To reach the AP from another PC, a tablet or a phone, bind it to all interfaces:
$ sudo ./pocket_web -web 0.0.0.0:8080Note that the interface is unauthenticated and unencrypted. Use it in a trusted LAN only, or front it with a reverse proxy providing HTTPS and authentication.
run_sdr.sh in the top directory starts and stops the server:
$ ./run_sdr.sh # start
$ ./run_sdr.sh -stop # stopAlways stop the AP this way or with Ctrl-C. If the process is killed, the RF frontend is left streaming and needs a USB reset to recover (pocket_web recovers it at the next start, but the running capture is lost).
For more information about this AP, please refer to Pocket SDR Command References.
Here are some examples of how to execute the utilities and the APs:
$ sudo pocket_conf
...
$ sudo pocket_conf conf/pocket_L1L6_12MHz.conf
Pocket SDR device settings are changed.
$ sudo pocket_dump -t 5 ch1.bin ch2.bin
TIME(s) T CH1(Bytes) T CH2(Bytes) RATE(Ks/s)
5.0 I 60047360 IQ 120094720 11985.5
$ pocket_psd.py ch1.bin -f 12 -h
$ pocket_acq.py ch1.bin -f 12 -sig L1CA -prn 1-32,193-199
SIG= L1CA, PRN= 1, COFF= 0.23492 ms, DOP= -1519 Hz, C/N0= 33.6 dB-Hz
SIG= L1CA, PRN= 2, COFF= 0.98558 ms, DOP= 2528 Hz, C/N0= 33.8 dB-Hz
SIG= L1CA, PRN= 3, COFF= 0.96792 ms, DOP= 3901 Hz, C/N0= 33.7 dB-Hz
SIG= L1CA, PRN= 4, COFF= 0.96192 ms, DOP= -1957 Hz, C/N0= 40.4 dB-Hz
...
$ pocket_acq.py ch1.bin -f 12 -sig L1CA -prn 4
...
$ pocket_acq.py ch1.bin -f 12 -sig L1CA -prn 8 -3d
...
$ pocket_acq.py ch2.bin -f 12 -sig L6D -prn 194 -p
...
$ pocket_trk.py ch1.bin -f 12 -sig L1CA -prn 1-32
Pocket SDR is released for research and educational use. Public availability of the source code, hardware design data, and firmware in this repository does not exempt users from compliance with applicable export control regulations, including the Japan Foreign Exchange and Foreign Trade Act (外為法), the US Export Administration Regulations (EAR), the EU dual-use regulation (EU 2021/821), and the Wassenaar Arrangement (Category 7 ? Navigation and Avionics). The 8-channel hardware (FE_8CH) combined with the antenna array calibration and digital beam-forming features added in v0.15 may be regarded as dual-use technology under some jurisdictions; users should perform their own classification (該非判定) before cross-border transfer.
Use of this software or hardware design data by, or transfer to, individuals or entities subject to applicable economic sanctions (e.g., US OFAC SDN List, EU consolidated sanctions list, Japan METI End-User List), or for military, weapons of mass destruction (WMD), or delivery system development purposes, is prohibited.
[1] NMEA 0183: Standard for Interfacing Marine Electronic Devices, National Marine Electronics Association and International Marine Electronics Association, 2013.
[2] RTCM 10403.4 with Amendment 1: Differential GNSS (Global Navigation Satellite Systems) Service - Version 3, Radio Technical Commission for Maritime Services, November 1, 2024
.pocket_navdata.csv persistence for almanacs and last FIX state with
timestamp validation. Added SoapySDR input support to pocket_dump, CS8 /
CS16 support to pocket_acq, and helper scripts for SoapySDR capture /
tracking. Added USE_SOAPY and USE_FFTW make options. Fixed FE 2CH
I-sampling real-to-complex conversion and updated command/API references.thres_pli,
lost_th options). Replaced external Viterbi / Reed-Solomon / LDPC decoders
with internal implementations. Improved the symbol-sync algorithm. Improved
the pocket_sdr.py UI (options Load / Save, etc.).-w for FFTW wisdom import.t_acq_ext,
t_coh, thres_cn0_ext). Removed the C/N0 estimation bias at low C/N0.
Widened the pseudorange lower bound for GEO / IGSO epoch seeding.
Generalized the output streams: up to 8 streams with selectable types
(NMEA, RTCM3, receiver log, IF data log), e.g. NMEA to a file and a TCP
server simultaneously (-nmea / -rtcm / -log / -raw repeatable in
pocket_trk; new Output Options UI in pocket_sdr.py).-RFCH assignment and -arch array combining. Added SoapySDR
options -EXT_CLOCK and -gpio, dropped-sample zero-fill, sensor logging
(-sens), and multi-channel SoapySDR capture by pocket_dump for replay.
Enlarged the Pocket SDR FE raw data buffer to 128 MB with overflow logging
and a raised receiver thread priority, fixing the loss of all signals at
once at high data rates. Fast acquisition now predicts the satellites at
the receiver time instead of the host PC clock, so it also works for a GNSS
simulator and replayed IF data. Added AVX512 kernels for the carrier mixer,
correlators, LPF and complex multiply (USE_AVX512=1). Added a dark theme
to pocket_sdr.py. Fixed the satellite week not updated on the TOW rollover,
sat_id() for BeiDou B1C / B2a / B2I, the start-time dependent fractional
carrier phase bias between channels that broke the integer double-difference
ambiguities (GitHub issue #97), and potential buffer overflows in the
pocket_web JSON replies (GitHub issue #98).| Qty | Value | Footprint | References |
|---|---|---|---|
| 64 | 0.1uF | pocket_sdr_v2.3:C1005 | C100, C101, C103, C106, C107, C108, C109, C110, C111, C112, C113, C114, C115, C116, C117, C118 +48 |
| 16 | 100pF | pocket_sdr_v2.3:C1005 | C1, C2, C3, C4, C33, C34, C35, C36, C71, C72, C86, C87, C104, C105, C122, C123 |
| 16 | 470pF | pocket_sdr_v2.3:C1005 | C9, C10, C11, C12, C17, C18, C19, C20, C41, C42, C43, C44, C49, C50, C51, C52 |
| 10 | 10K | pocket_sdr_v2.3:C1005 | R5, R6, R7, R8, R13, R14, R15, R16, R17, R25 |
| 9 | 0.01uF | pocket_sdr_v2.3:C1005 | C29, C30, C31, C32, C61, C62, C63, C64, C66 |
| 8 | 1.7pF | pocket_sdr_v2.3:C1005 | C13, C14, C15, C16, C45, C46, C47, C48 |
| 8 | 15K | pocket_sdr_v2.3:C1005 | R1, R2, R3, R4, R9, R10, R11, R12 |
| 8 | 15pF | pocket_sdr_v2.3:C1005 | C25, C26, C27, C28, C57, C58, C59, C60 |
| 8 | 22uF | pocket_sdr_v2.3:C1608 | C67, C68, C69, C93, C94, C98, C99, C102 |
| 8 | 5.6nH | pocket_sdr_v2.3:C1005 | L5, L6, L7, L8, L13, L14, L15, L16 |
| 8 | 68nH | pocket_sdr_v2.3:C1608 | L1, L2, L3, L4, L9, L10, L11, L12 |
| 8 | 750pF | pocket_sdr_v2.3:C1005 | C21, C22, C23, C24, C53, C54, C55, C56 |
| 8 | FEMTOSMDC010F-2 | pocket_sdr_v2.3:C1608 | F1, F2, F3, F4, F5, F6, F7, F8 |
| 8 | MAX2771 | pocket_sdr_v2.3:TQFN28 | U1, U2, U3, U4, U5, U6, U7, U8 |
| 8 | SMA-ANG | pocket_sdr_v2.3:SMA-ANG | J1, J2, J3, J4, J6, J7, J8, J9 |
| 5 | ~ | pocket_sdr_v2.3:TP0.5 | TP1, TP2, TP3, TP4, TP5 |
| 4 | CPAD_3.2MM | pocket_sdr_v2.3:CPAD_3.2MM | PAD1, PAD2, PAD3, PAD4 |
| 4 | LED1608 | pocket_sdr_v2.3:LED_1608 | LED1, LED2, LED3, LED4 |
| 3 | 100K | pocket_sdr_v2.3:C1005 | R20, R21, R24 |
| 2 | 10K x 4 | pocket_sdr_v2.3:EXB28V | AR2, AR3 |
| 2 | 13pF | pocket_sdr_v2.3:C1005 | C84, C85 |
| 2 | 2.2K | pocket_sdr_v2.3:C1005 | R18, R19 |
| 2 | 5.1K | pocket_sdr_v2.3:C1005 | R26, R27 |
| 2 | 74AVC9112DCH | pocket_sdr_v2.3:VSSOP8_SOT765-1_NEX | U11, U12 |
| 2 | PINH_2MM_2P | pocket_sdr_v2.3:PINH-2MM-2P | J10, J14 |
| 2 | ~ | pocket_sdr_v2.3:MS448-10F | J12, J13 |
| 1 | 1K x 4 | pocket_sdr_v2.3:EXB28V | AR1 |
| 1 | 1uF | pocket_sdr_v2.3:C1005 | C81 |
| 1 | 200 1% | pocket_sdr_v2.3:C1005 | R23 |
| 1 | 6.04K 1% | pocket_sdr_v2.3:C1005 | R22 |
| 1 | 74FCT3807APYG | pocket_sdr_v2.3:SSOP20 | U15 |
| 1 | AT24CM01-XHM | pocket_sdr_v2.3:TSSOP_8P | U9 |
| 1 | CS05400-19.2M | pocket_sdr_v2.3:XTAL_SMD | XTAL1 |
| 1 | CYUSB3014-BZXC | pocket_sdr_v2.3:BGA-121 | U10 |
| 1 | PI3USB302-AZBEX | pocket_sdr_v2.3:20TQFN-ZB_PI3USB302-A_DIO | U16 |
| 1 | SPX3819M5-L-1-2/TR | pocket_sdr_v2.3:SOT23 | U13 |
| 1 | SPX3819M5-L-3-3/TR | pocket_sdr_v2.3:SOT23 | U14 |
| 1 | TG2520SMN 24.0000M-MCGNNM3 | pocket_sdr_v2.3:TCXO | TCXO1 |
| 1 | USB4080-03-A | pocket_sdr_v2.3:USB4080-03-A_GCT | J11 |

osqzss/PocketSDR
The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands.

osqzss/PocketSDR
The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands.

osqzss/PocketSDR
The Pocket SDR FE device includes 2, 4, or 8 RF frontend channels, supporting the GNSS L1 band (1525 - 1610 MHz) or L2/L5/L6 bands (1160 - 1290 MHz). For these signal bands, refer to GNSS Signal Bands.




oresat/oresat-gps-hardware
Hardware for OreSat's SDR GPS receive and other SDR GPS projects

BellssGit/IMX662_module_for_raspberry_pi
A simple camera module for Raspberry Pi using IMX662 sensor



m1geo/Quad-AMBE3000
A PCB for four DVSI AMBE-3000R Vocoders for use with WebSDRs/Audio transcoding
It measures 70 × 92.8 mm and has 4 copper layers, 1.61 mm thick.
238 parts, built around the CYUSB3014-BZXC, MAX2771ETI+, 74AVC9112DCH and 74FCT3807APYG. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the osqzss/PocketSDR repository on GitHub, at the commit this page was made from: the board is FE_8CH/HW/v4.0/v4.0.kicad_pcb and its schematic FE_2CH/HW/v2.3/pocket_sdr_v2.3.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask osqzss before reusing the design.