Start with the hardware map, then follow the operating guides. Every unresolved release
detail is labelled instead of being filled with an estimate.
Pre-release note: the first customer image has been built and booted on a
different Raspberry Pi 4, with the hardened access boundary verified. Sales are not open:
the image must still be rebuilt and boot-tested after its Wi-Fi fixes, expand customer
storage correctly, report Wi-Fi failures clearly, and resolve first-run region settings.
The console, open at Flight View. You reach this from any phone, tablet or laptop joined to the Streamer, in a browser - there is nothing to install.
Welcome to Cosmik Streamer.
Cosmik Streamer is software for a customer-built Raspberry Pi 4B. It takes the supported DJI goggles feed and makes it available to browsers, recordings, production tools, an optional local display, and configured streaming destinations.
What you buy is the software. You supply the Raspberry Pi, memory card, cables, and power hardware. The customer image and checkout are not public yet.
It also records flights and gives the signed-in operator a visual timeline for marking the shots a client or production team asks for.
Everyday use is browser-led. The one-time hardware build and card preparation are documented separately.
What it does, in plain terms
Shows your flight live
Anyone on the local network opens a web page and watches the low-delay feed. No public latency number is claimed before release measurement.
Streams to the world
Push the same flight to YouTube, Facebook, Twitch, or a client's own system.
Records everything
With auto-record enabled, a recording starts when the feed arrives. The owner can browse, download, or deliberately delete it later.
Makes a "broadcast" version
Fly in one shape, broadcast in another — with your logo, a name bar, and a timecode burned in. Your own view stays untouched.
Shows your signal
See how strong your control link is, live.
Takes clip requests
The signed-in operator marks exact moments and keeps a production request queue. A separate guest review link is not built.
Works as a camera in OBS
Use the verified browser-source route in OBS or vMix without inventing a latency figure.
Drives a screen directly
The HDMI player, standby media, monitor identity, and framing controls exist; the final live-picture branch remains in Validation.
There is no sound. DJI's air unit carries no audio, so the picture is silent — on your viewers' screens, in your recordings, and on YouTube. Streaming platforms that insist on an audio track are given a silent one automatically, so they accept the stream normally.
Writing the card image — coming soon. The step-by-step for putting Cosmik Streamer onto your microSD card is not in this guide yet. Getting Started begins from a card that is already made.
Everyday use
The Live View — the main screen, recording, and fullscreen
Glossary — plain-English explanations of the technical words
What you need
A DJI FPV setup — an O3 Air Unit or O4 Air Unit Pro on the drone, with DJI Goggles 3.
Verified goggles scope: DJI Goggles 3 is the only
model currently supported by physical evidence. Goggles 2, Integra, and N3 are not marketed as
compatible until each model is tested.
A Raspberry Pi 4B, and a microSD card to put the Cosmik Streamer image on. The card image is built for the Pi 4B specifically. This isn't a preference: getting video out of DJI goggles over USB needs a board that can pretend to be a USB device, and an ordinary Windows or Mac computer cannot do it — we tested that directly.
A suitable power supply. This one matters more than people expect, so it has its own page. Read it before you buy one.
A USB-C cable to connect the goggles to the box — a proper data cable, not a charge-only one.
Something to watch on — a phone, tablet, or laptop with a web browser.
Optional: an HDMI monitor or TV if you want the flight on a screen at the venue, and an ExpressLRS radio if you want live signal readings (Signal & Telemetry).
Once the card is made, there is nothing to install on your phone or laptop — everything is a web page.
A quick word on how it's organised
Cosmik Streamer has two separate doors, and which one you get depends on the address you open:
The visitor view — the plain address on its own. Full-screen video and nothing else. This is what clients and guests get, so there's nothing for them to change.
The console — the same address with /console on the end, protected by your password. Recording, streaming, settings, everything.
Everything you change is saved automatically. There's no "save" button to remember.
A note on "Coming soon" labels Cosmik Streamer is actively being developed. Where a feature is not finished, this guide says so plainly. Newer code can also carry a Validation note when it exists and is tested but still needs its named physical-device check.
Release-boundary guide reconciled at product baseline 28605da · source /docs/README.md
Cosmik Streamer is sold as software. You supply and assemble the hardware.
Pre-release boundary: the customer image, minimum microSD capacity, exact power lead, and safe power-off procedure have not completed release testing. This page separates what is settled from what still needs that test. It does not fill gaps with guesses.
The parts
Swipe table →
Part
What is settled
What is not yet final
Computer
Raspberry Pi 4 Model B. The current project bill of materials specifies 2–4 GB.
No other Raspberry Pi model is supported or promised.
Storage
A good-quality A2 microSD card.
The minimum capacity will be published with the completed customer-image test.
Goggles cable
A good USB-C data cable between the goggles and the Pi's USB-C socket.
The final supported-cable list has not been published.
Power
Power enters through an engineered GPIO supply or a compatible PoE HAT. The current measured target is 5.1–5.2 V at the pins under load and at least 3 A.
The final customer lead, connector, and wire specification are still being measured.
Optional display
The Pi has micro-HDMI outputs for a local monitor.
The current software path has been tested on one display output; broader display validation remains open.
Optional enclosure
A case and cooling may be added around the finished build.
No case or cooling product has been selected as an official recommendation.
123345
1
40-pin GPIO headerOne supported power route reaches the Pi's 5 V rail through this header. The exact customer lead and pin-level wiring are not release-final, so this is identification rather than a wiring instruction.
2
USB-C: Goggles 3 dataCosmik uses this socket for the Goggles 3 data connection. It is not the Pi power input in this build.
3
Two micro-HDMI outputsThe two separate markers identify both smaller display sockets. An optional local display uses one micro-HDMI socket; these are not full-size HDMI.
4
Gigabit Ethernet jackThis jack carries wired network traffic. With compatible PoE equipment and a compatible PoE HAT, it is also where the PoE cable enters.
5
Four-pin PoE header (J14)A compatible PoE HAT uses this header together with the 40-pin header. A cable is never connected directly to these four pins.
Actual Raspberry Pi 4 Model BConnector names checked against Raspberry Pi's reduced schematic. The stacked USB sockets at right are not part of the standard Cosmik connection path. Photo: Laserlicht / Wikimedia Commons · CC BY-SA 4.0
Do not buy a part solely for Cosmik Streamer until the release list names it. The software is not on sale yet, and the incomplete items above can still affect the final shopping list.
Connect it
Connection topology and physical port guideThe topology shows relationships; the labelled photograph shows the physical Pi connectors.Swipe diagram →
Keep the Raspberry Pi powered off while inserting the microSD card and attaching cables.
Connect the goggles to the Pi's USB-C socket with a data-capable cable.
Connect an optional monitor by micro-HDMI and an optional network cable by Ethernet.
Connect one approved power route: GPIO power or a compatible PoE HAT.
Start the Pi first, then the goggles, then the drone.
The Pi's USB-C socket carries the goggles data for this product. It is not the power input in this build.
Prepare the microSD card
Write the official image, then verify itThe public image and minimum card capacity are intentionally not named before release testing.Swipe diagram →
The public Cosmik image is not available yet. When release testing is complete, the download page will provide the image and its verification information together.
Select the correct microSD card. Writing erases that card.
Let Imager finish both the write and verification.
Remove the card safely and insert it into the powered-off Pi.
Do not substitute an unofficial image or a copied development card. The customer image is built fresh so it contains no developer login, Wi-Fi details, recordings, stream keys, or machine identity.
Open it in a browser
Local names when several units are connectedThe suffix is automatic and is not a permanent unit number.Swipe diagram →
Cosmik Streamer is controlled in a browser. The customer image has no operating-system account and no SSH server.
The exact first-contact Wi-Fi wording is not release-final, so this guide does not publish a password that may change. The first-run screen will require the owner to create an account, choose the operating Wi-Fi name and password, and select the country where the radio will be used.
After setup, open:
http://cosmik.local
If another device on the same network already has that name, the next Streamer advertises cosmik-2.local, then cosmik-3.local, and so on. The suffix is created by a name collision; it is not a permanent device number.
Powering off
The current customer-image design has not yet proved that abrupt unplugging is safe for the microSD filesystem. The final release must provide and test a safe power-off method or a filesystem design that tolerates power loss.
Until that release gate is complete, this guide does not tell a customer to simply pull the power.
What the licence does not include
The planned US$29.99 purchase is one software licence for one compatible Raspberry Pi, including one replacement transfer. The Raspberry Pi, microSD card, power hardware, cables, goggles, drone, enclosure, cooling, network equipment, and displays are not included. Checkout is not open.
Release-boundary guide reconciled at product baseline 28605da · source /website/content/hardware-and-installation.md
The intended first-run sequencePre-release: final customer-image and first-contact checks remain open.Swipe diagram →
This page is the short operating sequence. If you are assembling the hardware yourself, read
Hardware and installation first.
Pre-release: the official customer image and final first-contact Wi-Fi wording
are not published yet. The steps below describe the verified design without inventing a download
link, card size, or setup password.
1. Prepare the card
Download the official Cosmik release image when the release page opens.
In Raspberry Pi Imager, choose Use Custom, select the image, then select the correct microSD card.
Let Imager complete both the write and verification.
Insert the card while the Raspberry Pi is powered off.
2. Connect the hardware
Connect the goggles to the Pi's USB-C socket with a data-capable cable.
Connect an optional monitor by micro-HDMI and an optional network cable by Ethernet.
Connect one release-approved power route: GPIO power or a compatible PoE HAT.
The USB-C socket is carrying goggles data for Cosmik Streamer. It is not the power input in this build.
3. Start in order
Raspberry Pi first.
Goggles next.
Drone last.
4. Finish first setup
The first-run browser screen creates the owner account, the operating Wi-Fi name and password,
and the country where the radio will be used. The precise first-contact network instruction will
be published only after its legal and customer-image release checks are complete.
After setup, open http://cosmik.local. If that name is already in use on the same
network, try cosmik-2.local, then cosmik-3.local. Those suffixes are
automatic collision names, not permanent unit numbers.
5. Activate the licence
If video is locked, sign in to the Console, open Licence, choose the complete
cosmik-licence.key file, and select Activate video. A new key binds
locally to the first compatible Raspberry Pi where it is accepted. The Pi does not need internet
access for later licence checks.
6. Open Flight View
Open Console → Flight View. The ordinary address remains the guest viewing page;
the password-protected Console contains recording, media, output, and settings.
Powering off
Open Console → System and use Power off. It asks once to
confirm, then shuts the Streamer down properly so the memory card is never at risk. Give it about
ten seconds and then unplug it; the red light staying on simply means power is still connected.
Pulling the plug is not a shutdown method. Use the Power off control rather than
cutting power while the Streamer is running.
Release-boundary guide reconciled at product baseline 28605da · source /docs/getting-started.md
The field network and an existing network stay visibly separateExact current interface with controlled demonstration network data; the customer-image rebuild remains a release gate.
Built; physical validation remains:
the Network controls, scan/join/leave behavior, channel-safety rules, and plain-language failure
states are implemented and test-covered. The first customer image booted on a second Pi, but its
Wi-Fi package fix has not yet been verified by rebuilding and booting a fresh image. Treat these
instructions as pre-release until that gate passes.
The Network page. This is where the Streamer is told to join a Wi-Fi network of your own.
This is the newest thing in the Streamer, and it has not yet had the months of field use the rest of the guide describes. Everything below is how it behaves; if yours does something different, that is a fault we want to hear about rather than something you should work around.
The Streamer always makes its own Wi-Fi network — that is how a client's phone watches your flight in a field with no router, and it never switches off. That network is covered in Getting Started.
This page is about the other thing: joining a Wi-Fi network you already have. Your house, a venue's, or a portable router you carry.
The Streamer's own Wi-Fi
A network you already have
Who makes it
The Streamer
Your router
Where you set it up
Console → Network → The Streamer's own Wi-Fi
Console → Network → Join a Wi-Fi network you already have
Is it ever off?
No. It stays on whatever else happens.
Only if you join one.
Gives the Streamer internet?
No
Yes, if that network has it
⚠️ The one thing to know first
While the Streamer is on your Wi-Fi, it cannot receive flight data from your radio.
The Streamer has one Wi-Fi radio, and that radio can be on your Wi-Fi or listening to your ExpressLRS radio — not both at once. Everything else carries on exactly as normal: the live picture, recording, streaming out, and the Streamer's own Wi-Fi.
So the shape of it is:
At home, between flights — joining is useful. You get the console from your laptop without switching networks, the clock sets itself, updates can arrive, and you can stream to YouTube.
At a shoot — leave the network first. One tap, and your flight data comes back on its own.
The console says this on the Network page for as long as you are joined, so you do not have to remember it.
Joining a network
Open Console → Network → Join a Wi-Fi network you already have.
Tap Look. The Streamer lists what it can see from where it is sitting.
Tap Choose next to your network, type its password, and tap Join.
That is all. The Streamer remembers it and rejoins by itself every time it starts, so you only do this once per network.
If it says it is waiting
The Streamer has one radio, so its own Wi-Fi and your network must be on the same channel. If they are not, the Streamer's own Wi-Fi has to move — and moving it disconnects everyone on it.
It will never do that while anyone is connected. Instead it waits, and the console tells you how many devices are connected. Disconnect them — including the phone you are reading this on, if you are on the Streamer's Wi-Fi — and it joins within about half a minute. The Streamer's own Wi-Fi comes straight back with the same name and password, so everything reconnects by itself.
If you would rather not disconnect anyone, plug a network cable into the Streamer's socket and use the console over that instead; then nothing is on its Wi-Fi and the join happens immediately.
After the first join there is nothing to wait for again: the Streamer starts on the right channel from then on.
If your network is not in the list
It may be a 5 GHz network. The Streamer's own Wi-Fi is 2.4 GHz and it has one radio, so it cannot be on 5 GHz. Most routers offer the same network on 2.4 GHz as well — switch that on in the router and it will appear. Networks the Streamer can see but cannot join are listed anyway, with the reason, so you are not left guessing.
It may be out of range. The Streamer is wherever you left it, not where you are. Move it closer and tap Look again.
It may be hidden. A network that does not broadcast its name cannot be picked from a list.
If it says it could not join
Almost always the password. Type it again — the Streamer does not shorten or change what you type. If the network has been renamed or switched off, tap Look again and pick it from the list.
Leaving a network
Open Console → Network and tap Leave.
The Streamer stops using that network and starts listening for your ExpressLRS radio again. Its own Wi-Fi is not touched, so nobody watching is interrupted — you can do this with a client mid-flight and they will not notice.
What you can reach it at
Once joined, the Streamer answers on two addresses: its own Wi-Fi, and the one your network gave it. Both are listed under Console → Network → How to reach this Streamer, with the one that never changes at the top.
Your network's address is the convenient one — a laptop can use it without leaving your Wi-Fi. It came from your router, so it can change. The Streamer's own address is always there and is the way back in if anything goes wrong.
Flight View. The picture fills the page, the controls sit under it, and the badges along the top tell you whether you are recording and whether the link is live.
This is the screen you will spend most of your time on: the live flight, full screen, through the local browser path.
The controls hide themselves after a few seconds of stillness, so what's left is a clean picture. This matters — it means you can point a TV, a projector, or a capture card at this screen and nobody sees buttons floating over your footage.
Move the mouse or tap the screen to bring the controls back.
What you'll see
Along the top — a thin strip showing the picture's health:
Reading
What it means
LINK LIVE / WAITING FOR FEED
Whether the goggles are currently sending a picture
Resolution
The size of the picture, e.g. 1920×1080
FPS
Frames per second — how smooth it is
Bitrate
How much data the picture is using. Higher generally means better quality
Around the picture — your flight readings, if your radio is sending them. See Signal & Telemetry to set that up.
Along the bottom — the controls:
Control
What it does
Record
Starts and stops saving the flight to the box
Snapshot
Grabs a single still frame from the live picture
Telemetry overlay
Shows or hides your signal readings over the picture — this screen only
Fit / Fill
Switches between filling the screen and showing the whole picture — this screen only, never what viewers see
Fullscreen
Hides your browser's own bars for a truly clean image
While an HDMI monitor is plugged in, one more button appears beside these for that screen's scaling — see Video & Output.
At the top of the page — See what viewers see, which opens the public viewing page: exactly what a guest with your link is watching. Your settings are in the Menu beside it (on a phone) or the sidebar (on a bigger screen).
Tip: on the viewer page, double-click anywhere on the video to go fullscreen instantly.
Recording a flight
Out of the box, recording starts by itself the moment a picture arrives — you never lose the start of a flight. Prefer to press the button yourself? Turn off Start recording automatically on the Media Library page, and recording waits for you.
Press Record to stop a recording, or (in manual mode) to start one. The button lights up while the box is saving.
Recording and watching are completely independent. Starting or stopping a recording never interrupts anyone watching, and never touches your own view in the goggles.
Recordings appear in the Media Library straight away — you don't have to stop recording to see them listed.
Recording is segmented as it runs, so what was already written stays on the card. Shut down with Console → System → Power off rather than cutting power.
Files are named with the date and time so they sort neatly.
Sharing the live picture with others
Anyone on the same network can watch — they don't need the box, an app, or a login.
Send them the same address you use (http://cosmik.local). If they're running production software like OBS or vMix, send them the address from OBS & Production Tools instead — it's the same picture, set up the way that keeps the delay down.
There's no limit imposed on how many people watch, though a very large number on a weak Wi-Fi network will eventually strain it.
A word about delay
The live picture uses the WebRTC browser path. A public latency figure will only be added after the release build is measured end to end.
This is deliberate: your feed is passed through untouched. It isn't re-processed or re-compressed on the way, which is exactly why it stays fast and keeps its original quality.
If you also switch on the broadcast version (see Video & Output), that second version is processed — to add your logo and change its shape — so it runs slightly behind. Your own view and the fast live picture are never affected by it.
If the picture doesn't appear
The screen will tell you plainly — you'll see "Waiting for goggles link" rather than a frozen or black image.
The first cable check is to disconnect the USB-C data cable from the goggles, wait briefly, and reconnect it. See Troubleshooting for the evidence-ordered checks.
Release-boundary guide reconciled at product baseline 28605da · source /docs/live-view.md
Guest access and owner control are separateThe visitor page is not unconditionally live; the owner chooses each access mode.Swipe diagram →
Decide what each viewer is allowed to doExact current interface with controlled demonstration people, codes, and status.
Current viewer controls:
the owner can now set live viewing and flight data separately to Off, Open, or Invited, issue and
revoke guest codes, and remove a guest device. Brightness, contrast, and colour remain browser-only
picture treatments: they never change the goggles, recording, or clean feed. Guest footage review
and live clip requests are still visibly marked Coming soon in the product.
The Viewer page. This controls what someone watching - a client, a guest, a passer-by - is allowed to see.
At a shoot, the people around you want to see what you're seeing — the client, their guests, the venue's team. Handing them a link should be easy, and it should never mean handing them your controls.
The Streamer has two separate doors for exactly this reason.
The two doors
Who it's for
What they get
Visitor link
Clients, guests, anyone watching
The flight, full screen. Nothing else.
Console
You, the pilot
Everything — recording, streaming, settings
A visitor sees no settings and no recording button. Besides full-screen, the only other control on their page is a small, faded gear in the corner — your sign-in door. If a guest taps it out of curiosity, all they meet is the password gate: nothing to break, nothing to change, nothing of yours to see.
Sharing the live view
Give them your Streamer's Wi-Fi name and password.
Tell them to open the Streamer's address in any web browser.
That's it. They land straight on the full-screen flight view.
To find the exact link to send, open Console → Network → Share with viewers and press Copy.
Or let them scan it. On the same card, press Show next to QR code and hold the screen up — their phone camera opens the flight straight away. No spelling an address out across a noisy venue. The code is drawn by the Streamer itself, so it works with no internet.
The link works on phones, tablets, laptops and smart TVs. No app to install, no account to create.
Choosing what viewers are allowed to do
Open Console → Viewer. The first thing on that page is a short list of the things a viewer might be allowed to do, and each one is a separate choice with the same three answers.
Answer
What it means
Off
Just you. Nobody else gets it.
Open
Anyone who can reach the Streamer. Nothing to type, no code.
Invited
Only people who enter a code you hand out.
You can change any of them while you are flying. Nothing restarts, your recording does not stop, your goggles are not affected and your streaming destinations keep running. The change reaches viewers the next time their phone asks the Streamer anything — a second or two.
The choices
Watch the flight — whether people can see the live picture at all. Most of the time this is Open: you are at an event, you want people to watch, and nobody should have to type anything. Set it to Off for a job where even the onlookers should not see the feed — they get your waiting message instead, and everything else carries on exactly as before.
Flight data beside the picture — speed, height, battery and signal. Some clients are happy for people to watch and would rather the flight data was not on show. Turning this off takes nothing away from your own Flight View.
Two more abilities — letting viewers look back through your footage and ask for a clip while watching — are not built yet. They are switched off, nothing is shared through them, and they do not appear on the page. You'll find them in the Coming soon list below.
Nobody watching can ever download a video. That is built into the Streamer. It is not a setting, there is no way to switch it on, and nothing on this page changes it.
Codes
The Invited answer is the reason codes exist. Set something to Invited and a Codes you hand out section appears underneath.
Make a code, give it a name you will recognise — "Ridgeline client", "crew" — and tick what it should let people do. Each code carries its own list, so a paying client can get one thing and a bystander another.
A code looks like K7M2-QPRT. There is no I, O, 0 or 1 in it, because you will be reading it out across a noisy venue. Capitals, lower case and the dash make no difference when someone types it.
Take it away stops that code working immediately — for everyone using it, on their very next tap. There is no waiting for anything to expire.
Guests
Anyone who uses a code shows up under Guests who have used a code. The Streamer knows nothing about them except that a phone or a laptop used one of your codes and when it last did — no name, no email, no phone number, nothing you would have to look after.
Remove takes that device's code away from it. It does not stop the person typing the code in again — if you want to shut a group out, take the code away instead.
After a restart
Your choices and your codes survive the Streamer being switched off. But if it restarts in the middle of an event, it will ask you before handing anything back:
Carry on where we left off — the codes work again and everything you had opened to code-holders re-opens.
Start fresh — every code is thrown away.
Anything you had set to Open comes straight back on its own. Only the code side waits for your answer, so a flat battery between two jobs can never quietly let yesterday's guests into today's.
Adjusting what viewers see
The rest of Console → Viewer controls the watching experience. Nothing on that page touches your goggles, your own Flight View, or your recordings — it only changes what people on the link see.
Picture
Brightness, Contrast and Colour let you lift a dark or flat-looking feed for your audience. Useful on an overcast day, or when the camera is exposing for a bright sky and the subject comes out murky on a phone screen.
Each starts at 0, meaning the picture exactly as the camera sent it. Reset puts all three back.
This changes the picture on viewers' screens only. It is not burned into your recordings and not sent to YouTube or your other destinations — those keep the original picture. And it costs nothing: the adjustment happens in each viewer's own browser, so it adds no delay to the live feed and no load on the Streamer.
Everyone sees the whole picture
Viewers always see the complete frame, whatever shape their screen is. A 4:3 camera on a phone held upright, or a 16:9 camera on a tablet — the full picture is shown either way, never cropped to fill the screen.
There's nothing to configure here, and that's deliberate: cropping to fill a phone screen can hide well over half of a flight, with no hint to the viewer that anything is missing.
Getting to your own console
Tap the small gear in the corner of the viewing page, or add /console to the end of the address. Then sign in.
You'll be asked for your username and password — the ones you chose the first time you set the Streamer up. Your password is what keeps the settings yours: a guest who finds the gear finds only the sign-in page.
Bookmark /console if you like — but you never have to remember it.
What visitors can and cannot do
They can:
Watch the live flight, full screen — if you have that set to Open, or they have a code
See the flight data beside it — same, and it is a separate choice
Go full screen and rotate their phone
Leave and come back
They cannot:
Download a video. Ever. There is no setting for it.
Start or stop recording
Change any setting
See your recordings, streaming destinations or stream keys
See your device's name, address or storage
See another guest, or anything another guest has asked for
Get past the sign-in page without your password
That last group holds whatever you choose above. Even with everything set to Open, a viewer still sees only the flight — never your device, your footage or your clients' names.
Tips for a shoot
Show them once. Hand over the Wi-Fi password, let them open the link, then get on with flying.
Ask them to keep the screen on. The page tries to stop phones sleeping, but some phones override that.
Watching uses your Wi-Fi. Lots of viewers on a weak signal will affect quality for everyone. If you're expecting a crowd, a wired connection or a bigger network is worth it.
Coming soon
Letting viewers browse your footage — a switch to let people watching look back through what you have recorded. Nothing is shared until it ships.
Start and stop buttons for viewers — so someone watching can mark the moment they want rather than describing it to you afterwards.
Optional overlay — show your logo and signal strength on the visitor's view.
Client review link — a page clients can open themselves to browse footage and ask for clips. See Media & Clip Requests.
Watching from outside your network — a private link over the internet.
From recording to shot listThe current proxy workflow and the original-media boundary are shown separately.Swipe diagram →
Mark the shot on the pictureExact current interface with an owner-supplied stadium frame in the playback viewport.
Current status:
recording, visual requests, the request queue, CSV export, and the bulk GyroFlow bundle are built.
The ten-minute rolling buffer now has a writer and Console controls, but saving a permanent clip
from that buffer is not built. Automatic matching to the gyro-enabled file on the air unit also
remains research.
The Media Library. Recordings, the clips marked inside them, and the requests still owed all live here.
Every flight you record is kept on the box. This page is where you browse it, review it with a client or production team, and — the useful part — mark exactly which shots they want.
Recording: automatic or manual — your choice
At the top of the Media Library page is one switch: Start recording automatically.
On (how it ships): a recording starts the moment the video feed does, so the start of a flight is never lost even if your hands are full.
Off: nothing records until you press Record on the Flight View. Useful when you fly a lot of throwaway batteries and don't want the box filling up with them.
The switch takes effect straight away — no restart. It never cuts off a recording that's already running: if the box is mid-recording when you turn it off, that recording keeps going — press Record to stop it, and from then on the box waits for you.
The rolling clip buffer
Underneath the recording switch is a second one: Keep the last ten minutes.
It is off when your Streamer arrives, and it stays off until you turn it on.
With it on, the Streamer quietly holds the last ten minutes of the live feed in its memory, and the page shows you how much it really has.
Saving a clip out of the buffer — coming soon. The holding half works. The half that turns a moment out of the buffer into a file you keep is not built yet: there is no control for it on the Media Library page or anywhere else on the Streamer. Until it ships, the only footage you keep is what you Record.
The buffer is not a recording
This is the one thing worth being clear about, because the page shows minutes and megabytes and it looks like a recording.
It writes over itself, constantly. Only the last ten minutes are ever in it. Everything older is gone for good — the Streamer does not keep it anywhere.
And nothing comes back out of it yet. Until the clip control above ships, the buffer is something you can watch filling and nothing more. It is not a backup, it is not a recording, and it is not somewhere to leave footage you care about. If the shot matters, press Record.
Where it is kept — and what each choice costs you
You get two options, and the page tells you what each one costs at the moment you pick it.
Choice
What you get
What it costs
In memory (the default)
Nothing at all is written to your memory card, so the card doesn't wear out any faster.
If power is lost, whatever was in the buffer is gone.
On the memory card
Frees up about 574 MB of the Streamer's memory for everything else.
Writes about 2.9 GB to your card for every hour the Streamer is switched on, which wears the card out faster. The buffer is still emptied every time the Streamer starts up, so a power cut loses it either way.
In memory is the right answer for almost everyone, which is why it's the default. Pick the card only if you specifically need that memory back and you don't mind the wear.
What the page tells you while it's running
Held — how many minutes are actually in the buffer right now. Not the ten it's aiming for: the real number. It climbs from nothing when you switch it on.
Using / Limit — how much space the buffer is taking, and the most it is allowed to take.
Gaps — if the recorder was interrupted, the ten minutes aren't one continuous stretch, and the page says so rather than pretending otherwise.
Underneath those is a plain sentence from the Streamer itself saying what it's doing — including when it can't. If there isn't room for the full ten minutes it tells you how many you really have; if it's waiting for the video feed, it says that too.
Your recordings
Open Media Library in the Console. Every recording appears as a row showing a frame from it, its name, size, and the time it was made, newest first.
Tap a recording to play it right there in the browser.
Tap the download arrow to save it to whatever device you're using.
Recordings appear here while you're still flying — you don't have to stop recording to see one listed.
Arriving from the Flight Log? Pressing Watch this moment on a flight opens the right recording here and jumps straight to that point in it. If that recording has since been deleted, this page says so rather than sitting there doing nothing — the flight's readings are kept either way. See The Flight Log.
Clip requests — mark the shot with the client
This is the part that saves you real time.
Instead of writing down "the bit where you went round the building, maybe two-ish minutes in?", the signed-in operator marks the exact moment while reviewing it with the client and keeps a precise list. A separate guest review page the client can use alone is not built yet.
How it works
Play a recording.
Scrub to where the shot should start and press Start at playhead.
Scrub to where it should end and press End at playhead.
Fill in who's asking, how to reach them (email, phone, whatever they give you — it's just text, and nothing is ever sent automatically), and a short note — "hero orbit, use this one".
Press Request clip.
The request drops into a queue underneath, showing the exact timings:
cosmik-20260721-2200.mp4 [pending]
00:00:05.500 → 00:00:12.250 · 6.8s · ClientA
hero orbit, use this one
Managing the queue
Each request has three actions:
Action
Use it when
Approve
You've agreed to do it. Marks it as accepted work.
Done
You've delivered it. It drops off your outstanding list.
✕
Remove the request entirely.
The shot list — getting shots to your editing software
Press Download the shot list and you get a spreadsheet file (CSV) with every outstanding request: the recording, the exact start and end times, how long the clip is, who asked, how to reach them, their note, and its current status.
It opens in Excel, Numbers, or Google Sheets. It's a list for you to read while you cut — it is not a file GyroFlow can open. If you want GyroFlow to do the work, use the GyroFlow bundle below instead, which builds one ready-made project per request.
Finished requests are automatically left out — the list only ever shows work you still owe someone.
Twenty requests at once — the GyroFlow bundle
Doing twenty requests one at a time is the job this saves you.
Open Post & Delivery in the Console. Type the folder on your own computer where the footage lives — the whole path, like D:\Shoots\2026-07-25 or /Users/you/Shoots — and press Download GyroFlow bundle.
You get one ZIP holding:
Inside the ZIP
What it is
projects/
One GyroFlow project per outstanding request, with that clip's start and end already set. Drop the folder onto GyroFlow's render queue and export the lot.
cosmik-cutlist.csv
The same shot list as above, plus a column naming the project file for each request.
README.txt
The same instructions, inside the download, for when you open it a week later.
The file names start 001_, 002_, … and carry the recording, the timings and who asked, so a folder of finished exports still tells you what each one is.
Why it asks for a folder. GyroFlow needs the complete path to a video file. Given only a file name it opens with an empty screen asking you to load a video, and never says why. One paste per shoot spares you that on every clip in the batch. It is remembered in the browser you typed it into.
Which footage these projects open. They point at the folder you gave, plus the liveview recording's own name — the file the marks were made on. That is the right file for choosing and cutting, but liveview footage carries no motion data, so GyroFlow can trim it and cannot stabilise it. The drone's own card files do carry it — which is why the next section matters.
The shot list can also name the drone's own files. When you write the shot list onto the footage card (below), the Streamer looks at the card's videos, works out from your flight log which one each clip came from, and adds that to the shot list: the drone's file name and the matching start and end inside it. Editing tools that understand the shot list (the Cosmik Batch Exporter does) then open the drone's footage — with its motion data — instead of the liveview copy, so stabilising works. Two honest limits: the match is placed to within a few seconds, not to the frame — fine for finding the shot, and GyroFlow lines the motion data up itself — and if the Streamer can't tell which card video a clip belongs to, it says nothing rather than guessing. Those columns simply stay empty, and cutting by the liveview timings still works as before.
Write the shot list onto the footage card itself
The card is what travels to the edit — so the instructions can travel on it. Instead of (or as well as) downloading the ZIP:
Post & Delivery with a card plugged in. The Streamer names the card, shows how much room is left on it, and lists a few of the files it found — so you can confirm it is the right card before anything is written. The flight log is left unticked unless you choose it.
Plug the drone's air unit (or a card reader with the footage card) into the Streamer's USB port. The drone can stay powered off.
On Post & Delivery, the card appears with its size, free space, and a few of the footage filenames on it — check it's the right card before going on.
Press Write to card. While it says "Do not remove the card", don't. When it says "Written and checked. Safe to remove the card." — it is, and it means it: the Streamer read every file back off the card and compared it before saying so.
What lands on the card is one COSMIK folder holding the same bundle as the download. Nothing else on the card is ever touched — your footage cannot be modified or deleted by this, and the Streamer refuses to write while a recording is running or when the card is low on space.
Writing the card is also the moment the Streamer links your clips to the drone's own files (see "The shot list can also name the drone's own files" above): it needs to see the card and your flight log side by side, and this is when it does. So if you flew, then made clips, then write the card — the shot list on it already points every clip at the right drone file.
The flight log checkbox is off on purpose. Ticking "Include the flight log" adds your flight data files to the folder — and they contain GPS positions: where you flew, precisely. If this card is going to a client or an editor, think before including it.
Two things worth knowing:
Requests marked Done are never in the bundle — same rule as the shot list.
If you have already deleted a recording off the box to free space, its requests are still in the bundle (the work is still owed). The CSV's recording_on_box column says no, so you know to point the folder at your own copy of that flight.
Important: which file the clip actually comes from
This trips people up, so it's worth being clear.
The recordings on Cosmik Streamer come from the goggles feed — the same picture you fly with. It's ideal for choosing shots: it's instantly available, you and the client can watch it together on location, and it's time-accurate.
But the final deliverable is usually cut from the higher-quality file recorded on the drone's own memory card, because that's the one carrying the motion data that stabilisation software needs.
The shot list is the bridge between the two. The timings your client marks on the liveview recording line up with the drone's own recording, so you apply that list to the better file when you get home.
In short:
Liveview recording → what you choose shots from, immediately, together.
Drone's memory card → what you deliver from, later.
Critical setting to check: for stabilisation to work at all, your air unit must have RockSteady/EIS turned OFF and the field of view set to Wide. On any other setting the drone records no motion data whatsoever, and no software can add it afterwards. Check this before a paid shoot — it cannot be fixed later.
Storage
Recordings build up over time. The System page shows how much space is left.
You can free space by downloading what you need and deleting the rest from the box.
Your footage is never deleted automatically
Cosmik Streamer keeps every recording until you delete it. Because of that, the storage can fill up — and the Streamer keeps you ahead of it:
At 20%, 10% and 5% space left, a warning appears at the top of the console with the number of gigabytes remaining.
If the card actually fills, recording pauses and the console says so plainly. The live stream itself is not affected — only the recording pauses.
To make room, download what you want to keep, then use the delete button next to a recording (each delete asks you to confirm). Once enough space is free, recording resumes by itself.
Coming soon
Saving a clip out of the rolling buffer — the buffer holds the last ten minutes today, but there is no way to turn a moment out of it into a permanent recording. Until it ships, only what you Record is kept.
Client review link — a guest page clients can open themselves to browse footage and submit requests without you handing them the whole system.
Drone footage import — plug the air unit straight into the box and pull its memory-card footage off automatically, over its USB cable, with no card removal.
Automatic delivery — sending finished clips onward to clients.
Release-boundary guide reconciled at product baseline 28605da · source /docs/media-and-clips.md
The installed Cosmik Batch ExporterExact version 0.2.0 interface; folder names, filenames, and footage were replaced in the capture browser with controlled demonstration content.
Streamer to Exporter is a file handoffThe transfer is manual today. Automatic matching to the aircraft original is not built.Swipe diagram →
Cosmik Batch Exporter is a free desktop utility. It sends folders of video through an installed copy of Gyroflow, applies trims, and produces the output versions you select. It does not require a Cosmik Streamer licence.
What it does
Imports a folder of videos, individual files, or a Cosmik Streamer shot list bundle.
Previews footage and sets a global trim or a different trim for one file.
Exports horizontal, horizontal horizon-locked, vertical, and vertical horizon-locked versions in one queued run.
Keeps horizontal and vertical resolution settings separate.
Supports Gyroflow smoothness, horizon lock, zoom, codec, pixel format, GPU, and advanced command-line options.
Saves presets, remembers folders and settings, and reports progress for every output.
Opens a selected clip in the full Gyroflow interface when a job needs manual adjustment.
Preserves the source file. The Exporter does not pre-trim or re-encode it before Gyroflow reads its motion data.
What you need
A supported desktop release. The Windows installer is verified; the public macOS package is not ready yet.
Gyroflow installed on that computer.
The footage you want to process.
Cosmik Streamer only if you want to import its requested-clip bundle. The Exporter also works on ordinary folders without a Streamer.
Using a Streamer shot list
In Cosmik Streamer → Media Library, mark the requested clips and download the Gyroflow bundle.
Move the downloaded ZIP to the computer that holds the footage.
Open Cosmik Batch Exporter and choose Open Cosmik shot list.
If the recordings have moved, select the folder that contains them.
Choose the destination folder, output versions, resolution, and stabilization settings.
Start the batch. The Exporter sends each job to the installed Gyroflow command-line tool and verifies that an output file was produced.
The Exporter accepts the Streamer's ZIP, an extracted bundle folder, or the cosmik-cutlist.csv file itself. It reads columns by name, refuses an unsupported timebase, and lists requests whose recording cannot be found.
Current integration boundary
The Streamer and Exporter exchange a file. They do not discover or control each other over the network.
Current Streamer requests are marked against the Streamer's live-view recording. That review recording carries no motion data, so Gyroflow can trim it but cannot stabilize it. The Exporter can be pointed at footage from the aircraft or action camera, but the pilot must confirm that the file and timing match. Automatic matching between the review recording and the original card footage is not built.
Price and licence
Cosmik Batch Exporter is free and MIT-licensed. It has no activation key and does not consume a Cosmik Streamer licence. Gyroflow is installed separately under its own licence.
The Windows installer has been built, installed, and exercised locally. Public download hosting is not open yet. The macOS build workflow exists, but public distribution still needs the release package and signing decision.
Find the exact point where the link or picture changedExact current interface with controlled demonstration readings. Real ELRS and GPS collection are separately hardware-confirmed.
Hardware-confirmed core; refreshed views in validation:
the Streamer recorded 918 samples from a 15.8-minute flight, including 723 GPS fixes and live ELRS
readings. The current Timeline, Signal, Attitude, and Flight path views are implemented and tested
with controlled fixtures. Position only refreshed at roughly twelve-second intervals in that real
flight, and altitude was not trustworthy, so this guide does not present the path or altitude as a
dependable mapping product yet.
The Flight Log. Every flight the Streamer recorded, with what the link and the aircraft were doing at the time.
Every time you fly, Cosmik Streamer quietly writes down how things were going — once a second, for the whole flight. How strong your control link was. Whether the picture held up. What your battery was doing, if your drone tells it. Where you were, if your drone has GPS.
The Flight Log is where you look at all of that afterwards.
There is nothing to switch on. It has been doing this since the day you set the box up.
Why you'd bother
Because "the signal felt dodgy over by the trees" becomes "the link dropped to 22% at 4 minutes in, and here's the video of exactly what I was flying past".
That's the difference between a hunch and something you can plan a shoot around. Fly the same venue again and you already know where not to go.
The timeline does not require GPS. Most freestyle quads don't have it, and a lot of good flying happens indoors where GPS doesn't work anyway — which is exactly where a patch of bad signal costs you the most. The Flight Log is built around time, not position, so it works everywhere. If your drone does have GPS, you get a map of your path as a bonus.
Finding it
Console → Flight Log.
Your flights are listed newest first, with the date, how long you were in the air, and small tags saying what that flight has in it — Signal, Battery, GPS, Attitude, Footage. Tap one to open it. The newest flight opens on its own.
What counts as "a flight"? The box starts a flight the moment your video feed or your radio comes up, and finishes it a minute after everything has gone quiet. So a battery change gives you a new flight, and a brief dropout doesn't.
What it tells you
The plain-English summary
At the top of every flight is a short list of what actually happened, in sentences:
How to read the capture: the visible 38% weak-link event is the repository's eight-sample service-test fixture, not a customer flight or performance claim. On the product, this page writes the actual flight's weak-signal, picture-interruption, and available battery findings in sentences.
If nothing went wrong, it says that too. That is the useful answer most days.
The chart — the Timeline
Underneath is the flight drawn out from left to right — take-off on the left, the last moment anything was reporting on the right.
Lane
What it shows
Link quality
The one to watch. 100% is perfect; the dotted line marks 70%, below which it's worth noticing.
Signal strength
The raw strength in dBm. Closer to zero is stronger.
Picture
How much video was flowing, and where it stopped.
Battery
Your pack's voltage over the flight — only if your flight controller reports it.
Footage
Gold blocks showing when a recording was actually running, so you can see which parts of the flight you can watch back.
Trouble is shaded straight across every lane, so one glance finds it. Amber is a weak link; red is the picture stopping.
Move your finger or mouse across the chart and every lane tells you what it read at that exact instant, with a line underneath saying what it means.
Two lines, not one. A solid line is the uplink — your sticks reaching the aircraft. A dashed line is the downlink — everything the aircraft says coming back to you. They are two different radios and they can fail separately: it is normal to see your controls getting through perfectly while the readings coming back go patchy. Only the uplink affects your control of the aircraft.
A break in a line means "nothing reported this", never "the reading was zero". If your radio went quiet for nine seconds, there is a nine-second hole in the line. The Streamer will not draw a line straight through a moment nobody measured, and it will never plot a missing reading as zero. If your drone never sent a battery voltage at all, there is no battery lane — the box will not invent one.
The Signal view
The Signal tab is the same flight told as a radio report, for when a flight felt marginal and you want to know exactly which part of it was.
Six headline figures: link quality and signal strength in both directions, the noise margin (how much room the signal had above the background before it started losing packets), and the transmit power your radio was actually using.
Four charts, one for each — uplink and downlink separated so you can see which one struggled.
Where it got worst — the lowest moment of each reading, with its time in the flight and a button straight to the footage.
If your radio changed its own transmit power mid-flight, the page says so. ExpressLRS turns its power up and down on its own, and when it does, a weaker signal reading may only mean the radio backed off rather than that you flew further away. Two readings from that flight are not directly comparable, and the page tells you rather than letting you draw the wrong conclusion.
The Attitude view
The Attitude tab draws pitch, roll and yaw over the flight — which way the aircraft was pointing, as opposed to where it was. Nose up is a positive pitch, and the top of the tab shows your steepest climb, steepest dive and widest roll.
Move across the chart and the values appear right on the lines at that moment. Scroll (or pinch) to zoom into a moment, drag to slide along the flight, and a small overview strip appears under the chart showing where you are — drag it to move, or double-tap (double-click) to see the whole flight again. Tap to pin a moment: the reading stays put, and if footage was rolling there, a Watch this moment button takes you straight to it.
The yaw lane counts turns rather than pointing at a compass. It starts at the heading you took off on and keeps adding, so four circles to the left read as a line sloping steadily downwards instead of four jumps across the chart. The labels underneath say how far round you were at each end of the scale — "4.1 turns left" — and the middle mark is the heading you took off on, so every time the line touches it you were facing the way you started. Hover anywhere and the reading is still the compass heading at that second.
Why not a compass dial? Because a compass has to jump from 180° back to −180° every time you turn through the back, and a pilot who spins the aircraft would get a chart full of vertical lines that look like faults instead of flying. Counting the turns keeps the line honest and readable. Where readings are missing, the lane assumes you took the shorter way round.
A break in any of the three lines still means only one thing: the flight controller did not report at that moment.
Flights recorded before 31 July 2026 do not have it. The Streamer only started saving attitude on that date, so older flights say "No attitude was recorded on this flight" rather than drawing three flat lines. Nothing is wrong with your aircraft. It needs your flight controller to be sending telemetry over your ExpressLRS link, the same as battery does.
Moments worth a look
Below the chart is every moment the Streamer noticed, in order, in plain language — "Link quality fell to 22% for 9 seconds".
If a recording was running at the time, there's a "Watch this moment" button. Press it and the Media Library opens that recording at that point, so you can see what you were flying past. That is the whole point: the numbers tell you when, the video tells you why.
The flight path — for drones with GPS
If your aircraft recorded its position, a Flight path tab appears next to the summary.
One map, not two. There used to be a separate Replay tab showing the same flight a second time. It has gone, and everything worth having from it — choosing what the colour means, following the aircraft, and the strip under the picture — is on the flight path now.
At the top is a switch with two settings, and that is the only choice you have to make:
Setting
What you get
3-D
Your flight as a solid ribbon in three dimensions, over a grid. This is what it opens on.
Flat map
The same track drawn flat and top-down, to scale, with a scale bar in metres.
Flat map is also what appears automatically if your phone's browser can't show 3-D, or if the flight has too few positions to build a scene from.
Reading the 3-D view
The path is drawn as a ribbon over a grid, with a ring marking where you launched and N showing which way north is. A faint curtain hangs from the path down to the ground so you can see height at a glance; the Curtain button at the top right turns it off and on.
As the flight plays, a glowing trail follows your aircraft along the path — brightest right at it, fading out behind over the last few seconds — so you can see which way it was going and how fast it covered ground, even on a tangled path. Scrub the timeline and the trail follows your finger. The Trail button turns it off and on.
Press ▶ and a glowing dot flies your flight — drag the slider, or drag anywhere on the strip underneath the picture, to move it. Turn Follow on (top right) and the view travels with your aircraft instead of staying put; moving the view by hand turns it off again.
**Whenever footage was rolling at the moment you are sitting on, a Watch this moment button appears in the readout box** in the top-left corner. Scrub the strip to the bit you want to see, press it, and the Media Library opens that recording at that second. You do not have to find the exact point on the path first.
The small aircraft symbol shows which way the nose was pointing, taken from your flight controller — not the direction it happened to be drifting. That matters most when you are hovering or sitting on the ground, where there is no direction of travel to read: the symbol holds still, because the aircraft was holding still.
Most FPV aircraft carry no compass, so the flight controller measures the nose against whichever way it was facing when you powered up. The Streamer works out the difference for you from your fastest, straightest legs of the flight, where the nose and the track agree. If a flight never had one — a pure hover, say — the note under the picture tells you so, and you should read the symbol against take-off rather than against north.
Choosing what the colour means
Under the picture is Colour by, and it changes what the whole path is telling you. Only one at a time, so there is never a second meaning on screen to confuse it with:
Colour by
What the ribbon shows
Altitude
How high you were above your launch point. This is what it opens on.
Signal
Link quality — your controls reaching the aircraft.
RSSI
Raw signal strength, in dBm.
Speed
How fast you were moving across the ground.
Battery
What was left in the pack.
Dark is the low end of whatever you picked and near-white is the high end, and the label in the bottom-right corner always states the two ends in real numbers — for the flight you are looking at, not some general scale. A flight where the signal never left 97–100% will still show the full range of colour; the label is what tells you the whole spread was three percent. The strip underneath changes to match, so you can see when it happened as well as where.
If your aircraft never reported one of them, that button says so rather than pretending — it is greyed with a small dash, and hovering it explains why. Where a reading is missing for part of a flight, the path goes plain grey there. Missing is never drawn as zero.
What the markings mean
Only the moments that matter are marked. A five-minute flight has hundreds of recorded positions, and putting a dot on every one of them made a cloud you couldn't read or tap. So the Streamer marks where something changes — usually a handful of rings on the whole flight — and lets the ribbon carry the rest. You can still tap anywhere on the path to read that moment; the rings are simply the ones worth looking at first.
Ring
What it means
Gold, filled
A recording starts here — this is a part of the flight you can watch back.
Amber, filled
Your signal went weak here.
Red, filled
The picture or the radio dropped here.
Amber, hollow, on the ground
A height reading that was an obvious glitch, shown where it happened instead of being drawn as a dive into the earth.
Violet, hollow, on the ground
You were at — or below — your launch height. Your flight controller can't report a height under the launch point, so those moments read 0 m, and the ring is the honest hint that "0" may really mean "a little below where you took off".
Tap or click a ring — or anywhere on the path — to read that moment: time, height, speed, signal. If a recording was running, a Watch this moment button takes you straight to the footage. The rings are deliberately generous targets, so a fingertip lands on one first time.
Two more things the ribbon itself tells you:
Ghosted (see-through) stretches mean the height there is estimated: GPS briefly couldn't measure height reliably, so the Streamer filled the gap between the clean readings either side and dimmed it rather than pretending.
Dashed straight lines bridge moments where positions stopped arriving — nothing is invented across a gap.
Moving around it
Drag with one finger (or the mouse) to orbit around the flight.
Pinch with two fingers to zoom; move both fingers together to slide the view. On a computer, scroll to zoom and hold Shift while dragging to slide.
Double-tap (double-click) to see the whole flight again.
The ⟲ ⟳ − + ⌂ buttons in the corner do the same — rotate, zoom, and reset — and the arrow keys work too, if a keyboard is easier for you.
There is no map underneath either view, and that's deliberate. Map backgrounds have to be downloaded from the internet, and the whole idea of this box is that it makes its own Wi-Fi so you can fly in a field with no signal. A map that worked at home and was blank at the shoot would be worse than none. The 3-D scene's grid is labelled in real metres, and the flat map has a scale bar — real distances, no internet.
No GPS module on your quad? Then there is no flight path, and the Flight Log says so plainly rather than leaving you waiting for it. Everything else on the page works exactly the same.
About height
The height your aircraft sends isn't a raw GPS number — it is your flight controller's own height estimate, and from the moment you arm, that estimate means height above your launch point. That is exactly the number a pilot wants, and it is what the flight path draws — the 3-D view and the flat map read the very same cleaned-up data, so they can never disagree. Three honest quirks, all shown rather than hidden:
Below launch reads as 0. Your flight controller cannot report a height under the launch point — dive below it and the number sits at 0 m until you climb back. Those moments are marked with small violet rings so "0" is never mistaken for "exactly at launch height".
Time parked shows at ground level. Before you arm and after you land, the aircraft reports the field's height above sea level instead — so the Streamer draws parked time at the ground, where it belongs, rather than as a phantom cliff.
Obviously-broken readings still happen (a height that leaps by a hundred metres for one moment and snaps back). They are shown as small amber rings at ground level, so you can see they happened without them being drawn as flying.
Two more cases the Streamer handles on its own:
If your flight controller has a barometer, the Streamer uses it for height automatically. A barometer reads height to well under a metre, and most flight controllers have one.
If a flight never shows the arm-time switch in its numbers (rare — for example the log started mid-flight), the Streamer falls back to measuring how noisy this session's GPS readings were and says so on the page (for example "heights from GPS, ±17 m this session"). A low hop inside that noise is drawn flat at ground level — with a sentence explaining why — rather than as imaginary hills.
What each part needs
Part of the Flight Log
Needs
The flight list, timing, picture and dropouts
The Streamer's own session and picture data. The exact device-served interface has been captured with the repository fixture; authenticated real-flight data remains in Validation until its current-device walk-through is complete.
A barometer on the flight controller (most have one)
"Watch this moment"
A recording to have been running at the time
Housekeeping
Only you can see this. The Flight Log sits behind your console password, like your recordings. Guests watching your live view cannot reach it — which matters, because on a GPS-equipped drone it is a record of where you were and when.
Flight-log storage is counted. The System page includes it in the storage figures. No public capacity figure is claimed here before release measurement.
Shut it down from the console rather than pulling the plug.System → Power off closes everything down properly so the card is never at risk. Give it ten seconds, then unplug.
If the power is cut mid-flight anyway, the last second or so of the log can be cut off. The flight still opens, everything before it is intact, and the page tells you it happened.
On a long flight the chart shows a selection of the readings rather than all of them — but it always keeps the worst reading in each slice, so a dropout can never be smoothed away.
Release-boundary guide reconciled at product baseline 28605da · source /docs/flight-log.md
Local links and remote publishers in one placeExact interface; destination names and addresses are controlled demonstration data.
Validation status:
clean destinations are established. The newer per-destination Branded/Pilot feed choice and its
automatic broadcast start are implemented and test-covered, but the branded destination has not yet
been watched end-to-end on the current physical device.
Destinations. Each place you send the flight to - a streaming service, a vision mixer, a screen at the venue - is listed and switched on here.
There are two ways to get your flight in front of people:
On your own network — instant, free, no accounts. Best for clients standing nearby, a monitor at the event, or a vision mixer.
Out to the internet — YouTube, Facebook, Twitch, or a client's own system.
Both are on the Destinations page in the Console.
1. Sharing on your own network
The Live now section lists addresses that are always working — nothing to switch on.
Link
Use it for
WebRTC preview
Watching in a browser. Fastest option. Send this to people.
HLS
Smart TVs and players that don't do WebRTC. Several seconds of delay.
RTSP
Gear that can only take RTSP — some vision mixers and capture systems. Several seconds of delay.
Press Copy next to any of them to copy the address, then paste it into a message or into your software.
Which one should I send someone? The WebRTC preview link, every time. It opens in any browser and is the quickest.
⚠️ Using OBS or vMix? Don't use the RTSP link. Those tools hold a couple of seconds of video before showing anything, so your flight ends up visibly behind. There's a better way that takes the same time to set up — see OBS & Production Tools. Only reach for RTSP when your gear genuinely can't do anything else.
2. Going live to YouTube, Facebook and others
The Restream targets section pushes your flight out to the internet.
Adding a destination
Press one of the Add buttons: + YouTube, + Facebook, + Twitch, + Custom RTMP, + SRT, or + MPEG-TS.
A new entry appears with the correct address already filled in for that platform.
Paste your stream key into the key box (see below for where to find it).
Flip the switch on.
That's it. Within a few seconds the label changes to Live and you're broadcasting.
Where to find your stream key
Your stream key is a long password-like code from the platform itself:
YouTube — YouTube Studio → Go Live → Stream key
Facebook — Creator Studio → Live Producer → Stream key
Copy it and paste it in. It's hidden as you type, and it's stored on your box so you only do this once per platform.
Keep your stream key private. Anyone who has it can broadcast to your channel.
Watching the status
Each destination shows you exactly what's happening:
Label
Meaning
Off
Switched off. Nothing being sent.
Connecting
Dialling the platform. Normal for a few seconds.
Waiting
Set to Branded, and the broadcast version is still starting. Normal for a few seconds; nothing to do.
Live
You're broadcasting.
Error
Something's wrong — the message underneath tells you what.
If the internet drops out mid-flight, Cosmik Streamer keeps retrying on its own and reconnects when the connection comes back. You don't have to do anything.
You can rename any destination (tap its name) — handy when you have several, like "Client — YouTube" and "Our channel".
Running several at once
You can have as many destinations live at the same time as you like — YouTube and Facebook and a client's system, simultaneously. Each runs independently, so one having trouble doesn't affect the others.
Note: each live destination uses a little of the box's capacity and your internet upload. If you're on a weak mobile connection, two or three is a sensible maximum.
The other destination types explained
Most people only need YouTube/Facebook/Twitch. The others are there for professional work:
Custom RTMP — any platform not in the list. Paste the address they give you.
SRT — a broadcast-industry format designed to survive unreliable internet. If a client asks for SRT, they'll give you the address to paste.
MPEG-TS — sends video directly to another machine on a network, common in outside-broadcast setups.
If none of that means anything to you, you don't need it. See the Glossary.
Which picture gets sent?
Each destination has a Picture setting with two choices:
Choice
What goes out
Branded(what new destinations use)
The broadcast version — your logo, name bar and timecode from Logo & Overlays, at the shape and bitrate set in Video & Output.
Pilot feed
Exactly what you fly, untouched and at full quality. No logo, no reshaping.
Underneath each destination the Streamer tells you which one it is actually sending right now — not which one you asked for. If those two ever differ, the line underneath says why.
Branded is automatic
You don't have to switch anything else on. The moment you have something to burn in — a logo, a name bar or a timecode — the broadcast version starts by itself for any destination set to Branded, and stops again when nothing needs it. The switch on Video & Output is still there if you want it running all the time (for a crew pulling it over your own network), and turning it on there keeps it up regardless.
While the broadcast version is starting, a branded destination shows Waiting for a few seconds and then goes Live. It is not an error and there is nothing to do.
If you have not set up any branding yet, there is nothing to burn in, so a Branded destination sends the plain pilot feed and says so on its own line. Upload a logo and it switches over on its own.
When to choose Pilot feed instead
The lowest possible delay. The branded version is re-encoded on the box, which adds a little delay and re-compresses the picture. YouTube and Facebook buffer far more than that anyway, so it rarely matters — but if a client is cutting live off your feed, give them the pilot feed.
A client who wants a clean picture to add their own graphics to.
You are already branding downstream in OBS or vMix.
Only one re-encode, ever. Ten branded destinations do not mean ten transcodes — they all copy the same one broadcast picture. Turning branding on costs about a quarter of the box's processing power in total, no matter how many destinations use it.
MQTT — feeding dashboards and automation
MQTT is a messaging system used by dashboards, automation tools and fleet monitors (Node-RED, Home Assistant and similar). If none of that means anything to you, skip this section — nothing here is needed for streaming.
The MQTT card on the Destinations page connects the Streamer to a broker of your choice:
Type the broker's address — like tcp://192.168.1.20:1883, or ssl://… if your broker uses TLS.
Add the username and password if your broker needs a login. Leave the username blank if it doesn't.
Flip the switch on. Connected means it's working; if the broker drops out, the Streamer keeps retrying on its own.
While connected, the Streamer:
sends the flight telemetry once a second to cosmik/telemetry — the same readings the Telemetry page shows, so signal strength always, and battery or GPS only if your aircraft actually reports them
announces on cosmik/status whenever the stream or the recording starts or stops
The word cosmik is the topic prefix — change it in the card if you run several Streamers on one broker (say unit1, unit2).
Letting the broker control the Streamer
Out of the box the link is read-only: the Streamer sends, and obeys nobody. Switch read-only off and it also listens on cosmik/cmd for exactly three commands:
Send this
It does
{"action":"record","on":true}
Start recording (false stops)
{"action":"broadcast","on":true}
Turn the branded broadcast version on or off
false releases your switch. If a destination is set to Branded, the broadcast version keeps running for it — turning it off there would stop that destination sending.
{"action":"visitorMessage","message":"Back in 5 minutes"}
Change the message visitors see
Anything else is ignored.
Think before switching read-only off. Anyone who can publish to your broker can then start and stop recording on your Streamer. Only do it with a broker you control.
Your broker password is kept on the Streamer itself, in a file only the Streamer can read.
Coming soon
NDI — for studio production networks.
Per-destination branding — a different logo or name bar for each destination. Today every branded destination carries the same one.
Cosmik supplies the picture; OBS builds the production sceneAvailable now: OBS receives Cosmik through a Browser Source. Planned: Cosmik controls OBS through its password-protected connection.Swipe diagram →
Cosmik can supply the goggles picture to OBS Studio as a Browser Source. Once it is inside an OBS scene, OBS can position it, layer other sources over or beside it, record the finished program, stream it, or send it to a projector output.
Available now: OBS receives the Cosmik picture. Planned, not built: Cosmik controls OBS recording, streaming, or scene switching.
Add the Browser Source
In OBS, add a Browser Source.
Paste this address:
`` http://cosmik.local/embed ``
Set Width to 1920 and Height to 1080.
Turn on Shutdown source when not visible and Refresh browser when scene becomes active.
If the Streamer uses a collision name such as cosmik-2.local, use that exact name and add /embed.
This route uses the same local WebRTC connection as the browser viewer. It was checked on the real development device and the owner then confirmed the picture in OBS. The RTSP route also worked in an OBS Media Source, but its buffer made it materially slower in that check. No public latency number is claimed.
Choose the picture
Address
Picture
http://cosmik.local/embed
The complete clean goggles picture
http://cosmik.local/embed?src=broadcast
Cosmik's separate broadcast branch with its enabled graphics
http://cosmik.local/embed?fit=fill
A cropped picture that fills the Browser Source frame
The embed page contains only the picture. It does not include Cosmik buttons, navigation, or owner controls.
src=broadcast only shows a picture while the separate broadcast branch is running.
Build the OBS scene
The Cosmik source behaves like another picture source in OBS. You can:
place and resize it in the scene;
layer venue graphics, scores, sponsor artwork, or other camera sources;
record or stream the finished OBS program; and
use an OBS fullscreen or windowed projector output for a display.
The DJI air unit carries no audio, so the Cosmik picture is silent. Add venue sound, commentary, or another approved audio input as a separate OBS source.
The ordinary Cosmik viewer and local recording can continue while OBS receives its own copy.
Framing a 4:3 picture
The goggles can send a 4:3 picture while an OBS program is 16:9.
The default /embed address keeps the complete picture and may show bars at the sides.
?fit=fill fills the frame by cropping part of the picture.
OBS can also size and crop the default source inside the scene.
The clean Cosmik viewer and recording path are unchanged by the layout built in OBS.
If OBS shows nothing
Open the ordinary viewer in a browser. If no picture appears there, OBS cannot receive it.
Confirm the OBS source type is Browser Source, not Media Source.
Confirm the address matches Console → Network → Share with viewers, then add /embed.
Confirm Shutdown source when not visible and Refresh browser when scene becomes active are enabled.
Cosmik does not accept video from OBS or another computer. It supplies the goggles picture to the production tool; it does not expose an unauthenticated network video input.
Video & Output. This is where the broadcast version of your feed is set up, separately from the picture you fly on.
This page does one important thing: it lets you broadcast in a different shape from the one you fly in — without touching what you see in your goggles.
The problem this solves
FPV pilots often fly in a 4:3 picture — taller, more of the ground and sky, better for flying. But almost everything you'd broadcast to — YouTube, a TV, a projector, a client's edit — wants 16:9, the familiar widescreen shape.
You shouldn't have to pick one. Cosmik Streamer makes a second version of your flight in whatever shape you need, while your own view stays exactly as you like it.
The two feeds
Pilot feed
Broadcast version
What it is
Exactly what you see, untouched
A reshaped, branded copy
Speed
Fastest possible
Slightly behind
Quality
Original, no re-processing
Re-encoded
Your logo?
No — always clean
Yes, if you add one
Always on?
Yes
On when you switch it on, or on its own when a destination needs it
Sent to YouTube?
If a destination is set to Pilot feed
If a destination is set to Branded — which is what new ones use
The pilot feed is never affected by anything on this page. That's the whole design.
Turning on the broadcast version
On the Video & Output page, find Enable broadcast branch and switch it on.
After a few seconds the label reads Live, showing you the size and quality it's producing, like 1920×1080 · 12 Mb/s (HW).
Its viewing addresses then appear in the Live now list on the Destinations page.
**If the label reads Waiting, nothing is wrong.** The broadcast version reshapes the picture coming from your goggles, so it has nothing to work with until that picture is arriving — which is the normal state before you power the aircraft. It starts on its own, within a second or two, as soon as video appears. You don't need to switch anything off and on again.
Live means live. The label only says Live while the broadcast version is actually producing video this second. If it stops producing — the feed drops, the encoder gives up — the label stops saying Live and tells you why underneath. It will never claim a client is watching a picture that isn't being sent.
You may find it already on. A destination set to Branded starts the broadcast version by itself, because that is the picture it sends. When that happens the row says so, and the switch stays where you left it. Switching it on here keeps the broadcast version running all the time, whether or not a destination needs it — which is what you want if a crew is pulling it over your own network.
The settings
Aspect ratio
The shape of the broadcast picture.
Match — the same shape you're flying in. The Streamer reads the shape off the picture arriving from your goggles, so if you switch the goggles between 4:3 and 16:9 the broadcast follows within about half a minute. Until a picture is actually arriving it can't know the shape, so it uses the resolution below instead — the page tells you which of the two is happening.
16:9 — standard widescreen. This is what you want for YouTube, TVs and projectors.
4:3 — the taller shape.
Changing the shape restarts the broadcast picture for a moment. That's unavoidable — the picture is a different size afterwards — and it happens whether you change it yourself or Match follows a change you made in the goggles. Your own view and your recording are not affected.
Fit mode
What to do when the two shapes don't match — for example flying 4:3 but broadcasting 16:9.
Pad — keeps the whole picture and adds black bars at the sides. Nothing is lost.
Crop — fills the screen completely by trimming the top and bottom. No black bars, but you lose some of the edges.
Which should I choose?Pad if the client needs to see everything you saw. Crop if you want a full-screen look and can afford to lose a little off the edges.
Resolution
How big the broadcast picture is. Normally two choices: 1920×1080 and 1280×720.
The list only ever offers what your Streamer can actually produce, which is whichever of these two limits is tighter:
1920×1080 is as large as this hardware can make. The chip that does the encoding cannot go higher, so nothing bigger is offered.
Never larger than the picture your goggles are sending. Making the picture bigger than the one that arrived cannot add detail that was never there — it just uses more of your upload, and YouTube shrinks it back down again anyway. So if your goggles send 1280×720, that is the only size on the list.
The page tells you which limit is doing the capping. Before you power the aircraft there is no picture to measure, so the list shows everything the hardware can do and narrows on its own the moment video appears.
"My saved setting changed by itself." If a setting was saved that your Streamer cannot deliver — an older version of this console offered 2560×1440, which neither limit above allows — the page corrects it, saves the correction, and tells you in plain words what it changed and why. It will not quietly pretend to use a setting it is ignoring.
Bitrate
How much data the broadcast picture uses — effectively its quality.
You normally don't touch this. Picking a resolution sets it for you to the value that looks good without wasting upload — 12 Mb/s at 1920×1080, 6 Mb/s at 1280×720.
A cap holds it there, and the cap is on to start with. You can always slide lower — that is the single most effective fix for a stream that stutters or buffers for viewers. To go higher, switch on Allow more than the recommended bitrate, which opens the slider up to 30 Mb/s.
Should you turn the cap off? Usually no, and here is the honest reason:
It almost certainly won't look better. YouTube, Facebook and Twitch re-compress whatever you send them. Past the recommended value the extra data is thrown away before anyone sees it.
It is your upload it spends. A field connection is the thing most likely to give out.
We have not proven it is expensive on the Streamer, and we will not claim it is. Measured on a Pi 4 running at full speed with nothing throttling it, the broadcast encoder used the same amount of processing at 30 Mb/s as at 12. Two identical readings are not much of a result, and we did not measure everything, so treat a high bitrate as untested rather than free.
The cap is best understood as a safety rail for the conditions you can't see — a marginal power supply, a hot day, a slow uplink — not as a fix for a problem we have caught the Streamer having. If you know your connection and you want the headroom, turn it off; the console says all of the above at the switch.
Encoder
Shows HW, meaning the work is done by dedicated hardware inside the box rather than general processing. This is why it can reshape and brand your video without slowing down your live picture. There's nothing to change here.
Pilot feed (input)
The top section is purely informational — it shows what's arriving from your goggles: resolution, frame rate, format, and bitrate.
Use it as a health check. Whatever arrives, Cosmik Streamer follows along automatically — there is nothing here to set.
Don't expect this to match what your drone is recording. The picture the goggles hand over USB is the live view, not the drone's own file. In our testing it arrived as 1080p30 even with the drone set to 4K60 — the drone still recorded 4K60 to its own memory card. That's normal, and it's exactly why the drone's card is what you deliver from; see Media & Clip Requests.
What it costs you
Running the broadcast version uses roughly a quarter of the box's processing capacity, and it's comfortably fast enough to keep up in real time. Your live picture, your recording, and your streaming all continue exactly as before.
Adding your branding
Go to Logo & Overlays to put your logo, a name bar, and a timecode on the broadcast version. Those appear only on the broadcast version — never on your own view, and never in your recordings.
They do go out to YouTube, Facebook and Twitch, on any destination set to Branded — which is what new destinations use. So do the aspect ratio and bitrate on this page. See Streaming to Others for the per-destination choice.
Turning branding on costs nothing extra per destination. Every branded destination copies the same one broadcast picture, so ten of them still means one re-encode.
Putting the flight on a monitor or TV
Plug an HDMI screen into the Streamer and the live flight appears on it. Nothing to switch on, nothing to configure — it's for the crew, the client, or a stand at an event.
Open Console → Display and the screen you plugged in is listed by name, with the size the Streamer is driving it at. If nothing is plugged in, the page says so.
Scaling decides how the picture fills that particular screen:
Fit
The whole picture, correct shape, thin bars if the screen is a different shape. Recommended.
Fill
Stretches edge to edge. Nothing is cut off, but people and buildings look wider or taller than they are.
Crop
Fills the screen properly by trimming the picture's edges. No bars, no distortion, but you lose a little around the sides.
The Streamer remembers each screen. Your setting is stored against that exact monitor, so the projector at a venue and the TV in your studio can each have their own — and plugging one back in applies its setting on its own.
While a monitor is connected, the same choice is also on the Flight View as a small button beside the other controls, so you can fix a screen without leaving the cockpit.
This is your live flight, not your goggles' own display, and it is a separate thing from the waiting screen between flights — that one is on Logo & Overlays.
Branding controls with a live proof surfaceExact current interface with controlled demonstration branding.
Current HDMI addition:
the same uploaded photo or short video is now used by the visitor standby screen and the connected
HDMI monitor. Looping video playback was verified on the physical monitor. The written message
overlay still belongs to the browser standby screen.
Overlays & Branding. Your logo and overlays are placed here, and they never touch the picture you fly on.
This is where you put your name on your work — your logo, a name bar, and a running timecode, burned permanently into the broadcast picture.
Everything on this page affects the broadcast version only. Your own view in the goggles and the fast pilot feed always stay completely clean. You will never have a logo floating in your face while flying, and none of this is in your recordings.
Your branding does reach YouTube, Facebook, Twitch and your other destinations. Each destination on the Destinations page sends either the branded broadcast version or the plain pilot feed, and new destinations send the branded version. You do not have to switch anything else on: the moment you add a logo, name bar or timecode here, the broadcast version starts by itself for any destination that needs it. Set a destination to Pilot feed when a client wants a clean picture or the very lowest delay.
Before you start: the Broadcast overlays card at the top of the page has its own broadcast switch and — while the broadcast is running — a small live snapshot of the actual broadcast picture, refreshed every few seconds. That snapshot is your proof: if your logo is burning in, you'll see it right there.
The switch keeps the broadcast version running all the time, which is what you want if a crew is pulling it over your own network. You do not need it for a branded destination: those start it on their own and the card says so when they have.
One thing on this page is different: the Splash screen below appears between flights, both on the public viewer page and on a monitor plugged into the Streamer. It is not burned into the broadcast. You upload it once and both screens use the same file. Your message goes over the picture on the viewer page only — a monitor plugged into the Streamer shows the picture on its own.
Splash screen (what viewers see between flights)
When there's no live picture — you're swapping batteries, setting up, or wrapping up — anyone watching the viewer link, plus the HDMI monitor, sees a waiting screen. You can put your own picture or a short video behind it, with your message over the top.
Where the message appears. Your picture or video goes to both screens. Your message and its placement are drawn by the viewer page only — the HDMI monitor shows your picture or video on its own. If you have not uploaded anything, the monitor falls back to a plain Cosmik card that reads "Waiting for the flight to start"; that fixed wording is not your message and does not change with it. Putting your own words on the monitor is on the Coming soon list below.
Adding your picture or video
Go to Overlays & Branding in the Console.
Under Splash screen — between flights, next to Background media, press Upload…
Choose a photo or a video.
You'll see a small preview, and viewers see it straight away the next time the feed is down. Press Replace… to change it, or Remove to go back to the plain waiting screen.
Placing your message
Message position — tap one of the nine squares to choose where your words sit on the viewer page: a corner, an edge, or the middle. It does not change the HDMI monitor, which shows your picture without the message.
Picture fitting is automatic. The whole picture or video stays visible. A soft, dimmed copy fills any space around it, so upright phones and wide monitors both look intentional without a technical display setting.
Message — pick one of the ready-made lines ("Swapping batteries — back in a moment") or choose Something else… and write your own. It changes on viewers' screens straight away.
Time since the last picture is always shown underneath automatically, so someone arriving late knows whether it's worth waiting.
What kind of file works best
Pictures: PNG, JPEG and WebP are accepted, up to 12 MB. Large pictures are automatically reduced to a sensible screen size so they load quickly over the Streamer's Wi-Fi.
Videos — this matters:H.264 MP4 is the safest choice. H.264, VP8 or VP9 video up to 1080p, 60 fps and 1 GB is accepted from MP4, MOV, M4V, WebM, MKV, TS, MTS, M2TS, AVI and FLV containers. There is no separate duration limit. The Streamer quickly repackages the video into a silent MP4 or WebM without reducing its quality. Formats such as HEVC/H.265, AV1, 10-bit colour or 4K are rejected with an explanation because they cannot be promised to work on both phones and the HDMI monitor. Shorter files still upload and start faster over Wi-Fi.
During a large upload, the button shows progress. After the bytes reach the Streamer it briefly says Processing while the file is checked. If the file cannot be used, the page states the actual reason; it does not mislabel a size or format problem as a connection failure.
Your picture or video is only ever shown while there's no live flight. The moment the feed comes back, it's replaced by the video — it never sits over the flight.
Your logo
Adding it
Go to Overlays & Branding in the Console.
Next to Logo image, press Upload…
Choose your logo file.
It uploads, you'll see a small preview of it, and it appears on the broadcast picture within a few seconds. Press Replace… to change it later, or Remove to take it off.
What kind of file works best
A PNG with a transparent background gives the most professional result — your logo sits on the video rather than in a rectangle.
JPG and WebP also work, but a JPG will always show as a solid block.
Any reasonable size is fine; it gets scaled to fit. A logo around 500–1000 pixels wide is plenty.
The single biggest quality difference is transparency. If your logo currently sits in a white box, ask your designer for a "PNG with transparent background" — it'll look far better.
Placing it
Corner — pick which corner it sits in. Tap one of the four squares.
Opacity — how solid it looks. Around 80–90% is a good balance: clearly visible, but not fighting the footage. Lower it for a subtle watermark.
Size — how large, as a proportion of the picture. 10–15% suits most logos.
Changes apply within a few seconds. The broadcast picture briefly restarts as it updates — that's normal, and viewers just see a moment's pause.
The name bar (lower-third)
A name bar across the bottom-left — the sort of thing you see under an interviewee on TV. Good for the pilot's name, the client, or the event.
Type what you want to appear into Pilot ID.
Switch on Lower-third (pilot / event).
It appears in a semi-transparent panel so it stays readable over both bright sky and dark ground.
If Pilot ID is empty, the bar falls back to your product name.
Timecode
Switch on Burn-in timecode to show a running clock in the top-right, counting up from when the broadcast started, e.g. 00:04:37.500.
Why you'd want this: if a client is watching live and says "that bit at four minutes thirty" — you both have the exact same number to work from. It removes all ambiguity when they come back later asking for a shot.
Turn it off for a clean look when it isn't needed.
Display name
Display name is the fallback text in the lower-third when Pilot ID is blank. It does not rename the app.
Bottom-right keeps the logo clear of the sky (where a lot of the action is) and out of the way of the name bar on the left.
Coming soon
A branded boot screen — branding from the moment the Streamer powers on, separate from the working between-flights splash described above.
Your waiting message on the HDMI monitor. The picture and video already appear there; the message does not.
A different logo per destination. Today every branded destination carries the same one.
Goggles HUD support — the goggles' “Camera View Recording” setting may include the pilot HUD, but its USB-output behaviour is still being hardware-tested. Do not rely on it for a shoot yet.
Telemetry burn-in — a styled signal/battery overlay on the broadcast picture only, leaving your recordings clean (unlike the goggles' HUD option above).
The Telemetry page - link quality, signal and flight figures as they arrive.
Cosmik Streamer can show you how strong your control link is, live, while you fly — and record it. It's genuinely useful information: it tells you whether you're comfortably inside your range or quietly running out of signal.
This is optional. Everything else works without it.
What you'll see today
Once set up, the Telemetry page and the corner of the Live View show:
Reading
What it means
What's good
Uplink LQ
Link Quality — the percentage of signals getting through to the drone
100% is perfect. Below ~70% is worth noticing.
Uplink RSSI
How strong the signal is, in dBm. Always negative
Closer to zero is stronger. −40 is excellent, −100 is marginal.
Uplink SNR
How clearly the signal stands out from background noise
Higher is better.
Downlink LQ / RSSI
The same, for the drone talking back to you
Same rules.
TX power
How hard your radio is transmitting, in milliwatts
Higher reaches further, drains faster.
The one number to watch is Link Quality. If it starts dropping, you're heading toward the edge of your range — turn back before it reaches zero.
Two different sources — and why half the page can be blank
The Telemetry page is split into Radio link and Aircraft, because the readings come from two different places and either can work without the other.
Only if the flight controller is set up to send telemetry
So a full set of signal readings beside a column of dashes is completely normal. It means your radio link is healthy and your flight controller isn't reporting — two separate things.
A dash means "this reading hasn't arrived" — never "the value is zero". We will never show you 0.0 V for a battery we can't actually measure. If you see a number, something measured it.
Getting the aircraft readings
Battery, altitude, speed and attitude come from your flight controller over the same radio link. You'll need telemetry enabled on the flight controller, and for battery specifically, a voltage sensor configured — most flight controllers have one built in, but it has to be switched on. This is set up in your flight controller's own configurator, not in Cosmik Streamer; we only display what arrives.
GPS needs a GPS module
Satellites, altitude, speed and heading need a GPS module fitted to the aircraft. Plenty of freestyle quads don't have one, and no amount of configuration will change that — there's simply no sensor to read.
Cosmik Streamer works this out for itself. If your flight controller is reporting other things but never GPS, the page says so plainly instead of telling you to wait for a fix that will never come. Fly an aircraft that does have GPS and the map and satellite count appear on their own, with nothing to switch on.
If your aircraft has a GPS module and you're still getting nothing, the usual cause is that the flight controller can't see its own module — and it's typically three faults at once, two of which are invisible from the GPS tab of your configurator. There's a step-by-step for it in Troubleshooting → No GPS.
Setting it up
You need an ExpressLRS (ELRS) radio — for example a RadioMaster Boxer. Your radio sends its signal information over Wi-Fi, and Cosmik Streamer listens for it.
What you need first
ELRS firmware version 3.5 or newer on both your radio and your receiver.
Both on the same major version (a version 4 radio cannot talk to a version 3 receiver).
If you're unsure, check the version on the radio's ELRS screen. If it's older, update it using the ExpressLRS Configurator before continuing.
On your radio
⚠️ Before you start, one rule that will save you a lot of time: **do not open the WiFi Connectivity menu at any point.** Not to look, not to check. It is a different menu that does a different job, and visiting it once quietly stops telemetry working — see The one menu to stay out of below.
Open the ExpressLRS tool on your radio (usually the SYS button → Tools → ExpressLRS).
Find Telem Ratio and set it to Std — anything except Off. If it's off, your radio never receives anything to pass on.
Roll down to Backpack and press ENTER. You'll get a list starting with Backpack, then DVR Rec, DVR Srt Dly, DVR Stp Dly, HT Enable, HT Start Channel, Telemetry, Version.
**Check the Version line first. If it shows a version number, the backpack is powered and listening, and the next step will reach it. If it's blank, stop** — the backpack isn't answering, and changing settings will appear to work while doing nothing at all. Switch the radio off, wait ten seconds, switch it on and look again.
Roll to Telemetry and press ENTER. The value starts blinking — that's edit mode. Roll until it reads WiFi, then press ENTER again to leave edit mode.
That's the whole radio setup. Telemetry is a value you scroll to, not a button you press — and leaving edit mode is the moment the setting is actually sent to the backpack.
If there's no WiFi option under Backpack → Telemetry, your firmware is too old to support it — update it first.
The one menu to stay out of
There are two menus on the radio with WiFi in the name, and only one of them is the right one:
Menu
What it's for
Backpack → Telemetry → WiFi ✅
This one. Sends your flight data over Wi-Fi.
WiFi Connectivity → Enable Backpack WiFi ❌
Firmware updates only. Never sends telemetry.
Picking the wrong one isn't just a step that doesn't work. **Opening Enable Backpack WiFi even once switches telemetry off from the next time you power the radio on — and the radio carries on displaying WiFi** under Backpack → Telemetry as though everything is fine.
That combination is what makes this worth a section of its own: there is no error message, nothing on the radio looks wrong, and switching the radio off and on again does not fix it — it's what applies it. It is very easy to conclude the Streamer is broken. It isn't, and the recovery takes about a minute.
Fixing it — telemetry stopped and the radio still says WiFi
Do this if telemetry has stopped, or if you've been in WiFi Connectivity at any point.
Switch the radio fully off. Wait ten seconds. Switch it on.
Open SYS → ExpressLRS → Backpack.
**Read the Version line.** If it's blank, stop and repeat step 1 — nothing below will reach the backpack until that line shows a version.
Roll to Telemetry, press ENTER, roll to Off, press ENTER.
Wait five seconds. The backpack restarts itself after a change and needs a moment.
Roll to Telemetry, press ENTER, roll back to WiFi, press ENTER.
Wait about thirty seconds, then check Console → Network → Pilot's radio (ELRS).
Setting it to Off and back is the whole trick. The radio only tells the backpack about this setting when you change it, so re-selecting WiFi when it already reads WiFi sends nothing — which is why simply looking at the menu, or restarting the radio, never helps.
Your drone doesn't need to be switched on for any of this. You'll need it on before readings actually appear, but not to make the fix.
**From then on, stay out of WiFi Connectivity.** It undoes this every single time, silently. If you ever do need it for a firmware update, just run the seven steps above afterwards.
Getting it to Cosmik Streamer
Nothing. That's the whole step.
Your radio now broadcasts its signal data over Wi-Fi, and out in a field it makes its own little network to do it on. Cosmik Streamer looks for that network, joins it by itself, and keeps serving your own Wi-Fi to viewers at the same time. Switch the radio on and it connects.
You can watch it happen: Console → Network → Pilot's radio (ELRS) says Connected with your radio's name, Not found while it's still looking, or Cannot connect if it found your radio but can't reach it — see the next box.
If it says "Cannot connect", your radio and the Streamer are on different Wi-Fi channels. The Streamer has one Wi-Fi radio, so it can be on your channel or on its own — not both at once — and the people watching come first. It will never cut off your viewers to go after flight data. The fix takes a moment: disconnect the phones and tablets from the Streamer's Wi-Fi, wait about half a minute, then join again. With nobody connected, the Streamer moves to your radio's channel by itself. Easier still, switch your radio on before anyone joins the Streamer's Wi-Fi, and the two line up on their own with nothing to do. Console → Network names both channel numbers and what to do about them, so you are never left guessing.
If it says "Off while the Streamer is on your Wi-Fi", you have joined the Streamer to a Wi-Fi network of your own — your house, or a venue's. The Streamer has one Wi-Fi radio, so it can be on that network or listening to your radio, not both. Nothing is broken and nothing is lost: open Console → Network and tap Leave, and flight data comes back on its own. Leaving does not interrupt anyone watching. See Putting the Streamer on Your Own Wi-Fi.
If you're plugged into a router — an Ethernet cable to the Streamer — and you'd rather your radio used that network, point the backpack at it in the radio's own Wi-Fi settings. The Streamer will pick the data up there too. This is optional; in a field you don't need it and there's usually no router anyway.
Either way there is nothing to configure in the app — when data arrives, the readings simply appear.
Checking it's working
Open the Telemetry page.
"Waiting for telemetry" → nothing is arriving at all. Check the radio settings above, make sure your drone is powered on and connected — with no drone linked, there's nothing to report — and look at Console → Network to see whether the Streamer has found your radio yet.
Radio link populated, Aircraft all dashes → your radio is working and your flight controller isn't reporting. That's the setup described above, not a fault. The page says as much when it sees this.
Both populated → you're set. They update several times a second.
Looking at it afterwards
Everything on this page is also written down as you fly and kept, flight by flight. See The Flight Log — where your signal went weak, where the picture dropped, and a button that opens the recording at that exact moment so you can see what you were flying past. It works on every aircraft, with or without GPS, indoors or out.
Coming soon
Telemetry on the broadcast picture, burned in for viewers.
Cosmik Streamer needs a valid licence before it turns video on. The licence check happens on
the Streamer itself, so activation does not require a separate activation website or an internet
connection on the device.
Current activation model: a new licence is issued without a Raspberry Pi Board
ID. The first valid activation binds it to that Streamer and saves the binding locally. The
older Board-ID-before-purchase process is no longer the current design.
Activate in the Console
Open the Console and sign in as the owner.
Open Licence from the menu.
Choose the supplied cosmik-licence.key file, or paste the key.
Tap Activate video.
The first successful activation binds that licence to this Raspberry Pi, stores the activation
record on the card, and starts the admitted video features. Later checks use that local record.
The status identifies the licence by its unique licence number rather than a customer name.
Keep a separate copy of the key. Re-flashing the card removes its installed
copy and local activation record. Applying the original key again on the same Raspberry Pi restores
the licence.
Activate from the SD card
Turn the Streamer off and remove its microSD card.
Open the small boot partition on a Windows or Mac computer.
Copy the key to the top level and name it exactly cosmik-licence.key.
Eject the card safely, return it to the Streamer, and power on.
A valid boot-partition key is imported and activated by the same local verification path.
If the key is rejected
Use the original complete key file rather than copying only part of its text.
A licence already activated on a different Raspberry Pi is refused.
A bad replacement key is checked before the existing working key is changed.
The Licence, Network, and System pages remain available so the owner can recover.
Replacement boundary: the planned purchase includes one replacement transfer,
but the customer redemption process is not complete and checkout is not open.
Release-boundary guide reconciled at product baseline 28605da · source /docs/licensing.md
Cosmik Streamer's Raspberry Pi USB-C socket is used for goggles data. Power therefore enters
through an engineered GPIO supply or a compatible PoE HAT.
Release boundary: the final customer power lead, connector, and wire size are
still being derived from measured load and length. Earlier public 18–20 AWG purchasing advice
is withdrawn until that work is complete.
What is settled
Use one power route: GPIO power or a compatible PoE HAT.
The current measured GPIO target is 5.1–5.2 volts at the pins while running.
The supply must provide at least 3 amps.
The Raspberry Pi must report no current or earlier undervoltage event before a release image is trusted.
What is not a customer instruction yet
No specific DIY lead, splitter, connector, or wire gauge is release-approved.
No pin-level wiring diagram is published until the final lead is measured and safety-reviewed.
A USB-C power source may require negotiation before it supplies the expected voltage; a connector shape alone proves nothing.
How the software reports power
Console → System → Power reports whether power is good, dropped earlier, or is
a problem now. A current or historical undervoltage report is a fault to correct before relying on
the unit for a shoot.
The System page. When something is wrong, this page usually says so in plain language before anything else does.
Most problems come down to one of three things: the USB cable, the order things were switched on, or which network you're connected to. Work down this page in order.
No picture — "Waiting for goggles link"
This is by far the most common issue, and the fix is usually trivial.
Try these in order:
Unplug the USB-C cable from the goggles, wait two seconds, plug it back in. This alone fixes the large majority of cases. Do this first, every time.
Turn off "Share Liveview to Mobile Device via Wi-Fi" in your goggles. While that setting is on, the goggles will not send their picture down the cable at all — DJI allows the wireless share or the cable, never both. If this is a new Streamer, or the picture stopped after you last shared your view to a phone, check this before anything else. (DJI Goggles 3 manual, p.30–31.)
Check whether something else is already receiving the picture. The goggles will only send the liveview to one device at a time, whether by cable or over Wi-Fi. If a phone or tablet still has it, disconnect that first.
Check the power-on order. It genuinely matters:
Cosmik Streamer on first
Goggles on second
Drone on last
Confirm the order used at startup. Do not power-cycle the Raspberry Pi until the release power-off method has been implemented and tested.
Check the cable itself. Many USB-C cables are charge-only and carry no data — they'll power things and do nothing else. If you have another cable, try it. A cable that came with a phone for charging is a common culprit.
An ordinary USB-C to USB-C data cable is all you need for Goggles 3, Integra and Goggles N3.
> If you are using the older DJI Goggles 2, there are reports that they need a cable > with the 5V power wire disconnected, and will not work with a standard one. We have not > been able to test this ourselves — we do not have a pair of Goggles 2, and this comes > from a single outside source rather than from DJI. Treat it as a lead worth trying, not as > our advice, and please tell us either way if you have Goggles 2 — you would > be settling the question for everyone.
Check the goggles are actually receiving. If you can't see the drone's camera in the goggles themselves, Cosmik Streamer has nothing to show. Fix the goggles-to-drone link first.
Stop after the checks above. If they all pass and no picture appears, record the exact on-screen status for support. Do not pull the Pi's power as a reset step.
If none of that helps, tell us which firmware you are on. Open Console → System → Connected equipment and read us the lines you see there. DJI changes how the goggles talk to accessories from time to time without saying so, and those lines are how we tell whether you are on a version we have not met before. If the section says "Nothing reported yet", tell us that too — it is just as useful.
The picture keeps pausing while I fly
If the feed stops and starts again on its own, the goggles are almost certainly doing it deliberately. Two normal behaviours look like a fault:
You switched to Real View, or opened the Album. The goggles stop sending the picture whenever you leave the flight view — to look through the outward-facing camera, or to review a recording. It resumes on its own when you go back to the flight view.
Something else grabbed the liveview. Only one device can receive it at a time. If a phone connected — by cable or over Wi-Fi — it takes the feed from the Streamer.
Neither costs you anything already recorded. (Both confirmed in the DJI Goggles 3 manual.)
I can't open the app
"This site can't be reached" or the page won't load.
Check you're on the same Wi-Fi as the Cosmik Streamer. This is the number one cause. Phones love to switch to mobile data — make sure Wi-Fi is on and connected.
Try the numeric address instead of the name. Some phones and networks don't support cosmik.local.
On the Streamer's own Wi-Fi (its setup network, or the one you named), type:
`` http://10.42.0.1 ``
That address is always the same and always works on the Streamer's own network, so it needs nothing to look it up.
On a shared network — the Streamer plugged into your router — the address is different. Look on the Network page of the console from any device that can already connect, or find "cosmik" in your router's list of connected devices.
Wait for the app to become reachable. Boot time has not yet been published as a guaranteed release value.
Turn off any VPN on your phone or laptop. A VPN sends your traffic elsewhere and will stop you reaching a device on your local network.
I can't sign in / I forgot my password
Sign-in feels slow after a few wrong tries. That's deliberate. Each wrong password adds a short pause — a few seconds at most — which makes guessing pointless without ever locking you out. The right password always works, straight away, however many times you've mistyped.
Check the username too, not just the password — both must match.
Forgot the password? There's no remote recovery, by design — that's precisely what stops someone else resetting it. Re-flash the SD card with a fresh Cosmik Streamer image and set up again. Your licence survives — it's tied to the board inside the Pi, not to the card. Re-flashing erases everything on the card, including recordings.
Guests don't need to sign in. If someone just wants to watch, send them the live-view link — no account, no password. Only settings, recordings, and stream keys are protected.
"Licence needed" — no video at all
Video stays off until a valid licence is on the Streamer. Everything else keeps working: the Wi-Fi, the console, the Licence page, the Network and System pages. You are not locked out.
Open Licence in the console. The message on that page says which of these it is:
No key entered yet → choose your cosmik-licence.key file, or paste the key, and tap Activate video. Video starts straight away — no reboot.
The key could not be read / is incomplete → you've most likely pasted part of it. Choose the original .key file instead of copying text out of an email.
Registered to a different Streamer → this key has already claimed another board. If you genuinely replaced the Raspberry Pi, the Board ID on that same page is what's needed to move the licence. See Activating Your Licence.
If you can't open the console at all, you can put the key on the memory card instead — the same page in Activating Your Licence explains how.
The picture is stuttering or freezing for viewers
Lower the bitrate on the Video & Output page. This is the most effective single fix.
Reduce the number of simultaneous live destinations. Each one uses internet upload.
Check your internet upload speed if streaming out. Live streaming needs consistent upload, and mobile connections vary a lot.
Move closer to the Wi-Fi router, or reduce how many people are watching at once on a weak network.
A streaming destination shows "Error"
The message underneath tells you what went wrong. The usual causes:
Wrong or expired stream key. Platforms rotate keys. Copy a fresh one from the platform and paste it in again.
No internet. Check the box's own connection.
The platform isn't expecting you. YouTube in particular sometimes needs the live event set up on their side first.
Cosmik Streamer keeps retrying automatically — once the problem is fixed it reconnects on its own without you touching anything.
Telemetry says "Waiting for telemetry"
Is the drone powered on and linked to your radio? With no drone connected there's nothing to report.
Check the right menu. It's Backpack → Telemetry → WiFi, notWiFi Connectivity → Enable Backpack WiFi. See Signal & Telemetry.
> **If you have ever opened WiFi Connectivity, this is almost certainly your problem — > even if the radio still displays WiFi**, and even if it worked yesterday. Visiting that > menu once switches telemetry off from the next power-on, with no error and nothing on the > radio to show for it. Restarting the radio doesn't fix it. The one-minute recovery is > here.
Check Telem Ratio isn't Off on the radio.
Has the Streamer found your radio? Look at Console → Network → Pilot's radio (ELRS). If it says Not found, the radio's Wi-Fi isn't on the air — go back to step 2. If it says Connected but the page is still empty, the radio is talking and the aircraft isn't.
Does it say "Cannot connect"? Then it found your radio but the two are on different Wi-Fi channels, and the Streamer will not cut off the people watching to chase it. Disconnect the phones and tablets from the Streamer's Wi-Fi, wait about half a minute, then join again — with nobody connected it moves across by itself. The page names both channels and tells you the same thing. Switching the radio on before anyone joins avoids it entirely.
Does it say "Off while the Streamer is on your Wi-Fi"? Then the Streamer is joined to a Wi-Fi network of your own and its single radio is busy being on it. Open Console → Network and tap Leave. Flight data comes back by itself and nobody watching is interrupted. This is the commonest cause of "it worked at home and not at the shoot" — see Putting the Streamer on Your Own Wi-Fi.
No GPS — no satellites, no map, no speed or altitude
Everything else on the Telemetry page is fine, but the GPS readings stay empty.
This is almost always on the drone, not the Streamer. We only display what the aircraft sends, and if the flight controller can't see its own GPS module, it has nothing to send. That is the fault in the overwhelming majority of cases, and it usually turns out to be three separate things at once.
The reason this is so confusing: all three faults produce the identical symptom, and two of them are invisible from inside the GPS tab of your configurator. Worse, they mask each other — while the first one is unfixed, checking the others gives you a wrong answer. So work down this list in order and don't skip ahead, even if a step looks obviously fine.
1. Does the aircraft actually have a GPS module?
Plenty of freestyle quads don't. Check the specification, or look for a small module on a mast or taped to the top plate. No module, no position — nothing in software will change that.
2. Put a flight battery in — USB alone is not enough
Do this before you check any setting. On most aircraft the GPS module is powered from the main battery, not from the USB port. With only USB connected, the flight controller boots normally and talks to your configurator perfectly — while the GPS module never switches on at all.
That's what makes this the first step rather than the last: on USB alone, every check below reports a fault whether or not one exists. Pilots correctly conclude their settings are wrong, change them, and get nowhere.
Connect a charged flight battery, propellers off, and keep it connected for everything below.
3. Look at the GPS sensor indicator — this is the test that matters
In Betaflight Configurator, the row of sensor indicators at the top of the window has a GPS one. Learn to trust this single light:
Lit — the flight controller is talking to the GPS module. The drone side is working. Skip to step 6.
Dark — the flight controller cannot see the module at all. Continue to step 4.
It lights up only when the connection to the module is genuinely confirmed, so it can't give you a false pass. It is a far better test than reading the GPS tab, which shows your settings rather than whether anything is actually connected.
4. Is GPS switched on?
Configuration tab → find GPS and make sure it's enabled. It's off by default.
If it was already on, that's normal — this is usually only one of the three faults. Continue.
5. Is a serial port assigned to GPS? — the invisible one
Ports tab → look down the Sensor Input column.
If every row reads Disabled, the flight controller has been told to use GPS but never told which wire to listen on. Nothing in the GPS tab will ever hint at this. It is the reason "I switched GPS on and nothing happened" is so often a completely accurate report.
Set Sensor Input to GPS on the UART your module is physically plugged into, pick the baud rate your module uses, and save. Which UART that is depends on your board — check its wiring diagram for the labelled GPS connector, and note that the UART your ELRS receiver uses is already taken.
Then go back to step 3 and check the indicator again.
6. Go outside and wait
A GPS with no recent fix can take several minutes to find satellites the first time, and it needs a clear view of the sky. Indoors it may never manage it.
Watch the satellite count in Betaflight, or on the Streamer's Telemetry page.
Wait for a real satellite count before you launch — not just for the indicator to light.
A position with zero satellites is not a position. If you ever see coordinates in the middle of an ocean, that's a GPS module reporting where it thinks it is before it has locked on. Cosmik Streamer will not put that on a map.
Still nothing after all six?
If the GPS indicator is lit and you have satellites in Betaflight, but the Streamer's Telemetry page still shows nothing, the problem has moved to the radio link — go back to Telemetry says "Waiting for telemetry" above. If the rest of the Telemetry page is populated and only GPS is missing, tell us: at that point the drone is sending position and we are not showing it, which would be ours to fix.
The logo isn't appearing on the broadcast
Is the broadcast version switched on? Overlays only appear there — check Video & Output. They never appear on your own view, by design.
Give it a few seconds. The broadcast picture restarts when you change branding.
Check opacity isn't set very low.
Recordings aren't appearing
Is Record actually on? The button lights up when active.
Is there a picture? With no incoming video there's nothing to record.
Is the disk full? Check the System page.
Recordings have the wrong date or time on them
The Streamer has no clock battery. When it is switched off it forgets the time, and when you switch it back on it starts again from whenever it was last used. If there is internet where you are, it corrects itself within a minute. Out in a field there usually isn't, so it can spend the whole day showing the wrong time.
That matters because your recordings are named by that clock, and the Flight Log uses it to find the right moment in your footage.
The fix takes one tap, and needs no internet:
Open System in the console.
Look at Date and time. If the Streamer is unsure, it says so.
Tap Set the time.
That copies the time from the phone or laptop you are reading the page on — phones keep the right time even with no signal. Nothing is sent anywhere.
Do this before you start recording, not during. The Streamer will refuse to change its clock while a recording is running, because moving the time underneath a recording could mis-name the file you are being paid for. Stop recording, set the time, start again.
Everything seems stuck
Do not pull power as a generic reset step. Use
Console → System → Power off, wait about ten seconds, then unplug and power the
Streamer back on.
⚡ Odd, unrelated problems all at once — check power first
If several things misbehave at the same time and none of them seem connected, suspect the power supply before anything else.
Typical signs:
the Streamer restarts on its own
Wi-Fi shows up but devices can't stay connected
recording or streaming stops for no clear reason
it works fine until it gets busy, then misbehaves
it behaved yesterday and doesn't today, with nothing changed
Check it in one place:Console → System → Power.
If that says Problem now or Dropped earlier, the supply is the cause and nothing else you change will help until it's fixed. If there's a problem, a warning bar also appears at the top of every console page.
A weak supply is uniquely confusing because it never presents as a power fault — it presents as whatever the Streamer was doing at the time. Ruling it out first saves hours.
Whether the goggles themselves were showing a picture
What Console → System → Power says (including the reading in brackets)
What Console → System → Connected equipment says — every line of it, or "Nothing reported yet" if that is what it shows
That information makes it far quicker to identify the cause. The Connected equipment lines matter more than they look: they are how we tell which version of the goggles software you are running, and DJI changes how the goggles talk to accessories from time to time without announcing it.
Release-boundary guide reconciled at product baseline 28605da · source /docs/troubleshooting.md
Plain-English explanations of the technical words you'll meet. You don't need to know any of this to use Cosmik Streamer — it's here for when you're curious, or when a client asks for something by name.
Air unit
The video transmitter on your drone (a DJI O3 or O4 Air Unit Pro). It films, records to its own memory card, and beams the picture to your goggles.
Aspect ratio
The shape of the picture. 16:9 is widescreen (TVs, YouTube). 4:3 is taller — many pilots prefer it for flying because you see more ground and sky.
Bitrate
How much data the video uses per second, in megabits per second (Mb/s). More data generally means better quality but needs a stronger connection. If viewers report stuttering, lower this first.
Broadcast version / broadcast branch
A second copy of your flight that Cosmik Streamer creates — reshaped and branded for an audience — while your own view stays untouched.
Codec / H.264
The method used to squeeze video down small enough to send. H.264 is the most widely supported one; virtually every device can play it.
Crop
Filling the screen by trimming the edges off the picture. No black bars, but you lose a little from the sides or top and bottom. Opposite of Pad.
CSV
A simple spreadsheet file. Opens in Excel, Numbers, or Google Sheets. Cosmik Streamer uses one for the clip shot list.
ELRS (ExpressLRS)
A popular open-source radio control system. If you fly with a RadioMaster Boxer or similar, that's ELRS. It's what provides the signal readings.
FPS (frames per second)
How many pictures per second make up the video. Higher is smoother. 30 and 60 are common.
Gyro data / stabilisation
Your drone records how it moved — tilts, shakes, rotations — alongside the video. Software like GyroFlow uses that motion record to remove the shake afterwards, producing very smooth footage. It only works if the motion data was recorded in the first place — see the note in Media & Clip Requests.
Buffer (rolling clip buffer)
The last ten minutes of your live feed, held in the Streamer's memory. It is not a recording — it writes over itself constantly, so everything older than ten minutes is gone for good. Saving a clip out of it is coming soon and is not built yet, so today nothing comes back out of the buffer: only what you Record is kept. It is switched off until you turn it on, and you choose whether it lives in the Streamer's memory or on the memory card. See Media & Clip Requests.
Hardware encoding (HW)
Letting a dedicated chip do the heavy video work instead of the general processor. It's why Cosmik Streamer can produce a branded broadcast version without slowing your live picture.
HLS
A broadly compatible way of sending video, including to many smart TVs. It adds more delay than WebRTC, so it is a fallback rather than the first choice for a live view.
Latency / delay
How far behind real life the picture is. Cosmik uses WebRTC for its low-delay browser path; a public release latency guarantee has not been published.
Link Quality (LQ)
The percentage of radio signals successfully getting through between your radio and drone. 100% is perfect. Falling LQ means you're approaching the limit of your range.
Lower-third
A name bar across the bottom of the screen — like the caption under someone being interviewed on TV.
MPEG-TS
A way of sending video directly to another machine on a network. Used in professional outside-broadcast setups.
NDI
A studio standard for sending video between machines on a production network. Coming soon.
Pad / letterbox / pillarbox
Keeping the whole picture and filling the leftover space with black bars. Nothing is lost. Opposite of Crop.
Passthrough
Sending the video onward completely untouched — not re-processed. It's why the pilot feed stays fast and keeps its original quality.
Pilot feed
The live picture exactly as you see it, untouched and as fast as possible.
RSSI
Signal strength, measured in dBm. Always a negative number, and closer to zero is stronger — −40 is excellent, −100 is weak.
RTMP / RTMPS
The format YouTube, Facebook and Twitch use to receive live video. You paste in an address and a stream key. RTMPS is the encrypted version.
RTSP
A video address that some production gear can connect to directly. It buffers several seconds before showing anything, so it is a last resort rather than a first choice — for OBS and vMix use the browser address instead (OBS & Production Tools).
SNR (signal-to-noise ratio)
How clearly your signal stands out from background interference. Higher is better.
SRT
A broadcast-industry format designed to keep video intact over unreliable internet. If a client asks for SRT, they'll give you an address to paste in.
Stream key
A long password-like code from YouTube, Facebook or Twitch that identifies your channel. Keep it private — anyone with it can broadcast to your channel.
Telemetry
Live information from your radio and your aircraft. Signal strength comes from the radio and works as soon as it connects. Battery, position and altitude come from the aircraft's own flight controller, so they appear only if it is set up to send them — and position needs a GPS module fitted. See Signal & Telemetry.
Timecode
A running clock burned into the picture, so you and a client can refer to the exact same moment without ambiguity.
TX power
How hard your radio transmits, in milliwatts (mW). More power reaches further but drains the battery faster.
WebRTC
The technology behind the fast live view. It's what video-calling uses, which is why it's so quick. This is the link to send people who just want to watch.
Release-boundary guide reconciled at product baseline 28605da · source /docs/glossary.md