{"product_id":"camlink","title":"CAMLINK","description":"\u003cstyle\u003e\n.camlink-pd p:empty { display: none !important; }\n.camlink-pd p:has(\u003e br:only-child) { display: none !important; }\n.camlink-pd h2 { margin: 1.6rem 0 0.8rem !important; line-height: 1.15 !important; }\n.camlink-pd h3 { margin: 2.4rem 0 0.9rem !important; line-height: 1.2 !important; }\n.camlink-pd p  { margin: 0 0 0.9rem !important; }\n.camlink-pd ul { margin: 0 0 1rem !important; }\n.camlink-pd li { margin: 0 0 0.4rem !important; }\n.camlink-pd details summary::-webkit-details-marker { display: none; }\n.camlink-pd details summary::marker { display: none; }\n.camlink-pd details summary::after { content: \"+\"; font-weight: 300 !important; font-size: 1.5em !important; margin-left: auto !important; }\n.camlink-pd details[open] summary::after { content: \"−\"; }\n.camlink-pd video, .camlink-pd .pd-img { width: 100% !important; display: block !important; border-radius: 8px !important; }\n.camlink-pd video { background: #000 !important; }\n.camlink-pd .spec-row { display: flex; align-items: center; padding: 16px; background: #f9f9f9; border-radius: 8px; margin-bottom: 8px; color: #111; }\n.camlink-pd .spec-row img { margin-right: 16px; flex: 0 0 40px; }\n.camlink-pd .spec-label { font-weight: 600; }\n.camlink-pd .spec-value { color: #666; font-size: 14px; }\n.camlink-pd .cl-check { margin: 1.5rem 0 !important; padding: 1.25rem !important; background: #f9f9f9 !important; color: #111 !important; border: 1px solid #e0e0e0 !important; border-radius: 8px !important; }\n.camlink-pd .cl-check label { display: block !important; font-weight: 600 !important; margin-bottom: 0.6rem !important; color: #111 !important; }\n.camlink-pd .cl-check select { width: 100% !important; padding: 12px 14px !important; font-size: 16px !important; font-family: inherit !important; color: #111 !important; background: #fff !important; border: 1px solid #ccc !important; border-radius: 6px !important; }\n.camlink-pd .cl-out { margin-top: 1rem !important; line-height: 1.7 !important; color: #111 !important; }\n.camlink-pd .cl-status { font-weight: 600 !important; display: block !important; margin-bottom: 0.35rem !important; }\n.camlink-pd .cl-osd { margin: 1.1rem 0 0 !important; padding: 16px 18px !important; background: #000 !important; color: #fff !important; border-radius: 8px !important; font-family: ui-monospace, SFMono-Regular, Consolas, Menlo, monospace !important; font-size: 15px !important; letter-spacing: 0.14em !important; line-height: 1.85 !important; text-shadow: 0 0 6px rgba(255,255,255,0.35) !important; }\n.camlink-pd .cl-osd span { display: block !important; white-space: pre !important; min-height: 1.85em !important; }\n.camlink-pd .cl-cap { margin: 10px 2px 0 !important; font-size: 15px !important; color: #555 !important; line-height: 1.6 !important; }\n.camlink-pd .cl-tok { margin: 1rem 0 0 !important; }\n.camlink-pd .cl-tok \u003e div { display: grid !important; grid-template-columns: 112px 1fr 62px !important; gap: 10px !important; align-items: baseline !important; padding: 7px 0 !important; border-top: 1px solid #ececec !important; font-size: 14px !important; line-height: 1.45 !important; }\n.camlink-pd .cl-tok .cl-name { font-weight: 600 !important; }\n.camlink-pd .cl-tok .cl-what { color: #444 !important; }\n.camlink-pd .cl-tok .cl-eg { font-size: 12.5px !important; color: #888 !important; text-align: right !important; }\n.camlink-pd .cl-tok .cl-off { opacity: 0.4 !important; }\n.camlink-pd .cl-tok .cl-note { display: block !important; padding-top: 12px !important; color: #444 !important; font-size: 14px !important; line-height: 1.6 !important; }\n.camlink-pd .guide-box { display: flex !important; align-items: center !important; gap: 14px !important; margin: 2.5rem 0 1rem 0 !important; padding: 1.25rem 1.5rem !important; background: #f9f9f9 !important; border: 1px solid #e0e0e0 !important; border-radius: 8px !important; text-decoration: none !important; color: #111 !important; }\n.camlink-pd .guide-box:link, .camlink-pd .guide-box:visited, .camlink-pd .guide-box:hover, .camlink-pd .guide-box:focus { color: #111 !important; text-decoration: none !important; }\n.camlink-pd .guide-box .arrow { margin-left: auto !important; flex: 0 0 auto !important; color: #666 !important; font-size: 1.3em !important; }\n.camlink-pd .dl-box { margin: 0 0 0.75rem 0 !important; background: #f9f9f9 !important; color: #111 !important; border-radius: 8px !important; border: 1px solid #e0e0e0 !important; }\n.camlink-pd .dl-box \u003e summary { padding: 1.25rem 1.5rem !important; cursor: pointer !important; display: flex !important; align-items: center !important; gap: 14px !important; font-size: 1em !important; list-style: none !important; }\n.camlink-pd .dl-title { display: block !important; font-weight: 600 !important; }\n.camlink-pd .dl-sub { display: block !important; color: #666 !important; font-size: 14px !important; line-height: 1.4 !important; font-weight: 400 !important; }\n.camlink-pd .fw-rel { display: flex !important; align-items: baseline !important; gap: 12px !important; padding: 1.1rem 0 0.1rem !important; }\n.camlink-pd .fw-rel + .fw-rel { border-top: 1px solid #ececec !important; }\n.camlink-pd .fw-ver { font-weight: 600 !important; }\n.camlink-pd .fw-date { color: #888 !important; font-size: 14px !important; }\n.camlink-pd .fw-dl { margin-left: auto !important; flex: 0 0 auto !important; color: #999 !important; font-size: 15px !important; }\n.camlink-pd a.fw-dl { color: #111 !important; font-weight: 600 !important; text-decoration: underline !important; }\n\u003c\/style\u003e\n\u003cdiv class=\"camlink-pd\"\u003e\n\u003cdetails style=\"margin: 0 0 2rem 0 !important; background: #fff3cd !important; border-radius: 8px !important; color: #000 !important; border: 1px solid #ffc107 !important;\"\u003e\n\u003csummary style=\"padding: 1rem 1.5rem !important; cursor: pointer !important; font-weight: 600 !important; font-size: 1em !important; display: flex !important; justify-content: space-between !important; align-items: center !important; color: #664d03 !important; list-style: none !important;\"\u003eWill this work on my quad? Check first\u003c\/summary\u003e\n\u003cdiv style=\"padding: 0 1.5rem 1.25rem 1.5rem !important; border-top: 1px solid #ffc107 !important;\"\u003e\n\u003cp style=\"margin-top: 1rem !important; color: #664d03 !important; line-height: 1.8 !important;\"\u003e\u003cstrong\u003eBetaflight 2025.12 or newer.\u003c\/strong\u003e 4.x and 4.5 do not work, and there's no INAV, KISS or other firmware.\u003c\/p\u003e\n\u003cp style=\"margin-top: 0.5rem !important; color: #664d03 !important; line-height: 1.8 !important;\"\u003e\u003cstrong\u003eOne free UART and soldering.\u003c\/strong\u003e 5 V and GND from the FC, TX and RX crossed, common ground. If every UART is taken, CAMLINK has nowhere to go.\u003c\/p\u003e\n\u003cp style=\"margin-top: 0.5rem !important; color: #664d03 !important; line-height: 1.8 !important;\"\u003e\u003cstrong\u003eYour camera, by model.\u003c\/strong\u003e Support is per model, not per brand. Some bodies from a supported brand are only expected to work, and a couple are untested. The picker further down names yours, and a camera that is not in the picker is not supported.\u003c\/p\u003e\n\u003cp style=\"margin-top: 0.5rem !important; color: #664d03 !important; line-height: 1.8 !important;\"\u003e\u003cstrong\u003eNot weatherproof.\u003c\/strong\u003e No IP rating.\u003c\/p\u003e\n\u003chr style=\"border: none !important; border-top: 1px solid #ffe69c !important; margin: 1rem 0 !important;\"\u003e\n\u003cp style=\"margin-top: 0.75rem !important; color: #664d03 !important; line-height: 1.8 !important;\"\u003e\u003cstrong\u003eUS:\u003c\/strong\u003e Not available for now.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003ch2\u003eAction cam telemetry in your Betaflight OSD\u003c\/h2\u003e\n\u003cdiv style=\"margin: 1.5rem 0 !important; overflow: hidden !important; border-radius: 8px !important;\"\u003e\n\u003cvideo muted loop playsinline preload=\"none\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/preview_images\/OSD_Preview_Still.jpg?v=1786361473\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/afc26286d5ae4e12b04a25c7abb259f8\/afc26286d5ae4e12b04a25c7abb259f8.HD-720p-1.6Mbps-91216557.mp4\"\u003e\u003c\/video\u003e\n\u003c\/div\u003e\n\u003cp style=\"color: #666 !important; font-size: 0.9rem !important; margin: 8px 0 1.5rem 0 !important;\"\u003eLive in your Betaflight OSD. GoPro, DJI, Sony, Blackmagic. How much each one sends differs, and the picker below shows yours.\u003c\/p\u003e\n\u003cp\u003eThe camera knows it stopped recording. You don't, until you land.\u003c\/p\u003e\n\u003cp\u003eCAMLINK is a board that solders to a spare UART on your flight controller. Over Bluetooth it puts the camera's own status into your goggles: you see it recording, you see the clip running, you see battery and card before they run out.\u003c\/p\u003e\n\u003cp\u003eAnalog, HDZero, Walksnail, DJI: the video link doesn't matter. Betaflight 2025.12 or newer does.\u003c\/p\u003e\n\u003ch3\u003eYou arm, the camera records. You disarm, it stops.\u003c\/h3\u003e\n\u003cdiv style=\"margin: 1.5rem 0 !important; overflow: hidden !important; border-radius: 8px !important;\"\u003e\n\u003cvideo muted loop playsinline preload=\"none\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/preview_images\/Record_on_Arming_Still.jpg?v=1786361697\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/03bdb57087cc49589c81a4a2a32bdcb9\/03bdb57087cc49589c81a4a2a32bdcb9.HD-720p-2.1Mbps-91211008.mp4\"\u003e\u003c\/video\u003e\n\u003c\/div\u003e\n\u003cp style=\"color: #666 !important; font-size: 0.9rem !important; margin: 8px 0 1rem 0 !important;\"\u003eYour camera's record button is now optional.\u003c\/p\u003e\n\u003cp\u003eArm-records is the default, not the only mode: recording can sit on a switch or a button on your radio instead. Combi layers the button on top of the automation, and it's how we fly: arm starts the clip, a bad take gets cut and restarted from the button.\u003c\/p\u003e\n\u003cp\u003eSet the exposure once, and the after-landing ritual of checking clip, battery and card has already happened in your goggles on the way home. Time at the spot goes into flying.\u003c\/p\u003e\n\u003cp\u003eIt's a passenger: CAMLINK sits outside the motor, PID and RC control paths, so it has no way to command the quad. If it loses the camera or hangs, your flight carries on unchanged.\u003c\/p\u003e\n\u003ch3\u003eSwitch GoPro presets, mid-flight\u003c\/h3\u003e\n\u003cp\u003eMap up to three GoPro presets to one AUX channel. Cruise in 25 fps cinematic, flick to 200 for the trick, flick back. No landing.\u003c\/p\u003e\n\u003cdiv style=\"margin: 1.5rem 0 !important; overflow: hidden !important; border-radius: 8px !important;\"\u003e\n\u003cvideo muted loop playsinline preload=\"none\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/preview_images\/Preset_Switch_Still.jpg?v=1786361426\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/e04e371662e741e4b3ad09e557ec7459\/e04e371662e741e4b3ad09e557ec7459.HD-720p-1.6Mbps-91216555.mp4\"\u003e\u003c\/video\u003e\n\u003c\/div\u003e\n\u003cp style=\"color: #666 !important; font-size: 0.9rem !important; margin: 8px 0 0 0 !important;\"\u003eMission 1 Pro in PAL: 4K 200 fps cinematic to 1080p 800 fps burst, mid-pass.\u003c\/p\u003e\n\u003cp style=\"margin-top: 1rem !important;\"\u003eBurst modes were unusable on a quad until now. The capture window is 7 to 15 seconds, so the clip was over before you ever reached the line: the only way to film 800 fps was pressing record with the subject already in front of the lens. Now you cruise out on a normal preset and flick to burst the moment the pass starts.\u003c\/p\u003e\n\u003cp\u003ePreset switching is GoPro only.\u003c\/p\u003e\n\u003ch3\u003eGoPros stop forgetting the date\u003c\/h3\u003e\n\u003cp\u003eNaked GoPros lose their clock every time the battery comes out, and your footage ends up stamped 2016-01-01. Turn it on once in Setup, and on quads with GPS CAMLINK sets the camera clock from the FC's GPS time after connecting. No QR codes, no phone, no Quik app. GoPro only.\u003c\/p\u003e\n\u003ch3\u003ePairs in seconds. Swap cameras just as fast.\u003c\/h3\u003e\n\u003cp\u003eCAMLINK holds one camera at a time, and it doesn't care which brand you point it at. GoPro on the long-range quad this weekend, DJI on the same quad the next, nothing rewired and nothing reconfigured in Betaflight.\u003c\/p\u003e\n\u003cdiv style=\"margin: 1.5rem 0 !important; overflow: hidden !important; border-radius: 8px !important;\"\u003e\n\u003cvideo muted loop playsinline preload=\"none\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/preview_images\/Bind_Process_Still.jpg?v=1786361787\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/f938028e9ffb43b3bac2dc114ede365d\/f938028e9ffb43b3bac2dc114ede365d.HD-720p-1.6Mbps-91216970.mp4\"\u003e\u003c\/video\u003e\n\u003c\/div\u003e\n\u003cp style=\"color: #666 !important; font-size: 0.9rem !important; margin: 8px 0 0 0 !important;\"\u003eMission 1 Pro paired, then an Osmo Action 6. Same module, nothing rewired.\u003c\/p\u003e\n\u003ch3\u003eWhat your camera puts in your goggles\u003c\/h3\u003e\n\u003cdiv style=\"margin: 2rem 0 1.5rem 0 !important; overflow: hidden !important; border-radius: 8px !important;\"\u003e\n\u003cimg class=\"pd-img\" loading=\"lazy\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/topdown-CAMLINK.jpg?v=1786379362\" alt=\"Every supported camera family laid out around one CAMLINK module\"\u003e\n\u003c\/div\u003e\n\u003cp\u003eEvery camera gives you the same core: what it's doing, how long it's been doing it, battery, and record time left. After that they differ, and the difference is the camera's, not ours. Pick yours and see the screen you'd actually get.\u003c\/p\u003e\n\u003cdiv class=\"cl-check\" data-cl-check\u003e\n\u003clabel\u003eYour camera\n\u003cselect data-cl-sel\u003e\n\u003coption value=\"\"\u003ePick your camera\u003c\/option\u003e\n\u003c\/select\u003e\n\u003c\/label\u003e\n\u003cdiv class=\"cl-out\" data-cl-out\u003ePick your camera to see its status, the screen it produces, and every value it can send.\u003c\/div\u003e\n\u003cdiv data-cl-panel hidden\u003e\n\u003cdiv class=\"cl-osd\" data-cl-osd role=\"img\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n\u003cp class=\"cl-cap\" data-cl-cap\u003e\u003c\/p\u003e\n\u003cdiv class=\"cl-tok\" data-cl-tok\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin-top: 1.25rem !important;\"\u003e\u003cstrong\u003eIf your camera is not in the list, CAMLINK does not support it.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe greyed rows are deliberate. CAMLINK only ever shows what the camera actually reported: a value it can't confirm stays blank, because a wrong readout is worse than no readout. And if the camera stops answering, it says so. On a cold long-range flight that's the difference between knowing at minute ten and finding out at home.\u003c\/p\u003e\n\u003cp\u003eCamera brands change their Bluetooth behaviour without telling anyone. What you're buying is what's on the tested list today. New cameras show up here when we get them working, and the module takes firmware updates.\u003c\/p\u003e\n\u003ch3\u003eThree quads, three modules\u003c\/h3\u003e\n\u003cp\u003eMost of us don't fly one quad. CAMLINK solders in permanently, so it lives on the frame you put it on. Every quad in the bag reports the same four lines, in the same place. Three for €149.99.\u003c\/p\u003e\n\u003ch3\u003eInstalling it: about 30 minutes\u003c\/h3\u003e\n\u003cp\u003eFour wires, one free UART. If you've soldered a VTX in, you've done a harder job than this one. In Betaflight you enable MSP on that UART and switch on Custom Message 1 to 4. Where those four lines sit is yours to pick: one tap in Setup drops them top or bottom left, or you place them by hand in the Betaflight OSD tab.\u003c\/p\u003e\n\u003cp\u003eTwo ways to mount it. Shrink it straight into the frame and it disappears, but the buttons on the module get hard to reach. Or use the case, which is what we'd do: one mount clips to an it's FPV camera cage, the other takes a round 5 mm standoff, and both mounts are in the box. The cage itself is not. Either way, as close to the camera as you can get it.\u003c\/p\u003e\n\u003ch3\u003ePair it and fly. The rest is optional.\u003c\/h3\u003e\n\u003cp\u003ePairing is one press of the button on the module. No phone, no app, no page, nothing to type. Every boot after that finds the same camera on its own.\u003c\/p\u003e\n\u003cp\u003eThe four lines arrive carrying what matters: what the camera is doing and for how long, battery, record time left, resolution and frame rate. Recording on arm is already on. You can stop here and go fly.\u003c\/p\u003e\n\u003cp\u003eSetup Mode is for when you want more, not because something is missing. CAMLINK serves its own page: hold the second button and it opens a Wi-Fi network, join it with your phone, type 10.0.0.1 in the browser.\u003c\/p\u003e\n\u003cp\u003eEverything else lives there. Drag the OSD values wherever you want them, put GoPro presets or HiLight tags on a switch, turn on GPS clock sync, pick the warnings you want to see. Three ready layouts if you'd rather not decide, and a full editor if you would.\u003c\/p\u003e\n\u003cdiv style=\"margin: 1.5rem 0 !important; overflow: hidden !important; border-radius: 8px !important;\"\u003e\n\u003cvideo muted loop playsinline preload=\"none\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/preview_images\/preview-CAMLINK-setup-mode.jpg?v=1786655979\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/26707362603549dfab5e88bbfd9bdd9e\/26707362603549dfab5e88bbfd9bdd9e.HD-720p-1.6Mbps-91550302.mp4\"\u003e\u003c\/video\u003e\n\u003c\/div\u003e\n\u003cp style=\"color: #666 !important; font-size: 0.9rem !important; margin: 8px 0 0 0 !important;\"\u003eNo app, no cable, no account. A page the module serves itself.\u003c\/p\u003e\n\u003ch3\u003eDon't buy one yet if\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvery UART on your FC is taken.\u003c\/li\u003e\n\u003cli\u003eYou don't want to solder.\u003c\/li\u003e\n\u003cli\u003eYou're on Betaflight 4.5 and staying there.\u003c\/li\u003e\n\u003cli\u003eThe picker above shows your camera as untested and you need a guarantee.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdetails style=\"margin: 2rem 0 0.5rem 0 !important; background: #f9f9f9 !important; color: #111 !important; border-radius: 8px !important; border: 1px solid #e0e0e0 !important;\"\u003e\n\u003csummary style=\"padding: 1.25rem 1.5rem !important; cursor: pointer !important; font-weight: 600 !important; font-size: 1.15em !important; display: flex !important; align-items: center !important; list-style: none !important;\"\u003e\u003cimg style=\"margin-right: 12px !important;\" height=\"32\" width=\"32\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/icon-08-delivery.svg?v=1770140419\"\u003e What's in the box\u003c\/summary\u003e\n\u003cdiv style=\"padding: 0 1.5rem 1.5rem 1.5rem !important; border-top: 1px solid #e0e0e0 !important;\"\u003e\n\u003cul style=\"margin: 1rem 0 0 0 !important;\"\u003e\n\u003cli\u003eCAMLINK PCB with injection-molded polypropylene case in the color you picked\u003c\/li\u003e\n\u003cli\u003ePre-cut clear heatshrink, if you'd rather shrink the board than case it\u003c\/li\u003e\n\u003cli\u003e4-wire silicone harness (5 V, GND, TX, RX)\u003c\/li\u003e\n\u003cli\u003eCamera cage mount and standoff mount\u003c\/li\u003e\n\u003cli\u003eM2 screw\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003ch3\u003eSpecs\u003c\/h3\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/icon-12.svg?v=1713179153\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eWeight\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003e0.88 g, bare board\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-dimensions.svg?v=1784988083\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eDimensions\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003e19.7 × 12.55 × 3.3 mm, bare board\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-uart.svg?v=1784988083\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eFC connection\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003eOne free UART | MSP, API 1.47 or newer | 5 V and GND\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-bluetooth.svg?v=1784988083\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eCamera link\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003eBluetooth | One camera paired at a time\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-firmware.svg?v=1784988084\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eFirmware requirement\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003eBetaflight 2025.12 or newer | 4.x and 4.5 not supported\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-osd-telemetry.svg?v=1784988084\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eOSD\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003eUses all 4 Betaflight Custom Message slots | Analog, HDZero, Walksnail, DJI\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-wifi.svg?v=1784988083\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eSetup\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003eWeb page hosted on the module | Connect your phone to its Wi-Fi | Ground only\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cimg height=\"40\" width=\"40\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/icon-05-timer.svg?v=1770140420\"\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"spec-label\"\u003eInstall time\u003c\/div\u003e\n\u003cdiv class=\"spec-value\"\u003eAbout 30 minutes if Betaflight is already at 2025.12 or newer\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch3\u003eGuides and downloads\u003c\/h3\u003e\n\u003ca class=\"guide-box\" style=\"margin: 0 0 0.75rem 0 !important;\" href=\"\/en-eu\/pages\/camlink-quickstart\"\u003e\n\u003cimg height=\"34\" width=\"34\" style=\"flex: 0 0 34px;\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/icon-04-setup-guide.svg?v=1770140420\"\u003e\n\u003cspan\u003e\n\u003cspan style=\"display: block; font-weight: 600;\"\u003eCAMLINK Quickstart\u003c\/span\u003e\n\u003cspan style=\"display: block; color: #666; font-size: 14px; line-height: 1.4;\"\u003eWiring, Betaflight setup, OSD layout, pairing per camera family, Link Pause, the full token list. Everything this page doesn't have room for.\u003c\/span\u003e\n\u003c\/span\u003e\n\u003cspan class=\"arrow\"\u003e→\u003c\/span\u003e\n\u003c\/a\u003e\n\u003cdetails class=\"dl-box\"\u003e\n\u003csummary\u003e\n\u003cimg height=\"34\" width=\"34\" style=\"flex: 0 0 34px;\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/camlink-firmware.svg?v=1784988084\"\u003e\n\u003cspan\u003e\n\u003cspan class=\"dl-title\"\u003eFirmware downloads\u003c\/span\u003e\n\u003cspan class=\"dl-sub\"\u003eLatest: CAMLINK 1.0 | release date follows with the first retail batch\u003c\/span\u003e\n\u003c\/span\u003e\n\u003c\/summary\u003e\n\u003cdiv style=\"padding: 0 1.5rem 1.25rem 1.5rem !important; border-top: 1px solid #e0e0e0 !important;\"\u003e\n\u003cdiv class=\"fw-rel\"\u003e\n\u003cspan class=\"fw-ver\"\u003e1.0\u003c\/span\u003e\n\u003cspan class=\"fw-date\"\u003efirst retail release\u003c\/span\u003e\n\u003cspan class=\"fw-dl\"\u003eDownload\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"margin: 1.5rem 0 0.5rem 0 !important; background: #f9f9f9 !important; color: #111 !important; border-radius: 8px !important; border: 1px solid #e0e0e0 !important;\"\u003e\n\u003csummary style=\"padding: 1rem 1.5rem !important; cursor: pointer !important; font-weight: 600 !important; font-size: 1em !important; display: flex !important; justify-content: space-between !important; align-items: center !important; list-style: none !important;\"\u003eShipping and availability\u003c\/summary\u003e\n\u003cdiv style=\"padding: 0 1.5rem 1.25rem 1.5rem !important; border-top: 1px solid #e0e0e0 !important;\"\u003e\n\u003cp style=\"margin-top: 1rem !important;\"\u003e\u003cstrong\u003eEU:\u003c\/strong\u003e Standard shipping rates. VAT included in price.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNon-EU:\u003c\/strong\u003e No VAT charged at checkout. You may owe import duties and local taxes on delivery depending on your country. We ship DDP where available, otherwise DAP.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"margin: 0.5rem 0 !important; background: #f9f9f9 !important; color: #111 !important; border-radius: 8px !important; border: 1px solid #e0e0e0 !important;\"\u003e\n\u003csummary style=\"padding: 1rem 1.5rem !important; cursor: pointer !important; font-weight: 600 !important; font-size: 1em !important; display: flex !important; justify-content: space-between !important; align-items: center !important; list-style: none !important;\"\u003eSupport\u003c\/summary\u003e\n\u003cdiv style=\"padding: 0 1.5rem 1.25rem 1.5rem !important; border-top: 1px solid #e0e0e0 !important;\"\u003e\n\u003cp style=\"margin-top: 1rem !important;\"\u003eEmail: \u003ca href=\"mailto:info@itsfpv.net\"\u003einfo@itsfpv.net\u003c\/a\u003e. Typical response: 24 to 48 hours (Mon-Fri). We help with wiring, Betaflight Custom Messages, MSP UART config, and Bluetooth pairing.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails style=\"margin: 0.5rem 0 !important; background: #f9f9f9 !important; color: #111 !important; border-radius: 8px !important; border: 1px solid #e0e0e0 !important;\"\u003e\n\u003csummary style=\"padding: 1rem 1.5rem !important; cursor: pointer !important; font-weight: 600 !important; font-size: 1em !important; display: flex !important; justify-content: space-between !important; align-items: center !important; list-style: none !important;\"\u003eWarranty and returns\u003c\/summary\u003e\n\u003cdiv style=\"padding: 0 1.5rem 1.25rem 1.5rem !important; border-top: 1px solid #e0e0e0 !important;\"\u003e\n\u003cp style=\"margin-top: 1rem !important;\"\u003e\u003cstrong\u003eEU withdrawal right:\u003c\/strong\u003e 14 days from delivery. Return shipping paid by customer. You can power it on, enter Setup Mode, check the Web UI. If you fly it or otherwise handle it beyond what's needed to check nature\/characteristics\/functioning, we may deduct the resulting loss in value.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eShipping damage:\u003c\/strong\u003e Please report within 7 days with photos of packaging and module so we can handle the carrier dispute for you. Your statutory rights remain unaffected.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDead on arrival:\u003c\/strong\u003e Won't boot, no LED, or Setup Mode cannot be entered and its Wi-Fi network never appears after Setup Mode has been requested. Contact us. Confirmed defects: we cover return shipping and repair or replace.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWarranty:\u003c\/strong\u003e German statutory warranty applies (gesetzliche Gewährleistung): two years from delivery for defects present at delivery. Damage caused by incorrect wiring, crashes, water, or modifications to the module is not covered. For consumers (B2C): if a defect appears within 12 months after delivery, it's presumed to have existed at delivery unless proven otherwise.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cscript\u003e\n(function () {\n  function bind(root) {\n    if (root.__clVideoBound) return;\n    root.__clVideoBound = true;\n    var vids = root.querySelectorAll('video');\n    if (!vids.length) return;\n    function fallback(v) { v.controls = true; }\n    if (!('IntersectionObserver' in window)) {\n      Array.prototype.forEach.call(vids, function (v) {\n        v.play().catch(function () { fallback(v); });\n      });\n      return;\n    }\n    var io = new IntersectionObserver(function (entries) {\n      entries.forEach(function (e) {\n        var v = e.target;\n        if (e.isIntersecting) {\n          try { v.currentTime = 0; } catch (err) {}\n          v.play().catch(function () { fallback(v); });\n        } else {\n          v.pause();\n          try { v.currentTime = 0; } catch (err) {}\n        }\n      });\n    }, { threshold: 0.4 });\n    Array.prototype.forEach.call(vids, function (v) { io.observe(v); });\n  }\n  function init() {\n    var roots = document.querySelectorAll('.camlink-pd');\n    Array.prototype.forEach.call(roots, bind);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\u003c\/script\u003e\n\u003cscript\u003e\n(function () {\n  var D = \/*CL-COMPAT-BEGIN*\/\n{\n  \"v\": \"1.0 \/ 02d5a6b9\",\n  \"t\": [\n    [\"STATE\",\"State\",\"Connection or recording state\",\"REC\"],\n    [\"REC_TIME\",\"Timer\",\"Recording duration\",\"3:24\"],\n    [\"BATTERY\",\"Battery\",\"Battery percentage\",\"85%\"],\n    [\"REMAINING\",\"Time left\",\"Remaining recording time\",\"1H50M\"],\n    [\"CAM\",\"Camera\",\"Camera model short tag\",\"GP13\"],\n    [\"RES\",\"Resolution\",\"Video resolution\",\"5.3K\"],\n    [\"FPS\",\"Frame rate\",\"Frame rate\",\"25\"],\n    [\"ASPECT\",\"Aspect ratio\",\"Aspect ratio\",\"8:7\"],\n    [\"SD\",\"SD free\",\"SD card free space\",\"108G\"],\n    [\"PROFILE\",\"Profile\",\"Color profile\",\"LOG\"],\n    [\"PRESET\",\"Preset\",\"Live GoPro preset name. Blank until the camera reports it.\",\"FPV\"],\n    [\"TC\",\"Clock sync\",\"GoPro clock set from GPS and confirmed\",\"TC\"],\n    [\"BUSY\",\"Busy\",\"Camera busy indicator\",\"BUSY\"],\n    [\"ISO\",\"ISO\",\"Sensor sensitivity\",\"ISO800\"],\n    [\"SHUT_ANG\",\"Shutter angle\",\"Shutter angle in degrees\",\"180D\"],\n    [\"SHUT_SPD\",\"Shutter speed\",\"Shutter speed as a fraction\",\"1\/50\"],\n    [\"WB\",\"White balance\",\"Color temperature\",\"5600K\"],\n    [\"IRIS\",\"Iris\",\"Lens aperture\",\"F2.8\"],\n    [\"CODEC\",\"Codec\",\"Recording codec family\",\"BRAW\"]\n  ],\n  \"w\": [\n    \"!LOW BAT\",\n    \"!SD FULL\",\n    \"!SD LOW\",\n    \"!NO SD\",\n    \"!WRONG MODE\",\n    \"!HOT\",\n    \"!SD ERROR\",\n    \"!COLD\",\n    \"!WAIT GPS FIX\",\n    \"!REC UNCONFIRMED\",\n    \"!CHECK CAM MENU\",\n    \"!REC STATE?\"\n  ],\n  \"n\": [\n    \"Same camera control as the tested Mission 1 Pro.\",\n    \"Same camera control as the tested Hero 13 and Hero 11.\",\n    \"Same camera control as the tested Action 6.\",\n    \"No Action 3 has ever been tested with CAMLINK.\",\n    \"No Osmo 360 has ever been tested with CAMLINK.\",\n    \"Same camera control as the tested Pocket 6K and Pocket 4K. Needs camera firmware 8.1 or newer.\",\n    \"Same Bluetooth remote control as the tested ZV-E10 II and ZV-E1.\"\n  ],\n  \"b\": [\n    \"GoPro\",\n    \"DJI\",\n    \"Blackmagic\",\n    \"Sony\"\n  ],\n  \"m\": [\n    [\"Mission 1 Pro\",\"M1P\",\"v\",7679,-1,0],\n    [\"Mission 1\",\"M1\",\"e\",7679,0,0],\n    [\"Mission 1 ILS\",\"M1\",\"e\",7679,0,0],\n    [\"MAX 2\",\"MAX2\",\"v\",8191,-1,0],\n    [\"Hero 13\",\"GP13\",\"v\",8191,-1,0],\n    [\"Hero 12\",\"GP12\",\"e\",8191,1,0],\n    [\"Hero 11\",\"GP11\",\"v\",8191,-1,0],\n    [\"Hero 10\",\"GP10\",\"e\",8191,1,0],\n    [\"Hero 9\",\"GP9\",\"e\",8191,1,0],\n    [\"Osmo Nano\",\"NANO\",\"v\",511,-1,1],\n    [\"Osmo Action 6\",\"OA6\",\"v\",511,-1,1],\n    [\"Osmo Action 5 Pro\",\"OA5P\",\"e\",511,2,1],\n    [\"Osmo Action 4\",\"OA4\",\"e\",511,2,1],\n    [\"Osmo Action 3\",\"OA3\",\"u\",0,3,1],\n    [\"Osmo Action 2\",\"OA2\",\"v\",511,-1,1],\n    [\"Osmo 360\",\"DJI\",\"u\",0,4,1],\n    [\"Pocket Cinema Camera 6K Pro\",\"BM6KP\",\"e\",516351,5,2],\n    [\"Pocket Cinema Camera 6K G2\",\"BM6K\",\"e\",516351,5,2],\n    [\"Pocket Cinema Camera 6K\",\"BM6K\",\"v\",516351,-1,2],\n    [\"Pocket Cinema Camera 4K\",\"BM4K\",\"v\",516351,-1,2],\n    [\"A1 II\",\"A1M2\",\"e\",31,6,3],\n    [\"A1\",\"A1\",\"e\",31,6,3],\n    [\"A9 III\",\"A9M3\",\"e\",31,6,3],\n    [\"A9 II\",\"A9M2\",\"e\",31,6,3],\n    [\"A9\",\"A9\",\"e\",31,6,3],\n    [\"A7 V\",\"A7M5\",\"e\",31,6,3],\n    [\"A7 IV\",\"A7M4\",\"e\",31,6,3],\n    [\"A7 III\",\"A7M3\",\"e\",31,6,3],\n    [\"A7S III\",\"A7S3\",\"e\",31,6,3],\n    [\"A7R V\",\"A7R5\",\"e\",31,6,3],\n    [\"A7R IVA\",\"A7R4A\",\"e\",31,6,3],\n    [\"A7R IV\",\"A7R4\",\"e\",31,6,3],\n    [\"A7R IIIA\",\"A7R3A\",\"e\",31,6,3],\n    [\"A7R III\",\"A7R3\",\"e\",31,6,3],\n    [\"A7CR\",\"A7CR\",\"e\",31,6,3],\n    [\"A7C II\",\"A7CM2\",\"e\",31,6,3],\n    [\"A7C\",\"A7C\",\"e\",31,6,3],\n    [\"A6700\",\"A6700\",\"e\",31,6,3],\n    [\"A6600\",\"A6600\",\"e\",31,6,3],\n    [\"A6400\",\"A6400\",\"e\",31,6,3],\n    [\"A6100\",\"A6100\",\"e\",31,6,3],\n    [\"ZV-E10 II\",\"ZVE10M2\",\"v\",31,-1,3],\n    [\"ZV-E10\",\"ZVE10\",\"e\",31,6,3],\n    [\"ZV-E1\",\"ZVE1\",\"v\",31,-1,3],\n    [\"ZV-1 II\",\"ZV1M2\",\"e\",31,6,3],\n    [\"ZV-1F\",\"ZV1F\",\"e\",31,6,3],\n    [\"ZV-1A\",\"ZV1A\",\"e\",31,6,3],\n    [\"ZV-1\",\"ZV1\",\"e\",31,6,3],\n    [\"FX30\",\"FX30\",\"e\",31,6,3],\n    [\"FX3A\",\"FX3A\",\"e\",31,6,3],\n    [\"FX3\",\"FX3\",\"e\",31,6,3],\n    [\"FX2\",\"FX2\",\"e\",31,6,3],\n    [\"RX1R III\",\"RX1R3\",\"e\",31,6,3],\n    [\"RX100 VIIA\",\"RX100M7\",\"e\",31,6,3],\n    [\"RX100 VII\",\"RX100M7\",\"e\",31,6,3],\n    [\"RX0 II\",\"RX0M2\",\"e\",31,6,3],\n    [\"ILX-LR1\",\"ILXLR1\",\"e\",31,6,3]\n  ]\n}\n\/*CL-COMPAT-END*\/;\n  var TI = {};\n  for (var ti = 0; ti \u003c D.t.length; ti++) TI[D.t[ti][0]] = ti;\n  function sends(m, name) { return (m[3] \u0026 (1 \u003c\u003c TI[name])) !== 0; }\n  function eg(name) { return D.t[TI[name]][3]; }\n  function osdLines(m) {\n    var l3 = m[1], l4 = '';\n    if (sends(m, 'RES')) {\n      l3 = eg('RES') + ' ' + eg('FPS');\n      if (sends(m, 'PROFILE')) l3 += ' ' + eg('PROFILE');\n      else if (sends(m, 'CODEC')) l3 += ' ' + eg('CODEC');\n      l4 = m[1];\n      if (sends(m, 'ASPECT')) l4 += ' ' + eg('ASPECT');\n      else if (sends(m, 'ISO')) l4 += ' ' + eg('ISO');\n    }\n    return [\n      eg('STATE') + ' ' + eg('REC_TIME'),\n      eg('BATTERY') + ' ' + eg('REMAINING'),\n      l3,\n      l4\n    ];\n  }\n  var STATUS = { v: 'Verified on real hardware.', e: 'Expected to work.', u: 'Untested.' };\n  var LEAD_V = 'Auto-record on arm and stop on disarm, and everything below is live in your goggles.';\n  var CAP = 'One example of how this reads in your goggles. Every value below is yours to place: put them where you want them, and leave out the ones you do not need.';\n  var NUM_WORDS = { 2: 'Two', 3: 'Three', 4: 'Four', 5: 'Five', 6: 'Six', 7: 'Seven', 8: 'Eight', 9: 'Nine', 10: 'Ten', 11: 'Eleven', 12: 'Twelve', 13: 'Thirteen', 14: 'Fourteen', 15: 'Fifteen', 16: 'Sixteen' };\n  function joinAnd(items) {\n    if (items.length === 1) return items[0];\n    return items.slice(0, -1).join(', ') + ' and ' + items[items.length - 1];\n  }\n  function defaultText() {\n    var total = 0;\n    var parts = [];\n    for (var bi = 0; bi \u003c D.b.length; bi++) {\n      var names = [];\n      for (var i = 0; i \u003c D.m.length; i++) {\n        if (D.m[i][5] === bi \u0026\u0026 D.m[i][2] === 'v') names.push(D.m[i][0]);\n      }\n      if (names.length) {\n        total += names.length;\n        parts.push(D.b[bi] + ' ' + joinAnd(names) + '.');\n      }\n    }\n    var word = NUM_WORDS[total] || String(total);\n    return word + ' models verified on real hardware. Pick yours to see its status, the screen it produces, and every value it can send. ' + parts.join(' ') + ' Everything else is either expected to work or untested, and picking it says which.';\n  }\n  function buildSelect(sel) {\n    for (var bi = 0; bi \u003c D.b.length; bi++) {\n      var og = document.createElement('optgroup');\n      og.label = D.b[bi];\n      for (var i = 0; i \u003c D.m.length; i++) {\n        if (D.m[i][5] !== bi) continue;\n        var opt = document.createElement('option');\n        opt.value = String(i);\n        opt.textContent = D.m[i][0];\n        og.appendChild(opt);\n      }\n      sel.appendChild(og);\n    }\n  }\n  function row(label, desc, example, on) {\n    var d = document.createElement('div');\n    if (!on) d.className = 'cl-off';\n    var c = document.createElement('span');\n    c.className = 'cl-name';\n    c.textContent = label;\n    var w = document.createElement('span');\n    w.className = 'cl-what';\n    w.textContent = desc;\n    var e = document.createElement('span');\n    e.className = 'cl-eg';\n    e.textContent = on ? example : '–';\n    d.appendChild(c); d.appendChild(w); d.appendChild(e);\n    return d;\n  }\n  function bind(box) {\n    if (box.__clBound) return;\n    var sel = box.querySelector('[data-cl-sel]');\n    var out = box.querySelector('[data-cl-out]');\n    var panel = box.querySelector('[data-cl-panel]');\n    var osd = box.querySelector('[data-cl-osd]');\n    var cap = box.querySelector('[data-cl-cap]');\n    var tok = box.querySelector('[data-cl-tok]');\n    if (!sel || !out || !panel || !osd || !cap || !tok) return;\n    box.__clBound = true;\n    buildSelect(sel);\n    var DEFAULT_TEXT = defaultText();\n    function render() {\n      var m = D.m[parseInt(sel.value, 10)];\n      if (!m || !STATUS[m[2]]) { out.textContent = DEFAULT_TEXT; panel.hidden = true; return; }\n      var note = m[4] \u003e= 0 ? D.n[m[4]] : '';\n      out.textContent = '';\n      var h = document.createElement('span');\n      h.className = 'cl-status';\n      h.textContent = m[0] + ': ' + STATUS[m[2]];\n      out.appendChild(h);\n      if (m[2] === 'u') {\n        out.appendChild(document.createTextNode(note));\n        panel.hidden = true;\n        return;\n      }\n      out.appendChild(document.createTextNode(m[2] === 'v' ? LEAD_V : note));\n      var lines = osdLines(m);\n      osd.textContent = '';\n      for (var i = 0; i \u003c 4; i++) {\n        var s = document.createElement('span');\n        s.textContent = lines[i] || '';\n        osd.appendChild(s);\n      }\n      osd.setAttribute('aria-hidden', 'false');\n      osd.setAttribute('aria-label', 'Example of the four OSD lines on a ' + m[0] + '. Camera tag ' + m[1] + '.');\n      cap.textContent = CAP;\n      tok.textContent = '';\n      for (var j = 0; j \u003c D.t.length; j++) {\n        var t = D.t[j];\n        var on = sends(m, t[0]);\n        var desc = t[2] === t[1] ? '' : t[2];\n        tok.appendChild(row(t[1], desc, t[0] === 'CAM' ? m[1] : t[3], on));\n      }\n      var b = document.createElement('div');\n      b.className = 'cl-note';\n      b.textContent = 'Greyed rows stay blank on this camera: it does not report them, and CAMLINK never guesses a value. Data: ' + D.v + '.';\n      tok.appendChild(b);\n      panel.hidden = false;\n    }\n    sel.addEventListener('change', render);\n    render();\n  }\n  function init() {\n    var boxes = document.querySelectorAll('[data-cl-check]');\n    Array.prototype.forEach.call(boxes, bind);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"it's FPV","offers":[{"title":"Clear \/ Single","offer_id":53934906409297,"sku":"CL1","price":60.49,"currency_code":"EUR","in_stock":false},{"title":"Clear \/ Fleet 3-Pack","offer_id":53934906442065,"sku":"CL1-3PK","price":151.25,"currency_code":"EUR","in_stock":false},{"title":"Black \/ Single","offer_id":54614820159825,"sku":"CL1-B","price":60.49,"currency_code":"EUR","in_stock":false},{"title":"Black \/ Fleet 3-Pack","offer_id":54614820192593,"sku":"CL1-B-3PK","price":151.25,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0729\/3521\/1345\/files\/CAMLINK-pcb.jpg?v=1786377232","url":"https:\/\/itsfpv.de\/en-eu\/products\/camlink","provider":"it's FPV","version":"1.0","type":"link"}