跳转到内容

20261006-0452-air-hub-pro-first-board Take Air Hub Pro to a first routed board: schematic corrections, footprints, PCB and fabrication outputs

  • status: completed
  • createdAt: 2026-10-06 04:52
  • approvedAt: 2026-10-06 04:52 (owner: "可以开始先做pro")
  • relatedTask: 20261006-0452-air-hub-pro-first-board

The Pro schematic (/srv/ybo/switch/air_hub_pro/, generated by tools/gen_air_hub_pro.py on tools/hub_common.py) passes ERC and the netlist check, but three items were left open in P05-air-hub-design-reference-board.md §8 and no board exists:

  • The CMT2300A RF network was drawn with the reference part values in a placeholder order. The data-sheet figure 2 (direct tie, read from the archived PDF) gives the real circuit: VDD–L1–PA; PA–C1–L2–(C2 to GND)–L3–node A–L4–(C3 to GND)–L5–SMA; RFIN: C6 to GND, L7 to A, L8 to RFIP; RFIP: C7 to A, L6 to GND; crystal load capacitors C4 / C5 24 pF.
  • LMR36520 data sheet table 8-1 (5 V, 400 kHz): L 10 µH, COUT 2 x 22 µF, RFBT 100 k, RFBB 24.9 k, CIN 2 x 4.7 µF + 220 nF. The schematic has 15 µH and one 4.7 µF. TPS62A02: 1 µH and 22 µF as drawn.
  • DP83825I data sheet table 6-9…6-11: with the strap pins left open the PHY is RMII leader (25 MHz crystal, 50 MHz out), address 0, auto-negotiation and auto-MDIX enabled; MDI terminations are integrated. The drawn circuit matches; the note can be closed.

Layout inputs: Vanxoak mechanical drawing (35 x 35 mm, 32 castellated pads per side at 1.0 mm, pin 1 at the bottom of the left edge, numbering clockwise seen from the top). The workspace has a PCB flow for other boards (gen_air_pcb.py, pcb_air.sh, owned by another session): pcbnew script builds the board from net.xml and a placement table, Freerouting routes the DSN, the result is imported, GND pours and stitching vias are added, kicad-cli runs DRC and exports.

  1. hub_common.py: CMT2300A network per figure 2; LMR36520 values per table 8-1; 2520 inductor footprint for the TPS62A02 rails; close the PHY strap note. Both projects are regenerated (the entry board only changes in these shared values).
  2. air_hub_pro.pretty/HD_RK3506J_CORE_35x35mm_128P.kicad_mod written by the generator: 128 lands 0.6 x 2.0 mm on a 1.0 mm pitch, centred on the module edge, courtyard and outline; marked for confirmation against the vendor DXF.
  3. New tools/gen_hub_pcb.py (Pro placement table; board outline, mounting holes, antenna keep-outs, net classes) and tools/pcb_hub.sh (schematic → board + DSN → Freerouting → import → inner planes, pours, stitching → DRC → Gerbers, drill, position, renders). Board: 4 layers, 1.6 mm, routed on the outer layers with In1 as GND plane and In2 as +3V3 plane; 2.4 GHz antennas and the SMA on board edges with copper keep-outs under the antennas.
  4. Iterate placement and rules until DRC shows no unconnected items, no clearance or short errors and no parity differences.
  5. Docs: reference-board page (CMT2300A rows, power values, new board section with renders and limits), changelog, task and plan.
  • Autorouted layout is a first board for bring-up, not a tuned RF layout: 50 Ω feed lines, the 2.4 GHz match and the 433 MHz network need manual review and measurement.
  • The enclosure does not exist yet; board size, connector positions and mounting holes are provisional.
  • The core-board land pattern is drawn from the dimensioned picture, not from the DXF.
  • The prototype uses a screw terminal for the 4-wire harness, not the production connector.

Workspace: hub_common.py, gen_air_hub_pro.py, new gen_hub_pcb.py, pcb_hub.sh, one footprint, the regenerated projects and exports. Docs: reference-board page, changelog, task / plan.

  • Hand layout in KiCad: better RF result, not reproducible from the scripts, slower.
  • Two-layer board: cheaper, but the 128-pin module, SDIO, RMII and two RF sections leave no solid reference plane.
  • 2026-10-06: owner said to start with the Pro ("可以开始先做pro"); taken as approval to carry the Pro to a routed first board while the entry board waits for the SSD2351 answers.