PoolOne board: request for quote
From: IEMI Labs, [email protected] · Date: 4 November 2026 · Reference: IEMI-PO-PB-A
We are asking for a turnkey quote: finish the design of our latch-post board and hinge-post board, make it, assemble it, test it, and deliver boards that are ready to run. When a board arrives, we power it from a 12 V bench supply, 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/poolone-boards.
1. The board
Two rigid-flex boards, each standing up the inside of a 50 × 50 × 2 aluminium gate post (46 × 46 bore). Latch-post board: an 8-layer 44 × 835 spine with the RV1126B on side B under a heat block to the post wall, 2 GB LPDDR4X, 32 GB eMMC, MEMS clocks, AP6256 Wi-Fi/BT, security and ID chips, TMAG5273 3D Hall chip, THVD1450 RS-485 link, 12 V buck, BQ24074 charger, two soldered 18650 holders with a thermistor, latched link lead, 16 call-light LEDs (8 on each face), sounder; a 20 × 20 pool head with the Sony IMX415 and an M12 lens holder, tilted 20° down; a 14 × 42 radar head with the TI IWRL6432AOP and a chip antenna; a 40 × 30 top tab with the tamper switch and the latched microSD. Hinge-post board: a 4-layer 44 × 480 spine with the ESP32-S3-WROOM-1 module, security and ID chips, THVD1450 link, 12 V input and buck, BQ24074 charger, one soldered 18650 holder with a thermistor, latched supply and link leads; a 16 × 16 outside head with the OV2640 and an M7 lens holder, tilted 35° down; a 40 × 30 top tab with the tamper switch and the latched microSD.
The outline, sections and placement of all 64 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 | Rockchip RV1126B, 3 TOPS NPU, ISP, MIPI CSI-2 (the IMX415), on side B under a heat block to the outside wall | lspine |
| HB1 | Copper heat block 16 × 16 × 9.4 with a 1 mm gap pad from U1 to the post’s outside wall: the aluminium post is the heat sink | lspine |
| U10 | LPDDR4X 2 GB (clips of unsure calls, the two camera pipelines) | lspine |
| U5 | eMMC 32 GB (shipped empty, so the card always starts first; our loader on the card reads the card first; keeps the call log) | lspine |
| U3 | Rockchip RK806 class PMIC for the RV1126B rails | lspine |
| Y1 | MEMS oscillator 24 MHz (SiTime SiT8008 class) | lspine |
| U2 | Microchip ATECC608B, UDFN-8: signs every call, keeps the append-only log key | lspine |
| U9 | ID EEPROM 2 kbit (product, board version, serial, calibration) | lspine |
| U11 | TI TMAG5273 3D Hall sensor, SOT-23-6, at the gate-face edge: the leaf magnet’s field in three axes (latched, bounced, ajar, propped, and a second magnet held to the post) | lspine |
| LS1 | Magnetic sounder 12 × 12 SMD under the outside tone holes (the call tone), with a printed sound tube to the wall | lspine |
| GK1 | Printed sound tube from the sounder to the tone holes, with a mesh | lspine |
| LP2 | Printed clear light guide from the 8 outside LEDs to the outside opal slot | lspine |
| U7 | Level shifter for both call-light data lines (3.3 to 5 V) | lspine |
| TP1 | Factory pads: USB (RV1126B), serial console, boot, reset, rails, current sense | lspine |
| U6 | AMPAK AP6256 Wi-Fi 5 + BT 5 module (the app through the home router; setup over BLE); its antenna on the radar head | lspine |
| Y2 | MEMS oscillator 37.4 MHz for the Wi-Fi/BT module (SiTime SiT8008 class) | lspine |
| U14 | TI THVD1450 RS-485 transceiver, 50 Mbps: the hinge post’s frames and status over the link lead | lspine |
| U4 | 12 V input with TVS, fuse and reverse block; TI TPS62933 12-to-5 V buck; TI BQ24074 1.5 A charger with power path (NTC input); TI TPS63020 3.3 V buck-boost | lspine |
| BT1 | Keystone 1042 SMT holder for one 18650 cell (Samsung INR18650-35E), standing up the post, upper | lspine |
| BT2 | Keystone 1042 SMT holder, 18650, lower | lspine |
| RT1 | NTC thermistor 10 k, 0603, between the cells, read by the charger so charging holds outside 0–45 °C | lspine |
| J1 | Molex Micro-Fit 3.0 vertical header, 4 circuits, latched: 12 V, ground and the RS-485 pair from the hinge post, up from the conduit under the gate | lspine |
| U12 | Sony IMX415 8 MP camera chip, 3840 × 2160, 4-lane MIPI to the RV1126B: the deck, the water and the gate area | phead |
| L1 | M12 holder and a 2.1 mm lens, about 110° × 77°, its front just inside the pool-face window | phead |
| U8 | TI IWRL6432AOP 60 GHz radar, antennas in the package: who is in the pool area, adult or child by height, still or moving, and someone over the fence | rhead |
| U13 | QSPI flash and the radar’s 40 MHz MEMS oscillator | rhead |
| AE1 | Dual-band Wi-Fi/BT chip antenna behind the radome slot (the post is aluminium; the radome and the camera window are its only radio windows), fed over the head’s flex | lspine |
| SW1 | Omron D2F-01, plunger up, pressed 0.5 mm by the cap when it is screwed down | ltab |
| J2 | microSD socket with a hinged, latched lid (Amphenol 101-00660 class), fitted on every board: our software starts from the card; reached by lifting the cap | ltab |
| 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 | ltab |
| 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 | ltab |
| U21 | Espressif ESP32-S3-WROOM-1-N16R8: runs the outside camera and sends JPEG frames over the link; its radio only for setup, antenna end up under the outside window | hspine |
| U22 | Microchip ATECC608B: signs the hinge post’s frames and status | hspine |
| U29 | ID EEPROM 2 kbit | hspine |
| U25 | TI THVD1450 RS-485 transceiver: JPEG frames to the latch post at 2 fps | hspine |
| U24 | 12 V input from the buried lead with TVS, fuse and reverse block; TI TPS62933 12-to-5 V buck; TI BQ24074 1 A charger (NTC input); TI TPS63020 3.3 V buck-boost | hspine |
| TP21 | Factory pads: USB (ESP32-S3 native), boot, enable, rails | hspine |
| BT21 | Keystone 1042 SMT holder, 18650 (Samsung INR18650-35E), standing up the post | hspine |
| RT21 | NTC thermistor 10 k, 0603, beside the cell | hspine |
| J21 | Molex Micro-Fit 3.0 vertical header, 2 circuits, latched: 12 V from the listed plug-in supply on the pump pad’s GFCI outlet, through the gland at 120 mm | hspine |
| J22 | Molex Micro-Fit 3.0 vertical header, 4 circuits, latched: 12 V and the RS-485 pair to the latch post, down the post and through the conduit under the gate | hspine |
| U23 | OmniVision OV2640 2 MP camera chip, UXGA 1600 × 1200 at 15 fps over its 8-bit port to the ESP32-S3 (JPEG in the chip) | ohead |
| L3 | M7 holder and a wide lens, about 100° across (rows cropped to 1600 × 720: 56° up and down), its front just inside the outside window | ohead |
| SW21 | Omron D2F-01, pressed 0.5 mm by the hinge-post cap | htab |
| J23 | microSD socket with a hinged, latched lid (Amphenol 101-00660 class): our software starts from the card | htab |
| U93 | microSD ESD and filter array, 6 lines (TPD6F003-class), with 22 Ω series resistors on CLK, CMD and D0–D3 and the card-detect line | htab |
| U92 | 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 | htab |
| D1 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D11 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D2 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D12 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D3 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D13 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D4 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D14 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D5 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D15 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D6 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D16 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D7 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D17 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| D8 | RGB LED with driver, 5050 (WS2812B class), under the pool-face light guide | lspine |
| D18 | RGB LED with driver, 5050 (WS2812B class), under the outside light guide | lspine |
| LP1 | Printed clear light guide from the 8 pool LEDs to the pool-face opal slot | lspine |
Each part’s size, side and position is in poolone-board-parts.csv in the pack. Ask before you substitute a part.
3. Scope of work
- Schematic from Rockchip’s RV1126B reference design and Espressif’s ESP32-S3 hardware design guide and our block list. We review it before layout.
- Layout in our outline and placement: the RV1126B memory and power routing, impedance-controlled MIPI and USB, 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 (camera MIPI pairs 100 Ω differential, USB 90 Ω, antenna 50 Ω) and add an impedance test coupon. Include the stack-up proposal and DFM, and a rigid-flex drawing (bend lines, stiffeners, coverlay).
- Fabrication of the rigid-flex board.
- Sourcing of all parts.
- Assembly, both sides, with X-ray inspection of the ball-grid parts. Conformal coating (IPC-CC-830), with the sensors, sockets, connectors and antennas masked.
- Board support package: U-Boot and a Linux device tree for this layout from Rockchip’s RV1126B SDK. A Rockchip SDK image must start from the microSD card. Camera drivers: pool camera IMX415 at 3840 × 2160, 5 fps; outside camera (hinge post) OV2640 at 1600 × 720, 2 fps. Flash our ESP32-S3 image (we send it). We add our own software on top.
- 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, and the BSP source.
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 (J2, 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 the Rockchip SDK image from the microSD card to a shell over the debug UART; the eMMC is detected and can be written.
- Pool camera: IMX415 streams 3840 × 2160 at 5 fps with no lost frames over 10 minutes, and a frame of a test chart is saved.
- Outside camera (hinge post): OV2640 streams 1600 × 720 at 2 fps with no lost frames over 10 minutes, and a frame of a test chart is saved.
- Radios: U6 (AMPAK AP6256 Wi-Fi 5 + BT 5 module); U21 (Espressif ESP32-S3-WROOM-1-N16R8): each joins or answers a test station.
- Sensors and outputs, each read or driven in turn: U11 (TI TMAG5273 3D Hall sensor), LS1 (Magnetic sounder 12 × 12 SMD under the outside tone holes), U8 (TI IWRL6432AOP 60 GHz radar), U13 (QSPI flash and the radar’s 40 MHz MEMS oscillator), U91, U93 (microSD ESD and filter array), D1–D18 (RGB LED with driver).
- Power: the draw at idle and at full load from a 12 V bench supply, against our estimate.
- Heat: the RV1126B temperature after 1 hour at full load in a 35 °C room, against our estimate.
6. Quantities and timing
| Item | Quantity |
|---|---|
| Rev A boards | 2 and 2: 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: 19 pass, 3 fixed by the review, 9 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:
- AI engine time per frame
- Power cut
- Cell temperature, full sun, 40 °C air, black post
- Card grade
- Wi-Fi and BLE from the latch post
- Hinge post radio
- Fast lines on a solid ground plane
- Board inside the product CAD, every part checked in 3D
- Hall chip to the leaf magnet
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]