Skip to content
nband

Hardware

What to buy, what it buys you, and what to skip.

Every price in the bill of materials was read off a named vendor page and links back to it, each on the date recorded with it, the oldest 2026-07-27 and the newest 2026-07-29. Nothing is estimated. The tiers are a suggestion about sequence rather than a product line: the grid accepts any combination of these parts, and any substitute you register. The cheapest useful node costs less than a phone.

Build tiers

3 reference builds, priced from the same registry that generates every diagram on this page. Tier 1 - Baseline opens 6 bands for $504. Tier 2 - Core adds 4 more for $1158. Tier 3 - Extended adds 3 more for $3679. The tiers are a suggestion about sequence: the grid accepts any combination of these parts.

Component prices are moving fast in 2026

Silicon pricing through 2026 is being distorted by LPDDR4 and DRAM supply being redirected to AI datacentre demand. Raspberry Pi board prices have risen in three separate rounds since December 2025 and are now 80 to 150 percent above original MSRP depending on memory size. Treat every figure here as a snapshot, not a quote. The tier budgets are held stable by moving down the memory ladder rather than by pretending prices did not move.

11 parts · 6 bands · 10.8 W

Tier 1 - Baseline, $504

Visible, near-infrared, long-wave infrared, radio, environmental, and disciplined time. The minimum configuration that can contribute usefully to the grid.
PartBandBusPrice
Raspberry Pi 5, 2GB
Raspberry Pi

The tier 1 reference host. Two gigabytes is genuinely sufficient because the node agent holds bounded ring buffers and never queues decoded frames; see firmware/README.md on the memory budget. Choosing 2 GB over 8 GB saves USD 110 at July 2026 prices, which is more than a quarter of the entire tier 1 budget. The Pi 5's Ethernet MAC supports hardware timestamping, which is what makes sub-microsecond cross-node timing achievable at all.

no bandhost$65.00source
LC29H(DA) RTK HAT with PPS
Quectel / Waveshare

RTK-capable, but that is not why it is here. The pulse-per-second output is, because it is the difference between a node that can join an array and one that can only ever file solo reports. Without PPS a timestamp is good to milliseconds, three to four orders of magnitude too coarse for time-of-arrival work between nodes. PPS lands on GPIO4, physical pin 7. Not GPIO18: that is the I2S bit clock and the microphone claims it on any node carrying both.

Navigation and poseuart+gpio$49.99source
Active GNSS antenna on 170 mm IPEX to SMA lead
Waveshare

Ships in the LC29H box and is drawn because where it goes is the single most common way this build fails. The receiver needs sky, not a room with a roof: a cold start under clear sky takes 30 to 90 seconds and indoors it may never lock at all, and a node without pulse-per-second lock can file solo reports and can never contribute to multi-node geometry. The lead is 170 mm, which is the real constraint on how far the antenna can get from the board.

no bandnonein the boxsource
HQ Camera (IMX477) + 6mm CS lens
Raspberry Pi

Rolling shutter is a real limitation for fast targets: a fast-crossing object is geometrically skewed, and that skew must not be read as anomalous kinematics. The firmware records the readout time per frame so the discriminator can correct for it. Where budget allows, the global-shutter IMX296 removes the problem entirely at the cost of resolution.

Visiblecsi$78.00source
HQ Camera NoIR + 850nm bandpass
Raspberry Pi

The cheapest genuinely additional band in the platform. A second HQ camera body with the IR-cut filter removed and a hard 850 nm bandpass in front of it produces a channel that is physically independent of the visible camera rather than a filtered copy of it. Without the bandpass filter this is not a NIR channel, it is a visible channel with extra noise, and the registry will mark it as such.

Near infraredcsi$96.00source
RTL-SDR Blog V3
RTL-SDR Blog

The V3 is the current reference, not the V4. RTL-SDR Blog announced the V4 as end-of-line in 2026 after Rafael Micro stopped producing the R828D tuner and the remaining stock proved faulty; the V3 remains in stable production. A V4L using the R828S is expected but was not shippable at the time of writing. Any BOM still specifying a V4 is out of date. The 1 ppm TCXO matters here: an uncompensated dongle drifts enough to smear a narrowband detection across the analysis window.

Radio frequencyusb$39.95source
BME688
Bosch

Context only, never a detection channel. Its job is to make a refraction argument settleable after the fact instead of arguable forever. Pressure trend and dewpoint spread are what let the discriminator recognise a temperature inversion, which is the single most common cause of a genuinely strange-looking optical track near the horizon.

