UNCLASSIFIED
UNCLASSIFIED

SHIELD / ATLAS

Hardware Sensor Setup Guide v1.0

One-Click Launcher (Recommended)

Download this one file, double-click it, and your sensors connect automatically.
No commands to type. No folders to navigate. It handles everything.

Download SHIELD-ATLAS-Launcher.bat
Windows only — Requires Python installed (it will tell you if you need it)
Plug in your mic and/or SDR dongle first, then double-click the launcher

Manual Setup (Advanced)

If you prefer to run things yourself or need the detailed steps, follow the guide below. Total setup time: about 30 minutes for the PC sensors, plus 15 minutes for the ESP32 if you have one.

Jump To Section

Required Hardware

You don't need all of these to get started. The mic alone will work. Add more sensors as you get them.

Fifine K669B USB Microphone
ACOUSTIC DETECTION
Picks up sound signatures from drones, rockets, motors, vehicles. Plug-and-play USB — no drivers needed. This is the easiest sensor to start with.
Amazon ~$26 | Any USB mic works as a substitute
NooElec NESDR Smart v5 (RTL-SDR)
RF SPECTRUM SCANNING
Scans radio frequencies to detect drone control signals, FPV video links, and communication bursts. It is a small black USB stick (like a thumb drive) with a gold threaded connector on the end. You must screw the included telescoping antenna onto the gold connector — the antenna is what receives the radio waves. Extend the antenna fully for best reception.
Amazon ~$30 | Any RTL2832U-based SDR works
ELEGOO ESP32 Dev Board
REMOTE ACOUSTIC NODE
Standalone sensor that connects over WiFi. Place it anywhere with power and it sends acoustic detections to the cloud independently from your PC.
Amazon ~$12 | Needs a microphone module (MAX9814 or KY-037, ~$5)
Holy Stone HS190 Mini Drone
TEST TARGET (not a sensor)
This is what you fly to TEST your detection system. Your mic and SDR will pick up its motor sounds and RF control signals.
Amazon ~$25 | Any small drone works for testing

Software Prerequisites

Install these on your Windows PC before doing anything else.

  1. Install Python 3.10+
    Download from python.org/downloads
    IMPORTANT: During installation, CHECK THE BOX that says "Add Python to PATH". If you already installed without this, you can use py instead of python in all commands below.
  2. Install the required Python libraries
    Open PowerShell (search "PowerShell" in the Start menu) and paste this command:
    PS> pip install pyrtlsdr numpy requests sounddevice
    If pip doesn't work: Try py -m pip install pyrtlsdr numpy requests sounddevice instead.
  3. For SDR only — Install SDR drivers (REQUIRED for the dongle to work)
    Windows treats the SDR dongle as a TV tuner by default. You must switch it to a generic USB device using a free tool called Zadig so Python can talk to it directly.
    Without this step, the SDR dongle will NOT work. Python will fail with "No RTL-SDR device found" even if the dongle is plugged in.
    1. Make sure your SDR dongle is plugged into a USB port with the antenna screwed on
    2. Download Zadig (small .exe, no install needed) and run it
    3. In the menu bar, click Options > List All Devices
    4. In the dropdown, find "Bulk-In, Interface (Interface 0)" or "RTL2838" — that is your SDR dongle
    5. On the right side, make sure the driver box says WinUSB
    6. Click Replace Driver (or Install Driver)
    7. Wait for it to finish — it will say "Driver installed successfully"
    8. Unplug and replug the SDR dongle after the driver installs
    You only need to do this once. After the driver is installed, the dongle will work every time you plug it in.
    Skip this step if you're only using the microphone.

Sensor Bridge Setup (PC — Mic + SDR)

The sensor bridge runs on your PC and reads data from your USB mic and SDR dongle, then sends it to the SHIELD/ATLAS cloud dashboard.

Download sensor-bridge.py
  1. Plug in your hardware
    Connect your Fifine K669B mic (and NooElec SDR if you have it) to USB ports on your PC. Wait a few seconds for Windows to recognize them.
  2. Open PowerShell
    Search "PowerShell" in the Start menu and open it.
  3. Navigate to your Downloads folder
    PS> cd ~\Downloads
  4. Find the file name
    The browser may have saved it with a different name. Check:
    PS> dir *sensor*
    Look for the .py file and use that exact name in the next step.
  5. Run the sensor bridge
    # With both mic and SDR:
    PS> py shield-atlas-sensor-bridge.py --server https://shield-atlas-production.up.railway.app --scan

    # Mic only (no SDR dongle):
    PS> py shield-atlas-sensor-bridge.py --server https://shield-atlas-production.up.railway.app --mic-only

    # SDR only (no mic):
    PS> py shield-atlas-sensor-bridge.py --server https://shield-atlas-production.up.railway.app --sdr-only
  6. Verify it's working
    You should see lines scrolling like:
    [ACOUSTIC] MATCH: Unknown (confidence: 84%) peak=1184Hz rms=-49.4dB shape=BROADBAND
    That means your mic is detecting and classifying sounds. If the SDR is connected, you'll also see RF scan results.
  7. View it on the dashboard
    Open shield-atlas-production.up.railway.app/cram in your browser. The Sensor Fusion Tracks panel will show detections from your hardware in real time.
To stop the sensor bridge: Press Ctrl+C in the PowerShell window.
Leave it running: The sensor bridge is designed to run continuously. Minimize the PowerShell window and it will keep sending data to the dashboard.
OptionWhat It Does
--server URLWhere to send data. Use https://shield-atlas-production.up.railway.app for cloud, or http://localhost:5000 for local testing
--scanEnable both mic and SDR scanning
--mic-onlyOnly use the microphone (no SDR needed)
--sdr-onlyOnly use the SDR dongle (no mic needed)

