RoomOne board: request for quote
From: IEMI Labs, [email protected] · Date: 4 November 2026 · Reference: IEMI-R1-TS-A
We are asking for a turnkey quote: finish the design of our thermostat board, make it, assemble it, test it, and deliver boards that are ready to run. When a board arrives, we power it from a 24 VAC bench transformer, put in our microSD card, and it starts our software. We do no setup, soldering or configuration.
All files are in the design pack (zip). The board, part by part: iemilabs.com/build/roomone-boards.
1. The board
One rigid 128 × 98 mm board inside the thermostat body: side A to the room (e-paper, keys, radar, sounder, call light, the air chips in a slotted corner), side B to the wall plate (ESP32-S3 module, relays, the 24 VAC front end, CO2 sensor, push-in wire terminal, tamper switch, microSD).
The outline, sections and placement of all 37 parts are fixed (KiCad 10 file, design rule check: 0 violations), each checked against our mechanical CAD. Please keep the outline and part positions, and tell us if anything must move.
2. Parts
| Ref | Part | Where |
|---|---|---|
| U1 | Espressif ESP32-S3-WROOM-1-N8R8: ESP32-S3, 8 MB flash, 8 MB PSRAM, PCB antenna, FCC/CE certified; castellated, soldered | B |
| U2 | Microchip ATECC608B security chip, UDFN-8 | B |
| U9 | ID EEPROM 2 kbit (product, board version, serial, calibration) | B |
| K1 | Omron G5V-1-DC5 signal relay: fan (G) | B |
| K2 | Omron G5V-1-DC5 signal relay: cool (Y) | B |
| K3 | Omron G5V-1-DC5 signal relay: heat (W) | B |
| U5 | Relay drivers: 3 × logic FET + flyback diode | B |
| J1 | 5-way push-in wire terminal, 3.5 mm pitch (R, C, G, Y, W), wires from the wall box through the plate opening | B |
| U4 | 24 VAC front end: fuse, 36 V TVS, bridge rectifier, TI LMR36015 buck to 5 V, 3.3 V LDO | B |
| C1 | Bulk capacitor 470 µF 50 V, Ø10 × 10.5 (rectified 24 VAC) | B |
| TP1 | Factory pads: USB (ESP32-S3 native), serial, boot, enable, rails, current sense | B |
| U12 | Sensirion SCD41 CO2 sensor (photoacoustic), reflow SMD, in the air corner | B |
| J4 | microSD socket with a hinged, latched lid (Amphenol 101-00660 class), fitted on every board: our software starts from the card (ESP32-S3 SD bus; the loader the maker flashes reads our program from it) | B |
| U90 | microSD card power switch (TPS22917-class load switch, 3.3 V, driven by the card power-enable pin) with a 10 kΩ discharge resistor: a stuck card can be power-cycled | B |
| U91 | microSD ESD and filter array, 6 lines (TPD6F003-class), with 22 Ω series resistors on CLK, CMD and D0–D3 and the card-detect line | B |
| SW1 | Omron D2F-01 tamper switch, pressed by a rib on the wall plate (CAD rev T) | B |
| DS1 | E-paper panel 2.13 in, 250 × 122 (bare panel on the body frame, 59.2 × 29.2 × 1.0), behind the window | A |
| J2 | E-paper tail: 24 hot-bar pads, 0.5 mm pitch (no connector) | A |
| U6 | E-paper booster: inductor, FET, 3 diodes, caps (panel maker reference circuit) | A |
| SW2 | Omron B3F-1000 key switch (warmer) under the printed 16 mm key cap | A |
| SW3 | Omron B3F-1000 key switch (cooler) under the printed 16 mm key cap | A |
| U3 | Infineon BGT60TR13C 60 GHz radar chip, antennas in package (1 TX, 3 RX): presence and breathing | A |
| U7 | Level shifter for the LED data line | A |
| Q1 | Sounder driver FET | A |
| LS1 | Magnetic sounder 12 × 12 SMD, under the tone holes | A |
| U13 | Bosch BMV080 particle sensor (PM1, PM2.5, PM10; no fan) behind the new particle window | A |
| J3 | BMV080 flex tail landing: hot-bar pads, or its maker’s latched connector (to check) | A |
| U11 | Sensirion SGP41 VOC and NOx chip, DFN 2.44 × 2.44 | A |
| U10 | Sensirion SHT45 humidity and temperature chip, DFN 1.5 × 1.5 | A |
| D1 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D2 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D3 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D4 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D5 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D6 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D7 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
| D8 | RGB LED with driver, 5050 (WS2812B class), call light behind the opal slot | A |
Each part’s size, side and position is in roomone-board-parts.csv in the pack. Ask before you substitute a part.
3. Scope of work
- Schematic from Espressif’s ESP32-S3 hardware design guide and our block list. We review it before layout.
- Layout in our outline and placement, and RF for every antenna keep-out. Lay the fast lines on a solid ground plane (inner layer 1, supply on inner layer 2; on a 2-layer section the whole bottom is ground under the module), with one via beside each ground and supply pad and no vias in pads unless you quote filled and capped vias (IPC-4761 type VII); no copper or vias in the antenna keep-out on any layer, none under the card socket; route the impedance lines first (antenna 50 Ω) and add an impedance test coupon. Include the stack-up proposal and DFM.
- Fabrication of the board.
- Sourcing of all parts.
- Assembly, both sides.
- Firmware: flash our small ESP32-S3 loader (we send it). At each start it reads our program from the microSD card, so a new card is a software update.
- Test of every board to the acceptance list in §5, with a test report per serial number.
- Deliverables: KiCad (or Altium) source, Gerbers, drill, pick-and-place, BOM, stack-up, test procedure and reports.
4. “Ready to run” on delivery
This is the most important part of the job:
- Every board arrives assembled, programmed and tested.
- We put our microSD card in (J4, a hinged, latched socket) and power it, and it starts. No soldering, no jumpers, no settings, no flashing.
- The ID EEPROM is written with the serial number and board revision.
- The security chip is provisioned per the steps we will send.
5. Acceptance tests (each board, with report)
- Current-limited first power-on: no short, idle current within the agreed limit.
- Rails: every power rail within ±3 %.
- Boot: starts our loader and a test program from the microSD card.
- Radios: U1 (Espressif ESP32-S3-WROOM-1-N8R8): each joins or answers a test station.
- Sensors and outputs, each read or driven in turn: K1–K3 (Omron G5V-1-DC5 signal relay), U12 (Sensirion SCD41 CO2 sensor), U91 (microSD ESD and filter array), SW1 (Omron D2F-01 tamper switch), DS1 (E-paper panel 2.13 in), SW2, SW3 (Omron B3F-1000 key switch), U3 (Infineon BGT60TR13C 60 GHz radar chip), LS1 (Magnetic sounder 12 × 12 SMD), U13 (Bosch BMV080 particle sensor), U11 (Sensirion SGP41 VOC and NOx chip), U10 (Sensirion SHT45 humidity and temperature chip), D1–D8 (RGB LED with driver).
- Power: the draw at idle and at full load from a 24 VAC bench transformer, against our estimate.
- Heat: the ESP32-S3 temperature after 1 hour at full load in a 35 °C room, against our estimate.
6. Quantities and timing
| Item | Quantity |
|---|---|
| Rev A boards | 5 and 20: please quote both |
| Budget prices | for 100 and 1,000 boards |
| Quote wanted | within two weeks of this request |
| Boards wanted | please give your lead times for design, fabrication and assembly |
7. Our design review
Before we order, every board-level number is checked against its target: 6 pass, 3 fixed by the review, 3 to prove on rev A, 0 fail. The full review is on the board page and in the pack. Rev A must let us measure:
- Temperature chip warmed by the board
- Card grade
- Fast lines on a solid ground plane
8. The design pack
Download the design pack (zip): this request, the KiCad 10 board, a 3D model (STEP), side A and side B drawings (PDF), the parts list, placement, the board outline and drawing layers as Gerbers, and the design review.
Questions: [email protected]