Environmentali2c$22.50source
BNO085 9-DoF IMU
CEVA / Adafruit

Records where each sensor was actually pointing rather than where the operator believes it was bolted. A mast that shifts two degrees in wind invalidates every bearing taken during the gust unless the shift is recorded. The onboard sensor-fusion output is used directly; running fusion on the host wastes CPU that the trigger pipeline needs.

Navigation and posei2c$29.95source
MLX90640 32x24 thermal arrayverified
Melexis

The honest budget thermal option and a fully supported variant, not a downgrade to be apologised for. At 768 pixels it cannot image a shape, but it can absolutely register that something warm crossed the field, and that is enough to make a coincidence trigger with the optical channel. The discriminator knows the difference: detections from this part are scored for thermal presence and never for thermal morphology. This is the variant registry working as intended.

Long-wave infraredi2c$74.95source
27 W USB-C power supply
Raspberry Pi

Tier 1 is mains powered and this is what powers it. The Pi 5 negotiates 5 A over USB-C Power Delivery and falls back to 3 A on a supply that cannot offer it, which silently caps the current available to USB peripherals at 600 mA. A node that runs for weeks and then drops a channel under load is usually a node on a phone charger. Tiers 2 and 3 do not list this part because their 5 V rail comes off the solar regulator.

no bandnone$12.95source
High Endurance microSDXC 64 GB
SanDisk

Endurance rated rather than speed rated, which is the opposite of the usual advice and is deliberate. A node writes its spool continuously for years and never launches an application, so the A2 random-IOPS class that sells consumer cards buys nothing here while the write endurance that wears them out buys everything. A card that fails takes the local spool with it, which is the only copy of anything the grid has not yet acknowledged. 64 GB is far more than the spool needs; the smaller cards in this range are not cheaper by enough to matter.

no bandnone$34.95source
Total, excluding tools, shipping, and tax$504.24

17 parts · 10 bands · 12.8 W

Tier 2 - Core, $1662

Adds ultraviolet, millimetre-wave radar, acoustic, and magnetometry, and upgrades the thermal array to a 160x120 imager. This is the first tier that survives outdoors, and the weatherproof case and solar supply are most of the price increase rather than the sensors. The configuration the build guide is written against.
PartBandBusPrice
Raspberry Pi 5, 4GB
Raspberry Pi

The tier 2 reference host. The extra headroom over 2 GB is spent on the LWIR pipeline and on holding a longer pre-roll for the coincidence trigger.

no bandhost$110.00source
LC29H(DA) RTK HAT with PPS
Quectel / Waveshare

RTK-capable, but that is not why it is here. The pulse-per-second output is, because it is the difference between a node that can join an array and one that can only ever file solo reports. Without PPS a timestamp is good to milliseconds, three to four orders of magnitude too coarse for time-of-arrival work between nodes. PPS lands on GPIO4, physical pin 7. Not GPIO18: that is the I2S bit clock and the microphone claims it on any node carrying both.

Navigation and poseuart+gpio$49.99source
Active GNSS antenna on 170 mm IPEX to SMA lead
Waveshare

Ships in the LC29H box and is drawn because where it goes is the single most common way this build fails. The receiver needs sky, not a room with a roof: a cold start under clear sky takes 30 to 90 seconds and indoors it may never lock at all, and a node without pulse-per-second lock can file solo reports and can never contribute to multi-node geometry. The lead is 170 mm, which is the real constraint on how far the antenna can get from the board.

no bandnonein the boxsource
HQ Camera (IMX477) + 6mm CS lens
Raspberry Pi

Rolling shutter is a real limitation for fast targets: a fast-crossing object is geometrically skewed, and that skew must not be read as anomalous kinematics. The firmware records the readout time per frame so the discriminator can correct for it. Where budget allows, the global-shutter IMX296 removes the problem entirely at the cost of resolution.

Visiblecsi$78.00source
HQ Camera NoIR + 850nm bandpass
Raspberry Pi

The cheapest genuinely additional band in the platform. A second HQ camera body with the IR-cut filter removed and a hard 850 nm bandpass in front of it produces a channel that is physically independent of the visible camera rather than a filtered copy of it. Without the bandpass filter this is not a NIR channel, it is a visible channel with extra noise, and the registry will mark it as such.

Near infraredcsi$96.00source
RTL-SDR Blog V3
RTL-SDR Blog

