Buy the part that fits your design.
Not the one that matched your search.
Xirkit reads your design files and checks every part against them — the holes, the current, the number your product has to hit, and the parts you have already bought. You see it fit before you pay.
Five questions, asked about every part
Not the words in your search — the limits your design already has, and where every one of them came from. A few you stated yourself. Most were set months ago by parts you already bought, and nobody wrote them down.
More than one part passes, so the choice stays yours. Your limit sits on the left, what each part actually does sits next to it, and the file the limit was read from sits on the right. Then the fit itself, in your geometry and on your board, before any money moves.
What passed, and what it would cost you
Click one to follow it down the table
| What is checked | Your limit | RS2207 | BR2306-C | AX2306 | Where the limit came from |
|---|---|---|---|---|---|
| Will it match your requirement? — checked against your requirements | |||||
| Thrust against weight | ≥ 2.0 | 2.68 | 2.21 | 2.91 | REQ-03 |
| Flight time on your battery | ≥ 18 min | 22.4 | 23.8 | 19.4 | REQ-05 |
| Will it fit? — checked against arm_v7.step | |||||
| Bolt pattern | 16.0 × 16.0 mm | 16.0 | 16.0 | 16.0 | Arm boss, measured |
| Screw depth needed | ≤ 4.0 mm | 3.6 | 3.4 | 3.8 | Arm wall, 4.0 mm |
| Shaft diameter | 5.0 mm | 5.0 | 5.0 | 5.0 | Propeller hub, rev 9 |
| Propeller clearance to arm | ≥ 2.0 mm | 3.1 | 3.3 | 2.4 | Assembly, swept |
| Weight | ≤ 34 g | 32.0 | 33.0 | 28.5 | REQ-07 roll-up |
| Will it work with your board? — checked against power_board.kicad_sch | |||||
| Peak current on your propeller | ≤ 45.0 A | 28.4 | 26.1 | 30.5 | ESC bought in rev 3 |
| Current while hovering | ≤ 32.0 A | 11.2 | 10.6 | 14.8 | REQ-14 |
| Voltage it can take | ≥ 16.8 V | 6S | 4S | 6S | 4S pack, fixed rev 3 |
| All four at full throttle | ≤ 124 A | 113.6 | 104.4 | 122.0 | Cell datasheet, p. 4 |
| Signal protocol | DShot600 | yes | yes | yes | ESC firmware |
| Case temperature after 20 min | ≤ 85 °C | 61 | 58 | 79 | REQ-19 |
| Does it agree with the rest? — checked against parts you already bought | |||||
| Propeller hub, rev 9 | M5 × 0.8 | match | match | match | Chosen part |
| ESC, rev 3 | 45 A · DShot | within | within | within | Chosen part |
| Arm screw, M3×8, rev 7 | reusable | yes | yes | yes | Chosen part |
| What does it really cost? — stock, arrival date and delivered price | |||||
| In stock now | ≥ 4 | 340 | 210 | 86 | Live, 26 Aug |
| Backup supplier | required | 2 | 3 | 1 | REQ-28 |
| Days to arrive | ≤ 7 days | 2 d | 4 d | 1 d | Build date, 14 Sep |
| Four of them, delivered | ≤ $38.00 | $33.60 | $28.80 | $26.80 | REQ-22 |
The limits come first. Only once a part has passed all of them does price matter, and then it is the real price — shipping and duty counted, at the number of units you are actually making, with the date it lands.
| One line · the motors | Shop listing | Through Xirkit |
|---|---|---|
| Unit price | $18.90 | $7.10 |
| Quantity | 4 | 4 |
| Subtotal | $75.60 | $28.40 |
| Shipping, share of the order | $14.00 | $3.60 |
| Import duty | $7.10 | $1.60 |
| Delivered | $96.70 | $33.60 |
| Arrives in | 9 days | 2 days |
| Sets | Per set | Order total | Arrives in |
|---|---|---|---|
| 1 | $402.60 | $402.60 | 2 days |
| 10 | $311.80 | $3,118 | 2 days |
| 100 | $242.40 | $24,240 | 4 days |
| 500 | $214.70 | $107,350 | 7 days |
| 1,000 | $196.10 | $196,100 | 10 days |
Xirkit runs as an MCP server, so it works inside the tools you already use instead of asking you to upload your design to a website. Your CAD stays on your machine. What leaves it is the measurement a check needs, not the model, and every request is written down where you can read it.
# add the server
$ xirkit mcp install --scope project
# it reads from where you already work
fusion ~/Projects/quad/arm_v7.f3d
kicad ~/Projects/quad/power_board/
git github.com/acme/quad-fw
# and exposes what it can do
select_part against your design and its limits
check_fit mechanical, electrical, thermal
trace_change one edit, every domain
price_delivered unit + freight + duty
generate_docs drawings, BOM, decisionsA desktop app for teams that want nothing leaving the building, and a web version for people who would rather not install anything.
A part is not one document. It is a datasheet, a footprint, a 3D model, a certificate, a compliance declaration, an errata sheet, a change notice and an advisory — scattered across a manufacturer site, a distributor page and a forum thread. All of it is held here for every line in your bill of materials, and the numbers inside are pulled out into fields a check can actually read.
| Ref | Part | Datasheet | 2D | 3D | Certificate | Compliance | Errata | Change notice | Advisory | Lifecycle |
|---|---|---|---|---|---|---|---|---|---|---|
| M1–M4 | RS2207 1900KV | PDF · 18 pp↓ | DXF↓ | STEP↓ | CE↓ | RoHS↓ | none | none | none | Active |
| ESC1 | BLH-45A-4in1 | PDF · 32 pp↓ | DXF↓ | STEP↓ | CE↓ | RoHS↓ | 1 ↓ | none | none | Active |
| BT1 | 4S 4000 mAh Li-ion | PDF · 24 pp↓ | none | STEP↓ | UN38.3↓ | RoHS↓ | none | none | 1 ↓ | Active |
| U1 | STM32G031F6P6 | PDF · 312 pp↓ | DXF↓ | STEP↓ | CE↓ | RoHS, REACH↓ | 2 ↓ | 1 ↓ | none | Active |
| J4 | GCT USB4110-GF-A | PDF · 6 pp↓ | DXF↓ | missing | CE↓ | REACH, stale | none | none | none | Active |
| SC1 | M3 × 8 · A2-70 | PDF · 2 pp↓ | DXF↓ | STEP↓ | ISO 3506↓ | RoHS↓ | none | none | none | Active |
| +34 passives, fasteners and connectors | all↓ | all↓ | 31 of 34 | all↓ | all↓ | none | none | none | 2 last-buy | |
// the fields read out of DS12991, as your agent receives them
{
"part": "STM32G031F6P6",
"datasheet": "DS12991 rev 4",
"fields": {
"supply_voltage_min": { "value": 2.0, "unit": "V", "from": "p. 41, table 24" },
"supply_voltage_max": { "value": 3.6, "unit": "V", "from": "p. 41, table 24" },
"junction_temp_max": { "value": 125, "unit": "°C", "from": "p. 41, table 24" },
"logic_high_min": { "value": 2.31, "unit": "V", "from": "p. 41, derived" },
"pin_drive_max": { "value": 20, "unit": "mA", "from": "p. 41, table 24" },
"thermal_resistance": { "value": 52, "unit": "°C/W", "from": "p. 88, table 61" },
"package": { "value": "TSSOP20", "from": "p. 6" }
}
}A bill of materials is not a list of part numbers. Every line is there for a reason, and every line fixes something for every part that comes after it. Xirkit keeps that reasoning attached to each line, so a change shows you what it affects — and your files stay exactly where they already live.
| Ref | Part | Why it is in the design | Checks | Vendor | Rev | $ | Shipment | What it fixes for everything else |
|---|---|---|---|---|---|---|---|---|
| M1–M4 | RS2207 1900KV | The only motor inside the ESC limit that still holds 2.0 thrust-to-weight | 38/38 | LCSC | v14 | 7.10 | Ordered 26 Aug · lands 28 Aug | Draws 28.4 A · needs a 5 mm hub |
| ESC1 | BLH-45A-4in1 | Chosen before the motors, and it decides what they can be | 24/24 | Mouser | v3 | 41.00 | Delivered 12 Aug | 45.0 A ceiling · DShot600 only |
| BT1 | 4S 4000 mAh Li-ion | Fixed early, and everything electrical follows from it | 19/19 | Element14 | v3 | 62.00 | In transit · due 28 Aug | 16.8 V bus · 124 A burst |
| PR1–PR4 | 5.0 × 4.3 × 3 | Sized to the arm, so it settles the shaft every motor must have | 11/11 | LCSC | v9 | 2.20 | Delivered 12 Aug | 5.0 mm shaft · 2.0 mm clearance |
| U1 | STM32G031F6P6 | Flight controller. Backup supplier verified | 31/31 | Mouser | v6 | 1.14 | Ordered 26 Aug · lands 28 Aug | 3.3 V logic · SPI at 50 MHz |
| J4 | GCT USB4110-GF-A | Telemetry port | 30/31 | Element14 | v11 | 0.70 | Not ordered | 5 V in · 0.9 mm from the board edge |
| SC1 | M3 × 8 · A2-70 | Reused from an earlier arm. Goes in 3.6 of the 4.0 mm available | 8/8 | Accu | v7 | 0.04 | Delivered 30 Jul | 4.0 mm of screw depth |
| +34 passives, fasteners and connectors | all | 4 vendors | — | 64.42 | 31 delivered, 3 due | — | ||
| Delivered, per set | 242.40 | whole set by 31 Aug | $97.60 under your limit | |||||