How the Carrier Finder ranks carrier boards, systems and dev kits against your production needs.
Method version 1.0 · Dataset 2026-09-08 · Last updated: September 2026
The engine answers one question: for a given edge AI module (or module family) and a list of production requirements — camera connectors, Ethernet, PoE, M.2, Wi-Fi, fanless, industrial, operating temperature, DC input voltage, price — which carrier board, system, developer kit or host SBC in the production-carrier registry actually meets them, and how sure can you be? Every need becomes a per-carrier check with status PASS, FAIL or UNKNOWN; a field the vendor page does not state is UNKNOWN, never guessed and never counted as a failure. This page states every need, the UNKNOWN rule, the ranking rule, the verdict rule, the evidence classes and the full registry. If a fact on a result page cannot be traced back to something on this page, that is a bug.
Contents
1. Purpose and scope
Sizing an edge AI module (Jetson Orin, Hailo, Coral, RK3588, Raspberry Pi) tells you the compute — it does not tell you what to actually bolt it to. The Carrier Finder searches the production-carrier registry — carrier boards, complete systems, developer kits and host SBCs — for the module you picked and ranks every candidate against the production needs you give it: how many cameras it can take, how it talks to the network, how it is powered, whether it survives your enclosure's temperature range, and what it costs.
It does not estimate compute throughput, memory fit or power draw for the module itself — that is the Camera Stream Capacity, Model Memory Fit and Module Power Calculator engines' job. It also does not check flash/software compatibility — for Jetson modules, run the Jetson Configuration Checker against the JetPack release you plan to run.
2. Inputs
| Input | Default | Notes |
|---|---|---|
module | — | One of the 14 registry module ids, or an alias (orin_nano, agx_orin, thor_t5000, rk3588, rpi5, …) normalised to the registry id. Required unless family is given. |
family | derived from module | One of jetson, hailo, coral, rockchip, rpi — searches every module in that family instead of one exact module. |
type | any | Restrict to one product type: carrier, system, devkit, host_sbc. |
| needs (17 fields) | none | Any subset of the need catalogue below. No needs given returns every carrier for the module, unranked by fit (still sorted by price/vendor). |
max_results | 10 | 1–50; how many ranked candidates the response returns. |
3. Need catalogue
Every need has a kind that fixes how it is compared
against the carrier's field, and a plain-English pass rule. min
needs pass when the carrier's value is at least what you asked for;
max needs pass when it is at most what you asked for;
bool needs pass on an exact true/false match; present
needs pass when the field is populated (or, if you asked for false,
when it is empty); the two temp needs and the one
range need have their own rule below the table because they
compare against a range, not a single number.
| Need | Kind | Carrier field | Pass rule |
|---|---|---|---|
csi_min | min | camera.csi_connectors | carrier's CSI connector count ≥ requested |
gbe_min | min | network.gbe_ports + gbe_2_5_ports + gbe_10_ports | total wired Ethernet ports (any speed) ≥ requested |
gbe_2_5_min | min | network.gbe_2_5_ports + gbe_10_ports | 2.5 GbE-or-faster ports ≥ requested |
poe_ports_min | min | network.poe_ports | PoE output (PSE) ports ≥ requested |
usb3_min | min | usb.usb3 | USB 3.x ports ≥ requested |
max_price_usd | max | price.usd | list price ≤ requested ceiling |
poe_pd | bool | network.poe_pd_input | powered-by-PoE flag matches exactly (true or false) |
fanless | bool | environment.fanless | fanless flag matches exactly |
industrial | bool | environment.industrial | industrial-grade flag matches exactly |
module_included | bool | module_included | "module bundled with this SKU" flag matches exactly |
m2_key_m | present | expansion.m2_key_m | requested true: slot description is non-empty; requested false: it is empty |
m2_key_e | present | expansion.m2_key_e | same rule as m2_key_m |
wifi | present | network.wifi | same rule, applied to the Wi-Fi field |
gmsl | present | camera.gmsl | same rule, applied to the GMSL field |
min_temp_c | temp_min | environment.operating_temp_range.min | carrier's rated floor ≤ your requested floor — i.e. the carrier is rated to run at least as cold as you need |
max_temp_c | temp_max | environment.operating_temp_range.max | carrier's rated ceiling ≥ your requested ceiling — rated to run at least as hot as you need |
dc_input_v | range | power.input_v_range | your DC supply voltage falls between the carrier's stated min and max input voltage, inclusive |
min_temp_c and max_temp_c are independent —
give both to require a full range (e.g. min_temp_c: -20,
max_temp_c: 60) and the carrier must clear both ends. Validation
rejects min_temp_c greater than max_temp_c,
a dc_input_v outside 1–100 V, and a temperature outside
−60 to 120 °C.
4. The UNKNOWN rule
A need is UNKNOWN whenever the carrier's field for it is
null — the vendor page or datasheet used to build the
registry did not state that fact — or, for the range need
(dc_input_v), when either the minimum or the maximum of the
range is missing. UNKNOWN is not a failure: it does not lower a
candidate's fails count, and it never blocks a PASS verdict
on its own. It is tracked separately as unknowns and used
only to break ties in ranking (below) and to set the
REQUIRES_VALIDATION verdict. The rule exists because a missing figure on
a vendor page means "not published," not "unsupported" — guessing either
way would be worse than saying so plainly. Every result names which needs
were UNKNOWN so you know exactly what to confirm on the datasheet before
ordering.
5. Ranking rule
Every candidate for the module (or family) is sorted by this key, in order:
Fewest misses always wins first — a carrier with one FAIL never outranks one with zero, regardless of price. Among candidates with the same number of fails, fewer UNKNOWNs wins — a fully documented carrier beats a cheaper one you cannot fully verify from the vendor page alone. Only after both are equal does price break the tie, and a carrier with no published price ranks behind one that has a price, however low. Vendor and product name are the final, deterministic tie-breakers so the order never depends on registry insertion order.
6. Production constraint verdict rule
Every result carries one production constraint whose status
summarises the whole search, computed from the ranked candidate list:
Confidence follows the same evidence used for the top candidate: HIGH when the verdict is PASS and the best candidate's evidence is class A, MEDIUM when the verdict is REQUIRES_VALIDATION with class-A evidence (or any PASS resting partly on class-C evidence), and LOW when no candidate was found or the best candidate is backed only by class-C sources. A single per-need UNKNOWN never lowers confidence on its own — it is what drives the REQUIRES_VALIDATION verdict in the first place.
7. Evidence classes
Every carrier row, and every field on it, traces to one of two evidence classes used in this registry.
| Class | Meaning | Used here for |
|---|---|---|
| A | Vendor product page or datasheet | The great majority of rows — NVIDIA, Seeed Studio, Connect Tech and other vendors' own specification pages and PDF datasheets. |
| C | Reseller or community source | Used when the vendor's own page returned an error or blocked automated fetch (e.g. some Waveshare product pages returned HTTP 403), or when only a third-party listing (CNX Software, a distributor's product page) publishes the figure. |
A carrier's overall evidence_class is A if any of its
sources is class A, otherwise C. Each field's provenance is still the
specific source it was quoted from — see the sources list on every
per-carrier page.
8. The registry
36 carrier boards, systems, developer kits and host SBCs across 14 edge AI modules (NVIDIA Jetson Orin/Thor, Hailo-8/8L, Google Coral, Rockchip RK3588, Raspberry Pi 5), 16 vendors. 20 of 36 rows state a full operating temperature range; 16 of 36 have a public list price. 33 rows carry at least one class-A (vendor) source; 3 rows rest on class-C sources only.
| Type | Count | Meaning |
|---|---|---|
| Carrier board | 16 | Bare board; module and enclosure sold separately (or module pre-mounted, no case). |
| System | 13 | Enclosed, ready-to-deploy unit with the module included. |
| Developer kit | 4 | NVIDIA-branded developer kit (reference carrier), the module vendor's own evaluation platform. |
| Host SBC | 3 | A general-purpose single-board computer (e.g. Raspberry Pi 5) hosting an accelerator module as an add-on, not a Jetson-class carrier. |
Full browsable tables: the Production Carriers hub (all 36 rows and the module coverage table), a page per module, and a full spec sheet per carrier with every source quoted. Machine-readable copy with the complete provenance record for every field: production-carriers.json.
9. Limitations and gaps
- 19 open research gaps remain on individual rows — mostly unconfirmed operating-temperature ranges, USD prices only available from a reseller (not the vendor), or a spec that could not be quoted verbatim from a fetchable page. Every gap is listed with the specific product and field on the registry hub and repeated on the affected carrier's own page.
- A field left
nullis reported as UNKNOWN by every need that reads it — this is deliberately conservative. A carrier may in fact meet an UNKNOWN need; the registry just does not have a citable figure for it yet. - Prices are a single list price as of the date shown, not live pricing — most industrial-channel vendors quote on request and their rows are UNKNOWN on
max_price_usd. - The registry does not track stock/lead-time, minimum order quantity, or regional distribution — only the vendor's own published specification and (where stated) list price.
- Camera capability is recorded as connector count and lane width where published; exact sensor compatibility (which CSI sensors a given carrier's ISP/driver stack actually supports) is out of scope.
- The engine does not check module × carrier electrical/mechanical compatibility beyond the registry's own
modules[]list for each row — always confirm form factor and connector pinout against the datasheet before ordering.
10. Versions
| Component | Version | Date |
|---|---|---|
| Method | 1.0 | 2026-09-08 |
| Dataset | 2026-09-08 | 2026-09-08 |
Every result URL carries mv (method version) and
dv (dataset version); when either differs from the current
values, the result page flags that the data has changed since the link
was made.
11. Citation format
Cite a Carrier Finder result or a registry row as:
Every result and per-carrier page names its own sources — cite the
underlying vendor page or datasheet directly for a specific spec, and
cite the URL above for the ranking/verdict itself. The sources[]
array in the API response and in production-carriers.json
gives publisher, document, URL and the date each fact was last verified
for every field.
12. Method changelog
| Method | Dataset | Date | Change |
|---|---|---|---|
| 1.0 | 2026-09-08 | 2026-09-08 | First release. 36 carriers across 14 modules and 16 vendors, 17 needs, UNKNOWN-never-guessed rule, fails/unknowns/price ranking, and the PASS / REQUIRES_VALIDATION / FAIL / UNKNOWN production constraint, every fact sourced from a vendor product page or datasheet (class A) or a reseller/community page (class C). |
Method changes bump the method version; registry updates (new carriers,
corrected specs, newly confirmed fields) bump the dataset version. Both
appear in every result's citation block and in the dataset_version
/ method_version fields of every API response.
Find a carrier for your exact needs.
Browse the precomputed tree at /production/carriers/, the raw registry at production-carriers.json, or open the live engine below.