The V3 is the current reference, not the V4. RTL-SDR Blog announced the V4 as end-of-line in 2026 after Rafael Micro stopped producing the R828D tuner and the remaining stock proved faulty; the V3 remains in stable production. A V4L using the R828S is expected but was not shippable at the time of writing. Any BOM still specifying a V4 is out of date. The 1 ppm TCXO matters here: an uncompensated dongle drifts enough to smear a narrowband detection across the analysis window.

Radio frequencyusb$39.95source
BME688
Bosch

Context only, never a detection channel. Its job is to make a refraction argument settleable after the fact instead of arguable forever. Pressure trend and dewpoint spread are what let the discriminator recognise a temperature inversion, which is the single most common cause of a genuinely strange-looking optical track near the horizon.

Environmentali2c$22.50source
BNO085 9-DoF IMU
CEVA / Adafruit

Records where each sensor was actually pointing rather than where the operator believes it was bolted. A mast that shifts two degrees in wind invalidates every bearing taken during the gust unless the shift is recorded. The onboard sensor-fusion output is used directly; running fusion on the host wastes CPU that the trigger pipeline needs.

Navigation and posei2c$29.95source
Lepton 3.5 + PureThermal 3
Teledyne FLIR

Radiometric output is the reason this is the reference rather than a cheaper array: every pixel carries an absolute temperature, which turns a thermal track into an energy measurement the discriminator can reason about. The flat-field shutter fires every few minutes and blanks the stream for roughly half a second; the firmware marks those windows invalid rather than letting them register as a detection. Export-controlled in some jurisdictions, and the 8.7 Hz frame rate is a deliberate export-compliance limit, not a technical one.

Long-wave infraredusb$329.00source
AS7331 UVA/UVB/UVC sensor
ams OSRAM

Three separate UV channels rather than a single index, which is what makes the part useful for discrimination instead of merely for sun exposure. A corona discharge, a lightning leader, and direct sunlight have distinguishable ratios across the three. Needs a fused-silica or PTFE diffuser window; ordinary acrylic blocks UVB and UVC entirely and will silently turn this into a one-channel sensor.

Ultravioleti2c$24.95source
LD2450 24 GHz tracking radar
Hi-Link

Sets an honest expectation: an eight metre range makes this a calibration and near-field instrument, not a sky radar. It earns its place by being the cheapest way to get a true range and radial velocity into the schema at all, which lets a builder exercise and validate the entire radar path before deciding whether to spend forty times more on a module that can actually reach altitude. Do not present a tier 2 node as radar-covered for aerial targets. Wiring note: this needs a second UART. Physical pins 16 and 18 (GPIO23/24) have no UART alternate function and were wrong; GPIO14/15 are the console and /dev/ttyAMA0 belongs to the GNSS receiver, whose pulse-per-second discipline is the one thing a node cannot afford to lose. Add 'dtoverlay=uart4' to /boot/firmware/config.txt and wire to GPIO12/13 on physical pins 32 and 33, which appear as /dev/ttyAMA4.

Millimetre waveuart$14.50source
RM3100 3-axis geomagnetic sensor
PNI Sensor

Magneto-inductive rather than Hall-effect, which is why it reaches tens of nanotesla instead of hundreds. Mount it at least two metres from the node's own electronics and from any of the active-emission hardware, on a non-ferrous mast section. In practice the dominant signal at most sites is the operator walking past with a phone, and learning that local signature is part of commissioning rather than a nuisance.

Magnetic and ELF/VLFspi$39.95source
ICS-43434 I2S MEMS microphone
TDK InvenSense

Digital output straight to the Pi's I2S peripheral, which keeps the analogue path short and avoids the ground-loop noise that plagues USB audio interfaces on a solar-powered mast. Rolls off below 50 Hz, so this covers audible acoustics only. Infrasound needs a dedicated differential pressure sensor and a mechanical wind filter, which is a tier 3 addition.

Acoustic and infrasoundi2s$12.50source
1500 case with breather vent and feedthroughs
Pelican

Sealed enclosures trap moisture rather than excluding it: the air inside is humid when you close the lid, and the first cold night condenses it onto the coldest surface, which is always the optics. A Gore breather vent plus reusable desiccant solves this. Every optical port needs its own gasketed window rather than a hole, and germanium for the LWIR port because glass is opaque at 10 micrometres. Carries tier 2 and tier 3 alike: packed, tier 3's contents take about a third of the interior floor and the tallest part is half the interior height.

