View on GitHub

Jedi

A modern re-interpretation of the Jed set.

Download this project as a .zip file Download this project as a tar.gz file

Plan

The goal of this is to generate an OpenSource equivalent to something like the BearTooth, or the Gotenna.

OSI Layers

Layer 1/2

Hardware

For a SDR capable “base-station”, there are two potential ways to approach this:

  1. Root an Android phone and run the SDR directly.
  2. Use an embedded controller like a raspberry pi 3 to make a Jed set “base station” using on-board wifi or bluetooth tethering.

An rtlsdr isn’t going to do 2.4ghz sniffing, and is receive only. A hackrf is half-duplex and can only transmit or receive at any given time.

For full-duplex SDR, the two primary contenders are:

Alternatively, two half-duplex devices would suffice.

For half-duplex, he did look at the TI cc1111 based devices:

Such as:

Those do top out at 1Ghz, however.

Other promising TI chipsets that also support 2.4Ghz are the CC1310 and CC1350:

Of these, LimeSDR looks like it will not ship in time (end of this month).

I have two Nuand BladeRF devices for developing and testing SDR. One with the amplifier, one without.

Final note on Android network peering:

https://android-developers.googleblog.com/2017/07/announcing-nearby-connections-20-fully.html

“Nearby Connections uses WiFi, Bluetooth LE & Classic Bluetooth under the hood to discover and establish connections to nearby devices. It abstracts away the inherent complexity of these radios by leveraging the strengths of each, while circumventing their respective weaknesses. Aside from the obvious advantage of sidestepping the pain of dealing with the vagaries of these radios across different OS versions and devices, this abstraction enables seamlessly upgrading the bandwidth of a connection by switching between the radios as and when it makes sense, as well as getting invisible over-the-air updates to use new radio technology as it becomes available – with no change whatsoever in the application code.”

Going forward, you may want to look into using that abstraction layer instead.