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
| Part | Band | Bus | Price |
|---|---|---|---|
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 band | host | $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 pose | uart+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 band | none | in 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. | Visible | csi | $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 infrared | csi | $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 frequency | usb | $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. | Environmental | i2c | $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 pose | i2c | $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 infrared | i2c | $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 band | none | $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 band | none | $34.95source |
| Total, excluding tools, shipping, and tax | $504.24 | ||
17 parts · 10 bands · 12.8 W
Tier 2 - Core, $1662
| Part | Band | Bus | Price |
|---|---|---|---|
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 band | host | $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 pose | uart+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 band | none | in 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. | Visible | csi | $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 infrared | csi | $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 frequency | usb | $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. | Environmental | i2c | $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 pose | i2c | $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 infrared | usb | $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. | Ultraviolet | i2c | $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 wave | uart | $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/VLF | spi | $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 infrasound | i2s | $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 band | none | $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 band | none | $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 band | none | $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. | Environmental | i2c | $12.00source |
| Total, excluding tools, shipping, and tax | $1662.24 | ||
23 parts · 13 bands · 24.6 W
Tier 3 - Extended, $5341
| Part | Band | Bus | Price |
|---|---|---|---|
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 band | host | $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 pose | uart+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 band | none | in 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. | Visible | csi | $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 infrared | csi | $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 frequency | usb | $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. | Environmental | i2c | $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 pose | i2c | $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 infrared | usb | $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. | Ultraviolet | i2c | $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 wave | usb | $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/VLF | spi | $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 infrasound | i2s | $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. | Gamma | usb | $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 infrared | usb3 | $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. | Seismic | analog | $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 infrared | gpio+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 band | none | $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 band | none | $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 band | usb | $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 band | none | $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. | Seismic | spi | $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. | Environmental | i2c | $12.00source |
| Total, excluding tools, shipping, and tax | $5340.74 | ||
100%
The buses, at a glance
bounded ring buffers
coincidence trigger
The sheet above and the summary here answer different questions. The summary groups the tier 2 sensors by the bus each one speaks, which is what you want when deciding whether a substitute part will fit. The sheet is the whole node: the power chain with the node’s measured load at the end of it, the parts that reach the host through a converter or a hub rather than directly, and what happens to a reading after it leaves the board.
Two details on the sheet are easy to read past and are the whole reason it exists. The geophone is drawn under the converter that reads it rather than in a lane of its own, because the Raspberry Pi has no analogue input and a diagram that runs a coil straight into the header describes a node nobody can build. The infrared beacon’s arrow points away from the host: it is the one part the node drives rather than reads, and an emission the node forgot it commanded is an emission it cannot subtract from its own record.
Physical pin numbers, because that is what you count on the board. Every 3V3 and GND pin is shared by several sensors, which is normal and expected. Pin 7 carrying the pulse-per-second signal is the one that must be exactly right; everything else is recoverable, and that one silently downgrades the node to millisecond timing. It sits on GPIO4 rather than GPIO18 because GPIO18 is the I2S bit clock and the microphone claims it on any node carrying both.
Per sensor
| Sensor | Rail | Connections (physical pins) | Draw |
|---|---|---|---|
LC29H(DA) RTK HAT with PPS Navigation and pose | 3V3 | 3V3 → 1GND → 6TXD->RXD → 10RXD<-TXD → 8PPS → 7 | 0.17 W |
HQ Camera (IMX477) + 6mm CS lens Visible | CSI | CSI-0 → CAM0 | 1.10 W |
HQ Camera NoIR + 850nm bandpass Near infrared | CSI | CSI-1 → CAM1 | 1.10 W |
RTL-SDR Blog V3 Radio frequency | USB | USB 2.0 → USB-A | 1.90 W |
BME688 Environmental | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.04 W |
BNO085 9-DoF IMU Navigation and pose | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.04 W |
MLX90640 32x24 thermal array Long-wave infrared | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.09 W |
Physical pin numbers, because that is what you count on the board. Every 3V3 and GND pin is shared by several sensors, which is normal and expected. Pin 7 carrying the pulse-per-second signal is the one that must be exactly right; everything else is recoverable, and that one silently downgrades the node to millisecond timing. It sits on GPIO4 rather than GPIO18 because GPIO18 is the I2S bit clock and the microphone claims it on any node carrying both.
Per sensor
| Sensor | Rail | Connections (physical pins) | Draw |
|---|---|---|---|
LC29H(DA) RTK HAT with PPS Navigation and pose | 3V3 | 3V3 → 1GND → 6TXD->RXD → 10RXD<-TXD → 8PPS → 7 | 0.17 W |
HQ Camera (IMX477) + 6mm CS lens Visible | CSI | CSI-0 → CAM0 | 1.10 W |
HQ Camera NoIR + 850nm bandpass Near infrared | CSI | CSI-1 → CAM1 | 1.10 W |
RTL-SDR Blog V3 Radio frequency | USB | USB 2.0 → USB-A | 1.90 W |
BME688 Environmental | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.04 W |
BNO085 9-DoF IMU Navigation and pose | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.04 W |
Lepton 3.5 + PureThermal 3 Long-wave infrared | USB | USB 2.0 → USB-A | 0.95 W |
AS7331 UVA/UVB/UVC sensor Ultraviolet | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.01 W |
LD2450 24 GHz tracking radar Millimetre wave | 5V | 5V → 4GND → 14TX → 33RX → 32 | 0.44 W |
RM3100 3-axis geomagnetic sensor Magnetic and ELF/VLF | 3V3 | 3V3 → 17GND → 25MOSI → 19MISO → 21SCLK → 23CS → 24 | 0.03 W |
ICS-43434 I2S MEMS microphone Acoustic and infrasound | 3V3 | 3V3 → 17GND → 20BCLK → 12LRCL → 35DOUT → 38 | 0.01 W |
INA226 bidirectional current and power monitor Environmental | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.02 W |
Physical pin numbers, because that is what you count on the board. Every 3V3 and GND pin is shared by several sensors, which is normal and expected. Pin 7 carrying the pulse-per-second signal is the one that must be exactly right; everything else is recoverable, and that one silently downgrades the node to millisecond timing. It sits on GPIO4 rather than GPIO18 because GPIO18 is the I2S bit clock and the microphone claims it on any node carrying both.
Per sensor
| Sensor | Rail | Connections (physical pins) | Draw |
|---|---|---|---|
LC29H(DA) RTK HAT with PPS Navigation and pose | 3V3 | 3V3 → 1GND → 6TXD->RXD → 10RXD<-TXD → 8PPS → 7 | 0.17 W |
HQ Camera (IMX477) + 6mm CS lens Visible | CSI | CSI-0 → CAM0 | 1.10 W |
HQ Camera NoIR + 850nm bandpass Near infrared | CSI | CSI-1 → CAM1 | 1.10 W |
RTL-SDR Blog V3 Radio frequency | USB | USB 2.0 → USB-A | 1.90 W |
BME688 Environmental | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.04 W |
BNO085 9-DoF IMU Navigation and pose | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.04 W |
Lepton 3.5 + PureThermal 3 Long-wave infrared | USB | USB 2.0 → USB-A | 0.95 W |
AS7331 UVA/UVB/UVC sensor Ultraviolet | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.01 W |
IWR6843ISK 60 GHz mmWave Millimetre wave | USB | USB → USB-A | 3.60 W |
RM3100 3-axis geomagnetic sensor Magnetic and ELF/VLF | 3V3 | 3V3 → 17GND → 25MOSI → 19MISO → 21SCLK → 23CS → 24 | 0.03 W |
ICS-43434 I2S MEMS microphone Acoustic and infrasound | 3V3 | 3V3 → 17GND → 20BCLK → 12LRCL → 35DOUT → 38 | 0.01 W |
CsI(Tl) + SiPM open gamma spectrometer Gamma | USB | USB → USB-A | 0.35 W |
InGaAs 640x512 SWIR module Short-wave infrared | USB3 | USB 3.0 → USB-A | 5.50 W |
SM-24 geophone element Seismic | 3V3 | SIG+ → ADC-AIN0SIG- → ADC-AIN1 | 0.08 W |
850 nm pulsed IR beacon, 5 W peak Near infrared | 5V | 5V → 2GND → 30GATE → 16 | 1.60 W |
4-port USB 3.0 hub with 5 V 4 A external supply | 12V | USB → USB-A | 0.50 W |
ADS1256 24-bit delta-sigma ADC board Seismic | 3V3 | 3V3 → 17GND → 39MOSI → 19MISO → 21SCLK → 23CS → 26 | 0.05 W |
INA226 bidirectional current and power monitor Environmental | 3V3 | 3V3 → 17GND → 9SDA → 3SCL → 5 | 0.02 W |
The tiers do not share a pinout, so wiring a tier 3 node from the tier 2 diagram lands two signals on pins that node has nothing connected to and leaves out the beacon’s gate line entirely. Pick the tier you are building.
None of this has been built, fabricated or measured
100%
Schematic. Derived from the netlist alone, so it is exactly as correct as the hardware registry. It shows the connections as a circuit; the Pinout and wiring panel shows the same connections as physical pin numbers, which is what you count while soldering.
Beyond the module connectors, each board carries a 100 nF decoupling capacitor per module, a bulk reservoir per supply rail, a ground plane poured on an inner layer, a series resistor and pull-down on any gate driven from a GPIO, a TVS clamp on every line that leaves the enclosure, a resettable fuse and reverse-polarity diode on each rail, an identification EEPROM on the ID_SD and ID_SC pins the HAT specification reserves for it, and the four mounting holes. That is more copper than a fan-out needs, and the boards overhang the 65 mm HAT footprint because of it; the mounting holes stay on the standard pattern.
Two of those are worth understanding rather than accepting. The gate pull-down holds the infrared emitter off between power-on and the agent claiming the pin; a floating MOSFET gate is not an off gate, and an uncommanded emission is one the node cannot subtract from its own record. The clamps exist because two signals leave the box on multi-metre cables, the magnetometer two metres out on a mast and the geophone further and in the ground, and a cable that long is an antenna.
There are no I²C pull-ups on the carrier. The Raspberry Pi fits 1.8 kΩ to 3V3 on GPIO2 and GPIO3, on the board and not removable, and that value is correct on its own. Adding more takes a tier 3 bus with four breakouts from 1,047 Ω to 856 Ω, below the 967 Ω I²C needs to pull a valid low. Disable the pull-ups on your breakouts instead.
Fewer parts are board-mounted than a bill of materials suggests. A BME688 above the Raspberry Pi measures the Pi’s temperature rather than the site’s; the UV and thermal sensors need sky through their own gasketed windows; the magnetometer asks for two metres of separation from the node’s electronics. Those sit at the enclosure wall or on the mast and reach the carrier by cable, which is what the whole-node view shows. USB peripherals and the CSI cameras never touch the header at all.
The whole-node view is laid out against the case interior rather than around the origin, so what it answers is how the parts pack rather than only which parts there are. Tier 3 uses about a third of the floor and stands 75 mm into a 155 mm case, which is the margin that decides whether a substitute part fits. Nothing drawn inside the case may reach outside it and the build fails if it does, because the tier 3 carrier overhangs the HAT footprint far enough that it used to pass 20 mm through the wall, and a board crossing a wireframe outline looks exactly like a board.
Header pins are labelled by Raspberry Pi physical number. The connector’s own numbering runs counter-clockwise and agrees with the Pi on two of its forty pins, so anything that reads “P7” means physical 7 and the pulse-per-second line.
This is the least obvious part of building one of these, and the failures it causes are quiet rather than loud. A thermal camera behind acrylic returns a plausible, steady, meaningless field, because it is imaging the inside of the lid. An ultraviolet sensor behind ordinary glass still reports a number: the UVA that got through, labelled as the band. An environmental sensor in a sealed box reports the box, whose temperature lags the air by tens of minutes and whose humidity is whatever was shut in at assembly. None of those look like a broken channel, which is what makes them worth a table.
Cut into the case
Pelican 1500 case with breather vent and feedthroughs
ships with t2, t3 · 425 × 284 × 155 mm inside| Bands | Where | What it is made of |
|---|---|---|
| Navigation and poseRadio frequencyMillimetre wave | no hole | the case wall itself, copolymer polypropylene No hole. A Pelican Protector shell is copolymer polypropylene, which is not conductive, so GNSS, the software radio and 60 GHz radar all read through the closed case. This is recorded as an aperture because the fact that no hole is needed is the useful part: drilling one, or swapping to a metal case, is how these three bands get lost. The radar wants the wall in front of it to be flat and free of ribs; a moulded corner is a lens. |
| VisibleNear infrared | lid34 mm | acrylic or tempered glass, two windows of 34 mm One window per camera, not one shared between them. Two HQ camera bodies are 38 mm wide each, so side by side they span more than 76 mm and a single 60 mm hole cannot serve both; 34 mm clears the 30 mm lens barrel with a margin to seal against. Tempered glass over acrylic if the node lives outdoors for years, because acrylic yellows and that is a slow calibration drift rather than an obvious failure. |
| Ultraviolet | lid25 mm | fused silica, 25 mm Fused silica because glass and standard acrylic cut off between 350 and 400 nm. Behind either of those the AS7331 still returns numbers: it measures the UVA that gets through and reports it as the band, which is worse than reading nothing. |
| Long-wave infrared | lid25 mm | germanium, 25 mm, anti-reflection coated The expensive one, and the reason a thermal channel is not just another hole. Nothing cheap passes 8 to 14 um: glass, acrylic and every printable filament are opaque, so a Lepton behind any of them images the inside of the lid at a steady indoor temperature and produces a plausible, constant, meaningless field. An uncoated germanium window reflects a third of what reaches it, so pay for the coating or accept the loss knowingly. Thin polyethylene film transmits and costs almost nothing, and is a film rather than a window; it is a bench answer, not a winter one. |
| Short-wave infrared | lid25 mm | fused silica, 25 mm Glass works between 1000 and 1700 nm and acrylic does not, which is the trap: the cheap window that serves the visible cameras is opaque to the most expensive sensor in the tier. Fused silica rather than soda-lime because the OH absorption in ordinary glass sits inside this band. |
| Acoustic and infrasound | side, facing down6 mm | ePTFE acoustic membrane over a 6 mm port Sound needs a path to the diaphragm and water does not need one in. A membrane passes the first and stops the second. Facing down, or into the lee, because a port facing the sky is a drain and a port facing the wind is a microphone recording the wind. |
| Environmental | side, facing down12 mm | ePTFE vent membrane, M12 threaded Two jobs in one part. The environmental sensor has to exchange air with outside or it measures the box: sealed, its temperature lags the air by tens of minutes, its humidity is whatever was shut in at assembly and its pressure never changes. And the enclosure needs the vent regardless, because a sealed box breathes as it warms and cools and will pull water in through whatever imperfection it can find. A vent is not a hole in the waterproofing, it is what makes the waterproofing work. |
nband Printed ASA enclosure, filament for the body and lid
registered alternative, unbuilt · 190 × 145 × 110 mm inside| Bands | Where | What it is made of |
|---|---|---|
| Navigation and poseRadio frequencyMillimetre wave | no hole | the printed wall itself, unfilled ASA No hole, provided the filament is not carbon filled. This is the reason the material matters more than the geometry: carbon-filled ASA prints beautifully and costs this node three bands. |
| VisibleNear infrared | lid34 mm | acrylic or tempered glass, two windows of 34 mm One per camera, each clearing the 30 mm lens barrel with a margin to seal against. Print a 1.5 mm rebate around each so the disc sits flush and the gasket has a face. |
| Long-wave infrared | lid25 mm | germanium, 25 mm, anti-reflection coated The one aperture a printed enclosure cannot make cheaper. Nothing printable passes 8 to 14 um, so this window is bought or the thermal channel is not real. Mount the sensor against the window rather than behind a standoff: a 110 degree field of view vignettes fast on a 25 mm aperture held away from it. |
| Environmental | side, facing down12 mm | ePTFE vent membrane, M12 threaded Print the boss for it. A sealed box breathes as it warms and cools, and one that cannot equalise pulls water through whatever imperfection it has, which on a printed part is the layer lines. The vent is what makes the seal work rather than a hole in it. |
What each band needs from a wall
Stated per band rather than per hole, because anyone designing their own housing is working from the sensor they have rather than from a case somebody else picked. A build fails here if a sensor has no aperture at all, or has one made of something its band cannot cross.
| Band | Needs | Passes | Looks clear and is not |
|---|---|---|---|
| Ultraviolet | uv-window | fused silica, quartz, UV-transmitting acrylic (UVA only) | soda-lime glass, standard acrylic, polycarbonate Ordinary glass and standard acrylic cut off between roughly 350 and 400 nm, which removes UVB and all of UVC. A node reading through either measures UVA and reports it as the band. Fused silica passes to about 200 nm and is the only cheap material that does. |
| Visible | optical-window | glass, acrylic, polycarbonate | nothing in particular Any clear window works. Choose for scratch and weathering rather than transmission: acrylic yellows under years of sunlight, tempered glass does not. |
| Near infrared | optical-window | glass, acrylic | nothing in particular The same window as visible. Acrylic transmits usefully to about 1100 nm, which covers the 850 nm the beacon and the NoIR camera work at. |
| Short-wave infrared | swir-window | fused silica, soda-lime glass, sapphire | acrylic, polycarbonate Between 1000 and 1700 nm, glass still transmits and acrylic does not: acrylic absorbs hard past about 1100 nm, so the cheap window that works for the visible cameras is opaque to the most expensive sensor in the tier. |
| Long-wave infrared | lwir-window | germanium, zinc selenide, chalcogenide glass, thin polyethylene film | glass, acrylic, polycarbonate, ABS, PETG The hard one, and the reason a thermal channel is not simply another hole in the lid. Glass and every common plastic are opaque beyond roughly 2.7 um, so at 8 to 14 um an ordinary window is a wall. Germanium works and costs more than some of the sensors. Thin polyethylene film transmits usefully and is what an infrared-transparent bag is, but it is a film rather than a structural window and it will not survive a winter outdoors unsupported. |
| Millimetre wave | rf-transparent | HDPE, PTFE, polypropylene, unfilled PETG or ASA | any metal, carbon-filled filament, metallised paint A radome rather than a window. Low-loss plastic passes 60 GHz; metal and carbon-filled filament do not. Wall thickness wants to be a multiple of half the wavelength inside the material, which for polyethylene at 60 GHz is about 1.65 mm, or the wall reflects part of what it is meant to pass. A printed wall with infill has air voids and therefore an uncertain permittivity, so the section in front of the antenna should be solid. |
| Radio frequency | rf-transparent | any non-conductive material | any metal, carbon-filled filament The antenna goes outside the enclosure or the enclosure is not metal. A metal box is a Faraday cage and this is the band that notices first. |
| Magnetic and ELF/VLF | external | any non-ferrous material | steel, nickel, any ferrous fastener Not an aperture problem. The magnetometer has to be metres from the node because the node is the loudest magnetic source nearby, so it sits in its own small housing on a mast. Use non-ferrous fasteners: a steel screw beside a fluxgate is a permanent offset. |
| Acoustic and infrasound | vented-acoustic | ePTFE acoustic membrane over a port | sealed wall Sound needs a path to the diaphragm. A sealed box is a low-pass filter with a resonance of its own, and what comes out is the box rather than the site. An acoustic port covered by a waterproof breathable membrane passes sound and stops water. |
| Seismic | external | nothing to pass | nothing in particular The geophone is in the ground, coupled to it by a spike, on a cable. Nothing about the enclosure applies except that the cable has to leave it through a gland. |
| Environmental | vented | ePTFE vent membrane | sealed wall The most commonly botched one. A sealed enclosure measures the enclosure: its temperature lags the air by tens of minutes, its humidity is whatever was sealed in, and its pressure is whatever it was at assembly. The sensor needs air exchange with outside through a membrane vent, which the enclosure needs anyway for pressure equalisation. |
| Navigation and pose | rf-transparent | any non-conductive material | any metal, carbon-filled filament The GNSS antenna needs sky. Plastic overhead is fine and metal is not, and the 170 mm lead on the antenna that ships with the receiver is what decides how far it can get from the board. |
If you print your own
Nothing above depends on the case being bought rather than printed, and a printed housing solves a problem the Pelican does not: it can put each window where its sensor actually looks instead of where a rectangular lid allows. Three things decide whether it survives outdoors. Print in ASA or PETG rather than PLA, which creeps in summer heat and goes brittle under a year of sunlight. Do not rely on layer adhesion for the seal, because a printed wall leaks along its layer lines under pressure; cut a groove and fit a rubber cord instead, so the seal is a bought part and the print is only the shape holding it. And fit the vent. A sealed box breathes as it warms and cools, and a box that cannot equalise pulls water in through whatever imperfection it can find, so the vent is not a hole in the waterproofing but the thing that makes it work.
The radar section is the one place where wall thickness is a specification rather than a preference. A 60 GHz wave in polyethylene has a wavelength near 3.3 mm, so a radome wants to be a multiple of half of that or it reflects part of what it is meant to pass. A printed wall with infill is part air and its permittivity is therefore neither known nor repeatable, so print that section solid and measure a coupon before trusting the number.
Print one
Generated from the same aperture list above rather than drawn beside it, so the windows in the file are in the places the drawing puts them. Making it a solid rather than a plan found two things a plan cannot hold an opinion about: a 3.4 mm seal groove does not fit in a 3 mm wall, and a body and lid come to 564 g rather than the 250 g the registry had estimated, which is one enclosure per spool instead of four.
Printed ASA enclosure, filament for the body and lid
drawn for t1 · about 564 g of ASA · fits a 220 x 220 mm bed| Part | Size | On the bed | File |
|---|---|---|---|
| body | 196 x 151 x 113 mm | print floor-down | case-printed-asa-body.stl |
| lid | 202 x 157 x 5 mm | print groove-face-down | case-printed-asa-lid.stl |
The seal is a 3 mm cord in a 3.4 mm groove 2.4 mm deep, cut into the lid rather than the rim. A groove has to be wider than the wall it seals against, and this wall is 3 mm, so on the body it would have removed the wall it was meant to seal. That is also why the lid overhangs, and the overhang doubles as a drip edge.
What is not in these files
- Board mounting bosses. No part in the registry records a mounting hole pattern, and inventing one puts confident holes in a file people print.
- Cable entries. The registry names no gland, and a hole sized for the wrong one is worse than no hole.
- The windows themselves, the seal cord and the vent, none of which are printed.
Never printed
A tier 3 node draws roughly twice a tier 2 node, which is why the bill of materials sells two different solar kits rather than one. Sizing a tier 3 build against the tier 2 figure buys about half the panel it needs, and the failure arrives during the first overcast week, a long way from the bench.
| Part | Band | Bus | Price |
|---|---|---|---|
Printed ASA enclosure, filament for the body and lidsubmitted nband A design, not a product, and nobody has printed one. The price is one 1 kg spool of ASA, which is the only part of this you can put in a basket. A body and lid come to 564 g once the geometry exists to measure rather than to estimate, so a spool is one enclosure and most of a second, not the four an earlier guess claimed. That moves the filament cost of one enclosure from about 8 dollars to about 18. It does not include the seal cord, the vent, the cable glands or any of the windows, and those are not free: the germanium window for the thermal channel costs more than several of the sensors. What it does buy is the difference between a 179 dollar case and a spool of filament, and the freedom to put each window where its sensor actually looks rather than where a moulded lid allows. ASA rather than PLA because PLA creeps at the temperature the inside of a dark box reaches in summer and goes brittle within a year of ultraviolet. Do not print in anything carbon filled: it is conductive enough to matter and this enclosure is the antenna window for GNSS, the software radio and the radar. | no band | none | $31.99source |
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.