no bandnone$179.00source
120 W panel + 30 A MPPT + 180 Ah LiFePO4
generic

Sized against the summed draw of the tier 2 parts list, 12.8 W continuous or 307 Wh per day, rather than against a round number. Assumptions: four peak-sun-hours, 35 percent margin, LiFePO4 at 50 percent usable depth of discharge, three days of autonomy. A panel too small for the node it ships with strands a remote build, which is why the drift check recomputes this from the parts rather than trusting the label.

no bandnone$589.00source
High Endurance microSDXC 64 GB
SanDisk

Endurance rated rather than speed rated, which is the opposite of the usual advice and is deliberate. A node writes its spool continuously for years and never launches an application, so the A2 random-IOPS class that sells consumer cards buys nothing here while the write endurance that wears them out buys everything. A card that fails takes the local spool with it, which is the only copy of anything the grid has not yet acknowledged. 64 GB is far more than the spool needs; the smaller cards in this range are not cheaper by enough to matter.

no bandnone$34.95source
INA226 bidirectional current and power monitor
Texas Instruments / generic breakout

Node power draw is telemetry rather than an accessory, and this is the part that produces it. A node that cannot see its own consumption cannot distinguish a flat battery from a failed sensor, and on an off-grid mast that is the difference between a diagnosable outage and a site visit. Mounts where the supply enters the enclosure, with its shunt in series with the feed it measures.

Environmentali2c$12.00source
Total, excluding tools, shipping, and tax$1662.24

23 parts · 13 bands · 24.6 W

Tier 3 - Extended, $5341

Adds short-wave infrared, gamma spectroscopy, and a seismometer, and replaces the presence radar with an imaging one. The short-wave imager is close to half the tier on its own. Research-grade coverage without research-grade cost.
PartBandBusPrice
Raspberry Pi 5, 8GB
Raspberry Pi

Tier 3 host. Needed once SWIR imaging and wideband SDR are both running, since each wants a multi-hundred-megabyte buffer of its own.

no bandhost$175.00source
LC29H(DA) RTK HAT with PPS
Quectel / Waveshare

RTK-capable, but that is not why it is here. The pulse-per-second output is, because it is the difference between a node that can join an array and one that can only ever file solo reports. Without PPS a timestamp is good to milliseconds, three to four orders of magnitude too coarse for time-of-arrival work between nodes. PPS lands on GPIO4, physical pin 7. Not GPIO18: that is the I2S bit clock and the microphone claims it on any node carrying both.

Navigation and poseuart+gpio$49.99source
Active GNSS antenna on 170 mm IPEX to SMA lead
Waveshare

Ships in the LC29H box and is drawn because where it goes is the single most common way this build fails. The receiver needs sky, not a room with a roof: a cold start under clear sky takes 30 to 90 seconds and indoors it may never lock at all, and a node without pulse-per-second lock can file solo reports and can never contribute to multi-node geometry. The lead is 170 mm, which is the real constraint on how far the antenna can get from the board.

no bandnonein the boxsource
HQ Camera (IMX477) + 6mm CS lens
Raspberry Pi

Rolling shutter is a real limitation for fast targets: a fast-crossing object is geometrically skewed, and that skew must not be read as anomalous kinematics. The firmware records the readout time per frame so the discriminator can correct for it. Where budget allows, the global-shutter IMX296 removes the problem entirely at the cost of resolution.

Visiblecsi$78.00source
HQ Camera NoIR + 850nm bandpass
Raspberry Pi

The cheapest genuinely additional band in the platform. A second HQ camera body with the IR-cut filter removed and a hard 850 nm bandpass in front of it produces a channel that is physically independent of the visible camera rather than a filtered copy of it. Without the bandpass filter this is not a NIR channel, it is a visible channel with extra noise, and the registry will mark it as such.

Near infraredcsi$96.00source
RTL-SDR Blog V3
RTL-SDR Blog

The V3 is the current reference, not the V4. RTL-SDR Blog announced the V4 as end-of-line in 2026 after Rafael Micro stopped producing the R828D tuner and the remaining stock proved faulty; the V3 remains in stable production. A V4L using the R828S is expected but was not shippable at the time of writing. Any BOM still specifying a V4 is out of date. The 1 ppm TCXO matters here: an uncompensated dongle drifts enough to smear a narrowband detection across the analysis window.