ESP32 Acoustic Sensor Node

The ESP32 is a standalone sensor that runs independently from your PC. It connects to your WiFi and sends acoustic detections to the cloud on its own. Great for placing sensors around a perimeter.

Download esp32-sensor.ino
You will need:
  • ELEGOO ESP32 board (or any ESP32 dev board)
  • Microphone module — MAX9814 or KY-037 (~$5 on Amazon)
  • USB cable (micro-USB or USB-C depending on your board)
  • Your WiFi network name and password
  1. Install Arduino IDE
    Download the free Arduino IDE from arduino.cc/en/software. Install it and open it.
  2. Add ESP32 board support
    In Arduino IDE:
    • Go to File > Preferences
    • In "Additional Board Manager URLs", paste:
      https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
    • Click OK
    • Go to Tools > Board > Boards Manager
    • Search esp32 and click Install (by Espressif Systems)
  3. Install required libraries
    In Arduino IDE, go to Tools > Manage Libraries and install these two:
    • ArduinoJson by Benoit Blanchon
    • arduinoFFT by kosme
  4. Open the downloaded file
    Go to File > Open and select the esp32-sensor.ino file from your Downloads folder. It will open in a new Arduino window.
  5. Edit your WiFi and server settings
    Near the top of the file, find these three lines and change them:
    // ---- CHANGE THESE THREE LINES ----
    const char* WIFI_SSID = "your-wifi-name";
    const char* WIFI_PASSWORD = "your-wifi-password";
    const char* SERVER_URL = "https://shield-atlas-production.up.railway.app";
    Use your actual WiFi name and password. The ESP32 needs WiFi to send data to the cloud. The server URL should be https://shield-atlas-production.up.railway.app unless you're running locally.
  6. Wire the microphone
    Connect the microphone module to the ESP32:
    Mic PinESP32 Pin
    VCC3.3V
    GNDGND
    OUTGPIO 34
  7. Connect the ESP32 to your PC via USB
  8. Configure Arduino IDE for ESP32
    • Go to Tools > Board and select ESP32 Dev Module
    • Go to Tools > Port and select the COM port that appeared when you plugged in the ESP32 (e.g., COM3, COM4)
    Don't see a COM port? You may need to install the CP210x USB driver (for most ESP32 boards) or the CH340 driver (for some clones).
  9. Upload the firmware
    Click the Upload button (right arrow icon) in Arduino IDE. Wait for it to compile and upload. You'll see "Done uploading" when finished.
  10. Monitor output
    Go to Tools > Serial Monitor, set baud rate to 115200. You should see:
    WiFi connected: 192.168.1.x
    [ACOUSTIC] Sending detection — peak: 2400Hz, rms: -38.2dB
    [ACOUSTIC] Server response: 200 OK
Once uploaded, the ESP32 runs on its own. Unplug it from your PC, plug it into any USB power source (phone charger, battery bank), and it will connect to WiFi and start sending detections automatically. No PC needed.

Verify Everything Works

Once your sensors are running, check the dashboard to confirm data is flowing.

  1. Open the C-RAM Dashboard
    Go to shield-atlas-production.up.railway.app/cram
  2. Check Sensor Fusion Tracks (bottom of dashboard)
    You should see rows appearing with detection data from your sensors.
  3. Check RF Waterfall (if SDR is connected)
    The RF spectrum panel will show a live waterfall display of scanned frequencies.
  4. Test with the drone
    The HS190 has two detectable signatures — each requires a different sensor:
    • Drone MOTORS (mic detects this): Spin up the propellers — the high-pitched motor whine creates a clear acoustic signature. Just turning on the remote is NOT enough for the mic — it needs the motors running.
    • Remote RADIO signal (SDR detects this): Just powering on the remote transmits a 2.4GHz control signal. The SDR dongle picks this up as an RF detection — no motors needed.
    • Both together = sensor fusion: When both sensors detect the drone simultaneously, the dashboard fuses the tracks and THREATCON may escalate from GREEN to AMBER.

Troubleshooting

ProblemSolution
pip is not recognized Use py -m pip install ... instead. Or reinstall Python and check "Add to PATH" during install.
py is not recognized Use python instead. Or download Python from python.org.
File not found when running sensor-bridge Run dir *sensor* to find the exact filename. Your browser may have renamed it.
SDR not detected / "No RTL-SDR device found" You must install the WinUSB driver using Zadig. See the Prerequisites section above for step-by-step instructions. Unplug and replug the dongle after installing the driver.
SDR dongle plugged in but not picking up anything Make sure the antenna is screwed onto the gold connector on the end of the dongle and extended fully. Without the antenna, the dongle cannot receive radio signals.
Everything shows "Unknown" on the dashboard This means the mic is working but only hearing room noise — no threat signature match. To test: turn on the HS190 drone and spin up the motors (the motor whine is what the mic detects). The drone remote alone is very quiet — it transmits a 2.4GHz radio signal detected by the SDR, not the mic.
No mic input / silence Check Windows Sound settings — make sure the Fifine mic is set as the default input device.
"Stream status: input overflow" This is normal — it means the mic buffer filled up briefly. Detections still work fine.
ESP32 won't connect to WiFi Double-check SSID and password in the code. The ESP32 only works with 2.4GHz WiFi (not 5GHz).
No COM port for ESP32 Install the CP210x driver or CH340 driver, then replug the board.
Dashboard not updating Make sure the sensor bridge shows [ACOUSTIC] or [RF] lines scrolling. If yes, refresh the dashboard page. Data may take 5-10 seconds to appear.
Open C-RAM Dashboard Back to Home
CHEATSHEET
ASK AI
PRESENCE
⚠ SANDBOX / TRAINING MODE — Live read-only data. Write commands are inhibited (train as you fight, missile button safed).