It works. It is also too big.

Jerome Privott · · 6 min read

The assembled HC-01 humidor controller in its birch plywood case, lid engraved with the byitl cigar mark, beside its printed bead drawer full of humidity gel and the jar the gel came from

In the humidor, not on the bench

HC-01 is in a humidor with cigars in it, reading the air, running its fan on its own schedule, and reporting over Wi-Fi. That is the whole point of the thing and it took five posts to get here.

It is also 151 × 90 × 45 mm, which is roughly a deck and a half of cards sitting on a shelf you bought to store cigars. Both of those are true and the second one is the more useful thing to write about, because a first prototype that works is not the same as a product.

Here is what the device actually did.

Twenty hours, 522 samples

The unit logs to /api/status over Wi-Fi, which means I can watch it without opening the lid — opening the lid is the single biggest disturbance you can apply to a humidor, and every measurement before this one had that problem baked in.

The number the controller acts on is a post-purge sample: sixty seconds of fan, then a reading. Those are the ones worth quoting.

2026-10-05 15:34   71.4 %
2026-10-05 15:50   71.3 %
2026-10-05 16:07   71.4 %
2026-10-05 16:22   71.6 %
2026-10-05 16:38   71.8 %

A reference hygrometer sitting in the same humidor read 71 % across that same afternoon. Five samples inside a 0.5-point spread, landing on an independent instrument's number.

The next morning, after the box had sat shut overnight:

2026-10-06 07:50   73.9 %
2026-10-06 08:54   74.0 %
2026-10-06 09:10   72.6 %
2026-10-06 09:27   72.9 %
2026-10-06 09:42   73.0 %

Mean 73.28 %, standard deviation 0.56 across five samples. The hygrometer read 76 %. Both drifted up overnight, and they disagree by about two points, which is inside what you should expect from an SHT40 and a ten-dollar hygrometer pointed at the same air.

I will not dress this up as a continuous twenty-hour run. It is two sittings: the first logger exited at its two-hour budget and I restarted it the next morning. There is a gap in the file and it is visible in the timestamps.

The loop closed, once

Agreement with a hygrometer proves the sensor. It does not prove the controller. For that you need the thing to notice it is dry and do something about it.

It did, once, on the afternoon I put it back in the box:

15:07   control sample 67.8 %   fan ON
15:34   control sample 71.4 %   fan OFF

The band is 68.0 to 72.0, from a 70 % setpoint with 4 % hysteresis. 67.8 is under the floor by two tenths, the controller called for the fan, air moved over the gel beads, and by the next sample the humidor was inside the band and the fan stood down.

That is a closed loop closing. It is also one event, and it is confounded: I pushed a firmware update at 15:19 which rebooted the unit and dropped the fan, so the fan ran about twelve of those twenty-seven minutes rather than all of them. One clean event is worth more than a paragraph of confidence, and one is what I have.

Why it is this big

Nothing in this enclosure is sized by vanity. It is big because of what is inside it, and every one of those things is a prototype decision I would revisit.

The bead drawer is 40 × 78 × 13.5 mm of gel. That is the humidifier, and it is the single largest consumer of volume in the box. It is a drawer because I wanted to recharge it without disassembling anything, and a drawer costs you rails, clearance and a front opening.

The fan is a 30 mm case fan, YD3010HSL, chosen because it was in a drawer and it runs on 5 V. It needs a shroud, a mounting face and a path to the beads.

The display is a 1.28" round panel in a printed carrier, and the carrier needs a window, screws and a lid to clamp against. A screen is the most expensive thing you can add to a small enclosure, in millimetres.

The sensor gets its own walled chamber, because a reading taken in bay air is not a reading of the humidor. That chamber is why a two-dollar part occupies a quarter of the deck.

Then the walls: 3 mm birch ply on six faces, in a sandwich with a printed internal chassis. Laser-cut plywood is wonderful for a prototype and it is not how you would build the tenth one.

Add it up and you get 0.6 litres of controller in a box meant to hold cigars. For a first article that is an acceptable trade — it exists, it is serviceable, every part is replaceable, and I can get at all of it with a screwdriver. For a product it is roughly double what it should be, and the way down is obvious rather than clever: a smaller fan, a shallower bead bay, drop the drawer, and put the sensor on a stalk instead of in a room of its own.

What it still cannot do

It cannot bring humidity down. The fan is a humidification actuator: it moves air over wet beads. There is no vent, no desiccant path, nothing. humidor_ctl_step returns true below the band and false above it, and "false" means stop adding, not start removing.

That is not a theoretical gap. The humidor has been sitting at 73-74 % against a 70 % target since the one control event, and HC-01 has done the only thing it can, which is nothing. Over-humidified is the failure mode this design cannot correct, and it is also the one you get by putting in too much gel. For a cigar box that is survivable. It is still a hole in the control story and I would rather name it than let a chart imply otherwise.

The display carrier is held in with superglue. It does not seat flat, and the holes between carrier and clamp do not go all the way through. That is a real defect in a part I designed, and the fix is modelled but not yet cut.

Provisioning from a phone does not work. The firmware uses protocomm security2 and the stock apps speak security1. This unit got onto Wi-Fi from a command-line tool, which no customer will ever own. We are building our own app.

The sensor is still in a pocket that lags. The number on the screen is honest about it now, and the measurement that found it has its own post. The lid that fixes it is drawn and not yet cut.

What this was worth proving

The claim I will stand behind is narrow. A humidor controller that we designed, fabricated and wrote the firmware for is sitting in a real humidor, reading the same humidity an independent instrument reads, and acting on it without supervision. Twenty hours in two sittings, 522 logged samples, one closed control loop, zero interventions that were not me pushing firmware.

Everything else on this page is a list of what is wrong with it. That list is the actual output of a first prototype. The box is too big, the carrier is glued, the app does not exist, and it cannot dry anything out. Rev F has a job description now, which it did not have a week ago.

We design the board and the enclosure as one job, then we build it and tell you what broke. See how that works.

Related