The parts we cannot buy
We are not a hardware company. Here is what hardware has cost us anyway: a board its maker will no longer ship to this country, a sensor whose retail channel closed the day after we replaced it, and three alarms we raised about parts we could buy the whole time.
Croplock is software that happens to need a box to run on and a few sensors to read. We buy the box and the sensors off the shelf, one order at a time, and we keep the receipts in the repository next to the code. That record is what this post is written from, and it answers a question anyone about to put a small device in their tent is entitled to ask: can this thing still be built in a year?
The board
The hub is an Orange Pi 5B: a Rockchip RK3588 single-board computer with a three-core NPU that runs the vision models and the language model. In early August the manufacturer’s own site posted a notice that, owing to new customs regulations, it could no longer ship boards to the United States and would refund any order with a US address. For a device whose entire compute platform is that board, that is the notice you do not want to read.
What actually happened next is the useful part. The manufacturer’s own storefront on a large US marketplace was still selling the board, shipped domestically, at exactly the price in our bill of materials — unchanged in four months. We bought the last two it had. That is now the entire buffer of that specific board, and there is no third to buy.
So the honest state is: the reference board is closed to us at the manufacturer, two units deep in stock, and the next hub is a different vendor’s board on the same chip. That last clause is the one that matters, and it is a design decision rather than luck.
Why the chip matters and the board does not
Everything on the hub that is hard to move is tied to the system-on-chip, not the board around it: the vision models are compiled for the RK3588’s NPU with Rockchip’s own toolkit, and the language model runs through Rockchip’s LLM runtime. Change the chip and every model is re-converted and re-benchmarked. Change the board and, in principle, nothing is.
Several vendors sell RK3588 boards. When we measured what the full stack actually needs resident at once — the vision model, the language model, the application, the classifier — it peaked at about 6.3 GB, which means an 8 GB board carries it with room to spare. The candidate is a Radxa ROCK 5B+ at 8 GB, in stock, domestically shipped, and cheaper than the board it replaces.
We should be precise about what has and has not been done: the port has not been validated on that hardware yet. Same chip, same runtime, and a reasonable expectation of zero porting work — but an expectation is not a measurement, and this log does not report measurements it has not taken. That validation is the live item, not procurement.
The sensor whose channel closed the day after we left it
The leaf-temperature sensor is the part the whole product is built around, and for the first months it was a Melexis MLX90614 on a breakout board. In late July the retail channel for that breakout quietly closed: the main hobbyist supplier marked both variants no longer stocked, and a second listed its version as discontinued.
Our daily supply-chain scan raised the alarm at its highest priority on 31 July. It was right about the market and wrong about us: we had bought the replacement the day before. The MLX90632 — a newer part from the same maker, on a current breakout — was already in the firmware, already preferred by the backend, and already on a purchase order. The alarm fired because three documents still named the old part, and the scan read the documents.
Two lessons, one about supply and one about records. On supply: the part that closed had been superseded by its own manufacturer, and moving to the successor before the old one vanished is the whole game — you do not get a warning. On records: a part swap has to sweep every document that names the part in the same change, or your own monitoring will page you about a problem you already solved.
Three alarms about parts we could buy
The hub board notice was the third time this year the record said “cannot buy” about something that was purchasable at list price the whole time. The pattern is worth naming because it is cheap to fix and expensive to leave.
- A distributor showed zero stock and an 18-week manufacturer lead time on a small board we needed in May. The same part was in stock at the bill-of-materials price on a marketplace the same day. We pivoted the order and it arrived in five days.
- The manufacturer’s site said it could not ship to us. True. Its own storefront on another channel could, at list, and had two left.
- The bug tracking the hub board was corrected three times — for treating a quiet state as a requirement, for treating a manufactured load as a requirement, and finally for treating one closed channel as a closed market — and each correction came from the same act: going and looking, which took minutes.
“Out of stock” is a claim about one shelf. Before it becomes a decision, check the second shelf. The same rule that keeps our plant diagnosis honest — verify the claim that would change the plan before it changes the plan — turns out to apply to purchasing.
The other side: swaps we chose
Not every part change is forced. This week the air pods moved from one humidity sensor to another because we put two of the old ones side by side for 45 minutes: temperature agreed to 0.1 °C and humidity sat a fixed 2.8 points apart — inside the part’s published per-unit tolerance, and a quarter to half the width of the tightest humidity band the device is asked to hold. A sensor that is in spec and still not good enough for the job is a specification problem, not a supply one, and the fix is a better part, ordered on a Tuesday. It also went wrong once in the ordinary way: a supplier shipped the wrong item, and it went back.
What the box costs to build, roughly
For anyone curious what “off the shelf” means in numbers: an air pod is a microcontroller, a sensor and a printed enclosure at roughly $8–15 in parts; the leaf-IR pod $25–33; the camera pod, a Raspberry Pi Zero 2 W with a camera module, $60–75. The hub board is the expensive line. None of it is custom silicon, and none of it is sole-sourced except, until the port is validated, the board.
What we would tell someone starting this
- Lock to a chip, not a board. Compile for the SoC, keep the board-specific layer thin, and know which other vendors sell the same chip before you need one.
- Measure what the stack actually needs resident. A peak-memory number is what lets you say yes to a cheaper board with confidence instead of hope.
- Move to a part’s successor before the part disappears. Manufacturers supersede; retailers stop stocking; you find out from a listing.
- Sweep every document that names a part when you swap it. Or your own monitoring will alarm about the old one.
- “Out of stock” is one shelf. Check the second channel before it becomes a decision. Every one of our false alarms was resolved by looking.
- Keep the purchase orders in the repo. This post exists because they were there to read.
Sources
All of this is from our own purchasing records and bug register, re-read on 2026-09-10: the hub-board supply row and its three corrections (August 2026), the leaf-IR sensor channel finding of 2026-07-31 and the purchase order that preceded it, the May distributor pivot, the June RK3588 memory measurement (6.3 GB peak resident), and this week’s humidity-sensor comparison. The manufacturer’s shipping notice is quoted from its site as of August 2026. The alternate board’s port is unvalidated and is said to be. Part costs are spot ranges at the time of each order, not quotes.
Also read: Does VPD need leaf temperature? · Where should the probe go?