Radio frequencyusb$39.95source
BME688
Bosch

Context only, never a detection channel. Its job is to make a refraction argument settleable after the fact instead of arguable forever. Pressure trend and dewpoint spread are what let the discriminator recognise a temperature inversion, which is the single most common cause of a genuinely strange-looking optical track near the horizon.

Environmentali2c$22.50source
BNO085 9-DoF IMU
CEVA / Adafruit

Records where each sensor was actually pointing rather than where the operator believes it was bolted. A mast that shifts two degrees in wind invalidates every bearing taken during the gust unless the shift is recorded. The onboard sensor-fusion output is used directly; running fusion on the host wastes CPU that the trigger pipeline needs.

Navigation and posei2c$29.95source
Lepton 3.5 + PureThermal 3
Teledyne FLIR

Radiometric output is the reason this is the reference rather than a cheaper array: every pixel carries an absolute temperature, which turns a thermal track into an energy measurement the discriminator can reason about. The flat-field shutter fires every few minutes and blanks the stream for roughly half a second; the firmware marks those windows invalid rather than letting them register as a detection. Export-controlled in some jurisdictions, and the 8.7 Hz frame rate is a deliberate export-compliance limit, not a technical one.

Long-wave infraredusb$329.00source
AS7331 UVA/UVB/UVC sensor
ams OSRAM

Three separate UV channels rather than a single index, which is what makes the part useful for discrimination instead of merely for sun exposure. A corona discharge, a lightning leader, and direct sunlight have distinguishable ratios across the three. Needs a fused-silica or PTFE diffuser window; ordinary acrylic blocks UVB and UVC entirely and will silently turn this into a one-channel sensor.

Ultravioleti2c$24.95source
IWR6843ISK 60 GHz mmWave
Texas Instruments

The first part in the stack that produces a genuine three-dimensional point cloud with per-point Doppler. Range to a few hundred metres for a drone-sized cross-section under good conditions, far less in rain. Every site develops a fixed clutter map from buildings and terrain within the first hour; that map is learned, stored per node, and subtracted before anything is called a detection.

Millimetre waveusb$299.00source
RM3100 3-axis geomagnetic sensor
PNI Sensor

Magneto-inductive rather than Hall-effect, which is why it reaches tens of nanotesla instead of hundreds. Mount it at least two metres from the node's own electronics and from any of the active-emission hardware, on a non-ferrous mast section. In practice the dominant signal at most sites is the operator walking past with a phone, and learning that local signature is part of commissioning rather than a nuisance.

Magnetic and ELF/VLFspi$39.95source
ICS-43434 I2S MEMS microphone
TDK InvenSense

Digital output straight to the Pi's I2S peripheral, which keeps the analogue path short and avoids the ground-loop noise that plagues USB audio interfaces on a solar-powered mast. Rolls off below 50 Hz, so this covers audible acoustics only. Infrasound needs a dedicated differential pressure sensor and a mechanical wind filter, which is a tier 3 addition.

Acoustic and infrasoundi2s$12.50source
CsI(Tl) + SiPM open gamma spectrometer
OpenGammaDetector

Open hardware, fully documented, and the only practical route to a real energy spectrum rather than a bare count rate at this price. A spectrum is what separates a cosmic-ray shower from an isotope line, and it lets the node characterise its own radiological background properly rather than reporting an unattributed count rate. Earlier text here justified it partly as the readback for the aggregated americium lure; that module has been withdrawn (see the safety page on 10 CFR 30.15) and this part stands on its own merits as a passive instrument.

Gammausb$189.00source
InGaAs 640x512 SWIR module
various

The single largest line item in any tier and the reason tier 3 exists as a category. It buys haze penetration and material discrimination that no other band provides, and it exploits night-sky airglow to illuminate targets passively at 1.5 to 1.7 micrometres with no emitter at all. Export-controlled in most jurisdictions; check ITAR and EAR status before shipping across a border. Most builders should skip this and put the money into a second complete node instead, which buys geometry, and geometry beats spectral coverage.

Short-wave infraredusb3$2400.00source
SM-24 geophone element
ION / Sercel

A 10 Hz element does not reach the infrasound band and is not a substitute for a broadband seismometer. Its role at tier 3 is ground-coupled acoustic detection of low overflights and, more importantly, characterising the site's vibration background, which is the prerequisite for ever siting a gravimeter there. Electrically it is a coil moving in a magnetic field: two wires, tens of millivolts, no supply and no digital interface. It reaches the node through the ADS1256.

