Glee hardware research: what should the sensor be?
Live at research.gleepark.me. This folder is updated continuously by a research loop: hypotheses, experiments (code + data + results) and the current recommendation. Nothing here has been tested on a street yet unless it says so.
The question
What hardware tells a city, in near real time, whether each on-street parking space is free? It must be cheap enough to cover whole streets, easy enough that a city will let us install it, and right often enough that drivers trust the map. The form factor is open. It doesn't have to be "cheese" (the thin sheet stuck under the car).
Breaking it down
| Sub-problem | What decides it | Status |
|---|---|---|
| 1. Sensing: how do we know a car is there? | accuracy, cost of the sensor, power per reading | Experiment 1 done (simulation); method survey in progress |
| 2. Placement / form factor: in the road, on the curb, on a pole, overhead? | permits, install time, winter, theft, what the sensor can "see" from there | deployment survey in progress |
| 3. Power: battery, solar, mains? | where it's mounted (light), what it draws | model done for cheese (hardware/swiss/SCENARIOS.md) |
| 4. Radio / network: LoRaWAN under a car, gateway density | link budget, gateway cost per space | Exp 11 done (model); real under-car and on-post numbers come from American cheese |
| 5. Cost and scaling: $ per space per year, all-in | unit cost, install labour, maintenance, gateways, network | next experiment |
| 6. The city: what Cambridge will approve and maintain | permits, liability, snow operations, privacy | deployment survey in progress |
Hypotheses
| # | Hypothesis | How we test it | Verdict so far |
|---|---|---|---|
| H1 | Two magnetometers in the road (cheese) can tell a parked car from neighbours and traffic without a radar | Exp 1 (calibrated to measurements), then American cheese on real cars | Weakened: with the car model calibrated to published measurements, cheese scores ~94 % (single magnetometer ~91 %, matching field studies' 81-93 %). The cause is dead zones: between a car's axles the field barely changes (magnetics report). 4 magnetometers reach ~99 %; a radar ~99.5 % |
| H2 | A magnetometer on the curb (no road work) is good enough | Exp 1 | Rejected: ~72 % in the calibrated simulation |
| H3 | A small radar makes detection robust | survey + Exp 4 (XM125 radar on real cars) | Strongly supported by the industry: Bosch, Libelium, Option, Fleximodo and KKM all moved to magnetometer + radar. A 60 GHz A121 radar is ~$10, 5 × 5 mm, and adds < 1 µA if it only confirms magnetometer events |
| H4 | Mounting on existing meter poles beats anything in the road for permits, winter and maintenance | deployment report, Exp 3 | Supported for deployment (single-space meter poles at the curb; no digging, no lane closure, above plows). Accuracy depends on the aim (Exp 3): looking straight across, a pole radar can't tell its own car from the neighbour's (65 %); angled 50-65° into its own space with a 3-4 m range limit, ~100 % in the model. A plausible explanation for Boston's "many problems with the data's accuracy" |
| H5 | One sensor can cover several spaces and win on cost per space | Exp 2, Exp 8 | Cameras do, but Cambridge's Surveillance Ordinance makes them a poor fit. A pole unit with two radars (one per space) cuts cost per space ~35 % at 1,000 spaces ($2.17 vs $3.32/month, Exp 8) |
| H6 | The radio signal itself (RSSI) is a free second opinion | American cheese logs | Supported in literature: LoRa RSSI alone reached 96-97 % in one study. Free: log it from day one |
| H7 | Not every space needs a sensor | literature, Exp 9 | Depends on the product. For a block-level heat map (planning, demand pricing), 25-50 % coverage works (DDOT; Exp 9: estimate within ~1-2 spaces) at a quarter to half the cost. For telling a driver where a free space is, no: on a nearly full block the app knows the free space only about as often as the share of spaces with sensors (50 % coverage -> 66 %) |
| H9 | Weather won't blind a 60 GHz radar | weather report (layered-model calculation, sources) | Split. Rain, fog and falling snow in the air: negligible (< 0.2 dB). Anything on the window is not: a 0.1 mm water film costs ~10 dB two-way, 1 mm ~47 dB, 2 mm of slush ~44 dB; ice, dry snow and dust are minor. So the in-road radar is blind whenever water stands on the sheet (the magnetometer must decide then), and a pole radar needs a vertical window under a hood, mounted at ~1.2 m above plowed snowbanks, and a "blocked" state |
| H10 | The same radar works from private property (building facade or shop window) and so avoids city pole fees | Exp 13 (geometry), Exp 14 (Bow Street data), facade report | A fallback, not a replacement. Geometry works (Exp 13) and 22 of 38 Bow Street spaces have a usable building front (Exp 14). But low-E / solar-control glass blocks 60 GHz (22-45 dB each way) and most recent storefront glass is coated, so behind-the-window works only with clear (older) glass; outside on the facade, a box under 6 in needs no Council petition but does need the owner, and in the Harvard Square Conservation District a Historical Commission certificate. The Surveillance Ordinance doesn't apply to private hosts. Expect 10-20 % of hosts lost a year. Worth it only if the city fee is high or the answer is no |
| H8 | Cheese (stuck to the road) survives a Cambridge winter | winter report, Exp 10, winter field test | No as designed; only as road work. No snowy city uses glued-on street sensors (all in-ground); Exp 10: butyl-on sheets are torn off by any plow that reaches them. Only a strong bond plus a flush or very gently ramped sheet survives, which needs milling and a permit. Original reasoning: The case against: ~7 mm proud of a plowed, salted surface (snowbelt states recess raised pavement markers because plows tear them off); Bow Street's odd side is a snow-emergency route plowed curb to curb; adhesive weakens in freeze-thaw; and slush on top blinds the radar anyway (H9). The case for: on non-emergency streets the parking lane often isn't plowed to the pavement while cars are parked. Test this winter: 2-3 dummy sheets (no electronics) on Bow Street's even side, checked after each storm; ask Cambridge DPW how plows treat parking lanes on non-emergency streets |
Experiments
| # | Experiment | Result |
|---|---|---|
| 0 | Pilot data: what the two LAS7 pucks reported Nov 2-8 (data, refreshed from the live backend) | Bench testing, not street parking (median episode 2.4 min, signal up to -25 dBm). No street data exists yet. H6 check: signal strength while "occupied" vs "free" goes opposite ways on the two pucks (Puck-01 24 dB stronger, Puck-02 7.5 dB weaker): the pucks were being moved, so this data can't test H6; the street log will |
| 1 | Which architecture detects best?: Monte Carlo, 2,500 situations, car model calibrated to measurements | Radar (under the car or on a pole) ~99.5 %; 4-magnetometer array 98.6 %; cheese (2 magnetometers) 93.7 %; single magnetometer 90.6 % (matches field studies); curb magnetometer 71.5 % |
| 2 | Cost per space per year, all-in over 5 years | Meter-pole radar $13-21; in-road sheet or cored puck $41-46; commercial reference $105 |
| 3 | What a pole radar sees: ray-traced, 288 mountings searched | Aim decides it: straight across 65 %; angled 50-65° into its own space with a 3-4 m range gate ~100 % (idealised). Mount at ~1.2 m: a 0.9 m snowbank blinds a 0.9 m sensor, not a 1.2 m one; the sensor can recognise "blocked" and say so |
| 4 | Real radar on real cars: SparkFun XM125 (A121) on American cheese's mux, under a car and on a pole | needs a $50 part: SparkFun SEN-24540 |
| 5 | Can firmware beat the dead zones?: time-series of real parking manoeuvres | No. At 3 s sampling, today's thresholds catch 29 % of arrivals (cars parked over a dead zone are never seen); lower thresholds catch 91 % but never clear (6 % of departures); latching on transients misses most of them. Magnetometer wakes a radar: 97 % arrivals, 100 % departures, ~18 µA |
| 16 | How long does the pole sensor's battery really last?: power budget with Acconeer's published figures (XM125 idles at 6.9-17.7 µA; A121 per-reading overhead at low rates), sweeping the unmeasured energy per reading | 5 to 15+ years, depending on one number nobody publishes: the energy of one distance reading. ≤ 1 mJ: 15+ years reading every 5 s; 2 mJ: ~9-10; 5 mJ: ~5 (reading every 10 s instead: 8-15+). Exp 7's "> 15 years" holds only at the low end. The XM125's own idle current is ~1/5 of the budget (our own A121 board would cut it). Measure it in Exp 4; cut the SparkFun board's power LED |
| 14 | Bow Street from the city's open data: real data: the city's metered-space outlines, street trees and every parking ticket since 2014 (with meter IDs), plus OpenStreetMap buildings | 38 metered spaces, ~6.2 m each, 2-hour or 30-minute at $2/h, no smart meters. ~1,500 tickets a year (40 per space; the four 30-minute spaces by Mass Ave draw 60-160 each). A street tree sits in a pole radar's beam at only 1 of 38 spaces. A building front stands 1.3-6.4 m behind the curb at 25 spaces; 22 of 38 suit a facade unit (building within 6 m, no tree in view); 13 face no building. The site survey shrinks to the meter posts themselves |
| 13 | Does the radar work from a building facade? (H10): Exp 3's ray-traced street with the radar on the building across a 2-4 m sidewalk, 2.5-3.5 m up, plus pedestrians under the beam and imperfect placement | Geometrically, yes: looking down across the sidewalk at its space's centre, ~99.4-100 % in the idealised model at every sidewalk width, with or without busy pedestrians and even when the unit can't sit exactly opposite its space. The range gate starting at the curb keeps sidewalk walkers out (a person inside the gate on ≤ 1.4 % of empty readings, for Exp 12's filter). Not modelled: street trees, signs and meter heads in the beam; whether there's a usable facade, glass, owner consent and permits (facade report in progress) |
| 12 | Can the pole radar tell a person from a parked car?: Monte Carlo of reflection size and stillness, people standing anywhere in the beam vs cars anywhere in the space, radar cross-sections swept over the published ranges | Yes, with two rules and a slightly slower arrival. Raw strength fails (a near person returns as much as a far car). Strength corrected for distance (an estimate of reflector size) plus "the reflection holds still over 4 readings (15 s)" passes 0.07 % of standing people in the middle case, ≤ 1.6 % in the worst, while keeping 99.5 % of cars: Exp 7's ~4 false episodes a day drop to ~0-0.06. Cost: arrivals confirmed in 15-20 s instead of ~10 s; many scooters/motorbikes dropped by the size rule (a setting). Thresholds come from Exp 4 data. Built into pole mode (tick 18): stillness on (4 readings, < 20 mm), size rule off until Exp 4 sets it; sim_pole passes (a fidgeting person ignored, cars in 20 s, departures in 10 s) |
| 11 | How many spaces can one gateway serve?: LoRaWAN link budget, 3GPP urban street-canyon model at 915 MHz, shadowing Monte Carlo; post vs in-road vs under a car; SF7-SF10 | Range isn't the limit. From a meter post, 90 % of uplinks reach a rooftop gateway ~1.4 km away at SF7 (~15,000 spaces in reach); under a parked car the range shrinks ~4x (~600 m, and only at SF10). Gateway count is set by sites and redundancy, so Exp 8's gateway share was pessimistic ($0.05-0.14 -> ~$0.01-0.03/space/month). The radio's real cost is battery: SF10 averages ~43 µA at our message rate vs ~7 µA at SF7, which a pole sensor near a gateway can avoid and an under-car sensor can't |
| 10 | Does a stuck-on sheet survive a winter of snowplows?: physics of a blade meeting the sheet + a Monte Carlo over a winter of plow passes; 5 shapes x 3 glues x 2 streets; checked against real road-marker losses | Today's design doesn't: butyl, 8.5 mm, 1:4 ramps survives 0 % of winters on the snow-emergency side, ~38 % on the regular side. A plow at speed can't lift its blade over the step in time, so the sheet gets whatever force makes the plow's spring-loaded edge give (1.5-50 kN); a butyl pad holds ~2 kN at one edge. With butyl nothing helps; with epoxy, gentle 1:20 ramps (93 %) or flush in a milled pocket (98 %) survive, matching recessed road reflectors (< 1 % lost a winter), but that's road work and a permit, i.e. the cored puck |
| 9 | Does every space need a sensor?: a 12-space block, 60 simulated days, quiet / busy / packed demand, 25-100 % of spaces sensored | Only if we guide drivers to a space. When a block is ≥ 80 % full and a space is free, the app can point to it 37 % of the time at 25 % coverage, 66 % at 50 %, 87 % at 75 %. Block-level estimates stay within ~1-2 spaces at 25-50 % coverage. Product choice sets hardware count: per-space guidance on busy blocks = every space; heat map / pricing = sample |
| 8 | What happens as we scale?: Exp 2 plus volume pricing and fixed costs (FCC test, insurance, hosting, network, gateways, a possible city fee), 100 / 1,000 / 10,000 spaces | Pole sensor: ~$8.82 per space per month at 100 spaces, $3.32 at 1,000, $2.18 at 10,000 (2 spaces per unit: $2.17 at 1,000), re-run with the priced bill of materials ($78/unit at 1,000, not the $50 first assumed) and Exp 11's gateway numbers. In-road options ~$5.20-5.30 at 1,000 and barely improve with scale (their cost is recurring labour). Commercial reference ~$8.42. At pilot scale fixed costs dominate whatever the hardware. The input that moves the pole sensor's cost most is a city fee for using meter posts ($0-20/space/yr swings it $2.43-4.09), more than the hardware price |
| 7 | How should a pole radar poll?: 30 simulated days of cars and pedestrians per setting | Every 5 s, 2 agreeing readings: cars reported in ~8 s (95 %: 10 s), ~4 false "occupied" a day from people standing in the beam, >15 years on one D-size lithium cell. A single reading is unusable (~98 false changes a day, mostly the radar's own per-reading errors). So a pole sensor needs no magnetometer at all. Built into the firmware's pole mode; firmware/test/sim_pole.cpp passes |
| 6 | Exp 5's winner, built: radar fusion in the real firmware, run on simulated hardware (firmware/test/sim_radar.cpp) | Works in simulation. The kit firmware now drives an XM125 on mux port 2 (Acconeer's register protocol, every wait with a timeout). Dead-zone car (only ~1 µT left after parking): magnetometers alone say free, radar says occupied on the first reading. Silent departure: caught by the 45 s re-check (30 s in the run). Car next door: wakes the radar, which sees nothing in its 6-80 cm gate, so nothing is sent. Empty hour: 6 radar checks. Radar unplugged: falls back to the magnetometers after 5 misses, picks the radar up again within 10 min. Messages carry a "radar decided" flag end to end (firmware, backend, TTN formatter). Not yet run on the real XM125 |
Provolone v0 (designed, not yet built)
A printed box strapped to a meter post with two hose clamps: American cheese's boards, the XM125 behind a 1.5 mm window (about half a wavelength at 60 GHz in PETG), a power bank. The whole box is aimed: turn it on the post until the line on the lid runs parallel to the curb, and it faces 55° into its space. Build, aim and test steps: hardware/provolone/README.md.


