Skip to content
This repository was archived by the owner on Oct 10, 2026. It is now read-only.
rimuadminPublic archive

About

A protocol-level emulator that replicates the behavior of a FlexRadio including Maestro-style interactions over TCP and UDP.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

99 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProtoFlex

ProtoFlex is a protocol-level emulator that replicates the behavior of a FlexRadio including Maestro-style interactions over TCP and UDP. It simulates how FlexRadio devices respond to network commands, enabling developers, integrators, and testers to validate control workflows, debug protocol exchanges, and build custom SDR interfaces without requiring physical hardware.

Originally developed to support TeensyMaestro hardware testing in the absence of a FlexRadio, ProtoFlex provides a minimal yet functional simulation of FlexRadio behavior. It mimics expected responses and state transitions, making it ideal for environments with limited hardware access or where automated testing is essential.

Beyond its initial scope, ProtoFlex supports scenarios such as simulating multiple FlexRadios on a network. ProtoFlex also emulates multiple panadapters and receive slices. Each panadapter includes an independent Spectrum Generator that approximates RF signals and noise, offering a realistic backdrop for client-side signal visualization and interaction.

Requirements

  • At this time ProtoFlex only runs on Windows.

Running ProtoFlex on Windows

  1. Create a folder on your PC.
  2. Go to the Releases page and download the following files from the latest release. Store them in the local folder:
    • protoflex.bat
    • protoflex.exe
    • radio_config.json
  3. Double click on the file protoflex.bat to run ProtoFlex.
    • The ProtoFlex server will start running in a terminal window. Minimize the window if needed.
    • It will log to the console and also to a file.
  4. Start SmartSDR and the Protoflex will be listed. If you have a FlexRadio on the same subnet you will see two choices:

SmartSDR Selection

  1. Using a browser, go to http://localhost:5000 to display the browser interface.

Browser Main Page

Stopping ProtoFlex

  1. Close the terminal window.

Access the ProtoFlex web app from another device

  • If you have started ProtoFlex on a computer, you can access the web app from another device on the network.
  • Determine the IP address of the computer running ProtoFlex, say 192.168.1.100
  • On the remote device, use a browser to go to http://192.168.1.100:5000

Command Line Options

# With console logging only
protoflex.exe --config-file radio_config.json 

# With file logging and console logging
protoflex.exe --config-file radio_config.json --log-file protoflex.log

# With file logging and console logging with a custom log level
protoflex.exe --config-file radio_config.json --log-file protoflex.log --log-level INFO

# With file logging and custom log level and no console logging
protoflex.exe --config-file radio_config.json --log-file protoflex.log --log-level INFO --no-console

# Short form
protoflex.exe -c radio_config.json -l protoflex.log

SmartSDR connected to ProtoFlex

  • ProtoFlex simulates panadatper, waterfall and meter streams. SmartSDR Connected

ProtoFlex Server Logging

  • ProtoFlex logs all the incoming TCP client commands, TCP status responses.
  • The UDP Discovery payload is logged when a change to one of the attributes occurs. ProtoFlex Log

Browser Interface

  • ProtoFlex has a browser interface to show the state of the emulated radio. Some attributes, like meter values, can be changed using this interface. ProtoFlex Main Page

About

A protocol-level emulator that replicates the behavior of a FlexRadio including Maestro-style interactions over TCP and UDP.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages