3. First time using FlatSat - ElectronicCats/FlatSat GitHub Wiki
First time using FlatSat
Using the FlatSat Ground Station web app
Requirements:
- A FlatSat board with its firmware loaded and a data-capable USB-C cable.
- An antenna on each SMA connector that you plan to use for a radio test.
- FlatSat Ground Station Web app installed; check out the instructions on FlatSat Ground Station Installation.
- A second FlatSat or CatSniffer board if you want to test the radio link between two boards.
Local hardware verification with FlatSat GroudnStation
- After running the FlatSat Ground Station web app, either using the Docker or Python method, go to the web browser and open a new tab.
- Write in the search bar localhost:5000 (use port 5001 for macOS: localhost:5001). This will redirect you to the main page:
-
Enter the credentials to login.
-
Once in the main view, click on the Scan USB button to detect the FlatSat connected through USB.
-
In the drop-down menu that appears next to the Scan USB button, select the FlatSat you would like to work with.
-
After selecting the FlatSat board, click on Connect. If there are other FlatSat or devices transmitting under the same configuration, you will read the packets caught by FlatSat right away.
Using FlatSat Ground Station CLI
Requirements:
- A FlatSat board with its firmware loaded and a data-capable USB-C cable.
- An antenna on each SMA connector that you plan to use for a radio test.
- FlatSat CLI installed on Windows, macOS, or Linux.
- A second FlatSat or CatSniffer board if you want to test the radio link between two boards.
Local hardware verification
-
Connect the USB-C port of FlatSat to your computer. The board starts by itself and appears as three serial ports at 115200 baud, one for each radio and one for the shell console.
-
Check that the board is detected
flatsat devices
Expected output:
Found 1 FlatSat device(s)
Device Radio 0 (CDC0) Radio 1 (CDC1) Shell (CDC2) Health
[0] FLATSAT0001 /dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 HEALTHY
The serial number of your board and the names of the ports depend on your computer, so expect different values. The Health column tells you whether all the ports of the board could be opened. HEALTHY means everything is ready; PARTIAL means the shell is open, but at least one radio port was not found.
[!IMPORTANT] On Linux, a board is listed but its ports cannot be opened when your user does not have permission on them. Complete FlatSat CLI- Natively run wi with Python Linux and MacOS and log in again before you continue.
- Read the board status
Once the board is detected, read what the t reports:
flatsat status
Expected output:
SYSTEM STATUS
FW: dev-f81af0b-dirty
Git: f81af0b (dirty)
Built: 2026-08-11T20:38:22Z
Compiler: GNU 12.2.0
Flat-Sat FW: dev-f81af0b-dirty Active Radio: 0 (TX: 1, RX: 0)
RadioManager State: LISTENING
Radio0: LoRa mode=stream lora_init=1 fsk_init=0 (Ready)
Radio1: LoRa mode=stream lora_init=1 fsk_init=0 (Ready)
The first three lines identify the firmware. The following lines show the state of each radio.
- Read the onboard sensors
flatsat sensors
Expected output:
TELEMETRY SENSORS
x=12 mg y=-4 mg z=1021 mg
Temp: 23.5 C
Press: 101325 Pa
Humid: 48%
The first line is the accelerometer; the three values that follow come from the BME280. Reading them twice a few seconds apart gives slightly different values, which confirms that the board is really measuring.
Listening to the telemetry downlink
This part needs a second FlatSat board or a CatSniffer, one acting as the satellite and one acting as the ground station.
- Set the satellite board to mission mode on the board that must transmit telemetry:
flatsat mode mission
Expected output:
ℹ mode sat -> OK role: satellite
ℹ lora_mode ALL stream -> LoRa mode set to STREAM (slow blink)
✓ Mode set to 'mission'.
ℹ Identifying the board that changed mode (blinking LEDs)...
⚠ Identifying board...
The board blinks its status LED in white color so that you can tell at a glance which board changed its role.
- Set the ground station board and listen on the second board:
flatsat mode ground_station
flatsat sniff
Expected output:
mode gs -> OK
lora_mode ALL command -> OK
lora_apply ALL -> OK
Mode set to 'ground_station'.
Identifying the board that changed mode (blinking LEDs)...
Sniffing Radio 0 (telemetry downlink) for 30s (SDLS level 1)...
#1: TM APID=0x010 seq=42 CRC=OK (18 bytes, RSSI -87)
#2: TM APID=0x011 seq=43 CRC=OK (18 bytes, RSSI -86)
FlatSat will blink in a green color when streaming or blue when in command mode; a long blue light will indicate a packet was caught by the FlatSat.
Each line is one space packet that arrived over the air. TM is telemetry, APID identifies which subsystem sent it, seq is the sequence counter, and CRC tells you whether the frame arrived intact.
- Open the web dashboard
If you prefer to watch the telemetry in a browser, start the web dashboard of FlatSat Ground Station and open the address it prints:
[!Important] Installing FlatSat Ground Station webapp is required. Check: FlatSat Ground Station Installation.
flatsat-web
Log in with the credentials.
You can then follow the instructions from the first method described in this same page.