Reports
- Every way to detect a parked car: methods, accuracy, power, prices, what vendors use
- Deploying on Bow Street: permits, winter, poles, pilots elsewhere, questions for the city
- What a magnetometer really sees under a car: measured fields, dead zones, drift, datasets
- Parts for a meter-pole radar: XM125 beam/power/I2C, FCC, Cambridge poles, D-cell battery, clamps
- Mounting on private buildings instead: glass loss at 60 GHz (clear 2.5-10 dB, low-E 22-45 dB one-way), Cambridge rules for boxes on facades and in windows, historic district, owner deals, mains power, a glass test protocol
- Who decides, and what it costs, to put a sensor on a Cambridge meter post: owner (Department of Transportation), Pole & Conduit Commission, no federal fee cap, Surveillance Ordinance, precedents (Burlington VT, Milwaukee, Bend, Boston), insurance, 9 questions to send
- Provolone v1 bill of materials: every part priced at 100 / 1,000 / 10,000 units, XM125 vs bare A121, cells and pulse capacitors, FCC path (A121 carries a limited modular grant), cheapest credible build
- Can a stuck-on sheet stay in over winter?: surface sensors in snowy cities, what survives plows (markers, tape, speed cushions), Cambridge plowing, glues in the cold, field-test protocol
- Rain, snow, slush and a 60 GHz radar: losses through each layer on the window, window thickness, coatings, how vendors handle it, firmware rules
Current direction
Updated after Experiments 1-10 and four research reports. Nothing below has been tested on a street yet.
The recommended system: a radar on the meter post ("Provolone"), LoRaWAN to our backend, sold as occupancy data.
| Question | Answer so far | Evidence |
|---|---|---|
| What senses the car? | A 60 GHz radar (Acconeer A121). Magnetometers alone top out ~91-94 % (dead zones under cars); radar ~99.5 % | Exp 1, Exp 5, magnetics |
| Where does it go? | On the meter post, ~1.2 m up, aimed 55° into its own space. No digging, no lane closure, above the plows and most snowbanks | Exp 3, deployment, weather |
| Why not in the road? | A stuck-on sheet doesn't survive plowing (0 % of winters on a snow-emergency street, Exp 10); surviving needs epoxy or a milled pocket = road work. Slush on top also blinds an in-road radar (H9) | Exp 10, winter |
| Does it need a magnetometer? | No. On a pole the radar reads every 5 s on its own; arrivals confirmed in ~20 s (people filtered, Exp 12), departures ~10 s. Battery: 5-15+ years on one D-cell, set by the radar's energy per reading (to measure) | Exp 7, Exp 12, Exp 16 |
| What does it cost? | ~$3.32 per space per month at 1,000 spaces ($2.17 with two radars per unit) vs ~$8.42 for the commercial reference; ~$9 at 100 spaces (fixed costs dominate a pilot). Unit: ~$78 at 1,000 (XM125 module), ~$44 at 10,000 (bare A121 chip, moulded box) | Exp 8, BOM |
| Biggest unknowns | The city: permission and a fee. No federal cap protects a parking sensor (the FCC's $270/yr limit covers only phone-carrier small cells), and Cambridge charges its own small cells $270/yr per installation. The pole sensor beats a commercial system only while the fee stays under ~$67/unit/yr (~$156 with two radars per unit); at $270 it costs ~$25/space/month. Then: the radar's real accuracy next to neighbours and people | Exp 8 fee sweep, city report, Exp 4 (pending) |
| Every space? | Only if we guide drivers to a specific space. A block-level map for the city works at 25-50 % coverage | Exp 9 |
| Firmware | Built and simulated: radar fusion (in-road), pole mode, blocked/unknown handling, data logging, repeat of every state change | firmware/test/sim_* |
Cheese's role: the learning device. American cheese (arriving now) gives the first real under-car and on-pole data: magnetometers + radar + radio signal, logged at 1 Hz. Swiss cheese is on hold until that data says the in-road option is worth building; if it is, it's a seasonal device on non-emergency streets, or a flush-mounted puck.
The two things that decide the most: (1) The city's answer on permission and fees, now first: the questions are ready in the city report (who approves; any fee, and could a pilot be waived or charged per block; does the Surveillance Ordinance apply; is Bow Street allowed). Never install anything without written permission: Cambridge ended its Flock contract after cameras went up "without the City's awareness". (2) Experiment 4: the XM125 on a real post next to real cars (Provolone v0, printable now; the radar is in stock at SparkFun).
If the fee comes back high: the radar and firmware carry over to placements that don't use city poles: a box on a private building facade or in a ground-floor window looking at the parking lane (owner's permission, no city fee; H10, untested), or selling to private lots and garages first.
Next
- Weather → firmware and box (done this tick): pole mode treats a strong return closer than 45 cm (snowbank, slush, someone leaning on the post) as "blocked": it holds the last state, reports unknown after 10 min, never "free" (
sim_polepasses). Box: rain hood over the window, 1.2 m mounting height, vent/desiccant for v1. Still to do: the "canary" check (learned empty-street returns all dropping >10 dB at once = window blind), and for in-road, flag "radar blind" so the magnetometer decides. - Provolone v0: designed (above). Printable now; needs the XM125. Range gate raised to 4 m (Exp 3 re-run at 55°: 100 % vs 99.5 % at 3 m). Still open: "blocked" detection for snowbanks, and a radar strength threshold to separate people from cars (Exp 7). v1: D-cell (LS33600 + pulse capacitor, 10+ years), IP67 box on a stainless band, tamper alarm, FCC label + Part 15B.
- Bow Street site survey, now shorter (Exp 14 covered spaces, trees, buildings and demand from open data): only what the data can't show: meter post positions and diameter, single or twin heads, height under the head, and photos of the facades at the 22 facade-ready spaces. Start pilots at the busiest spaces (the 30-minute spaces BOW-0001..0007 and BOW-0047..0055).
- Data-logging mode: built.
scripts/cheese_log.sh flashthenrecord <note>: both magnetometers' 3 axes + radar peaks/distance/strength + states at 1 Hz intoresearch/data/*.csv(runbook:hardware/CHEESE_BRINGUP.md). Still to add: RSSI per uplink from the backend side (H6). - Firmware v2 for any magnetometer design: event-based detection (latch on the arrival transient, low hold threshold, release on a departure transient), gradient as a veto rather than a requirement, baseline frozen while occupied (magnetics report).
- Swiss cheese v2: add an A121 radar footprint to the board (~$10), so the in-road learning device also tests radar.
- XM125 supply: DigiKey shows 0 in stock with a 16-week lead time, but SparkFun lists SEN-24540 in stock at $49.95 (checked Nov 8). Order from SparkFun. Board is 50.8 × 25.4 mm per SparkFun; the Provolone box is updated for it.
- Order one XM125 radar ($50) and plan Exp 4 with American cheese: radar under the car and on a pole, alongside the magnetometers, with RSSI logged.
- Hardware critique (docs/HARDWARE_CRITIQUE.md, merged Nov 7). Fixed: the P0 detector bug (an occupied space declared free after ~6 min whenever both magnetometers agreed; big uniform changes learned into the baseline); magnetometer B read fresh with A (every sample on the kit); sensor retries no longer stop after 255 failures; every state change is re-sent once 60 s later (TTN's ~10 downlinks/day rule out confirmed uplinks for ~30 changes/day). All as host tests. Still open: a measured time base across sleep, and an explicit "uncertain" state for the magnetometer-only build.
- Glass test (if the city fee comes back high; facade report): with the XM125, measure a metal plate's echo at 3 m through picture-frame glass, a 6 mm offcut, clear double glazing and low-E, at 0/30/50°; lighter-test Bow Street's windows for coatings. Two-way loss ≤ 10 dB: windows work; > 25 dB: facade or nothing.
- Winter field test for in-road sheets (H8, protocol in the winter report): 3 dummy sheets on Bow Street's even side with different edges (square, 1:10, dome), paint marks beside each; after every plowable storm and monthly, log present/moved, edge lift (feeler gauge), scrapes, ice under edges. Install on a dry afternoon in November (glues need ≥ 4-10 °C). Three sheets can't measure a loss rate (0 of 3 lost only bounds it below ~63 %); they show whether the blade reaches the lane at all. Any loss keeps winter removal as policy.
- Butyl peel test on cold asphalt (Exp 10's deciding unknown): a pad on an asphalt offcut in the freezer at -5 °C, pull sideways at one edge with a luggage scale. If it holds well over 2 kN (200 kg), the in-road picture changes.
- Decide the first product (Exp 9): per-space guidance on the busiest blocks (every space sensored) or a block-level heat map for the city (sample 25-50 %). It sets how many units we build.
- Send the city questions, now the top priority: 9 questions, most plan-changing first, at the end of the city report. They go to the Department of Transportation (Street Management runs the meters). A fee over ~$67/unit/yr breaks the pole sensor's economics (Exp 8 fee sweep).
Experiment 10: does a stuck-on sheet survive a winter of snowplows?
A physics model of a plow blade meeting the sheet, run over a simulated winter of plow passes (4,000 winters per case, research/sim/snowplow.py). The sheet is Swiss cheese's A4 footprint (297 × 210 mm), 8.5 mm tall on its glue with 1:4 beveled edges today.
One pass: why the bevel doesn't save it
At road speed a plow can't lift its blade over a 9 mm bump in the few milliseconds a 1:4 ramp gives it, so the push on the sheet is whatever makes something give first: the plow's spring-loaded edge folds back, a rubber edge bends, or the glue lets go. Typical values for today's design:
| Plow | Speed | Push needed to get over (8.5 mm, 1:4) | Plow edge gives way at | Push the sheet actually gets |
|---|---|---|---|---|
| pickup / one-ton with trip edge | 20 km/h | 32 kN | 5 kN | 5.0 kN |
| city dump truck, trip moldboard | 25 km/h | 34 kN | 15 kN | 15.0 kN |
| loader / backhoe bucket (no give) | 8 km/h | 38 kN | 50 kN | 37.9 kN |
| rubber or urethane edge | 20 km/h | 32 kN | 1.5 kN | 1.5 kN |
What the glue can hold against a push at one edge (likely values): butyl pad 1.9 kN, hot-melt bitumen 18.7 kN, epoxy 28.1 kN. Butyl is weaker than the push from every kind of plow; bitumen and epoxy beat pickup and truck plows but not a loader bucket.
A whole winter
Share of sheets still attached in spring ("survives") and with an undamaged bond ("unharmed").
snow-emergency route (Bow St odd side)
| Shape | butyl pad | hot-melt bitumen | epoxy |
|---|---|---|---|
| today: 8.5 mm tall, 1:4 ramps | 0 % (0 % unharmed) | 9 % (2 % unharmed) | 31 % (9 % unharmed) |
| 8.5 mm, 1:8 ramps | 0 % (0 % unharmed) | 14 % (3 % unharmed) | 54 % (18 % unharmed) |
| 8.5 mm, 1:20 ramps (17 cm wide border) | 1 % (0 % unharmed) | 63 % (26 % unharmed) | 93 % (68 % unharmed) |
| 6 mm tall, 1:10 ramps (winter report's limit) | 0 % (0 % unharmed) | 20 % (4 % unharmed) | 66 % (25 % unharmed) |
| flush: set in a milled pocket, <= 0.5 mm proud | 0 % (0 % unharmed) | 78 % (41 % unharmed) | 98 % (82 % unharmed) |
regular street (Bow St even side)
| Shape | butyl pad | hot-melt bitumen | epoxy |
|---|---|---|---|
| today: 8.5 mm tall, 1:4 ramps | 38 % (36 % unharmed) | 72 % (56 % unharmed) | 87 % (68 % unharmed) |
| 8.5 mm, 1:8 ramps | 38 % (35 % unharmed) | 77 % (58 % unharmed) | 94 % (73 % unharmed) |
| 8.5 mm, 1:20 ramps (17 cm wide border) | 45 % (37 % unharmed) | 95 % (75 % unharmed) | 99 % (93 % unharmed) |
| 6 mm tall, 1:10 ramps (winter report's limit) | 45 % (42 % unharmed) | 83 % (64 % unharmed) | 96 % (79 % unharmed) |
| flush: set in a milled pocket, <= 0.5 mm proud | 53 % (47 % unharmed) | 98 % (87 % unharmed) | 100 % (97 % unharmed) |
Sheets lost, by the plow that took them: city dump truck, trip moldboard 54 %, loader / backhoe bucket (no give) 23 %, pickup / one-ton with trip edge 20 %, rubber or urethane edge 2 %.
Reading
- Today's design (butyl, 8.5 mm, 1:4) does not survive a plowed winter. On the snow-emergency side it's torn off almost every time; on the regular side ~38 % make it to spring, and only because the blade never reached them or rode over hardpack.
- With butyl, nothing helps: every plow pushes harder (1.5-50 kN) than a butyl pad holds at one edge (~2 kN), so shape, height and ramps change little. Butyl's cold strength is the one number that could overturn this, and nobody publishes it: the peel test on cold asphalt (CHEESE_DESIGN.md) is now the most valuable bench test for the in-road option.
- With a strong glue, shape decides: epoxy with 1:20 ramps survives ~93 % of emergency-route winters, flush in a milled pocket ~98 %. A plow at speed can't lift its blade over a step in time, so the lower and gentler the step, the smaller the push; a flush sheet is squashed past without lifting the blade.
- Check against the real world: recessed road reflectors lose < 1 % a winter and surface markers ~10 %/yr (winter report); the model's flush/epoxy and ramped/epoxy cases land in the same range.
- But a strong glue or a pocket gives up the sheet's selling point. Epoxy and milling mean road work, a permit and no easy removal: that's the cored puck again (Exp 8: ~1.6x the pole sensor's cost). Installation is also limited to dry days above ~4-10 C, so not December-March.
- Loaders are the worst case (no give, 50 kN pushes): they work where snow is piled, which is the parking lane after big storms.
- So: stuck-on sheets come out for winter (or skip the snow-emergency side entirely); the pole sensor covers winter. The dummy-sheet field test on Bow Street's even side tells us how often the blade really reaches the parking lane there.
Assumptions that decide the answer (all estimated; replace with measurements): cold bond strength of butyl pads (0.03-0.3 MPa assumed; nobody publishes it, CHEESE_DESIGN.md calls for a peel test), the force at which plow edges trip (2-30 kN assumed; manufacturers give no numbers), the plow mix on Cambridge streets, and how often the blade reaches bare pavement in the parking lane. Not modelled: the sheet cracking before the glue lets go, ice bonding the sheet in place, abrasion (small: steel sliding over the top wears microns per pass).
Sources for the numbers used: snowplowable markers sit in epoxy-set castings in milled grooves; Vermont found 93 % of an earlier snowplowable marker type damaged (VTrans); hot-melt bitumen marker adhesive bond >= 1.4 MPa (Wyndham spec 853); epoxy marker bond >= 500 psi at 77 F (TxDOT/CTR); butyl pads need primer below 50 F (Pexco); trip edges are spring-loaded to fold back on manhole covers (Loegering, US 6073371).
Experiment 11: how many spaces can one gateway serve?
LoRaWAN US915 link budget with the 3GPP TR 38.901 urban street-canyon path-loss model (valid at 915 MHz), log-normal shadowing, 4,000 draws per distance (research/sim/link_budget.py). Device transmits at 20 dBm; gateway on a rooftop with a 3 dBi antenna. "Range" = the distance at which 90 % of uplinks reach a single gateway (each state change is also sent twice, tick 12). Spaces per gateway use 1,500-4,000 on-street spaces per km² (estimate for dense Cambridge blocks).
Radio cost per spreading factor
| Spreading factor | Time on air (11-byte payload) | Radio's average current at 84 messages/day | Gateway capacity (devices, 8 channels) |
|---|---|---|---|
| SF7 | 62 ms | 7.2 µA | ~24,007 |
| SF8 | 113 ms | 13.2 µA | ~13,090 |
| SF9 | 206 ms | 24.0 µA | ~7,196 |
| SF10 | 371 ms | 43.2 µA | ~3,996 |
Range and spaces per gateway
| Sensor | Gateway | SF7 | SF8 | SF9 | SF10 |
|---|---|---|---|---|---|
| meter post, 1.2 m (Provolone) | rooftop 10 m | 1,404 m (~15,478) | 1,730 m (~23,504) | 2,102 m (~34,706) | 2,527 m (~50,166) |
| in-road, space empty | rooftop 10 m | 699 m (~3,842) | 850 m (~5,673) | 1,010 m (~8,009) | 1,243 m (~12,132) |
| in-road, car parked on top | rooftop 10 m | 344 m (~928) | 415 m (~1,355) | 495 m (~1,926) | 609 m (~2,911) |
Cells: 90 % range, then spaces within it at 2,500 spaces/km² (in brackets).
Reading
- On a post the radio is easy. From 1.2 m a pole sensor reaches a 10 m rooftop gateway ~2,102 m away at SF9; that circle holds ~20,823-55,529 spaces. Range stops being the limit; gateway placement (a rooftop with power and a view) and redundancy (each sensor should hear two gateways) set the count.
- Under a parked car it's ~4x shorter. The car and the ground cost ~20 dB: at SF10 the range is ~609 m (~2,911 spaces), and the sensor needs SF10 to get there. Still far more than Exp 8's 100-300 spaces per gateway.
- Range costs battery. At SF10 the radio alone averages ~43 µA, as much as a third of the pole sensor's radar budget; at SF7 ~7 µA. A pole sensor near a gateway can use fast data rates (ADR) and save most of that. Under a car, SF10 is the norm.
- Capacity isn't the limit at our traffic: even at SF10 one gateway carries ~3,996 sensors.
- For the cost model (Exp 8): range isn't what sets the gateway count for either design; sites (a rooftop with power and a view), redundancy (every sensor in reach of 2 gateways) and street geography are. Exp 8's 100-300 spaces per gateway was pessimistic: with ~1 gateway per 500-1,000 spaces its gateway share drops from ~$0.05-0.14 to ~$0.01-0.03 per space per month. Small next to the city-fee question, but the radio's battery cost (SF) is not small.
- Where our pilot gateway sits matters more than any of this: indoors, walls cost another 10-20 dB, which these numbers don't include. For the street pilot, put the ThinkNode on a rooftop or in a top-floor window facing Bow Street.
Assumptions to replace with measurements: the under-car and on-asphalt losses (American cheese's link test: RSSI/SNR under real cars vs on a post, logged by our backend), the street-canyon model on Cambridge's mix of 2-4 storey buildings (it ignores gateway height, which matters in practice), the spaces-per-km² density, and the gateway site. Our pilot data can't calibrate this (the pucks moved; no locations).
Experiment 12: can the pole radar tell a person from a parked car?
Exp 7's remaining error on a pole: people standing in the beam (~4 false "occupied" episodes a day). The radar gives each reflection's distance and strength. Monte Carlo (research/sim/people_vs_cars.py, 200,000 cases per setting): cars parked anywhere in the space (nearest reflection 0.7-2.5 m), people anywhere in the beam (0.4-4 m), two readings 5 s apart. Every rule is tuned to keep 99.5 % of cars; the table shows how many standing people still pass as a car.
Radar cross-sections at mm-wave are published as ranges, not one number (people are small dielectric reflectors, much weaker than vehicles: IET RSN 2019, JRC 24/77 GHz library, arXiv 1910.13706), so they're swept: car side at a slant 5 / 10 / 15 dBsm, person -12 / -8 / -4 dBsm.
Middle case (car 10 dBsm, person -8 dBsm)
| Rule | Standing people passed as a car | Exp 7's false episodes/day become | Motorbikes/scooters still detected |
|---|---|---|---|
| raw strength | 24.44 % | ~0.95 | 77 % |
| distance-corrected strength | 1.26 % | ~0.05 | 55 % |
| stillness (peak moves < 12 mm) | 29.83 % | ~1.16 | 100 % |
| corrected strength + stillness | 0.73 % | ~0.03 | 64 % |
| corrected strength + stillness over 4 readings (15 s) | 0.07 % | ~0.00 | 64 % |
All cases: standing people passed as a car
| Car RCS | Person RCS | Raw strength | Distance-corrected | Stillness (2 readings) | Corrected + stillness (2) | Corrected + stillness (4 readings) |
|---|---|---|---|---|---|---|
| +5 dBsm | -12 dBsm | 26.5 % | 2.4 % | 29.7 % | 1.4 % | 0.1 % |
| +5 dBsm | -8 dBsm | 36.5 % | 17.7 % | 29.8 % | 7.9 % | 0.6 % |
| +5 dBsm | -4 dBsm | 48.7 % | 54.2 % | 30.2 % | 20.7 % | 1.6 % |
| +10 dBsm | -12 dBsm | 17.2 % | 0.1 % | 29.7 % | 0.0 % | 0.0 % |
| +10 dBsm | -8 dBsm | 24.4 % | 1.3 % | 29.8 % | 0.7 % | 0.1 % |
| +10 dBsm | -4 dBsm | 33.5 % | 11.8 % | 29.9 % | 5.6 % | 0.4 % |
| +15 dBsm | -12 dBsm | 10.1 % | 0.0 % | 29.7 % | 0.0 % | 0.0 % |
| +15 dBsm | -8 dBsm | 15.6 % | 0.0 % | 30.0 % | 0.0 % | 0.0 % |
| +15 dBsm | -4 dBsm | 22.3 % | 0.6 % | 29.8 % | 0.4 % | 0.0 % |
Reading
- Raw strength is the wrong number. A person at 0.5 m returns as much as a car at 2 m (1/d⁴): a plain strength threshold that keeps 99.5 % of cars passes ~10-50 % of standing people.
- Correcting for distance helps a lot when the gap is wide: strength + 40·log10(distance) estimates the reflector's size; with cars ~18 dB above people only ~1 % pass. When the gap is narrow (5 vs -4 dBsm) it fails (~54 %).
- Stillness over one pair of readings is weak: ~30 % of standing people move less than ~12 mm in 5 s.
- Stillness over 4 readings (15 s) is what closes it: combined with the distance-corrected strength, 0.07 % of standing people pass in the middle case and 1.6 % in the worst case swept (vs 21 % with 2 readings). Exp 7's ~4 false episodes a day become ~0.00-0.1. The price: an arrival is confirmed after 15-20 s instead of ~10 s. Departures can stay fast (a car leaving needs no stillness check).
- The cost: small vehicles. A size rule tuned on cars drops many motorbikes and scooters; stillness alone keeps them. For metered car spaces that's acceptable; it should be a setting.
- Firmware needs no new hardware: the data log already records peak distance and strength at every reading (
scripts/cheese_log.sh). Exp 4 sets the two thresholds from real cars and real people, then they go into pole mode.
Assumptions to check in Exp 4: the RCS ranges (literature is at 77 GHz, the A121 is 60 GHz; near-range returns from a car side at a slant aren't far-field RCS), sway of a standing person (~3 cm in 5 s assumed), the A121's distance noise (~1-2 mm assumed), and that the strongest peak is the one we read (the firmware reads peak 0; the detector can sort by strength).
Test to add to the pole test plan: stand in the beam at 0.5, 1, 2 and 3 m for 60 s each (still, then fidgeting), and walk through it; log alongside a parked car at the same distances.
Experiment 13: does the radar work from a building facade? (H10)
Exp 3's ray-traced street (research/sim/pole_radar.py) with the radar moved onto the building across the sidewalk (research/sim/facade.py). Searched: sidewalk width 2 / 3 / 4 m, mounting height 2.5 / 3.5 m, down-tilt 15-45°, range gate from the curb to 0-1 m past a parked car. Then the best mounting per width with people walking under the beam (someone in the path on 0 / 15 / 40 % of readings) and with the unit aligned with its space or wherever the frontage allows (always aimed at the space's centre). A reading counts as "hidden" when people block most of the beam.
Best mounting per sidewalk width (no pedestrians)
| Sidewalk | Height | Down-tilt | Gate past the car | Accuracy | Missed | False alarms |
|---|---|---|---|---|---|---|
| 2.0 m | 2.5 m | 15° | +0.0 m | 100.0 % | 0.0 % | 0.0 % |
| 3.0 m | 2.5 m | 15° | +0.0 m | 100.0 % | 0.0 % | 0.0 % |
| 4.0 m | 2.5 m | 15° | +0.0 m | 100.0 % | 0.0 % | 0.0 % |
With people on the sidewalk, and with imperfect placement
| Sidewalk | People in the beam's path | Unit placement | Accuracy (vehicles only) | Missed | False alarms (vehicles) | Readings hidden by people | Empty-space readings with a person inside the gate |
|---|---|---|---|---|---|---|---|
| 2.0 m | 0 % | opposite its space | 99.9 % | 0.0 % | 0.2 % | 0.0 % | 0.0 % |
| 2.0 m | 0 % | anywhere along it | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 2.0 m | 15 % | opposite its space | 99.8 % | 0.0 % | 0.4 % | 0.0 % | 0.0 % |
| 2.0 m | 15 % | anywhere along it | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 2.0 m | 40 % | opposite its space | 99.9 % | 0.0 % | 0.2 % | 0.0 % | 0.0 % |
| 2.0 m | 40 % | anywhere along it | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 1.4 % |
| 3.0 m | 0 % | opposite its space | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 3.0 m | 0 % | anywhere along it | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 3.0 m | 15 % | opposite its space | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 3.0 m | 15 % | anywhere along it | 99.8 % | 0.4 % | 0.0 % | 0.0 % | 0.0 % |
| 3.0 m | 40 % | opposite its space | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 3.0 m | 40 % | anywhere along it | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.4 % |
| 4.0 m | 0 % | opposite its space | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 4.0 m | 0 % | anywhere along it | 99.5 % | 1.0 % | 0.0 % | 0.0 % | 0.0 % |
| 4.0 m | 15 % | opposite its space | 100.0 % | 0.0 % | 0.0 % | 0.0 % | 0.0 % |
| 4.0 m | 15 % | anywhere along it | 99.8 % | 0.4 % | 0.0 % | 0.0 % | 0.0 % |
| 4.0 m | 40 % | opposite its space | 99.9 % | 0.2 % | 0.0 % | 0.0 % | 0.0 % |
| 4.0 m | 40 % | anywhere along it | 99.4 % | 1.2 % | 0.0 % | 0.0 % | 0.0 % |
Reading
- Geometrically, a facade works as well as the meter post: looking down across the sidewalk at the middle of its space, the beam covers mostly its own space, and a range gate that starts at the curb ignores the sidewalk.
- People rarely hide the car (the beam comes down over most of the sidewalk), but they do walk into the range gate near the curb (last column): those echoes look like a car to the radar and must be rejected by Exp 12's size + stillness filter. Walking people move, so the stillness rule is at its strongest here; people waiting at the curb are the hard case, as on the pole.
- Placement along the frontage matters less than aim: a unit that can't sit exactly opposite its space still works when it's aimed at the space's centre, until the angle gets steep enough that the neighbour's car enters the beam.
- What the geometry can't answer is whether there's a facade at all (setbacks, driveways, blank walls, trees in the beam), whether the owner agrees, whether glass is in the way, and whether projecting over the sidewalk needs a city permit anyway: see the facade report.
Assumptions: flat sidewalk and street; no trees, signs or meter heads in the beam (Bow Street has street trees: a tree trunk in the path would look like a parked car and must be learned as background); people as 0.5 m boxes; the same idealised beam and box cars as Exp 3, so absolute accuracies are optimistic in the same way.
Experiment 14: Bow Street from the city's open data
A desk survey instead of a model: every metered space on Bow Street from the city's Metered Parking Spaces layer, Street Trees, building outlines and the street centreline from OpenStreetMap, and every parking ticket written on Bow Street since 2014 (tickets carry the meter ID). Raw downloads in research/data/cambridge/, analysis in research/sim/bow_street.py.

What's there
- 38 metered spaces (27 odd-numbered, 11 even-numbered IDs), 6.2 m long on average (5.5-7.0 m). Rules: 2 hour at $2.00/h (34), 30 minute at $2.00/h (4). None are smart meters.
- Tickets: 1,510 a year on Bow Street meters in 2023-25 (40 per space per year, busiest space 164); before 2020 it was ~3,292. Almost all are expired meters. Tickets mark where demand and enforcement meet, a rough map of which spaces matter most.
- Street trees in a pole radar's beam: for 1 of 38 spaces a street tree stands within 4 m inside the 55° beam from a post at one end of the space. Those units must learn the trunk as background (empty-space calibration) or be aimed from the other end.
- Building fronts: for 25 spaces a building stands straight behind the curb, 2.7 m away on median (1.3-6.4 m); 13 face no building within 25 m (open space, Harvard property set back, a corner). 22 of 38 have a building front within 6 m of the curb with no tree in the line of sight, the facade option's best case (Exp 13).
Per space
| Space | Length | Limit / rate | Tickets/yr (2023-25) | Tree in pole beam | Building behind curb | Tree in facade view |
|---|---|---|---|---|---|---|
| BOW-0001 | 5.7 m | 30 minute $2.00 | 62 | no | 5.8 m | no |
| BOW-0002 | 6.0 m | 2 hour $2.00 | 15 | no | 2.7 m | no |
| BOW-0003 | 5.7 m | 30 minute $2.00 | 125 | no | 2.7 m | no |
| BOW-0004 | 6.7 m | 2 hour $2.00 | 22 | no | 5.0 m | no |
| BOW-0005 | 6.5 m | 30 minute $2.00 | 153 | no | 2.3 m | no |
| BOW-0006 | 6.4 m | 2 hour $2.00 | 19 | no | 1.7 m | no |
| BOW-0007 | 6.2 m | 30 minute $2.00 | 164 | no | 2.3 m | no |
| BOW-0008 | 6.2 m | 2 hour $2.00 | 17 | no | 6.4 m | no |
| BOW-0009 | 6.3 m | 2 hour $2.00 | 1 | no | 3.9 m | no |
| BOW-0011 | 5.9 m | 2 hour $2.00 | 1 | no | none within 25 m | - |
| BOW-0013 | 6.1 m | 2 hour $2.00 | 11 | no | none within 25 m | - |
| BOW-0014 | 6.4 m | 2 hour $2.00 | 17 | no | 2.0 m | no |
| BOW-0015 | 7.0 m | 2 hour $2.00 | 18 | no | none within 25 m | - |
| BOW-0016 | 6.2 m | 2 hour $2.00 | 22 | no | 1.8 m | no |
| BOW-0017 | 6.2 m | 2 hour $2.00 | 21 | no | none within 25 m | - |
| BOW-0018 | 6.7 m | 2 hour $2.00 | 16 | no | 1.4 m | no |
| BOW-0019 | 5.8 m | 2 hour $2.00 | 12 | no | none within 25 m | - |
| BOW-0020 | 6.5 m | 2 hour $2.00 | 63 | no | 1.3 m | no |
| BOW-0021 | 5.9 m | 2 hour $2.00 | 11 | no | none within 25 m | - |
| BOW-0022 | 6.1 m | 2 hour $2.00 | 59 | no | 1.3 m | no |
| BOW-0023 | 6.4 m | 2 hour $2.00 | 26 | no | none within 25 m | - |
| BOW-0024 | 6.2 m | 2 hour $2.00 | 55 | no | 1.3 m | no |
| BOW-0025 | 5.9 m | 2 hour $2.00 | 11 | no | none within 25 m | - |
| BOW-0026 | 6.3 m | 2 hour $2.00 | 52 | no | none within 25 m | - |
| BOW-0027 | 6.5 m | 2 hour $2.00 | 7 | no | none within 25 m | - |
| BOW-0029 | 6.5 m | 2 hour $2.00 | 18 | no | none within 25 m | - |
| BOW-0031 | 6.0 m | 2 hour $2.00 | 12 | no | none within 25 m | - |
| BOW-0033 | 6.4 m | 2 hour $2.00 | 17 | no | none within 25 m | - |
| BOW-0035 | 5.9 m | 2 hour $2.00 | 12 | no | 4.4 m | no |
| BOW-0037 | 5.5 m | 2 hour $2.00 | 15 | no | 2.2 m | no |
| BOW-0039 | 6.5 m | 2 hour $2.00 | 15 | no | 2.0 m | no |
| BOW-0041 | 6.0 m | 2 hour $2.00 | 5 | no | 1.4 m | no |
| BOW-0047 | 6.2 m | 2 hour $2.00 | 82 | no | 3.4 m | no |
| BOW-0049 | 6.1 m | 2 hour $2.00 | 93 | no | 3.4 m | no |
| BOW-0051 | 6.3 m | 2 hour $2.00 | 88 | no | 3.4 m | no |
| BOW-0053 | 6.2 m | 2 hour $2.00 | 84 | no | 3.4 m | no |
| BOW-0055 | 6.3 m | 2 hour $2.00 | 86 | no | 3.3 m | yes |
| BOW-0057 | 5.9 m | 2 hour $2.00 | 2 | yes | 3.0 m | yes |
Reading
- The site survey shrinks to what the data can't show: meter post positions and diameters (not in the city layers), whether posts carry one head or two, mounting room under the heads, and photos of the facades that look usable.
- Trees are the main obstacle for both placements and the reason the firmware needs an empty-space calibration that records the static background (Acconeer's detector supports a recorded threshold).
- Pick pilot spaces from the ticket map: the busiest spaces see the most turnover, so they produce the most parking events per week of testing.
Caveats: OpenStreetMap building outlines and the city's space polygons are a few tens of centimetres off each other; "odd/even" here is the space ID's parity, not verified against the street side; trees use the city's trunk diameter; the 2022 ticket file appears to be missing from the dataset.
Experiment 15: real parking from a city's live in-ground sensors
Real data, recorded for this experiment: the City of Melbourne's open live feed of in-ground parking bay sensors (On-street Parking Bay Sensors, CC BY 4.0), polled every 2 minutes for 18 minutes starting 2026-11-08T04:12:23+00:00 UTC (a Sunday afternoon in Melbourne). Recorder: research/sim/melbourne_poll.py; data: research/data/melbourne/; analysis: research/sim/melbourne_analysis.py. Melbourne is the closest thing to our in-road option deployed at city scale, years after installation.
1. How many of the sensors still work?
6,324 bays in the feed. Share whose state had not changed for:
| Unchanged for more than | Share of bays |
|---|---|
| 1 days | 45 % |
| 7 days | 42 % |
| 30 days | 39 % |
| 365 days | 19 % |
In a city centre a working bay changes state many times a day, yet 39 % of these haven't changed in a month and 19 % in a year. Mostly whole areas, not single sensors: a stuck bay's neighbours (within 30 m) are stuck 78 % of the time, a working bay's only 14 %; 95 of 410 zones are stuck entirely. That pattern fits streets closed for works, sections retired or network outages more than sensors dying one by one. Isolated stuck sensors (fewer than a quarter of their neighbours stuck), the likeliest individual failures, are ~4 % of all bays: a lower bound on single-sensor failure in a fleet years in the ground, each one a lane closure and a core drill to fix. A pole unit's battery and electronics can be swapped from the sidewalk.
2. How often does a working space change state?
3,475 bays were clearly working (changed in the last day or during the recording). They changed state 1.12 times per bay per hour on a Sunday afternoon, ~13 over a 12-hour day at that rate (our battery models assumed ~30 changes a day, Exp 7 and Exp 11). Occupancy at the end: 56 %.
3. How long do cars stay?
646 completed stays ended during the recording (arrival time known from the snapshot or the recording).
| Value | |
|---|---|
| Median stay | 39 min |
| Stays under 20 s (shorter than the pole firmware's arrival confirmation) | 1.2 % |
| Under 1 min | 2.9 % |
| Under 5 min | 16.3 % |
| Median gap before the next car (vacancies ended during the recording) | 11 min |
Very short "stays" are drop-offs, cars manoeuvring through the bay, or sensor flicker; our pole firmware deliberately doesn't report them (Exp 12: an arrival needs ~20 s of a still reflection).
4. Does every space need a sensor? (Exp 9, real blocks)
187 zones with 6+ working bays; 353 zone-moments when a zone was ≥ 80 % full with a bay free. Chance that a random subset of the zone's bays includes a free one:
| Bays with a sensor | App can point to a free bay |
|---|---|
| 25 % | 36 % |
| 50 % | 62 % |
| 75 % | 80 % |
Compare Exp 9's simulation: 37 / 66 / 87 % at 25 / 50 / 75 % coverage.
Caveats: one Sunday afternoon in Melbourne, not Cambridge on a weekday; Melbourne's feed reports what its own sensors decide (their errors are in the data); a 2-minute poll can miss a change that's reversed within 2 minutes (the feed keeps only the latest change), so very short stays are undercounted; zones are Melbourne's parking restriction zones, not blocks.
Experiment 16: how long does the pole sensor's battery really last?
Exp 7 said > 15 years on one D-cell, assuming ~0.5 mC per radar reading and 3 µA asleep. Acconeer's published figures say the radar module itself idles at 6.9-17.7 µA (off / hibernate) and that each reading at low rates carries a wake-up overhead (A121: ~0.2 mW at 0.1 Hz, ~1 mW at 10 Hz). The energy per reading, radar plus the XM125's own processor, is not published for our settings, so it's swept. Other inputs: RAK3172 + accelerometer asleep ~4 µA; ~20 state changes a day (Exp 15), each sent twice, + 24 heartbeats at SF7 (Exp 11); 3.6 V 17 Ah D-cell, 80 % usable, 1 %/yr self-discharge, 85 % converter (research/sim/power_budget.py).
| Energy per reading | Reads every | Radar module between readings | Average current | of which radar | of which radio | Battery life |
|---|---|---|---|---|---|---|
| 0.3 mJ | 5 s | XM125 off | 36 µA | 20 µA | 6 µA | 15+ yr |
| 0.3 mJ | 5 s | XM125 hibernate | 47 µA | 20 µA | 6 µA | 15+ yr |
| 0.3 mJ | 10 s | XM125 off | 26 µA | 10 µA | 6 µA | 15+ yr |
| 0.3 mJ | 10 s | XM125 hibernate | 37 µA | 10 µA | 6 µA | 15+ yr |
| 0.5 mJ | 5 s | XM125 off | 49 µA | 33 µA | 6 µA | 15+ yr |
| 0.5 mJ | 5 s | XM125 hibernate | 60 µA | 33 µA | 6 µA | 15+ yr |
| 0.5 mJ | 10 s | XM125 off | 33 µA | 16 µA | 6 µA | 15+ yr |
| 0.5 mJ | 10 s | XM125 hibernate | 44 µA | 16 µA | 6 µA | 15+ yr |
| 1.0 mJ | 5 s | XM125 off | 82 µA | 65 µA | 6 µA | 15+ yr |
| 1.0 mJ | 5 s | XM125 hibernate | 93 µA | 65 µA | 6 µA | 14 yr |
| 1.0 mJ | 10 s | XM125 off | 49 µA | 33 µA | 6 µA | 15+ yr |
| 1.0 mJ | 10 s | XM125 hibernate | 60 µA | 33 µA | 6 µA | 15+ yr |
| 2.0 mJ | 5 s | XM125 off | 147 µA | 131 µA | 6 µA | 10 yr |
| 2.0 mJ | 5 s | XM125 hibernate | 158 µA | 131 µA | 6 µA | 9 yr |
| 2.0 mJ | 10 s | XM125 off | 82 µA | 65 µA | 6 µA | 15+ yr |
| 2.0 mJ | 10 s | XM125 hibernate | 93 µA | 65 µA | 6 µA | 14 yr |
| 5.0 mJ | 5 s | XM125 off | 343 µA | 327 µA | 6 µA | 5 yr |
| 5.0 mJ | 5 s | XM125 hibernate | 354 µA | 327 µA | 6 µA | 5 yr |
| 5.0 mJ | 10 s | XM125 off | 180 µA | 163 µA | 6 µA | 8 yr |
| 5.0 mJ | 10 s | XM125 hibernate | 191 µA | 163 µA | 6 µA | 8 yr |
Reading
- The battery claim hangs on one unmeasured number: the energy of one distance reading. Reading every 5 s, the cell lasts 15+ years at ≤ 1 mJ per reading, ~9-10 years at 2 mJ and ~5 years at 5 mJ (lithium D-cells themselves top out around 15-20 years, hence "15+"). Exp 4 must measure it (a USB power meter on the kit, or a Nordic PPK2 on the XM125's supply).
- Two cheap levers if it's high: read every 10 s instead of 5 (doubles the radar share's life; arrivals reported in ~40 s instead of ~20 s), and keep the XM125 in off rather than hibernate between readings (saves ~11 µA, costs a re-start per reading).
- Idle current is now a fifth of the budget: the XM125's own processor never sleeps below ~7 µA. On our own board with the bare A121 (BOM report, 10k units) the radar's idle drops to ~1 µA, a reason for v2 beyond cost.
- The radio is small at SF7 next to a gateway (~6 µA); at SF10 under bad coverage it adds ~33 µA (13 µA total at 1 mJ every 5 s).
- Check the SparkFun board for a power LED (SparkFun boards usually have one, with a jumper to cut): a lit LED alone draws ~1 mA, more than everything else together.
Sources: Acconeer A121 overview (Mouser) (power vs update rate), XM125 datasheet listing (idle off 6.9 µA, hibernate 17.7 µA), Acconeer A121 user manual (distance example 0.27 mA average), Acconeer exploration docs (power-save modes), SparkFun forum (board-level power untested).
Experiment 1: which architecture detects parked cars best?
Monte Carlo, 2500 situations (half occupied). Thresholds are chosen on one half of the trials and scored on the other. Generated by research/sim/architectures.py.
| Architecture | Accuracy | Missed cars | False alarms | Best threshold |
|---|---|---|---|---|
| In-road upward radar (A121-class) | 99.6 % | 0.5 % | 0.3 % | — |
| Pole/meter-post side radar or ToF | 99.5 % | 0.4 % | 0.6 % | — |
| In-road 4-magnetometer array (24 x 20 cm) | 98.6 % | 2.6 % | 0.2 % | 2.5 uT |
| In-road 2-magnetometer gradiometer (cheese, 21 cm) | 93.7 % | 8.2 % | 4.5 % | 0.8 uT |
| In-road single magnetometer | 90.6 % | 14.7 % | 4.2 % | 1.9 uT |
| Curb-face magnetometer | 71.5 % | 43.2 % | 13.8 % | 1.5 uT |
What each trial randomises: car size (small car to van) and where it stops in its 6 m space; gap to the curb (10-50 cm); cars in the spaces in front and behind (70 % each, anywhere in their space); a car or bus in the travel lane (30 %); street direction vs magnetic north; sensor noise (0.2 uT RMS); temperature drift since calibration (0.5 uT shared, plus 0.3 uT per sensor); each sensor's ~1 % gain error on Earth's field; and how magnetic cars really are (log-normal multiplier, x0.4 to x2.5, because our dipole model is uncalibrated).
Calibration: the car model is fitted to published measurements (magnetics report): 30-50 uT at the engine and axles, ~0-3 uT between the axles. With it, a single in-road magnetometer scores about 90 %, matching independent field studies (81-93 %), which is a good sign the model is realistic.
Assumptions to check against American cheese's data: the dipole car model; radar/ToF modelled as geometry with 99.5 % per-reading reliability (no snow on in-road radar, no snowbank in front of a pole sensor); a single reading per decision (real firmware confirms over 3 readings, which cuts false alarms further for all magnetometer designs).
Experiment 2: what does each form factor cost per space per year?
Monte Carlo (20,000 draws per form factor) over a 5-year horizon, 1,000 spaces. Everything: hardware, install labour, winter handling, damage/theft replacement, battery-death service, a share of the gateways and their SIMs. Generated by research/sim/cost_model.py; the input ranges are in that file.
| Form factor | $ per space per year (median) | 80 % range | Per month | Notes |
|---|---|---|---|---|
| Meter-pole radar 'Provolone' (2 spaces per unit) | $13 | $11-15 | $1.10 | two radars, one aimed into each space (twin-head poles or space boundaries) |
| Meter-pole radar 'Provolone' (1 space per unit) | $21 | $17-25 | $1.74 | TPT agreement for meter poles; no digging, no lane closure; accuracy unproven |
| Core-drilled puck, mag + radar (in-ground) | $41 | $35-48 | $3.44 | Street Opening Permit + bond; no install in winter or on recently paved streets |
| Swiss cheese sheet (in-road, seasonal) | $43 | $36-52 | $3.58 | removed every winter (Cambridge snow emergencies); 4-6 months a year without data |
| Swiss cheese + radar (in-road, seasonal) | $46 | $39-55 | $3.86 | same as cheese; radar confirms events (industry practice) |
| Commercial sensor + service (IPS contract) | $105 | $103-110 | $8.79 | reference point: Santa Ana pays $250 + $45 install + $3.50/space/month |
Reading: our own hardware lands at a few dollars per space per month, all-in, versus ~$10/month for the commercial reference. The cheapest options are the ones that never need a crew in the road: pole sensors avoid lane closures, permits for digging and the twice-a-year winter removal that the in-road sheet needs. The in-road sheet's real cost is not money but 4-6 months a year without data.
Not included: our engineering time, city fees we don't know yet, insurance, and sales. Install labour assumes a trained technician; the first installs will be slower.
Experiment 3: what does a radar on a meter pole see?
Ray-traced geometry (research/sim/pole_radar.py): radar on the meter pole at the boundary between two spaces, aimed into its own space. Cars are boxes parked anywhere in their 6 m spaces (up to 40 cm over the line), neighbours present 70 % of the time, a vehicle in the lane 30 %. The radar reports "occupied" when enough of its beam hits a vehicle inside its range gate.
Searched 288 mountings: height 0.6 / 0.85 / 1.1 m (a strap on the bare post below the meter head reaches 0.6-0.85 m), aim 0-75 deg into the own space, down-tilt 0-30 deg, range gate 1.6-4.0 m. Pole 0.6 m behind the curb face; 30 deg beam half-angle (A121 datasheet).
Best mountings
| Height | Aim into own space | Down-tilt | Range gate | Accuracy | Missed cars | False alarms (neighbour/lane) |
|---|---|---|---|---|---|---|
| 0.6 m | 50 deg | 0 deg | 4.0 m | 100.0 % | 0.0 % | 0.0 % |
| 0.6 m | 50 deg | 10 deg | 4.0 m | 100.0 % | 0.0 % | 0.0 % |
| 0.6 m | 50 deg | 20 deg | 4.0 m | 100.0 % | 0.0 % | 0.0 % |
| 0.6 m | 65 deg | 0 deg | 4.0 m | 100.0 % | 0.0 % | 0.0 % |
| 0.6 m | 65 deg | 10 deg | 4.0 m | 100.0 % | 0.0 % | 0.0 % |
For comparison: aiming straight across the street at 0.85 m height scores 66 % at best, and the worst mounting searched scores 50 %. Where you point it matters more than the sensor.
Snowbanks (with the best aim)
| Snowbank height | Sensor height | Blinded (reports "blocked") | Missed | False alarms |
|---|---|---|---|---|
| 0.3 m | 0.6 m | 0 % | 0.0 % | 2.0 % |
| 0.3 m | 0.85 m | 0 % | 0.0 % | 6.0 % |
| 0.3 m | 1.1 m | 0 % | 0.0 % | 1.5 % |
| 0.6 m | 0.6 m | 100 % | 0.0 % | 0.0 % |
| 0.6 m | 0.85 m | 0 % | 0.0 % | 0.0 % |
| 0.6 m | 1.1 m | 0 % | 0.0 % | 3.5 % |
| 0.9 m | 0.6 m | 100 % | 0.0 % | 0.0 % |
| 0.9 m | 0.85 m | 100 % | 0.0 % | 0.0 % |
| 0.9 m | 1.1 m | 0 % | 1.5 % | 0.0 % |
Reading: aim the radar diagonally into its own space (so the neighbour's car, which parks right next to the same pole, falls outside the beam) and cap the range so the travel lane is ignored. Mount it high on the pole so snowbanks along the curb don't blind it; when a bank does, the sensor can tell (everything is very close) and report "unknown" instead of guessing.
Assumptions: cars as boxes (body 0.3-1.45 m, or 1.8 m for tall vehicles), a 30 deg effective beam half-angle (A121 HPBW 65 x 53 deg), the pole at a space boundary 60 cm behind the curb, flat street, no pedestrians or cyclists in the beam (a real risk on the sidewalk side: the beam points away from the sidewalk).
Experiment 5: can firmware beat the dead zones?
Time-series simulation (research/sim/firmware_events.py): cars back into the space along a parallel-parking path, park anywhere in it (often with the sheet in a dead zone between the axles), stay 10 min-2 h, and drive out. The car model is Exp 1's, calibrated to measured fields. The cheese samples every dt seconds at a random phase.
| Sampling | Strategy | Arrivals caught (≤ 30 s) | Departures caught (≤ 60 s) | False alarm: car parks next door | Avg current |
|---|---|---|---|---|---|
| every 3 s | Today's firmware (5 / 2 uT, steady) | 29 % | 96 % | 0 % | ~10 µA |
| every 3 s | Lower thresholds (2 / 0.8 uT) | 91 % | 6 % | 0 % | ~10 µA |
| every 3 s | Event latch (arrival transient > 8 uT) | 22 % | 100 % | 0 % | ~10 µA |
| every 3 s | Magnetometer wakes a radar | 97 % | 100 % | 0 % | ~18 µA |
| every 1 s | Today's firmware (5 / 2 uT, steady) | 32 % | 100 % | 0 % | ~24 µA |
| every 1 s | Lower thresholds (2 / 0.8 uT) | 90 % | 5 % | 0 % | ~24 µA |
| every 1 s | Event latch (arrival transient > 8 uT) | 20 % | 100 % | 0 % | ~24 µA |
| every 1 s | Magnetometer wakes a radar | 98 % | 100 % | 0 % | ~32 µA |
| every 0.5 s | Today's firmware (5 / 2 uT, steady) | 31 % | 100 % | 0 % | ~45 µA |
| every 0.5 s | Lower thresholds (2 / 0.8 uT) | 91 % | 6 % | 0 % | ~45 µA |
| every 0.5 s | Event latch (arrival transient > 8 uT) | 21 % | 100 % | 0 % | ~45 µA |
| every 0.5 s | Magnetometer wakes a radar | 99 % | 100 % | 0 % | ~53 µA |
Reading: a magnetometer alone can't both catch cars parked over a dead zone and ignore the car next door: lowering thresholds or latching on transients trades one error for the other, and catching brief transients needs faster sampling (more battery). A radar woken by the magnetometer settles it: the magnetometer only has to notice that something changed, and the radar, which sees the car body directly, decides.
Assumptions: radar per-check reliability 99.5 % and ~0.5 mC per check (A121 datasheet: ~74 mA during a few-ms sweep, plus start-up; to be measured); 40 parking events/day; noise 0.25 µT. The radar's own failure modes (slush on the window) are not modelled here.
Experiment 7: how should a pole radar poll?
On a meter pole there is no magnetometer to wake the radar, so it has to look on a timer. Event simulation (research/sim/pole_firmware.py), 30 days per setting: ~12 parked cars a day (5 min-3 h), people crossing the beam (~8/h by day, ~2 s each) and a few standing in it (4/day, 20-120 s), 0.5 % per-reading radar error. The firmware reads every P seconds and changes state after N readings in a row agree.
| Read every | Readings that must agree | Arrival reported (median / 95 %) | Departure (median / 95 %) | False "occupied" per day (people) | Avg current | D-cell life |
|---|---|---|---|---|---|---|
| 2 s | 1 | 1 s / 2 s | 1 s / 2 s | 234.5 | 267 µA | 7 yr |
| 2 s | 2 | 3 s / 4 s | 3 s / 4 s | 16.0 | 267 µA | 7 yr |
| 2 s | 3 | 5 s / 6 s | 5 s / 6 s | 3.1 | 267 µA | 7 yr |
| 5 s | 1 | 2 s / 5 s | 2 s / 5 s | 98.1 | 117 µA | 15 yr |
| 5 s | 2 | 8 s / 10 s | 8 s / 10 s | 3.9 | 117 µA | 15 yr |
| 5 s | 3 | 13 s / 15 s | 13 s / 15 s | 2.8 | 117 µA | 15 yr |
| 10 s | 1 | 5 s / 9 s | 5 s / 10 s | 53.7 | 67 µA | 15 yr |
| 10 s | 2 | 16 s / 20 s | 16 s / 20 s | 3.1 | 67 µA | 15 yr |
| 10 s | 3 | 25 s / 29 s | 25 s / 30 s | 2.5 | 67 µA | 15 yr |
| 30 s | 1 | 14 s / 28 s | 15 s / 28 s | 19.7 | 34 µA | 15 yr |
| 30 s | 2 | 46 s / 59 s | 45 s / 59 s | 1.9 | 34 µA | 15 yr |
| 30 s | 3 | 76 s / 89 s | 75 s / 89 s | 1.2 | 34 µA | 15 yr |
Reading: a pole sensor doesn't need a magnetometer. Reading every 5 s and requiring 2 agreeing readings reports cars within ~10 s, filters people walking through the beam, and still runs over 10 years on one D-size lithium cell. People who stand in the beam for a minute (loading a trunk) still cause brief false "occupied" episodes; requiring 3 readings cuts them but not to zero. The proper fix is the radar itself: a person is a weak, narrow reflector next to a car, so a strength threshold (measured in Exp 4) should separate them.
Assumptions: 0.5 mC per radar check including start-up (Acconeer's low-power figures suggest less; to be measured on the XM125), ~30 LoRa messages + 24 heartbeats a day at ~40 mC, 3 µA sleep, 17 Ah usable, 15-year shelf-life cap. Pedestrian rates are guesses for Bow Street, to be replaced with counts from the kit's data log.
Experiment 8: what happens as we scale?
Exp 2 priced 1,000 spaces without fixed costs. This adds volume pricing (small runs pay retail module prices, 10,000 units get ~30 % off), the fixed costs a real deployment carries (FCC Part 15B test, liability insurance, hosting, LoRaWAN network fees, a minimum number of gateways), and a possible city fee for using meter poles. Monte Carlo, 20,000 draws, 5-year horizon (research/sim/scaling.py; every input range is in that file). Pole sensor battery from Exp 7 (outlasts the horizon). Updated (tick 14): pole sensor unit costs from the priced bill of materials ($78 at 1,000 units vs $50 assumed before), spaces per gateway from Exp 11.
Cost per space per month, all-in
| Form factor | 100 spaces | 1,000 spaces | 10,000 spaces |
|---|---|---|---|
| Pole radar 'Provolone' (1 space/unit) | $8.82 ($7.58-10.22) | $3.32 ($2.79-4.01) | $2.18 ($1.70-2.86) |
| Pole radar 'Provolone' (2 spaces/unit) | $7.27 ($6.16-8.58) | $2.17 ($1.87-2.53) | $1.28 ($1.03-1.61) |
| In-road sheet + radar (seasonal) | $10.74 ($9.29-12.31) | $5.18 ($4.38-6.11) | $4.37 ($3.60-5.28) |
| Core-drilled puck, mag + radar | $10.82 ($9.39-12.40) | $5.27 ($4.46-6.25) | $4.44 ($3.66-5.42) |
| Commercial reference (Santa Ana: $250 sensor + $45 install over 5 yr + $3.50/month) | $8.42 | $8.42 | $8.42 |
Median, with the 80 % range in brackets.
What moves the pole sensor's cost (1,000 spaces)
Every input at its likely value: $2.43 per space per month. Each bar swings one input from its low to its high value.
| Input | Range | $/space/month at low | at high | Swing |
|---|---|---|---|---|
| city fee $/space/yr | 0-20 | $2.43 | $4.09 | 1.67 |
| yearly visit min | 0-10 | $2.24 | $2.86 | 0.62 |
| unit $ @1k | 67-95 | $2.20 | $2.78 | 0.58 |
| loss %/yr | 2-10 | $2.22 | $2.78 | 0.56 |
| liability insurance $/yr | 1500-6000 | $2.30 | $2.68 | 0.38 |
| LoRaWAN network $/device/month | 0-0.2 | $2.38 | $2.58 | 0.20 |
| labour $/h | 35-60 | $2.36 | $2.53 | 0.17 |
| install min | 4-15 | $2.36 | $2.54 | 0.17 |
| Part 15B test + labels, one-off $ | 3000-12000 | $2.38 | $2.53 | 0.15 |
| hosting $/month (per 1k spaces, min 1) | 25-150 | $2.39 | $2.52 | 0.12 |
If the city charges a fee per installed unit (tick 15)
The city permission report found no federal cap that protects a parking sensor: the FCC's $270/yr limit covers only phone-carrier small cells (47 CFR 1.6002), and Cambridge charges its own small cells $270/yr per installation, the likely template. Median cost at 1,000 spaces:
| Fee per unit per year | $0 | $20 | $90 | $270 |
|---|---|---|---|---|
| Pole radar 'Provolone' (1 space/unit) | $2.80 | $4.47 | $10.30 | $25.30 |
| Pole radar 'Provolone' (2 spaces/unit) | $1.91 | $2.74 | $5.66 | $13.16 |
| Commercial reference (the city pays it today in Santa Ana) | $8.42 | $8.42 | $8.42 | $8.42 |
A $270 fee per unit would make the pole sensor dearer than buying a commercial system ($25+/space/month vs ~$8.42). Two radars per unit halve it, still not enough. So the fee is not a detail to negotiate later: a pilot waiver, or a fee per block rather than per device, has to come first, and the alternatives that avoid city poles (private facades, the in-road options, which have their own permits) need a fair look.
Reading
- Scale is the first lever. The pole sensor costs ~$8.82/space/month at 100 spaces and ~$2.18 at 10,000: at pilot scale the fixed costs (insurance, certification, minimum gateways, hosting) are most of the bill. A 100-space pilot is a cost centre, whatever the hardware; the hardware choice only shows at 1,000+.
- The pole sensor stays cheapest at every scale, and the gap to the in-road options widens with scale because their cost is recurring labour (winter removal, re-coring), which doesn't get cheaper with volume.
- Unknown #1 is the city fee. If Cambridge treats a sensor on a meter post like a small-cell attachment and charges even $20/space/year, that is one of the biggest single items. It's the first question for the city (deployment report), ahead of any hardware decision.
- Two spaces per unit roughly halves per-space hardware and install; worth it where the post sits on a space boundary (Exp 3's geometry), pending the site survey.
- Against the commercial reference (~$8.42/space/month) every option of ours leaves a wide margin at 1,000+ spaces; the price we charge can be set by the value of the data, not by the hardware.
Not included: our salaries, sales, R&D, financing. Assumptions to replace with real numbers: city fee, insurance quote, Part 15B lab quote, gateway coverage on Cambridge streets (American cheese's link test).
Experiment 9: does every space need a sensor?
A 12-space block over 60 simulated days, minute by minute (research/sim/coverage.py): demand follows a daily curve, cars stay 45 min on average and take a random free space. Only some spaces carry a sensor; sensors are taken as right. The question a driver cares about: when the block is nearly full (≥ 80 %) and a space is free, does the app know where?
| Block | Time it's ≥ 80 % full | Spaces with a sensor | App can point to a free space (when it matters) | Error in "free spaces on this block" | Cost per space on the block per month |
|---|---|---|---|---|---|
| quiet (peaks ~70 % full) | 13 % | 25 % | 37 % | 2.25 spaces | $0.83 |
| quiet (peaks ~70 % full) | 13 % | 50 % | 67 % | 1.26 spaces | $1.66 |
| quiet (peaks ~70 % full) | 13 % | 75 % | 87 % | 0.75 spaces | $2.49 |
| quiet (peaks ~70 % full) | 13 % | 100 % | 100 % | 0.00 spaces | $3.32 |
| busy (peaks ~88 %) | 18 % | 25 % | 37 % | 2.19 spaces | $0.83 |
| busy (peaks ~88 %) | 18 % | 50 % | 66 % | 1.22 spaces | $1.66 |
| busy (peaks ~88 %) | 18 % | 75 % | 87 % | 0.73 spaces | $2.49 |
| busy (peaks ~88 %) | 18 % | 100 % | 100 % | 0.00 spaces | $3.32 |
| packed (peaks ~97 %) | 23 % | 25 % | 36 % | 2.12 spaces | $0.83 |
| packed (peaks ~97 %) | 23 % | 50 % | 65 % | 1.19 spaces | $1.66 |
| packed (peaks ~97 %) | 23 % | 75 % | 86 % | 0.71 spaces | $2.49 |
| packed (peaks ~97 %) | 23 % | 100 % | 100 % | 0.00 spaces | $3.32 |
Reading
- Partial coverage fails exactly when it matters. On a nearly full block only one or two spaces are free, so the share of spaces with a sensor is roughly the chance the app knows about one: 50 % coverage -> ~66 %, 75 % -> ~87 %, whatever the block. The rest of the time the app says "full" while a space is free. Block-level estimates are off by ~1.2 spaces at 50 % coverage: fine for a heat map, useless for sending a driver to a space.
- Busier blocks need it more often, not differently: the packed block is nearly full ~23 % of the time, the quiet one ~13 %. On a quiet block a driver mostly finds a space without help, so sensors there earn their keep through city data (turnover, enforcement, planning) rather than guidance.
- So the product decides coverage: per-space guidance ("space 4 is free") on busy blocks needs every space sensored; a block-level heat map for planning or pricing (SFpark-style demand pricing, DDOT's finding) can run on 25-50 % coverage, plus meter-payment data, at a quarter to half the cost.
- A cheaper middle: sensor every space on the busiest blocks, sample the rest. Exp 8's cost per sensor applies only where sensors go.
Assumptions: drivers take a random free space (in reality ends of the block and spaces near entrances fill first, which would let a few well-placed sensors do better or worse; the street log will tell); perfect sensors; no double-parking or loading. Demand curves are generic, not Bow Street's.
Report: the city's permission and fees for a sensor on a meter post
Research agent, 2026-11-07. Builds on the deployment report, which covers the permit paths for each form factor. Sources at the end; [unverified] = not confirmed from a primary source.
Bottom line
- No published process covers a private device on a meter post. The meters belong to the Department of Transportation (the former Traffic, Parking + Transportation, renamed April 2025); its Street Management division "installs and maintains parking meters". Likely route: written permission or a license from that department, possibly plus a Pole & Conduit Commission grant of location.
- No federal fee cap protects us. The FCC's $270/yr rule covers only "personal wireless service" equipment (47 CFR 1.6002), not a LoRaWAN sensor. The city can refuse or charge anything. Its own small-cell policy charges $270/yr per installation, the obvious template for staff.
- $270/unit/yr would sink the model: $22.50 per space per month at one space per unit, against our modelled $3.32 total (Exp 8's fee range tops out at $1.67/month). A pilot fee waiver, or a per-block fee, is the most valuable ask.
- The Surveillance Ordinance plausibly applies once the city receives our data. Cambridge reads it broadly: its reports list the Water Department's meter-reading system and TP&T's traffic-count cameras. Per-space occupancy radar is borderline; we need a written answer.
1. Meters, owners and permits
| Fact | Finding |
|---|---|
| Owner / maintainer | Department of Transportation, Street Management division (meters, signs, signals, traffic counts). Parking Management handles enforcement, permits and tickets. Commissioner: Brooke McKenna |
| Meters | ~2,530 metered spaces in service citywide (GIS layer, queried today). None flagged "SmartMeter". Coins + Passport + PayByPhone; no card readers ("considered years ago and rejected"). Some pay stations exist. Assets are tracked in Cartegraph. Meter make/model: [unverified], so check it in the Bow Street survey |
| Path | Who | Fee | Fits us? |
|---|---|---|---|
| Written permission / license for meter posts | Dept of Transportation | none published | Most likely route |
| Grant of location (City-owned poles) | Pole & Conduit Commission (License Commission chair, City Electrician, Superintendent of Streets) | Usual conditions: Electrical Dept utility permit, DPW permits, sidewalk preservation offset fee, start within 60 days | Told Flock (Oct 2025) that "even pilot programs, like temporary installations" need a grant. Whether a meter post counts as a City pole is the open question |
| Small-cell policy | Pole & Conduit Commission | $500 application per 5 sites; $270/yr each | Doesn't legally apply to us, but staff may use it as the template |
| Street Occupancy Permit | Dept of Transportation | $100 + $75/week per 20-ft space (2021) | Only if we reserve curb space to install. A 5-min install from the sidewalk shouldn't need it |
| Sunday/holiday work permit | DPW + Police | $25 | Avoid by installing on weekdays |
2. The Surveillance Technology Ordinance (Ch. 2.128, Dec 2018)
Definition (2016 drafting text; the enacted §2.128.020(G) couldn't be fetched, so [unverified]): any electronic device "capable of collecting... audio, visual, digital, location, thermal... information... specifically associated with, or capable of being associated with, any specific individual or group". Examples include "through-the-wall radar or similar imaging technology". Parking Ticket Devices (and, per a Brookline-hosted copy, "related databases") are excluded.
Process if it applies. It applies when a City department acquires the technology, or enters "an agreement with any other person or entity to acquire, share or otherwise use surveillance technology or surveillance data". The department files a Surveillance Technology Impact Report (how it works, purpose, where deployed and why, cost, civil-liberties impacts) and a Use Policy. Then come community meetings, a public hearing (draft: no sooner than 45 days after filing), a Council vote, and annual reports. Allow 3-6 months [unverified].
Does a non-imaging occupancy radar count?
- Against: no images, plates or identity, only "BOW-0012 occupied 14:02-15:40". Parking devices are carved out. San Diego's 2020 ordinance explicitly excludes "sensors that detect if cars are parked in a parking space".
- For: a car in a known space at known times can be "associated with" its owner via payment or ticket records. Cambridge listed the non-camera Water AMR system. The radar could in principle sense more than occupancy.
- Our best case: output only occupancy and health data; no link to payment or enforcement; never reset meters.
Politics. The Council approved ALPRs (Feb 2025), paused them (Oct 2025), and the city ended the Flock contract (Dec 2025) after Flock installed two cameras "without the City's awareness". It dropped ShotSpotter (May 2026), then restored it for 90 days (Aug 2026). Lesson: never install without written permission, and label the box "not a camera". San Diego's 2017 meter-pole boxes caused alarm because they held calibration cameras.
3. Precedents elsewhere
| City | What | Contract | Terms worth copying |
|---|---|---|---|
| Burlington VT (2021) | IPS Group pole-mounted sensors on Main St meters | Free vendor test of 18 sensors; $250/unit, $65/mo for data if bought | Vendor-funded pilot; presence only, "not cameras" |
| Milwaukee (2023) | CivicSmart sensors on meters and signposts, 75 (+125) | DPW pilot; city pays 1/3 of $245/sensor | Stated goal: "see how accurate the sensors are" |
| Bend OR (2023) | Cleverciti, on lampposts | Parking Services program | Processing on the sensor, "no video footage or license plate information" |
| Boston Smart Streets | Verizon intersection sensors | Pilot + data license: vendor owns data, city may copy/use/share during and after | No video stored, no LPR/biometrics; "no commitment to buy" |
| Pittsburgh PGH Lab | Startup pilots with departments | City pays $25k stipend, 4-6 months | A "pilot program" model |
(LA ExpressPark and SFpark were grant-funded procurements, not startup paths.) The pattern: a free vendor pilot under a short letter agreement, then procurement if the city buys.
4. Pilot agreement, insurance, who runs it
- Agreement: expect a no-cost pilot letter or revocable license from the Department of Transportation, reviewed by the Law Department. If the city later pays, MA Ch. 30B applies: three written quotes from $10k, an RFP above $50k.
- Insurance [unverified for this use]: Cambridge bids ask for about $1 M per occurrence / $2 M aggregate liability from an A-rated carrier. MA permits typically add the city as additional insured, workers' comp if we have employees, and our indemnity of the city. Get a real quote for Exp 8.
- Public records: data given to the city may become public (G.L. c. 66), so share occupancy only.
- Who: the Commissioner's office, Street Management (meters, posts) and Parking Management (data users). The Pole & Conduit Commission is reached via the License Commission.
5. Questions to send (most plan-changing first)
- Who can approve a small battery sensor strapped to a meter post (no drilling, no wiring): your department alone, or also the Pole & Conduit Commission?
- Would there be a fee, per device or per space? Could a ~40-space Bow Street pilot be fee-free?
- If it records only "occupied/free" per space (no camera, images or plates), is it surveillance technology under Ch. 2.128? Does that change if the city gets no data during the pilot?
- Would you allow it on Bow Street meter posts at all, or prefer sign posts or another street?
- What paperwork does a pilot need (letter, revocable license, MOU), and what insurance and indemnity?
- Are meter replacements planned that would move Bow Street posts within 2 years?
- Could you share anonymised meter/app session counts for Bow Street so we can check accuracy?
- Who must be told before installs or battery swaps; any no-work periods (snow, sweeping)?
- If the pilot works, how would the city buy the data: quotes, RFP, or an existing contract?
Sources
- https://www.cambridgema.gov/transportation/aboutus
- https://cambridgema.gov/Departments/transportation
- https://www.cambridgema.gov/parking
- https://www.cambridgeday.com/2025/12/16/cambridge-ups-parking-ticket-cost-to-40/
- https://www.cambridgema.gov/departments/transportation/news/2025/12/paybyphone
- https://www.cambridgema.gov/Departments/transportation/News/2025/01/harvardsqmeterfeechanges
- https://gisserver.cambridgema.gov/arcgis/rest/services/TrafficAGOLLayers/MapServer/10
- https://www.cambridgema.gov/-/media/Files/licensecommission/poleandconduit/pcminutes/pcminutes2025/102325pcminutes.pdf
- https://www.cambridgema.gov/-/media/Files/licensecommission/poleandconduit/smallcell/smallcellpolicyadopted103119.pdf
- https://public.destinyhosted.com/bilmtdocs/2023/CCWS/20230821_1445/10198_Small_Cell_Ordinance.pdf
- https://www.law.cornell.edu/cfr/text/47/1.6002
- https://cambridgema.gov/Departments/trafficparkingandtransportation/News/2021/02/changestostreetoccupancypermitfees
- https://cambridgema.gov/iwantto/requestsundayholidayworkpermit
- https://www.srevilak.net/wiki/images/8/84/Cambridge-surveillance-ordinance.pdf (2016 Council order with the draft text)
- https://www.brooklinema.gov/DocumentCenter/View/19547/MA-Cambridge (copy of Ch. 2.128; not fetched, per search excerpt)
- https://www.cambridgema.gov/news/2019/11/~/media/9BB00441E0684AB99E3D181185B7224F.ashx (Surveillance Use Policy)
- https://www.cambridgema.gov/-/media/files/citymanagersoffice/surveillanceordinancedocuments/annualsurveillancereport_coverletter_02282020.pdf
- https://docs.sandiego.gov/cityattorneyreports/RC-2020-6.pdf.pdf
- https://www.cambridgeday.com/2025/10/21/cambridge-wants-surveillance-tech-paused-until-company-addresses-fears/
- https://bdc2020-php8.boston.com/news/local-news/2025/12/11/cambridge-ends-contract-for-license-plate-cameras-after-breach-of-trust/?amp=1
- https://www.cambridgeday.com/2026/05/19/council-drops-shotspotter-in-close-vote/
- https://www.boston25news.com/news/local/cambridge-city-council-votes-temporarily-restore-shotspotter-90-days/5WC46R42QRALDB5N4UD7QO6WZQ/
- https://api.thecrimson.com/article/2025/2/4/cambridge-surveillance-technology
- https://www.sevendaysvt.com/?p=87503
- https://www.fox6now.com/news/milwaukee-parking-sensors-offer-real-time-availability-data
- https://www.sandiegoreader.com/news/2017/mar/24/stringers-parking-meter-perversion-hillcrest/?page=all
- https://bendoregon.gov/home/showpublisheddocument/56309/638241570429936380
- https://www.boston.gov/departments/transportation/smart-streets-0
- https://www.pittsburghpa.gov/files/assets/city/v/1/ip/documents/pgh-lab/25747_pghlab_rules__regulations_8-26-2024_1.pdf
- https://cityclerk.lacity.org/onlinecontracts/2018/C-119654_c_12-5-18.pdf
- https://www.govtech.com/data/sensors-help-la-create-demand-based-parking-pricing.html
- https://cambridgema.gov/oldbids/documents/9299/Bid9299.pdf
- https://malegislature.gov/Laws/GeneralLaws/PartI/TitleIII/Chapter30B/Section4
Report: deploying on Bow Street, Cambridge
Research agent, 2026-11-07. Primary sources linked; [unverified] marks estimates.
Site facts that drive the choice
- Bow Street has single-space meters (about 40 spaces, BOW-0001 to BOW-0057, $2/hr, 8 AM-8 PM, 30 min or 2 h,
SmartMeter = No) in the City's metered-spaces GIS layer (layer, dictionary). Coin + app meters, no replacement planned (Cambridge Day). So there are meter poles at the curb; one pole per space vs twin heads per two spaces is [unverified]. - The odd-numbered side of Bow Street is a primary Snow Emergency tow route (~235 ft); cars are towed during bans and plows run to the curb (Snow Center). Brine pre-treatment since 2018; monthly mechanical sweeping April-December (Street Cleaning).
Form factors
| Form factor | Permit path | Install | Winter | Theft / liability | Maintenance | Power |
|---|---|---|---|---|---|---|
| A. Under-car adhesive sheet (cheese) | no published category; written TPT/DPW consent + space coned while it cures | < 10 min, 1-2 people | highest: proud on a plowed, swept, salted surface; vendors steer snow regions to in-ground (Urbiotica) | low theft; raised edge is a minor trip/bike hazard | must come out before each snow emergency | battery only |
| B. Core-drilled flush puck | DPW Street Opening Permit + bond; no work on streets resurfaced in the last 5 years; winter construction moratorium (DPW regs) | 15-30 min, 2 people, cones, maybe police detail [unverified] | low (Nwave: "designed for heavy snowplough regions") | low; flush | battery death = re-coring; SFpark batteries ~3 yr, some sensors paved over (SFpark eval) | battery only |
| C. Curb face | no precedent; DPW sign-off likely [unverified] | 10-15 min | medium-high: banks bury it, plow/sweeper contact | moderate theft | easy unless buried | battery |
| D. Sidewalk / curb top | DPW sidewalk obstruction / annual use permit | ~10 min | medium | ADA clear width + cane detectability (PROWAG); least likely to be approved | easy | some solar |
| E. Clamp-on meter / sign pole | TPT agreement for meter poles; City light poles need a Pole & Conduit Commission grant of location, "even ... temporary installations" (minutes) | 5-10 min, 1 person, no closure [unverified] | low: above snow, away from blades; banks can block a low-aimed view | moderate theft (tamper-proof clamp; ≤ 4 in protrusion at 27-80 in height) | easy battery swaps. Boston found meter-mounted sensors "had many problems with the data's accuracy" and needed "significant staff time to calibrate" (Boston report) | small solar on top possible but canyon-shaded |
| F. Overhead camera / radar | grant of location + Surveillance Ordinance (Ch. 2.128) for anything camera-like: Council approval after a public hearing; Flock ALPRs were switched off at the Council's request | bucket truck, 1-2 h per pole [unverified]; many spaces per unit | low | low theft; high political risk if a camera | few units, but one failure = many spaces | streetlight AC possible |
Evidence from other pilots
- SFpark (~8,000 sensors): interference varied space to space and nearly half the spaces needed two sensors; batteries failed early and at random; occupancy reliable, turnover/stay length not; SFMTA bought data rather than hardware and later replaced sensors with a model built on payment data.
- Boston (330 Streetline in-ground sensors, 2013): sensors "do not give plug-and-play reliably high-quality occupancy data"; scaling needs methods "other than a sensor at every meter" (New Urban Mechanics).
- No published Boston-area winter damage rates found.
Power
No solar under a car. At curb/pole height in a street canyon, winter sun is weak and often blocked; solar-only curb devices have struggled in northern winters. Primary lithium battery for 5+ years; solar trickle on a pole as a bonus.
Takeaways
- Cheese is a seasonal pilot device, not a city-scale product. If kept: even (non-tow-route) side of Bow Street only, recover before the first snow emergency.
- Clamp-on to the existing meter poles is the most deployable option: no dig, ~5 min, no lane closure, above plows, easy battery swaps, probably one TPT agreement. Its risk is accuracy (Boston's experience): it must be proven, including when snowbanks block the view.
- Core-drilled pucks are the proven winter answer but slow to permit and costly to service: a vendor play, not a student one.
- Avoid cameras (Surveillance Ordinance; Flock episode). Ask whether non-imaging radar counts.
- Design for a primary battery (5+ years) and over-the-air recalibration; report health data.
- Sell the data, not the hardware: SF and Boston both found per-space hardware maintenance was the long-term pain.
Questions for Jeffrey Parenti / TPT
- Who approves a device on a meter pole (TPT or the Pole & Conduit Commission)? Insurance/indemnity?
- Is there a permit category for a surface-adhered device in a space? Any DPW objection on a tow route?
- Is Bow Street a 5-year moratorium street?
- Does a non-imaging radar or magnetometer count as surveillance technology under Ch. 2.128?
- Any planned meter replacement (integrate rather than clamp)?
- Who removes/reinstalls devices before snow emergencies and sweeping?
- Can we get ground-truth (meter / PayByPhone / Passport sessions) to validate accuracy?
Report: the radar on a building facade or behind a shop window (H10)
Research agent, 2026-11-07. Builds on the city report and the weather report. Glass losses are our own transfer-matrix calculation (57-64 GHz, ITU-R P.2040-1 glass: εr 6.27, ~0.56 dB/mm); we modelled each low-E coating as a metal sheet of resistance Rs and checked the results against published measurements. [unverified] = no primary source found; [est] = our estimate.
Bottom line
- Clear glass works; low-E glass blinds the radar. One-way loss is ~2.5-5 dB through single or laminated clear glass, 4-10 dB through clear double glazing, and 22-45 dB through any metal-coated (low-E or solar-control) glass, so 45-90 dB for the round trip. Every 12 dB two-way halves the range.
- Recent Massachusetts storefront glass is probably low-E [est] (needed to meet the energy code). The candidates are old single-pane windows and transoms. A $0 lighter test finds a coating.
- Inside a window: no city permit. A facade box sticking out ≤6 in avoids the Council and bond process but needs a Historical Commission certificate on Bow Street. The Surveillance Ordinance doesn't reach private hosts.
- It beats the meter post only if the city fee is over ~$67/unit/yr or the city says no, and only where the glass is clear or facade owners agree. An afternoon's test decides it (section 5).
1. Glass at 57-64 GHz
| Glazing | One-way loss, our calc (0-50°) | Published |
|---|---|---|
| Single clear, 3-6 mm | 2-5 dB (up to 7 at 50°) | 3.3 dB at 60 GHz (TIP 2019); 3.6 dB for 3 mm at 60 GHz (Anderson & Rappaport); 7.1 dB for 1 cm at 73 GHz (NYU) |
| Laminated 3+0.76 PVB+3 | 3.3-4.2 dB | 802.15 safety glass, 60 GHz: ~6.9 dB; PVB moisture varies it |
| Double clear, 4-12-4 / 6-12-6 | 4-6 / 6-10 dB (12 oblique) | 3GPP "standard multi-pane": 14 dB at 60 GHz (conservative) |
| Wired glass | — | 10.2 dB, 3 mm, 60 GHz (Anderson & Rappaport) |
| Low-E / solar-control | hard coat (Rs ~15 Ω/sq) 20-25 dB; single silver (3-10) 26-37; double silver (1.5-3.5) 33-48 | 33.2 dB double low-E, 60 GHz (TIP); ITU-R P.2554: coated ~20 dB above uncoated, 25-30 dB average (3-40 GHz); 3GPP IRR glass 32 dB |
Why: a metal film far thinner than the skin depth attenuates ~20·log10(1 + 377/2Rs) at any frequency. Hard coats run under ~14 Ω/sq, single silver ≤10, double silver ≤3.5 (coater patents). Metallised window film acts the same way; dyed or ceramic film should be harmless [est].
Also: the glass reflects 10-40 % back: mount 2-3 mm off it, tilted 5-10°, and start the range gate beyond it. Winter condensation costs ~6 dB two-way per 0.05 mm. The A121 has worked through an intercom's hardened glass (Lund thesis).
Spotting low-E: (a) lighter or phone torch: one reflection with a different tint = a coating ($0); (b) EDTM AE1601 detector, single and dual pane, beeps on a coating (~$200); (c) best: the radar itself (section 5).
2. Cambridge rules
| Placement | What applies |
|---|---|
| Inside a window | No building, sign or historic permit: interior work and "alterations not visible from any public way" are exempt. Keep any label small so it isn't a regulated window sign [unverified] |
| Facade, ≤6 in (our 55-80 mm box, flat) | Facades on the lot line overhang the sidewalk. Past 6 in: City Council petition, abutters, surety bond, ISD and DPW permits. Under 6 in, none of that; the owner still indemnifies the city for anything "in or over a street" (§12.12.220). DPW sign-off under 6 in [unverified]: ask |
| Historic district | Bow Street is subdistrict B of the HSCD. Visible exterior changes need a certificate; staff issue Non-Applicability on the spot for storefront work that doesn't obscure historic features. Mount on storefront framing or in mortar joints, never through original trim. Mid Cambridge NCD (not Bow Street) is a similar certificate regime [unverified] |
| Wiring | A battery or USB box needs no permit; exterior mains wiring needs an electrician [est] |
| Privacy | The Surveillance Ordinance covers City departments acquiring technology or agreeing "to acquire, share or otherwise use" surveillance data: private hosting doesn't trigger it; selling data to the city does. The wiretap law (c.272 §99) covers wire and oral communications, not range peaks; the privacy statute (c.214 §1B) needs an "unreasonable, substantial or serious" interference. Politics still apply (Flock): label it "no camera" and tell the city first |
3. Owner agreements
| Precedent | Payment | Terms |
|---|---|---|
| Small cells on private buildings | ~$150-800/month (consultants) | 5-10-year leases for scarce radio sites, which we aren't |
| LoRaWAN gateway host (Netmore, UK) | £350/yr | rooftop, 7 W, 12-month rolling |
| Helium hotspot hosts | share of rewards (e.g. 20 %) or flat rent | some ask 36 months |
| Footfall counters on shopfronts (UK BIDs) | often free; "rent to landlord" | landlord permission is "the problem" (Test Valley council) |
For us [est]: a one-page revocable licence (12 months, auto-renew, 30 days' notice; we insure, indemnify, don't drill). The host gets $0-10/month and their block's parking data. The tenant signs for a window, the landlord for the facade.
Churn: Cambridge's empty storefronts doubled to 109 (2019 to fall 2024); vacant windows get leasing signs (2025 policy), fit-outs paper them over, cleaners move boxes. Expect 10-20 % of window hosts lost a year [est]; facade units survive tenant changes. One owner of several frontages (check assessor records in the Bow Street survey) could cover a block.
4. Power
A USB outlet allows 1 s polling (XM125: 0.33 mW at 1 Hz): arrivals in ~2-3 s and more readings to filter the pedestrians who constantly cross a facade beam. It also makes room for a gateway in the box: e.g. The Things Indoor Gateway Pro, $150 + $60/yr including cellular backhaul, ~2-3 W ≈ $5-6/yr of electricity at MA's ~24¢/kWh, though its ground-level range is short [est]. The new failure mode is being unplugged (cleaners, a new tenant), so add a small Li-ion backup that reports "power lost". Mains doesn't fix glass loss or geometry.
5. Verdict and the cheap test
Facade or window wins only when all of these hold:
- The city fee is over ~$67/unit/yr (Exp 8 break-even) or the city refuses; otherwise the post wins (aim, height, one landlord).
- The glass is uncoated single or laminated. If not, mount outside at ≤6 in with a Historical Commission certificate.
- The product is a block-level map: hosts cover only some frontages (Exp 9: 25-50 % suffices for a heat map, not per-space guidance).
- The geometry works: the radar looks across a 2-4 m sidewalk full of people, so mount high (transom, ≥2.2 m) looking down. Re-run Exp 3 and Exp 12 for this geometry.
Cost: the same ~$78 hardware without the hood or D-cell; $0-120/yr to the host instead of a possible $270/yr fee; plus a few hours of sales per host and the churn above [est].
The test (one afternoon, ~$50 of glass, plus the XM125 already on order):
- Bench: log a metal plate's peak strength at 3 m, then put samples in front of the radar: picture-frame glass, a 6 mm clear offcut, a clear double-glazed unit and a low-E unit (glass shops sell rejects), each at 0°, 30° and 50°. The drop in dB is the two-way loss.
- Bow Street walk: lighter-test every window and transom; note owner and sidewalk width.
- On site, with one willing owner: aim at a parked car from inside the window, then from outside on the sill, for an hour each.
- Rule: two-way ≤10 dB, the window works; 10-20 dB, marginal (try the transom or door glass); >25 dB, facade or nothing.
Sources
- ITU-R P.2040-1 (glass parameters): https://www.itu.int/dms_pubrec/itu-r/rec/p/R-REC-P.2040-1-201507-S!!PDF-E.pdf
- ITU-R Report P.2554-0 (2025), glass and window penetration loss: https://www.itu.int/dms_pub/itu-r/opb/rep/R-REP-P.2554-2025-PDF-E.pdf
- 3GPP TR 38.901 §7.4.3.1 (glass, IRR glass): https://itecspec.com/3gpp/38.901/s/7.4.3.1
- Anderson & Rappaport, partition loss at 2.5 and 60 GHz: https://arxiv.org/pdf/1701.03415
- Ryan, MacCartney, Rappaport, penetration loss at 73 GHz (NYU Wireless): https://ar5iv.labs.arxiv.org/html/1703.08030
- TIP 28/60 GHz indoor study (via RCR Wireless): https://www.rcrwireless.com/20201214/test-and-measurement/what-does-tips-mmwave-testing-tell-us-about-indoor-5g
- Dense urban O2I coverage (cites the low-E and tinted figures): https://arxiv.org/pdf/2203.03813
- NIST, 60 GHz penetration loss: https://www.nist.gov/ctl/building-penetration-loss
- IEEE 802.15 safety glass at 60 GHz: https://grouper.ieee.org/groups/802/15/pub/2005/15-05-0382-00-003c-reflection-and-transmission-measurements-safety-glass-60ghz.doc ; laminated glass calculation: https://grouper.ieee.org/groups/802/15/pub/2005/15-05-0388-00-003c-transmission-caculations-60ghz.doc
- Low-E RF shielding at 1-18 GHz (Ängskog et al.): https://www.scilit.net/publications/144fa2135c08455bf0fb0abf15e748df
- Low-E sheet resistance (patents): https://image-ppubs.uspto.gov/dirsearch-public/print/downloadPdf/8337988 ; https://image-ppubs.uspto.gov/dirsearch-public/print/downloadPdf/10333009
- Lund thesis, A121 behind glass: https://lup.lub.lu.se/student-papers/record/9129725
- Lighter test: https://greenfilmusa.com/blogs/post/how-to-tell-if-your-windows-have-low-e-glass ; LBNL field verification: https://webarchive.library.unt.edu/eot2008/20090814053759/http:/windows.lbl.gov/win_prop/component_verification/default.htm
- EDTM AE1601 detector: https://inspectortools.com/edtm-etekt-low-e-coating-detector
- MA energy code, 780 CMR ch. 13: https://www.mass.gov/doc/10th-edition-chapter-13-energy-efficiency/download
- Cambridge, projecting sign and structure process (>6 in, §12.08.010, §12.12.220): https://www.cambridgema.gov/~/media/Files/inspectionalservicesdepartment/OnlineForms/projectingsigndirectionsapplication.pdf ; https://cambridgema.gov/-/media/Files/CDD/ZoningDevel/Signs/signcertificationform_2024.pdf
- MA G.L. c.85 §8 (permits for objects over public ways): https://law.counselstack.com/statute/ma/85/8
- Harvard Square Conservation District: https://www.cambridgema.gov/historic/districtsHistoricProperties/harvardsquarencd ; order (exclusions, Non-Applicability): https://www.cambridgema.gov/-/media/Files/historicalcommission/pdf/HSQ2000_AmendedOrder.pdf ; subdistrict B, Bow Street: https://www.cambridgema.gov/-/media/Files/historicalcommission/pdf/hscdstudy/subdistrictdescriptionsexcerptedfromfinalreport2000.pdf
- Cambridge Surveillance Ordinance (draft text): https://www.srevilak.net/wiki/images/8/84/Cambridge-surveillance-ordinance.pdf ; Use Policy: https://www.cambridgema.gov/news/2019/11/~/media/9BB00441E0684AB99E3D181185B7224F.ashx
- MA wiretap law: https://malegislature.gov/Laws/GeneralLaws/PartIV/TitleI/Chapter272/Section99 ; privacy statute: https://malegislature.gov/Laws/GeneralLaws/PartIII/TitleII/Chapter214/Section1B
- Netmore gateway hosting: https://netmoregroup.com/host-gateway-earn-350/
- Helium host programmes: https://gristleking-blog.pages.dev/blog/getting-your-hotspot-on-a-commercial-building ; https://medium.com/alpine-capital-markets/analysis-of-4-major-helium-hotspot-providers-jag-industrials-vs-hositfy-vs-meshly-vs-ihub-3f9a9f559086
- Small-cell lease ranges: https://www.celltowerleaseexperts.com/cell-tower-lease/ ; https://airwaveadvisors.com/?p=1776
- Footfall counters, landlord permission: https://democracy.testvalley.gov.uk/Data/Overview%20and%20Scrutiny%20Committee/201704261730/Agenda/gWJR9TVwOBqnAkaGhgozzJJbhL43BF.pdf
- Cambridge empty storefronts: https://harvardsquare.com/media_room/empty-storefronts-have-doubled-in-cambridge/ ; https://www.cambridgeday.com/2026/04/05/long-term-vacancies-cambridge/
- The Things Indoor Gateway Pro: https://thethingsindustries.com/gateways/the-things-indoor-gateway-pro
- MA commercial electricity price: https://electricrates.org/massachusetts/business-electricity/
Report: what a magnetometer really sees under a parked car
Research agent, 2026-11-07. "(read from plot)" = read off published figures; "(derived)" = our calculation.
Summary: no public table gives "µT under engine / cabin / trunk", but every primary measurement points the same way: 30-50 µT at the engine and axles, ~0 µT in "dead zones" between the axles, and one car parked over a slot-centre sensor changed the field by only ~3 µT steady-state. A large vehicle ~40 cm outside the space can disturb a sensor more than a small car parked over it.
Measured values
| Quantity | Value | Conditions | Source | ||
|---|---|---|---|---|---|
| Change vs distance, "typical automobile" | 1 ft 27 µT · 3 ft 7.5 µT · 5 ft 1.0 µT · 10 ft 0.2 µT | Honeywell Table 1 | AN218 | ||
| Under a car, 24 models, 2-D scan | peaks +33 to +50 µT at engine/axles; dead zones ≈ 0 under the car (read from plot) | two AMR sensors 30-40 cm apart | Markevicius et al. 2016 | ||
| Car parked, sensor near slot centre | transient ~+6.5 µT (axle passing); **steady \ | ΔB\ | ≈ 3 µT** (read from plot) | MAG3110, garage | Zhuang, UW thesis 2019 |
| Lateral falloff (raw units) | MPV: in-space 33 → 40 cm outside 15 → 80 cm outside 5; mini car: 10 → 4 → 2 | the MPV 40 cm outside exceeds the mini car in its own space | Sensors 19:2348 (2019) | ||
| Weakest point | between front and rear wheels; worst for SUVs, MPVs, pickups | same | |||
| Two-sensor gradient under a car | not reported anywhere | ||||
| EVs / aluminium bodies | no measured data found |
Accuracy in the field
| System | Accuracy |
|---|---|
| Magnetometer only, roadside (Sensors 2019) | 90.8 %; 99.6 % with radio-signal-strength fusion |
| Magnetometer only, garage, 3 months (UW) | 85.6 % (81.7-93.0 %); > 99.9 % with an added ultrasonic sensor |
| Omron "engine passage" algorithm | 100 % of 615 vehicles: latches on the engine passing over a sensor placed one-third from the front |
| Bosch PLS | 96 % over > 2,000 sensors; self-learns over the first 5-10 parkings |
Failure modes: dead zones between axles (worse with high clearance), big vehicles next door or in the lane, slow traffic, sun/shade temperature swings, building steel, cars entering at an angle.
Drift
MMC5603NJ: offset drift 0.2 mG/°C typical (1.0 max), removed by SET/RESET; sensitivity changes 5 % over -40…85 °C (derived: ~0.14 µT/°C on Cambridge's vertical field, ~3.5 µT for a 25 °C pavement swing; common-mode, so it largely cancels between two sensors). Berkeley's fix: an adaptive baseline updated only while the slot is empty and quiet.
Datasets
None is a labelled parked-car raw-field dataset (IEEE DataPort road vehicles, moving traffic; Colorado School of Mines logger, tiny; Geelong occupancy events, no field values). We have to collect our own.
What it means for Glee
- Thresholds: our model's 5-10 µT mid-sedan estimate is optimistic. A fixed 5 µT steady-state threshold will miss some cars (SUVs, pickups with mid-wheelbase over the sensor), and lowering it lets big neighbours in.
- Switch to event-based logic: trigger on the arrival transient (axle/engine passage is 2-10× the steady value) and/or the gradient; latch "occupied" with a low hold threshold (~1.5-2 µT); release on a departure transient or a return to within ~1 µT of baseline; freeze the baseline while occupied.
- The gradient is a good veto (adjacent cars, traffic, drift), not a required AND-condition: in dead zones both sensors see ~0.
- Under-car features vary over 30-100 cm: a 30-40 cm baseline or 3 sensors separate "under" from "beside" better than 21 cm. Or place the sensor one-third of the space from the front, where engines land.
- Log raw 3-axis data at ≥ 10 Hz with camera ground truth for 2-4 weeks, including SUVs, pickups and EVs.
Report: Provolone v1 bill of materials
Research agent, 2026-11-07. Distributor prices looked up today (some are cached listings); est = our estimate where no public price exists, to be replaced by quotes. US dollars, per unit, before sales tax.
Bottom line
- One radar: ~$112 / $78 / $44 per unit at 100 / 1,000 / 10,000 units before certification. With certification spread over the run: $212 / $88 / $45. Two radars: $133 / $97 / $52 before certification, $233 / $107 / $53 with it.
- Above Exp 8's assumption ($38-70 at 1k). Re-run Exp 8 with ~$65-90 at 1k.
- Biggest items at 1k: XM125 ($16.50), box ($11), cell + pulse capacitor ($9.40), stainless bands ($8), RAK3172 ($6.50), labour ($6). 10k is lower mainly through the bare A121, a moulded box and a contract manufacturer.
- Bare A121 vs XM125 makes no FCC difference. The XM125 has no grant of its own; both rely on the A121's limited single-modular approval (FCC ID 2AQ6KA1201). Either way we do host testing only (Part 15B plus a radiated-spurious check), not a new radar certification.
- Keep the RAK3172 even at 10k. Our own STM32WL radio saves ≤ ~$1/unit and costs ~$8-15k in radio certification.
Line items: one-radar unit
100 and 1k: XM125 + Hammond box. 10k: bare A121 on a 4-layer board + moulded box.
| Item | Part | 100 | 1k | 10k | Source / note |
|---|---|---|---|---|---|
| Radar | XM125 → bare A121 (10k) | 17.57 | 16.49 | 6.49 | DigiKey @100 / @500 / reel |
| Radar support | 24 MHz crystal, 6 caps | – | – | 0.10 | A121 DS Table 13 |
| 2nd radar's carrier + flex (2-radar only) | 1.50 | 1.00 | 0.60 | est | |
| LoRa | RAK3172-9-SM-NI | 6.97 | 6.50 | 5.50 | Rokland / RAK + duty / est |
| Antenna | Johanson 0915AT43A0026 | 0.85 | 0.41 | 0.35 | DigiKey |
| 1.8 V buck, load switch | TPS62840 | 0.90 | 0.60 | 0.45 | LCSC |
| Tamper | LIS2DH12 | 0.45 | 0.36 | 0.25 | LCSC |
| Passives, connector | 1.00 | 0.70 | 0.50 | est | |
| PCB ~70×50 mm | 2-layer → 4-layer (10k) | 0.60 | 0.25 | 0.25 | JLCPCB |
| SMT assembly | incl. setup, fixtures, X-ray | 2.50 | 0.70 | 0.50 | JLCPCB fees |
| Cell | EVE ER34615, 19 Ah | 9.00 | 6.00 | 4.50 | nkon; Alibaba; est |
| Pulse support | Eaton PHV-5R4V255-R 2.5 F | 4.50 | 3.40 | 2.80 | DigiKey |
| Cell holder, leads | 1.50 | 1.00 | 0.60 | est | |
| Enclosure | Hammond 1555F2GY → moulded PC ($30k tooling) | 14.22 | 11.00 | 7.00 | Mouser; est |
| Window + rain hood | 1.49 mm PC, bonded | 5.00 | 2.50 | 0.70 | est |
| Vent + desiccant | Gore VE80205 → generic | 4.05 | 2.65 | 0.60 | RS |
| Pole saddle | printed → moulded | 6.00 | 3.00 | 0.80 | est |
| Bands | 2× BAND-IT 3/4" | 13.12 | 8.00 | 5.00 | Zoro; est |
| Security screws, labels | 1.70 | 1.05 | 0.50 | est | |
| Contingency | 10 % of parts | 9.00 | 6.46 | 3.69 | |
| Hazmat freight | UN3090 | 1.50 | 0.80 | 0.40 | est |
| Labour + test | 15 / 8 / 4 min | 11.25 | 6.00 | 2.80 | $45/h; jig |
| Unit cost before certification | 111.67 | 77.87 | 43.78 | ||
| Certification | ~$10k ($6-18k) | 100.00 | 10.00 | 1.00 | |
| Unit cost, all-in | 211.67 | 87.87 | 44.78 |
Totals
| Configuration | 100 | 1k | 10k |
|---|---|---|---|
| 1 radar, before certification | $112 | $78 | $44 |
| 1 radar, all-in | $212 | $88 | $45 |
| 2 radars, before certification | $133 | $97 | $52 |
| 2 radars, all-in | $233 | $107 | $53 |
| Cheapest credible, 1 radar, before certification (bare A121, generic vent) | – | $67 (+$5 layout work) | ~$38-44 |
| Exp 8 assumption, 1 radar | $57-105 | $38-70 | $27-49 |
Choices
Radar. The bare A121 ($8.22 at 1k vs $16.49 for the XM125) saves ~$8 per radar. It needs:
- a 1.8 V rail that holds through ~75 mA steps (the XM125 needs 1.8 V too, so the buck is in both);
- a 24 MHz crystal (CL 9 pF, 8 pF load caps in Acconeer's example) and SPI up to 50 MHz;
- every GND pad on top-layer ground, no ground openings near λ (5 mm), no lens raising EIRP; the 0.5 mm-pitch fcCSP probably needs 4 layers;
- Acconeer's radar library (RSS) ported to the RAK3172's STM32WL (Cortex-M4, 64 KB RAM), replacing the XM125's ready-made I2C firmware.
Recommendation: XM125 for the first 100, bare A121 from 1k.
FCC. Both paths carry "Contains FCC ID: 2AQ6KA1201". Because the grant is limited, the host maker must follow Acconeer's integration instructions, run "a limited set of transmitter module verification testing, including radiated spurious emissions", test the host under Part 15B / SDoC, and evaluate co-location with LoRa (firmware can avoid simultaneous transmission).
LoRa.
| Option | Unit cost | Certification |
|---|---|---|
| RAK3172 | $5.99 at RAK (plus US import), $6.97 at Rokland | modular: host only |
| Bare STM32WLE5JC + 32 MHz TCXO + RF match | chip $15.55 at LCSC today (out of stock); ~$5-6 at 10k (est) + ~$1 of other parts | own Part 15.247 / RSS-247, ~$8-15k |
Cell and pulse support (Exp 7 draws ~1 Ah/yr, so any 17-19 Ah D cell is enough):
| Option | Price found | Note |
|---|---|---|
| EVE ER34615 (19 Ah) | €6.95 @120; ~$6 @1k MOQ (Alibaba) | cheapest credible; major maker |
| Fanso ER34615 | no public price | quote only; expect about EVE's price |
| Tadiran TL-5930/S (19 Ah) | $15.15 @500 (Master Electronics) | the reference cell; +$9 |
| Tadiran SL-2780 (19 Ah) | ~€17 (10-pack) | Tadiran's industrial line |
| Saft LS33600 (17 Ah) | $37.95 @100 (DigiKey marketplace); €16.6-19 (TME, a variant) | +$11-30 |
| Tadiran PulsesPlus TLP-93111 (cell + HLC) | $33.85 @400 | some variants discontinued (RS); HLC-1550A £25.72, sold only with Tadiran cells |
| EVE ER34615 + SPC1520 (ES341520) | quote only | EVE's cell + hybrid-capacitor pack |
| Low-ESR EDLC, 2.5 F / 5.4 V | €2.99 @1k | in the BOM: a 120 mA × 0.4 s burst drops it ~20 mV |
Avoid coin-type 0.47 F supercaps: their ESR is tens of ohms, useless for 120 mA pulses.
Mechanical. Hammond 1555 (IP68 PC, gasketed) fits a D cell and the board; fallbacks Takachi WP11-15 (~A$33) and Polycase WP-23 ($12.77 @250, IP65 only). Polycase pole kits ($28-37) cost more than our saddle + bands. Hose clamps (~$2) save ~$6 at 1k but come off with a screwdriver.
Uncertain: check before buying
- Certification cost. Published Part 15B figures: $800-5,500 (vendor guides). Our $6-18k adds 60 GHz radiated-spurious verification (few labs; up to 200 GHz), LoRa host checks, ISED. Get two lab quotes. At 100 units it is $60-180 per unit.
- Does the limited grant cover our own A121 layout? Ask Acconeer and a TCB. The XM125 carries the same "limited" condition.
- Box wall. If the Hammond wall is 3.0 ± 0.1 mm PC (second half-wave), the radar can look through it with no separate window. 2.25 mm is the worst case.
- XM125 supply. DigiKey: 0 in stock, 16-week lead time. A121: 10,698 in stock.
- Tariffs. RAK's store price excludes ~25 % US import duty; the boards and cells are also Chinese. Only the 10 % contingency covers this.
- Voltage. A fresh Li-SOCl2 cell (3.67 V) is just above the RAK3172's 3.6 V rating (STM32WL absolute max 3.9 V): common practice, but confirm. The XM125 (VIN max 3.45 V) must run from the 1.8 V rail, never straight from the cell.
- "est" prices at 10k (tooling, bands, saddle, cell) are judgement, not quotes.
Sources
- A121 at DigiKey: https://www.digikey.com/en/products/detail/acconeer-ab/A121-001-T-R/17883300
- XM125 at DigiKey: https://www.digikey.com/en/products/detail/acconeer-ab/XM125/17883267
- A121 datasheet v1.3 (§6.2 crystal, Table 13, §8.2 FCC): https://docs.sparkfun.com/SparkFun_Qwiic_Pulsed_Radar_Sensor_XM125/assets/component_documentation/A121%20datasheet.pdf
- XM125 datasheet v1.2 (§7.2 FCC): https://docs.sparkfun.com/SparkFun_Qwiic_Pulsed_Radar_Sensor_XM125/assets/component_documentation/XM125_datasheet-3133248.pdf
- Acconeer A121 electrical integration: https://docs.acconeer.com/en/latest/hw_integration/a121/electrical_integration.html
- RAK3172, RAK store: https://store.rakwireless.com/products/wisduo-lpwan-module-rak3172
- RAK3172, Rokland: https://store.rokland.com/products/rak-wireless-rak3172-evaluation-board-us915-sku-316045
- STM32WLE5JC at LCSC: https://www.lcsc.com/product-image/C2971285.html
- LIS2DH12 at LCSC: https://lcsc.com/product-detail/accelerometers_stmicroelectronics-lis2dh12tr_C110926.html
- TPS62840 at LCSC: https://lcsc.com/product-detail/DC-DC-Converters_Texas-Instruments-TPS62840DLCR_C2071859.html
- Johanson 0915AT43A0026: https://www.digikey.com.mx/en/products/detail/johanson-technology-inc/0915AT43A0026001E/2392134
- JLCPCB assembly fees: https://jlcpcb.com/help/article/pcb-assembly-price
- JLCPCB 4-layer price per m²: https://jlcpcb.com/blog/special-discount-on-quality-4-layers-pcbs
- EVE ER34615 at nkon: https://www.nkon.nl/en/eve-er34615-d-formaat-lithium-batterij-3-6v.html
- ER34615 on Alibaba: https://www.alibaba.com/product-detail/3-6V-Lithium-D-Cell-Prices_1600669359651.html
- Tadiran TL-5930/S at Master Electronics: https://masterelectronics.com/en/tadiran-batteries/tl5930s-45573065.html
- Tadiran SL-2780 at 123accu: https://www.123accu.nl/Tadiran-Aanbieding-10-x-Tadiran-SL-2780-SL-780-D-batterij-3-6V-19000-mAh-Li-SOCl2-i49287.html
- Saft LS33600, prices: https://www.findchips.com/search/LS336 and https://ie.rs-online.com/web/p/d-batteries/2019466
- Tadiran PulsesPlus TLP-93111: https://www.onlinecomponents.com/en/tadiran-batteries/tlp93111asm-56151968.html and RS status: https://uk.rs-online.com/web/p/speciality-size-batteries/1946717
- Tadiran HLC-1550A at RS: https://uk.rs-online.com/web/p/speciality-size-batteries/0559961
- EVE SPC packs (Endrich): https://www.endrich.com/en/product-categories/accus-batteries/lithium-ion-cells/super-pulse-cap
- Eaton PHV-5R4V255-R: https://www.digikey.ie/en/products/detail/eaton-electronics-division/PHV-5R4V255-R/3878055
- Hammond 1555F2GY, prices: https://findchips.com/search/1555F2GY
- Takachi WP11-15-4C: https://au.element14.com/takachi/wp11-15-4c/outdoor-waterproof-enclosure-abs/dp/2472097
- Polycase WP-23: https://www.polycase.com/wp-23
- Gore VE80205 vent at RS: https://uk.rs-online.com/web/p/enclosure-ventilation/2879532
- BAND-IT 3/4" clamps at Zoro: https://www.zoro.com/band-it-band-clamp-34w-slotted-lock-pk25-ul2139/i/G808229693/
- FCC certification costs (vendor guides): https://markready.pages.dev/guides/fcc-certification-cost and https://markready.pages.dev/learn/fcc-certification-cost
Report: parts for a meter-pole radar ("Provolone")
Research agent, 2026-11-07, from datasheets and vendor/municipal documents. (unverified) marks secondary sources or inferences.
Radar: Acconeer A121 / XM125
| Parameter | Value | Source |
|---|---|---|
| Frequency / EIRP | 57-64 GHz, 11 dBm | A121 datasheet |
| Beam (HPBW, simulated) | 65° H-plane, 53° E-plane | A121 DS Table 8 |
| Range resolution | 43 mm (profile 1) to 346 mm (profile 5) | A121 DS Table 10 |
| Current while sweeping | ~74 mA at 1.8 V (only during the sweep); hibernate 11 µA; off ~0.4 µA | A121 DS Table 7 |
| XM125 average power (distance detector, 2.75 m) | 0.04 mW at 0.1 Hz (~22 µA), 0.33 mW at 1 Hz (~183 µA); module idle 17.7 µA hibernate / 6.9 µA off | XM125 DS Table 4 |
| Acconeer parking app | "Ground" preset 0.075 mA; "Pole" preset 1.075 mA; recommends ~20° down-tilt on poles; signature-based, rejects passers-by | Parking app docs |
| Supply / temperature | 1.8 V core; -40…+85 °C | XM125 DS |
| Module | 18.6 × 15 mm LGA with an STM32L431; ~$22 (DigiKey); SparkFun Qwiic board $49.95 | |
| I2C (distance-detector firmware) | address 0x52; 16-bit registers, 32-bit values; 0x10 result, 0x11-0x1A peak distances (mm), 0x1B-0x24 strengths, 0x40-0x4C config (start 250 mm, end 3000 mm, profile, threshold), 0x100 command (1 = apply config + calibrate, 2 = measure) | SparkFun library |
| Radome | thickness m·λ/2 in the material: polycarbonate ~1.5 mm or 3.0 mm (avoid 2.25 mm); ~2.5-3.5 mm from the PCB | Acconeer radome guide |
| FCC | A121 has a limited single-modular approval (FCC ID 2AQ6KA1201, §15.255 field-disturbance sensor); host needs the label, its own Part 15B test and co-location checks with LoRa | A121 DS §8.2 |
Existing meter / pole sensors
| Vendor | Sensing | Accuracy / issues |
|---|---|---|
| IPS "dome" (on the meter) | stereoscopic + magnetometer | "up to 99 %"†; Burlington VT pole pilot: $250 + $65/month for 18 units, delayed by technical problems |
| CivicSmart (Milwaukee) | radar under the meter | $245; "> 99 %"†, results not published |
| Duncan patent US10043337 | RF sensor in the meter cap, aimable | the patent says the metal collar "might result in vehicle detection errors"; aim must be set per space; adjacent spaces must be excluded |
| Boston Seaport 2017 (591 meters) | meter-mounted (vendor not named) | "many problems with the data's accuracy", "significant staff time to calibrate"; no technical cause given: calibration and ground-truth labour |
Cambridge meters and poles
- Coin + PayByPhone/Passport meters, no card readers, no modems (City): Provolone can't piggyback on meter connectivity.
- Model, single vs twin heads, post position: not found; needs a Bow Street site survey.
- Regional standard (Boston detail A102): 2" Schedule 40 pipe (60.3 mm OD), 0.61 m from the curb face. A band at 0.6-0.85 m fits on the bare post below the head; the car's side is then ~0.7-1.2 m away.
Battery
| Cell | Capacity | Pulse | Temperature |
|---|---|---|---|
| Saft LS33600 (D, bobbin Li-SOCl2) | 17 Ah (61 Wh) | ~400 mA × 0.1 s at 20 °C; "a capacitor may be recommended" | -60…+85 °C |
| Saft LSP 33600-20F | same + 20 F Li-ion capacitor | 1 A for 3 s | -20…+70 °C |
RAK3172: 87 mA at 20 dBm (datasheet), users measure 115-148 mA at 20-22 dBm; 22 dBm needs ≥ 3.3 V. Use a pulse capacitor and 20 dBm max. Budget: radar at 1 Hz ≈ 3.4 Wh/yr + ~60 uplinks/day ≈ 1 Wh/yr → well over 5 years on one D-cell (~40 usable Wh).
Mounting
Stainless band clamps (BAND-IT, removable only by cutting: the street-furniture norm), Polycase pole-mount kits ($28-37), pin-in Torx screws (~$0.20-0.40 each), IP67 polycarbonate enclosure, tilt/accelerometer tamper alarm.
Recommendations
- v0: XM125 with Acconeer's I2C distance-detector firmware; range gate ~0.4-2.0 m; profile 3-4; poll at 0.2-1 Hz with the parking app's stationarity logic on the host; aim into the stall (~20° down, 20-40° yaw per the agent; our Exp 3 says 50-65°); 1.5 or 3.0 mm PC window; LS33600 + pulse capacitor; log raw distance and strength.
- v1: site survey first (meter model, heads, post position, OD); IP67 enclosure on a stainless band; tamper alarm; FCC label + Part 15B test; city license.
- Avoid Boston's failure mode: automatic per-pole calibration (learn the empty space), a stored pole-to-space map, and a 2-4 week video ground-truth check with published accuracy.
Report: the radar in rain, snow, salt and dirt
Research agent, 2026-11-07. Window losses are our own normal-incidence multilayer calculation at 60 GHz (1.5 mm polycarbonate window + one layer; water from the Liebe 1991 model at 0 °C; snow, slush, mud and leaves by a mixing rule, ±30 %). Check: it gives ~20 dB per mm of water, vs 18 dB/mm measured at 24 GHz (Suzuki 1979). † vendor claim.
Rule of thumb: range scales with loss^-1/4, so every 12 dB of two-way loss halves the range. Our real margin needs Exp 4; working guess: <6 dB harmless, 10-20 dB marginal on the pole, >25 dB blind.
1. What blinds the sensor
On the window (two-way loss, plus how much power the layer reflects straight back):
| Layer on a 1.5 mm PC window | Two-way loss | Reflected | Verdict |
|---|---|---|---|
| Clean window | 0.4 dB | ~0 % | — |
| Water film 0.05 mm (mist, condensation) | 6 dB | 10 % | noticeable |
| Water 0.1 / 0.2 mm | 10 / 16 dB | 22 / 39 % | marginal |
| Water 0.5 / 1 / 2 mm | 27 / 47 / 87 dB | ~40 % | blind |
| Salt brine | same as water ±1 dB | same | blind at ≥0.5 mm (salt barely matters at 60 GHz) |
| Ice 1-10 mm | 1-3 dB | ≤25 % | minor (low-loss; detunes the window). Melting ice = water |
| Dry snow 1-10 cm | 0.5-2 dB + scattering | ~0 | minor; Acconeer: "snow and ice are transparent". Scattering grows with grain size (Hallikainen 1987) |
| Wet snow, 2-5 % liquid water, 1 cm / 3 cm | 7-16 dB / 18-45 dB | 3 % | blind at a few cm |
| Slush (~55 % water), 2 mm | 44 dB | 22 % | blind |
| Wet mud 0.5 / 1 / 2 mm | 14 / 21 / 38 dB | 20-37 % | blind at ≥1 mm |
| Dry dust 0.5-2 mm | 3-6 dB | ~15 % | minor |
| Fresh or wet leaf (0.25 mm); wet leaf plus a 0.2 mm film | 12 dB; 22 dB | 30 % | marginal → blind |
| Dry leaf | ~2 dB | 3 % | minor |
In the air, over the full 6 m round trip of a 3 m gate:
| Condition | Specific attenuation | Over 6 m |
|---|---|---|
| Rain 25 / 100 mm/h | 9.5 / 27 dB/km (ITU-R P.838-3) | 0.06 / 0.16 dB |
| Oxygen (the 60 GHz absorption line) | 15 dB/km (ITU-R P.676) | 0.09 dB |
| Heavy fog, 0.5 g/m³ | 1.2 dB/km (ITU-R P.840) | <0.01 dB |
| Snowfall, 5-10 mm/h water equivalent | 0.8-2.3 dB/km (Gunn-East model) | <0.02 dB |
| Rain backscatter, 25 mm/h, 10 cm range cell at 2 m | about -25 dBsm (calc, Rayleigh upper bound) | far below a pedestrian (about -5 to 0 dBsm) and a car |
Bottom line: the air is negligible; the window is everything. Liquid water blinds (a 0.3-0.5 mm film, wet snow, slush, brine, wet mud); ice, dry snow, dust and dry leaves don't. A blinding layer also reflects 20-40 % of the power straight back: an easy signature to spot.
2. Window (radome) design
| Item | Number | Source |
|---|---|---|
| Thickness | m·λ/2 in the material. Two-way loss at its worst point across 57-64 GHz: PC 1.49 mm: 0.5 dB (±0.1 mm: ≤0.9 dB); PC 3.0 mm: 1.2 dB; PC 2.25 mm (3λ/4): 2.6 dB and 21 % reflected. Avoid | Acconeer; calc |
| Other materials | PMMA 1.55 mm; ABS ~1.52 mm (εr varies 2.0-3.5 by grade, so measure it); PP 1.69 mm (lowest loss) | Acconeer εr table; TI loss tangents (PC 0.012, PMMA 0.009, PE 0.0003) |
| Distance from the board | 2.5 mm (Acconeer summary) to 3.0-3.5 mm (≈λ0/2, least ripple) from the PCB ground plane. TI: n·λ0/2 | Acconeer; TI SWRA705 |
| Shape | flat is fine. A curved radome (R 20-50 mm) lowers sidelobes and sheds water | Acconeer |
| Don'ts | metallic paint, potting over the antenna, bubbles or uneven walls. A ~1 µm protective coating is fine | TI |
| Water | "design the product so water runs off and doesn't pool" | Acconeer developer |
| Hydrophobic coating | A superhydrophobic spray (contact angle 165°) cut wet-radome loss from 3.7-5.2 dB to 0.05-0.28 dB at 24-40 GHz (5G bands n257-n261). But outdoors it stayed superhydrophobic only ~40 days; after 670 days drops needed a 30° slope to slide | Wei 2023 |
A coating helps a tilted pole window (drops roll off), not a horizontal in-road one (drops sit; tyres and plows abrade it). Treat it as a consumable.
3. How commercial radar + magnetometer sensors cope
- Acconeer: its parking app has optional obstruction detection (watches 3-5 cm out, inside the direct leakage, for change from a clean calibration; recalibrate after 20 °C). Its developer guide says switch to the magnetometer when rainwater covers the device and flag it for cleaning.
- Bosch (patent US10656299): the magnetometer decides; radar only when its data aren't "clear enough" (SNR). IR and ultrasound fail under snow or dirt. No covered-radar logic disclosed.
- Option SPS200 (60 GHz pulsed radar, 30-600 mm): "radar and magnetic detection enable operation under … sensor obstruction e.g. leaves, snow"†; no detail.
- Libelium: radar "not affected by dirt, dust, rain"†. Section 1 says otherwise above ~0.2 mm.
- Fleximodo: 99.96 %†; nothing published on covered sensors.
- Winter accuracy: no independent figure found. Q-Free's 5-month Nova Scotia winter pilot ">98 %"† (method not stated); NYC's 2012 Bronx winter pilot never published results.
Pattern: magnetometer always on, radar confirms; when the radar can't see, the magnetometer decides. Nobody publishes an "unknown" state.
4. Risks specific to the pole (Provolone)
| Risk | What the A121 sees | Handling |
|---|---|---|
| Pedestrian or cyclist | weak (~-5 to 0 dBsm), moving, seconds | parking app: 60 % of 5 queued signatures must agree; pole preset polls faster to ride through passers-by |
| Person leaning on post or box | a strong return at 0-0.3 m; the body hides everything behind | NEAR START EDGE or peaks <0.3 m → "occluded, hold" |
| Plow windrow between curb and car | fresh snow see-through; plowed snow is dense and wet → wide static near return, car hidden | mount at 1.2 m (Exp 3); a return nearer than the learned car distance lasting hours = "blocked by snow" |
| Snow piled in an empty space | a static return at car distance that grows slowly | count only fast transitions (<~30 s) as arrivals |
| Rain, road spray, slush thrown by plows | air: nil. Window: a 2 mm slush splash costs 44 dB | rain hood, tilt, height, blocked detection |
| Curb and ground multipath | static returns from the curb face and pavement; ghost peaks just beyond the car | learn the empty-space background. Only presence matters, not exact range. Tilt ~20° down (Acconeer) |
Detector settings (Acconeer docs; I2C register map): CFAR threshold (default, 0x46) adapts per sweep but is one-sided near the start; RECORDED learns static clutter but must be re-recorded when the scene changes (e.g. a snowbank). Close-range leakage cancellation (0x43) is on by default in the I2C firmware, yet only applies when the range starts below ~20 cm and holds for ±15 °C; without it CFAR reaches ~6-7 cm. Reflector shape 0x4B: GENERIC (PLANAR is for liquids). All 10 peaks are returned regardless of sorting; register 0x10 carries NEAR START EDGE, CALIBRATION NEEDED and a relative temperature.
5. Recommendations
Hardware
- 1.5 mm UV-stabilised PC window (±0.1 mm), 2.5-3.5 mm from the PCB; never ~2.25 mm. (Acconeer; calc)
- Pole: tilt ~20° down under a short rain hood, plus a superhydrophobic coating renewed yearly. (Acconeer; Wei 2023)
- Pole height 1.2 m, not 0.85 m: above snowbanks and most spray. (Exp 3; slush row)
- Vent membrane + desiccant: 0.05 mm of condensation inside costs ~6 dB. (calc)
- In-road: expect the radar blind whenever water stands on the sheet (≥0.3 mm); the magnetometer must decide then. (calc; Acconeer; Bosch)
Firmware
- Detect "blocked": (a) custom XM125 firmware: Acconeer's obstruction detection; (b) stock I2C firmware: a second config starting ~60-70 mm (CFAR, leakage cancellation off) where
NEAR START EDGEor a strong peak <0.2 m = covered; (c) background canary: if the empty scene's learned static peaks (curb, pavement) all drop >10 dB at once with no new peak, the window is blind. (Acconeer parking app; I2C guide; TI "RF visibility obscured" diagnostics) - Fallback: in-road, blocked → the magnetometer decides and the uplink says "radar blind" (reuse the "radar decided" flag). Pole, blocked → report unknown and hold the last state, never "free". Blocked >6 h → maintenance alert. (Acconeer developer; TI)
- Car config:
0x43 = 0(gate starts ≥0.25 m anyway), CFAR, sensitivity 500, GENERIC, max profile 3-4; read all 10 peaks; keep the empty-scene background on our MCU. (Acconeer; I2C guide) - Recalibrate on
CALIBRATION NEEDEDor a >15 °C change, only when the scene looks clean and empty (magnetometer quiet, canary normal), or snow gets baked into the baseline. (Distance-detector docs) - Change occupancy only on fast, stable changes (a car-distance peak appearing within ~30 s, held ≥3 readings). Slow growth = snow → unknown; near moving peaks = people → hold. (Parking-app logic, adapted)
- Exp 4 add-on: weighed spray-bottle films to measure our real dB margin against this table; log background-peak strength daily against weather.
Sources
- Acconeer, Radome and mechanical design (A121): https://docs.acconeer.com/en/latest/hw_integration/a121/radome_and_mechanical_design.html
- Acconeer, Distance detector: https://docs.acconeer.com/en/latest/detectors/a121/distance_detector.html
- Acconeer, Parking reference app (obstruction detection, presets): https://docs.acconeer.com/en/latest/applications/a121/parking.html
- Acconeer Developer, Parking space occupancy (water, snow, obstruction, magnetometer fallback): https://developer.acconeer.com/?p=21587
- Acconeer, I2C Distance Detector User Guide (register map): https://docs.sparkfun.com/SparkFun_Qwiic_Pulsed_Radar_Sensor_XM125/assets/component_documentation/I2C%20Distance%20Detector%20User%20Guide.pdf
- Acconeer, Distance detector FAQ (CFAR ~6-7 cm without leakage cancellation): https://support.acconeer.com/support/solutions/articles/25000034271-a121-distance-detector-faq
- Texas Instruments SWRA705, mmWave Radar Radome Design Guide: https://www.ti.com/lit/swra705
- Wei et al. 2023, Durable superhydrophobic coatings for prevention of rain attenuation of 5G/weather radomes (Nature Communications): https://pmc.ncbi.nlm.nih.gov/articles/PMC10198997/
- Suzuki et al. 1979, Countermeasures against snow accretion and icing on radomes (24 GHz, 18 dB/mm): https://trid.trb.org/View/86433
- Sato et al. 2024, Wet snow accretion on a 79 GHz radar (JSAE): https://tech.jsae.or.jp/paperinfo/en/content/jt202405.27/
- Hallikainen et al. 1987, Extinction behavior of dry snow in the 18-90 GHz range: https://doi.org/10.1109/TGRS.1987.289743
- Liebe, Hufford, Manabe 1991, Permittivity of water below 1 THz: https://doi.org/10.1007/BF01008897
- ITU-R P.838-3 (rain): https://www.itu.int/rec/R-REC-P.838-3-200503-I/en ; P.676 (gases): https://www.itu.int/rec/R-REC-P.676/en ; P.840 (fog): https://www.itu.int/rec/R-REC-P.840/en ; computed with the
iturpackage: https://itu-rpy.readthedocs.io/ - Gunn-East snowfall model (MathWorks
snowpl): https://www.mathworks.com/help/radar/ref/snowpl.html - Bosch patent US10656299B2: https://patents.google.com/patent/US10656299B2/en
- Option SPS200 datasheet: https://www.option.com/wp-content/uploads/2024/11/Option-ParkingSensor-SPS200.pdf
- Libelium radar parking (eeNews, 2019): https://www.eenewseurope.com/en/smart-radar-parking/
- Fleximodo, How do parking sensors work: https://www.parking.net/parking-news/fleximodo/how-do-parking-sensors-work
- Q-Free ParQSense winter pilot: https://www.parking.net/parking-news/q-free-asa/announces-successful-parqsense-pilot
- NYC Bronx sensor pilot (2012): https://www.govtech.com/transportation/new-york-city-testing-parking-sensors.html
- Pedestrian RCS at 77 GHz (Polarimetric RCS of pedestrians): https://arxiv.org/pdf/1910.13706
Report: every way to detect a parked car
Research agent, 2026-11-07, from datasheets, papers and city reports. † vendor claim, not independently tested. ‡ estimate or not confirmed in the primary document. "SFpark 2014" figures via Table V of arXiv 1902.07401.
| Method | Accuracy in parking use | Avg power at ~3 s | Unit cost @1k | Mounting | Weather risk | Notes |
|---|---|---|---|---|---|---|
| Magnetometer, single | 81 % (StreetSmart, SFpark 2014); 86 % SFpark (Roman et al.); F1 0.93 over 13 months outdoors (Huang, PerCom'17); 99 % in a campus lot (Dartmouth); 98 % Urbiotica† | ~2-10 µA‡ | sensor ~$1; finished pucks $245-299 | in-road / surface | very low; works under snow | a parked car changed the field ~27-37 µT in one AMR study (KSC); failure modes: cars next door, rail/power-line interference, high-clearance vans, aluminium EVs, drift |
| Magnetometer gradiometer (Glee) | no published parking figure | same | ~2× sensor | same | very low | Huang used two magnetometers 95.5 mm apart to tell arrivals from departures |
| 60 GHz pulsed coherent radar (Acconeer A121) | radar-only Sensys MicroRadar 98 % (SFpark 2014) | 0.2 mW at 0.1 Hz, 0.23 mW at 1 Hz → ~30-60 µA at 3 s‡; < 1 µA if it only wakes on a magnetometer change‡ | A121 ~$9-13 (DigiKey) | in-road (up), curb, pole | water film / snow on the window: 2-4 dB per 0.5 mm water, 5-20 dB snow/ice (77 GHz figures) | measures distance to stationary objects (30-600 mm in Option SPS200); chip ~5×5 mm: fits a thin sheet |
| 60 GHz Doppler (Infineon BGT60LTR11) | not suitable alone | 2.3 mW min | ~$5-10‡ | any | as above | motion only: can't see a car that's already parked |
| 24 / 77 GHz radar | mag+radar Fybr 78 % (SFpark 2014) | mA-level‡ | $10-30‡ | pole / overhead | as above | overkill for one space |
| Optical ToF (VL53L1X) | IR (CPT) 92 % (SFpark 2014) | ~25 µA at 3 s‡ | $2.5-2.9 | in-road / curb | high: dirt, snow, leaves, sunlight | Urbiotica: a dirty IR sensor reports "occupied" |
| Passive light (shadow) | low alone; light + mag + RSSI fusion F1 0.98 (Huang) | ~1 µA | < $1 | in-road | clouds/trees | good wake-up trigger |
| Ultrasonic | up to 99.9 %†, mostly indoor | mA per ping‡ | $20-100 | overhead / curb | wind, rain, snow, temperature | garages |
| Camera (pole / overhead) | Parquery 99 %†; Cysen 77 % (SFpark); Bellevue best vendor ~83 % | watts | ~$32 per space (MIT est.) | light pole / building | night, glare, snow, occlusion by trucks | Cambridge Surveillance Ordinance; Flock cameras shut off in 2025 |
| Inductive loop / piezo | high for moving traffic | mains | ~$350 per loop (1980s $) | saw-cut | pavement damage | not practical per space |
| RF RSSI (LoRa/BLE) | LoRa RSSI 96 % (HMM) / 97 % (NN) (Dujić Rodić); Libelium mag + RSSI 99 %† | ~0 extra | $0 | any | rain, people, multipath | separates own car from neighbours only when baseline RSSI > -90 dBm (Huang) |
| Wi-Fi sensing / acoustic | research stage, not per space | not pursued |
Commercial products
| Product | Uses | Accuracy / price |
|---|---|---|
| Bosch Parking Lot Sensor | magnetometer + radar | 96 %†; 5 yr† (integrator expects 2-3) |
| Libelium | mag → mag + cloud RSSI (2018) → mag + radar (2019) | 99 %†; radar added against interference, neighbours, double-parked cars |
| Option Spot-On | SPS100 → SPS200 adds 60 GHz pulsed coherent radar | 10 yr on 8100 mAh at ≤ 50 events/day† |
| Fleximodo | mag + radar | ~95 % mag-only vs 99.96 % mag + radar† |
| Nedap SENSIT | IR + mag | "close to 100 %"† |
| Urbiotica | dropped mag + IR for mag-only | 98 %†; IR fails when dirty |
| PNI PlacePod | RM3100 magnetometer | $290-299 retail |
| Sensys | magnetometer, MicroRadar variant | MicroRadar 98 % (SFpark) |
| Fybr | mag + radar | 78 % (SFpark) |
| Cleverciti | overhead optical | up to 100 spaces per unit; Redwood City $904k + ~$18k/month |
| IPS (meter / pole mount) | stereoscopic + magnetometer | Santa Ana: $250/sensor + $45 install + $3.50/space/month |
| KKM LAS7 | geomagnetic + microwave radar | no datasheet found |
City prices: NYC $250 per sensor (2 per space); Milwaukee $245; Burlington VT $250.
Takeaways
- The industry moved from magnetometer-only to magnetometer + radar (Bosch, Libelium, Option, Fleximodo, KKM): the magnetometer watches at µA, the radar fires only on a change to confirm. Urbiotica is the exception (mag-only, 98 %†).
- Independent long-term data puts magnetometer-only at ~81-93 %, not 98-99 %. Glee's target should be a ground-truthed, multi-month measurement on Bow Street.
- Best upgrade for cheese: a 60 GHz pulsed coherent radar (A121, ~$10, ~5×5 mm) that only confirms magnetometer events (< 1 µA extra). Avoid Doppler-only parts. Risk: slush/water on the window (hydrophobic window; ignore returns closer than ~5 cm).
- RF attenuation is free: every TTN uplink carries RSSI/SNR; LoRa RSSI alone reached 96-97 %. Log it now (works best when baseline RSSI > -90 dBm).
- ToF/IR get dirty in the road; better on a curb or pole. Cameras: cheapest per space but a poor fit for Cambridge (ordinance, power, 77-83 % in curb pilots).
- Not every space may need a sensor: DDOT found ~50 % sensor coverage fused with meter-payment data still predicted block-level occupancy (DDOT).
Report: can a stuck-on sheet stay in over winter?
Research agent, 2026-11-07. Tests H8's "remove every winter" assumption. [estimate] marks our own judgment, not a published figure.
Short answer
Not "always remove", but "remove unless the sheet is built like a snowplowable marker and sits on the even side". No one publishes winter loss rates for glued-on street parking sensors, and every snowy-city deployment we found is in-ground. The analogues (road markers, rubber speed humps, marking tape) show that height, edge angle, hardness and anchoring decide survival, plus whether a steel blade ever reaches that pavement. Today's 7 mm polymer sheet on butyl has a casting's height with tape's strength: the worst mix. A lower, ramped sheet in a space the plow rarely scrapes could plausibly stay in, losing perhaps 5-25 % per winter [estimate].
1. Surface-mounted parking sensors in snow
| Vendor / source | What it says |
|---|---|
| Urbiotica | Surface "not ideal … where snow plows are used regularly"; Burlington (Ontario) went buried: "a surface one would be damaged" |
| Nedap SENSIT | Surface mount is for indoor/rooftop parks; only the flush mount is snowplough resistant |
| Bosch PLS | Glued (2K epoxy/PU), 30.5 mm tall, "resistant to … snowplough", but footnote: plow ≤ 5.5 t, flexible rubber flap, ≤ 20 km/h: a parking-lot plow, not a city steel blade |
| Fleximodo | Photo of a sensor "seriously damaged by careless snow-plough drivers"; brief the drivers |
| Libelium | Bury it "to allow for snowplow operation in winter" |
| Hansab ParkSol | Claims plowing is fine (no data) |
| Moscow (1,000 Nedap), Montreal, Glens Falls, Trondheim | All in-ground |
| NYC Bronx, Burlington VT pilots | Promised winter tests; no results published |
Bottom line: no published plow-loss rate for surface parking sensors; the one plow-rated surface product is rated only against light rubber-edged plows.
2. What survives plows: markers, markings, humps
| Object | Height | Result |
|---|---|---|
| Snowplowable marker casting (Stimsonite 96 / 96LP / 101) | 10.4 mm / 6.4 mm | Hardened nodular iron (51-55 RC), ramps 6° / 4° (a later patent uses 3.5°), keels epoxied into saw cuts. Texas caps height at 25 mm |
| Same, in service | – | NJ: ≤ 9.5 % of reflectors replaced in year 1, no castings lost. Illinois: > 40 % of lenses gone in 2 yr. Kentucky: 11 % missing on old pavement, 30 % on poor asphalt. NCDOT banned metal castings (2021): loose ones become projectiles |
| Ordinary raised markers | 10-20 mm | Not used where plows run; some states dropped raised markers entirely |
| Recessed marker in a groove | groove 9.4 mm deep (25 mm at lens) | Kentucky: < 1 % of 1,850 lenses lost after one light winter |
| Surface thermoplastic | ~3.2 mm | Survives but chips; plow damage is "the single most deleterious factor" (Vermont) |
| Markings, surface vs grooved | 2-4 mm | Indiana: grooved tape > 10 winters, grooved thermoplastic ~5, paint 1-2. Virginia moved waffle tape to inlay after plow damage |
| Bolted rubber speed cushions | ~50-75 mm | Philadelphia: ~140 (≈10 %) damaged in one winter (blade "pulls from the lip … shears the bolt"). Edmonton: "most" damaged; Hamilton quit; Mansfield, Worcester remove them each winter |
Lessons: a blade catches a lip, so survivors ramp ≤ 6° all round; even 6-10 mm needs hardened metal keyed into the pavement; 2-4 mm fused material survives but wears; a shallow groove protects what can't be made strong.
3. How Cambridge (and Boston) actually plow
- DPW plows arteries during storms and "clears all streets … once a storm has ended"; it may "widen streets" but can't haul from every street.
- Without a ban, cars stay put; DPW warns plows will "push snow back … onto your parked car". The blade runs at the lane edge and reaches bare parking-lane pavement only at empty spaces or during later widening.
- Snow Emergency streets (Bow St odd side): cars towed, plows to the curb. Worst case.
- "Objects left in on-street parking spaces may be removed" (space-saver rule).
- Sweeping: monthly mechanical brooms April-December, none January-March. Brine on thoroughfares.
- Boston: main roads first; side streets largely dug out by residents; in big winters legally parked cars were moved to haul snow.
- No Cambridge rule found specifically on devices fixed to the road; DPW/TPT consent still needed.
Implication: on the even side the sheet spends most plow events under a parked car or a windrow. The risk is an empty space at the first pass or during widening, plus shovels and ice chippers.
4. Adhesives in cold, salt and freeze-thaw
| Adhesive | Min. install temp | Notes |
|---|---|---|
| Butyl pad (H.B. Fuller ST-3001) | -7 °C | "often outlasts the marker" |
| Butyl pad (Uline / Pexco) | pavement 21 °C or torch-warm; prime below 10 °C | up to 2 h to adhere |
| Hot-melt bitumen (TxDOT DMS-6130) | 4 °C | polymer-modified "flexible" type exists |
| 2-part epoxy | 10 °C typical (E-Bond 4 °C) | ~13 h set at 10 °C |
| Marking tape (ASTM D4592) | 10 °C | – |
| Bosch PLS 2K PU | per maker | > 12 h cure; pressure-wash and flame-dry first |
Nevada DOT dropped cold-applied adhesives as unreliable. Freeze-thaw failure starts at the edge: water under a lifted edge freezes, wedges it open, and gives the blade a lip. Practical: dry pavement measured ≥ 10 °C, torch-warm, roll hard, seal the perimeter: the next few sunny November afternoons. December-March is outside almost every spec.
5. When could a sheet stay in?
| Condition | Target | Why |
|---|---|---|
| Side | even only | No tow, no curb-to-curb blading |
| Height | ≤ 6 mm, ideally ≤ 5 | Matches the low-profile casting (6.4 mm) |
| Edge | ramp ≤ 6°, ideally ≤ 4°, all round | 6 mm needs an 86 mm ramp at 4° (57 mm at 6°); or dome the whole sheet |
| Skin | hard, slick top (UHMW or thin steel), no lip | Blade rides over, doesn't bite |
| Bond | full-area butyl/bitumen, sealed edge, ≥ 10 °C | Stops ice-jacking |
| Placement | mid-space, away from the lane edge | Under cars and windrow |
| Best (needs permit) | flush in a 5-7 mm milled pocket | Like recessed markers (< 1 %); a DPW street opening |
Loss per winter (gone or lifted) [estimate], anchored on ~10 %/yr casting and speed-cushion losses:
| Design / location | Loss per winter |
|---|---|
| 7 mm, square edge, odd (tow-route) side | 50-90 % |
| 7 mm, square edge, even side | 20-50 % |
| ≤ 6 mm, ≤ 6° ramp, sealed, even side | 5-25 % |
| Flush in a milled pocket | < 5 % |
A dislodged sheet is also debris/liability.
6. A cheap winter field test (2-3 dummies, even side)
Install at pavement ≥ 10 °C with TPT/DPW told (ask them to brief the plow contractor). Dummies match real footprint, weight and adhesive; vary the edge: square, 6° ramp, 4° ramp/dome. Paint reference marks beside each. After each plowable storm (log date, snowfall) and monthly, record:
- Present / moved / gone (fixed-spot photo, offset from paint marks).
- Edge lift: feeler gauge at 8 points, % of perimeter debonded.
- Blade evidence: scrapes, gouges, chipped ramp.
- Ice under the edge on freeze-thaw mornings.
- Space occupied during plowing? One dummy with an accelerometer on the LoRa link logs strikes and heartbeats.
- Install pavement temperature; adhesive tack in January.
Honest reading: 0 of 3 lost only bounds loss below ~63 % (95 %). The test finds failure modes; it can't measure a 10 % rate (that needs ~30 sheet-winters). Rule: any loss or > 25 % edge lift on a ramped sheet by March means removal stays policy; clean survival through ≥ 3 plowable storms justifies a 10-20 sheet trial next winter.
Sources
- https://www.parking-mobility.org/news/urbiotica-launches-u-spot-iot-surface/
- https://www.parking.net/parking-news/urbiotica/magnetic-parking-sensors
- https://urbiotica.com/us/?p=87627
- https://manualmachine.com/nedapnv/sensitsm/11369043-users-guide
- https://lora-alliance.org/wp-content/uploads/2019/07/parking-lot-sensor-datasheet.pdf
- https://www.manualslib.com/manual/3028818/Bosch-Pls.html?page=6
- https://spacewell.atlassian.net/wiki/x/kc0H
- https://gospacetech.atlassian.net/wiki/spaces/Doc4cus/pages/418709515/Fleximodo+Disclaimer
- https://itsinternational.com/products/libeliums-surface-mounted-sensor-provides-long-range-solution
- https://www.hansab.com/en/node/1220
- https://www.parking.net/parking-showcases/nedap-identification-systems/moscow-sensit
- https://www.govtech.com/transportation/new-york-city-testing-parking-sensors.html
- https://news.yahoo.com/why-burlington-added-sensors-street-100041956.html
- https://www.parking.net/parking-news/q-free-asa/new-smart-parking-sensor-pilot
- https://patents.google.com/patent/US5257875A/en
- https://cpcsigns.com/stimsonite-model-101-high-profile-snowplow-marker-castings-box-16/
- https://ftp.dot.state.tx.us/pub/txdot-info/cst/DMS/4000_series/archives/4210-0804.pdf
- https://connect.ncdot.gov/projects/research/RNAProjDocs/RP2020-59_Final%20Report.pdf
- https://www.roadsbridges.com/winter-maintenance-time-recessed
- https://rosap.ntl.bts.gov/view/dot/21736/dot_21736_DS1.pdf
- https://trid.trb.org/View/155568
- https://publications.iowa.gov/19741/
- https://resources.vtrans.vermont.gov/documents/archivedresearch/U1988%20-%2005%20%28OCR%29%20Stimsonite%2096%20Snowplowable%20Raised%20Pavement%20Markers.pdf
- https://resources.vtrans.vermont.gov/documents/archivedresearch/2002%20-%2006%20%28OCR%29%20Recessed%20Thermoplastic%20Pavement%20Markings%20Montpelier%20Vermont.pdf
- https://docs.lib.purdue.edu/jtrp/1700
- https://vtrc.virginia.gov/reports/all-reports/96-r3/
- https://www.audacy.com/kywnewsradio/news/local/winter-storms-damage-speed-cushions
- https://engaged.edmonton.ca/ramsay
- https://www.mass.gov/doc/mansfield-speed-bumps-on-highland-ave-draper-ave-and-howe-st/download
- https://www.cambridgema.gov/Snow
- https://www.cambridgema.gov/-/media/Files/publicworksdepartment/Snow/2011dpwsnowbrochureweb.pdf
- https://cambridgema.gov/news/2015/02/cityofcambridgesnowoperationsupdates
- https://cambridgema.gov/Services/StreetCleaning
- https://www.boston.gov/managing-winter-and-snow
- https://www.cbsnews.com/boston/news/drivers-unaware-as-city-moves-legally-parked-cars-to-haul-snow/
- https://hbfullerproducts.com/products/st-3001-standard-butyl-pad
- https://www.manualslib.fr/manual/664974/Uline-H-9872.html
- https://www.pexco.com/wp-content/uploads/2025/09/Pexco-RPM-Halftrack_installationprocedure_2025.pdf
- https://www.corpuschristitx.gov/media/jk2adkx3/025828-ref-txdot-dms-6130-bituminous-adhesive-for-pavement-marker.pdf
- https://www.columbus.gov/files/sharedassets/city/v/1/design-amp-construction/contractor-information/2002-construction-and-material-specifications/621[1].pdf
- https://abilenetx.gov/DocumentCenter/View/3108/810-1-PDF
- https://translineinc.com/wp-content/uploads/2017/11/e-bond_epoxy_data_sheet.pdf
- https://cdn.standards.iteh.ai/samples/83792/e455ea50563546ca8cfaac4e23aeecea/ASTM-D4592-12.pdf
- https://dot.ca.gov/-/media/dot-media/programs/research-innovation-system-information/documents/preliminary-investigations/use-of-cold-applied-adhesive-for-raised-pavement-marker-applications-pi-a11y.pdf