
Computer Vision Parking Occupancy Detection
Computer vision reads an entire deck in real time, replacing gate estimates with live occupancy by level and row for operators and drivers.
Temperature, salinity, and dissolved oxygen at fifteen-minute intervals, from a mooring with no power and no coverage.
Zero
Cellular Contracts Required
Backhaul is LoRa to a gateway mounted on a building the client already owns. No SIM cards, no per-node data plan, and no carrier decision about when a band is refarmed.
One season
Service Interval in the Power Budget
Deployed in spring, with the next scheduled intervention in autumn. Battery chemistry was selected for sustained heat rather than for datasheet energy density.
Before crews depart
When Readings Are Reviewed
The dashboard is intended to be the first item checked at the start of a shift, which became a design constraint on the whole system rather than a presentation preference.
Sampling was performed by hand, from a boat. That method yields one measurement, from one location, at whatever hour a crew was available, and no record at all across the periods in which conditions actually moved.
Water sampling was performed by hand, from a boat, into a bottle, at whatever hour a vessel and a person were available. That method produces reliable data about one location at one moment and no information about the twelve hours either side of it, which is the interval in which the events that matter to a marine operator occur.
Written down properly, the requirement was narrower than the first conversation suggested. Laboratory accuracy was not needed. What was needed was knowledge of when conditions were moving and in which direction, early enough to change what a crew did that morning: dissolved oxygen falling overnight, salinity shifting after rain, temperature climbing across a week in summer.
That distinction determines the entire error budget. Specifying a research-grade instrument would have doubled the cost of every node and delivered precision that no operational decision was going to use. Specifying for trend fidelity makes drift and reliability the governing questions rather than absolute accuracy, and both are answerable with hardware that can affordably be left in salt water.
Four constraints dominated the design, none of them electrical.
Biofouling. A clean sensor in the Gulf remains clean for approximately three weeks. Growth on an optical window does not fail conspicuously. It moves the reading gradually away from the true value, which is the most damaging failure mode available to a monitoring system, because it presents as a trend.
Power. A sealed enclosure in Florida sun operates as an oven, and heat degrades batteries faster than cycling does. An energy budget written at 25°C does not describe this deployment.
Coverage. The moorings were not reliably within cellular coverage, and even where signal was present, a per-node data plan across a fleet of buoys converts a capital purchase into a recurring subscription the client did not want.
Salt. Salt spray finds every dissimilar-metal joint, every gasket specified rather than tested, and every vent omitted on the assumption that the enclosure would remain sealed. Sealed enclosures breathe regardless of intent, and the daily thermal cycle draws humid air in at whatever point is weakest.
Each node is a small STM32L4 board running Zephyr and sleeping for almost all of its operating life. Every fifteen minutes it wakes, powers the sensor rail, takes a burst of readings, packs them, transmits, and returns to sleep. Everything else on the board exists to reduce the energy cost of that sequence.
The sensors are off-the-shelf SDI-12 instruments rather than raw elements behind a custom front end. That was a deliberate trade. Designing a conductivity and optical dissolved-oxygen chain would have been the more interesting exercise and would have transferred the entire calibration problem to the engineering team permanently. Instruments that arrive calibrated, with a documented drift specification and a replacement path the client can order independently, are the better answer for a system that has to outlive the engagement. SDI-12 is a slow three-wire serial protocol of long standing and it suits the application precisely: power the bus, request a reading, receive an answer, remove the power.
Backhaul is LoRaWAN on US915 to a gateway mounted on a building the client already owns. Over water, with clear line of sight and the antenna high enough to keep the Fresnel zone off the surface, LoRa covers the whole area of interest from a single gateway. The payload is eleven bytes, packed as scaled integers rather than transmitted as text, because at this air-time budget a human-readable format carries a measurable cost.
Power is a LiFePO₄ pack behind a solar MPPT controller. LiFePO₄ carries less energy per gram than the lithium-ion alternative and tolerates heat substantially better, which is the property that governs performance inside a dark enclosure on a Gulf mooring in summer.
Anti-fouling is a copper guard around the sensor heads and nothing more elaborate. A wiper mechanism introduces a moving part into salt water, and the service life of moving parts in salt water is well understood across the marine sector.
Store and forward. LoRa is unacknowledged and lossy by design, and a gateway will become unavailable at some point, so a node that only transmits is a node that loses data. Readings are written to flash first and cleared once they are confirmed in the cloud, with unacknowledged samples replayed opportunistically alongside new ones. The cost is a small amount of air time. The result is a continuous record rather than a gap in one.
Timestamping at the node. Because samples can arrive late and out of order, each reading carries its own time rather than adopting the ingest server’s. That requires a real-time clock and a drift-correction strategy, which is more work than it appears and considerably less work than reconstructing a dataset in which late samples were filed against the wrong hour.
Calibration as a scheduled event. Every instrument drifts. The system records when each sensor was last calibrated, flags readings from an instrument that is overdue, and retains the raw value alongside the corrected one so that a recalibration can be applied retrospectively across the record. A monitoring deployment that discards the raw reading cannot correct its own history.
Environmental protection. The board is conformally coated. The enclosure carries a Gore vent so that it can equalise pressure without admitting water, all external hardware is 316 stainless steel isolated from the housing, and a set of units completed a full summer of thermal cycling on a dock before volume was discussed.
Readings land in a time-series store, and a dashboard presents them to an operations manager as trends with thresholds, together with alerts when a value moves quickly enough to require attention. The value has been less in any single reading than in the shape of a night: dissolved oxygen falling through the early hours in a pattern that hand sampling during working hours had never revealed.
Early deployment of an incomplete node determined more of the final design than bench work did. The behavior of the vent, the location at which growth began, and the real harvest of the solar panel across a week of overcast conditions were each established by a unit placed in the water months before the design was finished. Marine hardware is a field discipline. The electronics can be simulated. The water cannot.
The same three commitments hold whether we're handing over a board, a platform, a model, or a campaign. They're terms of engagement rather than features, which is why they sit outside the write-up.

Computer vision reads an entire deck in real time, replacing gate estimates with live occupancy by level and row for operators and drivers.
Our Own ProductBillUp observes the applications and Microsoft 365 activity of a fee earner and drafts the day's time entries for review and approval.
Our Own ProductConductor selects components, reads the datasheets, validates the electrical contracts, and returns a bill of materials and a schematic that can be built.
Send a schematic, block diagram, current design files, or a short requirements summary. We will review the material and recommend an appropriate technical assessment or development scope.
hello@sunlabdigital.comSend Us the DetailsSt. Petersburg, Florida · we work with teams anywhere