AisleOne board: request for quote
From: IEMI Labs, [email protected] · Date: 4 November 2026 · Reference: IEMI-A1-CN-A
We are asking for a turnkey quote: finish the design of our canopy board set (one per gondola run; two per aisle), make it, assemble it, test it, and deliver boards that are ready to run. When a board arrives, we power it from a 5 V 4 A bench supply on lead L1 (the power board is tested on its own behind an isolating 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/aisleone-boards.
1. The board
Five boards inside a gondola run’s top canopy; two sets per aisle. One rigid-flex piece: an 8-layer 180 × 84 mm main board flat on the canopy floor (RK3576J with a heat block to the aluminium canopy, 2 GB LPDDR4X, 16 GB eMMC, latched microSD, RK806S power, MEMS clocks, security and ID chips, eFuse, SMD piezo transducer over the tone holes, SN74AHCT125 LED line driver, latched 2-pin power header and two 3-pin light headers); two 16 × 16 mm camera tabs on 35 mm flex hinges, each with a Sony IMX577 and an M12 lens holder (80° lens); a 4-layer 640 × 20 mm light strip on a 16 mm flex (48 WS2812B-class LEDs, AP6275S Wi-Fi/BT module, Hall tamper switch, LED power). Separate rigid boards: two 2-layer 200 × 18 mm end light boards (12 WS2812B-class LEDs, latched 3-pin header, polyfuse); a 2-layer 100 × 60 mm power board (push-in mains terminal, fuse and varistor, Mean Well IRM-20-5, milled creepage slot, latched 2-pin header). Leads L1, L2 and L3 made to length.
The outline, sections and placement of all 109 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 RK3576J (industrial), 8 cores, 6 TOPS NPU, 16 MP ISP; heat block down to the aluminium canopy floor | main |
| HS1 | Aluminium block 24 × 24 × 7.7 with 1 mm gap pads, from the RK3576J to the canopy floor (the 3.66 m aluminium canopy is the heat sink) | main |
| U2 | LPDDR4X 16 Gbit ×32 (2 GB), 200-ball FBGA | main |
| U11 | eMMC 5.1 16 GB industrial, 153-ball FBGA (shipped empty, so the card always starts first; our loader on the card reads the card first; keeps the signed call log) | main |
| BZ1 | SMD piezo transducer 12 × 12 × 3 (PUI Audio AT-1220-TT class), facing down over the tone holes in the canopy floor: the spill and blocked-aisle tone | main |
| C1 | RK3576J decoupling field (behind the chip) | main |
| U3 | Rockchip RK806S-5 power chip and inductors: RK3576J core, NPU, GPU, logic, DDR and 1.8/3.3 V from the 5 V rail | main |
| Y1 | 24 MHz MEMS oscillator (SiTime SiT8008 class) | main |
| Y2 | 32.768 kHz MEMS oscillator (SiTime SiT1533 class) | main |
| U8 | Microchip ATECC608B security chip, UDFN-8: signs every gap, spill, sign and person-down call, and the task list | main |
| U9 | ID EEPROM 2 kbit (product, board version, serial, run A or B, calibration) | main |
| J1 | microSD socket with a hinged, latched lid (Amphenol 101-00660 class), fitted on every board: our software starts from the card; reached by taking off the canopy cover | main |
| 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 | main |
| 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 | main |
| U42 | TI TPS25947 class eFuse (3.5 A, reverse block) + TVS on the 5 V from the power lead | main |
| J2 | Molex Micro-Fit 3.0 43045-0212 2-pin vertical header, positive latch (5 V, GND) for lead L1 from the power board | main |
| J3 | JST GH SM03B-GHS-TB 3-pin side-entry header, latched (5 V, GND, LED data) for lead L2 along the canopy floor | main |
| J5 | JST GH SM03B-GHS-TB 3-pin side-entry header, latched (lead L3) | main |
| U36 | TI SN74AHCT125 level shifter and line driver for the three call-light data lines (3.3 to 5 V, 33 Ω series) | main |
| U21 | Left camera LDOs 2.8 / 1.8 / 1.05 V and its 24 MHz MEMS oscillator | main |
| U22 | Right camera LDOs 2.8 / 1.8 / 1.05 V and its 24 MHz MEMS oscillator | main |
| TP1 | Factory pads: USB 2.0, debug serial, boot, rails, current sense | main |
| D1 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D2 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D3 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D4 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D5 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D6 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D7 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D8 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D9 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D10 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D11 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D12 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D13 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D14 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D15 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D16 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D17 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D18 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D19 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D20 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D21 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D22 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D23 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D24 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D25 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D26 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D27 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D28 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D29 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D30 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D31 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D32 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D33 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D34 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D35 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D36 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D37 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D38 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D39 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D40 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D41 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D42 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D43 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D44 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D45 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D46 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D47 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| D48 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover: amber for a restock or a label, red for a spill or a person down, green when cleared | strip |
| U5 | AMPAK AP6275S Wi-Fi 6 + Bluetooth 5 module (certified, RK3576 SDK default), chip antenna at its right edge behind the opal cover | strip |
| U7 | TI DRV5032FB Hall switch facing the cover: a Ø6 × 3 magnet in the cover holds it; taking the cover off is logged and signed | strip |
| U37 | Bulk capacitors and a 1 A current limit on the strip’s 5 V (the firmware also caps the brightness) | strip |
| DL1 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL2 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL3 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL4 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL5 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL6 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL7 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL8 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL9 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL10 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL11 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| DL12 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endL |
| J6 | JST GH SM03B-GHS-TB 3-pin side-entry header, latched (lead L2) | endL |
| C8 | Bulk capacitor and a 0.5 A polyfuse on the end board’s 5 V | endL |
| DR1 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR2 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR3 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR4 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR5 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR6 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR7 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR8 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR9 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR10 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR11 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| DR12 | RGB LED with driver, 5050 (WS2812B class), behind the opal cover at the run’s end: the call over the spot, seen from the aisle end | endR |
| J7 | JST GH SM03B-GHS-TB 3-pin side-entry header, latched (lead L3) | endR |
| C9 | Bulk capacitor and a 0.5 A polyfuse on the end board’s 5 V | endR |
| J8 | Push-in PCB terminal, 3-pole 5.0 mm pitch (Phoenix Contact SPT 2.5/3-H-5.0 class) for the canopy’s own light feed (L, N, PE) | pwr |
| F1A | Schurter OMT 125 class 1 A slow-blow SMD fuse and a 275 V varistor on L | pwr |
| PS1 | Mean Well IRM-20-5 encapsulated PCB-mount supply, 5 V 4 A, 85–264 V in, Class II (no PE needed by the module) | pwr |
| J9 | Molex Micro-Fit 3.0 43045-0212 2-pin vertical header, positive latch, for lead L1 to the main board | pwr |
| U200 | Sony IMX577 12.3 MP colour camera chip (C1, 4056 × 3040), turned 30° out and 30° down at the opposite run and the floor; people are masked out of every still, never faces | tab |
| LH1 | M12 lens holder with a 80 × 64.4° lens over the camera chip, its front 0.3 mm behind the cover at the closest corner, the lens barrel 7.1 mm on through the window to just inside the face | tab |
| U210 | Sony IMX577 12.3 MP colour camera chip (C1, 4056 × 3040), turned 30° out and 30° down at the opposite run and the floor; people are masked out of every still, never faces | tab |
| LH2 | M12 lens holder with a 80 × 64.4° lens over the camera chip, its front 0.3 mm behind the cover at the closest corner, the lens barrel 7.1 mm on through the window to just inside the face | tab |
Each part’s size, side and position is in aisleone-board-parts.csv in the pack. Ask before you substitute a part.
3. Scope of work
- Schematic from Rockchip’s RK3576 reference design and our block list. We review it before layout.
- Layout in our outline and placement: the RK3576 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 RK3576 SDK. A Rockchip SDK image must start from the microSD card. Camera drivers: left aisle camera IMX577 at 4056 × 3040, 2 fps; right aisle camera IMX577 at 4056 × 3040, 2 fps. 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 (J1, 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.
- Left aisle camera: IMX577 streams 4056 × 3040 at 2 fps with no lost frames over 10 minutes, and a frame of a test chart is saved.
- Right aisle camera: IMX577 streams 4056 × 3040 at 2 fps with no lost frames over 10 minutes, and a frame of a test chart is saved.
- Radios: : each joins or answers a test station.
- Sensors and outputs, each read or driven in turn: U91 (microSD ESD and filter array), D1–D48 (RGB LED with driver), U7 (TI DRV5032FB Hall switch facing the cover).
- Power: the draw at idle and at full load from a 5 V 4 A bench supply on lead L1 (the power board is tested on its own behind an isolating transformer), against our estimate.
- Heat: the RK3576J temperature after 1 hour at full load in a 35 °C room, against our estimate.
6. Quantities and timing
| Item | Quantity |
|---|---|
| Rev A boards | 10 and 40: 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: 15 pass, 4 fixed by the review, 13 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:
- Left aisle camera: a price label’s digits (8 mm) on the opposite top shelf at the aisle end at 2.71 m
- Right aisle camera: a price label’s digits (8 mm) on the opposite top shelf at the aisle end at 2.71 m
- AI engine time per frame
- Power cut
- Card grade
- Wi-Fi from inside an aluminium canopy
- Fast lines on a solid ground plane
- Board inside the product CAD, every part checked in 3D
- Camera tabs on their brackets
- Call lights behind the opal cover
- Mains on the power board
- Cover tamper sensor
- Flex length
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]