Seismicanalog$89.00source
850 nm pulsed IR beacon, 5 W peakrestricted
generic

Optional, tier 3 only. LED rather than laser, which changes which standard applies (IEC 62471 photobiological, not the IEC 60825 laser classes) rather than making it inherently safe: a 5 W peak infrared emitter is not automatically exempt at close range. The randomised duty cycle is what makes it identifiable in the archive: the node knows its own emission schedule exactly, so any near-infrared return correlating with the code is self-illumination and is subtracted rather than reported. Point it above head height, never at a road or a flight path, and read /safety before fitting it.

Near infraredgpio+pwm$34.00source
1500 case with breather vent and feedthroughs
Pelican

Sealed enclosures trap moisture rather than excluding it: the air inside is humid when you close the lid, and the first cold night condenses it onto the coldest surface, which is always the optics. A Gore breather vent plus reusable desiccant solves this. Every optical port needs its own gasketed window rather than a hole, and germanium for the LWIR port because glass is opaque at 10 micrometres. Carries tier 2 and tier 3 alike: packed, tier 3's contents take about a third of the interior floor and the tallest part is half the interior height.

no bandnone$179.00source
220 W array + 40 A MPPT + 300 Ah LiFePO4
generic

Tier 3 draws 24.6 W continuous, 591 Wh per day, which is 92 percent more than tier 2. The short-wave infrared imager and the wideband receiver account for most of the difference. Same assumptions as the tier 2 kit: four peak-sun-hours, 35 percent margin, LiFePO4 at 50 percent usable depth of discharge, three days of autonomy.

no bandnone$1140.00source
4-port USB 3.0 hub with 5 V 4 A external supply
generic

Not optional on tier 3. That tier lists five bus-powered peripherals drawing 12.3 W between them, 2.46 A at 5 V, against a Raspberry Pi 5 that budgets 1.6 A across all USB ports even with a 5 A supply, and has four ports for five devices. Plugged in directly, the short-wave infrared imager and the millimetre-wave radar alone exceed the budget, and the failure mode is not a clean refusal: the Pi brown-outs peripherals under load, so channels drop out intermittently under exactly the conditions that matter. Put the two highest-draw devices on the hub at minimum.

no bandusb$38.00source
High Endurance microSDXC 64 GB
SanDisk

Endurance rated rather than speed rated, which is the opposite of the usual advice and is deliberate. A node writes its spool continuously for years and never launches an application, so the A2 random-IOPS class that sells consumer cards buys nothing here while the write endurance that wears them out buys everything. A card that fails takes the local spool with it, which is the only copy of anything the grid has not yet acknowledged. 64 GB is far more than the spool needs; the smaller cards in this range are not cheaper by enough to matter.

no bandnone$34.95source
ADS1256 24-bit delta-sigma ADC board
generic

Not optional: the geophone is an analogue element and cannot reach the node without it. Twenty-four bits and a programmable gain up to 64 are what make a 28.8 V/(m/s) coil readable at the amplitudes that matter, which are microvolts. The differential input pair also rejects the common-mode noise picked up over a multi-metre cable run to a ground-coupled element, which a single-ended input would not.

Seismicspi$28.00source
INA226 bidirectional current and power monitor
Texas Instruments / generic breakout

Node power draw is telemetry rather than an accessory, and this is the part that produces it. A node that cannot see its own consumption cannot distinguish a flat battery from a failed sensor, and on an off-grid mast that is the difference between a diagnosable outage and a site visit. Mounts where the supply enters the enclosure, with its shunt in series with the feed it measures.

Environmentali2c$12.00source
Total, excluding tools, shipping, and tax$5340.74

Spend the marginal dollar on a second node, not a better camera

One node measures direction. It cannot measure distance, and without distance it cannot measure size or speed either. Two nodes with disciplined clocks measure position, and position is what turns a bright dot into a trajectory with an altitude and a velocity attached. Doubling the optical resolution of a single node does not get you any of that. This is the single most common way builders spend money badly.

Buy the timing hardware before the second sensor

A fifty dollar GNSS receiver with a pulse-per-second output wired to a GPIO pin is the difference between a node that can join an array and a node that can only ever file solo reports. Without it, timestamps are good to milliseconds, which is three to four orders of magnitude too coarse for time-of-arrival work. It is the least exciting part in the build and the one that determines whether the rest of it means anything.