# Acorn > Design and order custom XT30 and XT30(2+2) wire harnesses online with instant pricing. Choose wire length (30–3000 mm), 14/16/18 AWG power, straight, right-angle or tinned-lead ends, and wire colors. Assembled and 100% tested in the USA, ships in 1 week. Acorn is the harness shop of Almond Robotics (Almond AI, Inc.), maker of the Axol dual-arm robot. Acorn builds custom XT30 and XT30(2+2) jumper cables (the same connector on both ends) and pigtails (a plug on one end, tinned leads on the other) with instant online pricing. XT30(2+2) carries power plus two signal wires (usually CAN bus) and mates with the XT30(2+2) male headers on Damiao, MyActuator and similar robot actuators. Plain XT30 is the standard 2-pin power plug for batteries, ESCs and power boards. Prices start at $17. ## Order or link a design - [Harness configurator](https://acornharness.com/#design): pick options, see the instant price, add several designs to one order, pay with Stripe. - Every design has a shareable link. Agents can build one directly, e.g. https://acornharness.com/?k=22&l=350&g=16&a=st&b=ra-d&c=red.black.green.yellow&t=1&q=1#design - [Instant quote API](https://acornharness.com/api/quote?k=22&l=350&g=16&a=st&b=ra-d&q=10): JSON price, description, and a ready-to-order link for any design. - Orders API: `POST https://acornharness.com/api/orders` with a list of designs returns the price and a Stripe checkout link to pay; `GET /api/orders/{id}` reports payment status. No API key. - [OpenAPI spec](https://acornharness.com/openapi.json): machine-readable description of every API. - [API docs](https://acornharness.com/api): the same reference as a web page, for people. - [Full reference for agents](https://acornharness.com/llms-full.txt): every option, the link format, pricing rules, shipping, and the APIs. ## Resources - [Almond Harness Studio](https://harness.almond.bot): opens Acorn spec files (.harness.json) as full manufacturing drawings. - [Almond Robotics](https://almond.bot): the Axol dual-arm robot. ## Contact - hello@almond.bot --- # Full reference ## What Acorn makes A jumper harness with the same female connector on both ends, or a pigtail with the connector on end A and tinned leads on end B: - Wire: UL3135 silicone, 0.08 mm tinned copper strands. Power wires 14, 16 or 18 AWG; XT30(2+2) signal wires 24 AWG. - Power wires are soldered to the plug and sealed in heat shrink. XT30(2+2) signal wires are crimped into the plug's signal sockets and twisted as a pair by default. - Length is the wire only, measured from the back of one plug to the back of the other: 30–3000 mm in 5 mm steps. Tolerance ±5 mm under 100 mm, ±15 mm to 600 mm, ±20 mm to 1200 mm, ±25 mm beyond. - Each end is straight, or right angle bending up or down. Up/down is as seen from the back (wire side) of the plug, power pins on the left and signal pins on the right. - End B can instead be left unterminated, making a pigtail: no plug, every wire stripped 6 mm and tinned. Length then runs from the back of the plug to the wire tips. - Every harness is 100% continuity and insulation tested. Assembled in the USA. Lead time 5 business days (1 week). US shipping only. ## Design link format A design is a URL query string on https://acornharness.com/ (add `#design` to scroll to it). Parameters: - `k=2`: XT30, power only, 2 pins. Base price $19.91. - `k=22`: XT30(2+2), power + 2 signal pins. Base price $24.09. - `l`: wire length in mm, 30–3000, multiple of 5. - `g`: power wire gauge, one of 14, 16, 18 (AWG). - `a`, `b`: end A and end B termination: - `st` = Straight: Wires exit inline with the plug. - `ra-u` = Right Angle ↑: Power wires bend 90° up, as drawn in the rear (wire side) view. - `ra-d` = Right Angle ↓: Power wires bend 90° down, as drawn in the rear (wire side) view. - `un` = Unterminated: No plug: every wire stripped 6 mm and tinned, for screw terminals or soldering (end B only). - `c`: wire colors joined with ".", in pin order. XT30: PIN+.PIN- (power: red (Red), black (Black)). XT30(2+2): PIN+.PIN-.SIG1.SIG2 (signal: green (Green), yellow (Yellow)). - `t`: XT30(2+2) only, 1 = twisted signal pair (default), 0 = parallel. - `q`: quantity, 1–5000. Example (the default design): https://acornharness.com/?k=22&l=350&g=16&a=st&b=ra-d&c=red.black.green.yellow&t=1&q=1#design ## Pricing (USD, per harness) - Base: XT30 $19.91, XT30(2+2) $24.09. - Wire: 14 AWG 0.415¢/mm, 16 AWG 0.365¢/mm, 18 AWG 0.316¢/mm of length. - Right-angle end: +$2.00 each. - Unterminated end B (pigtail): −$3.00. - Twisted signal pair (XT30(2+2)): +$1.00. - Volume discount on the whole order, counting every harness across all designs: 1–9: list price; 10+: 5% off; 100+: 10% off; 1000+: 20% off. - Shipping is priced by order weight at checkout (US Ground, Two-Day, Next Day, or free San Francisco pickup). Sales tax is added at checkout where applicable. ## APIs for agents - `GET https://acornharness.com/api/quote?`: instant JSON quote. Any parameter can be omitted and falls back to the default design. Add `order_qty` to price at the volume tier of a larger multi-design order. Returns the price, description, discount tier, and a `design_url` the customer can open to order. - `GET https://acornharness.com/api/spec?`: the manufacturing spec as an Almond Harness Studio file (.harness.json), viewable at https://harness.almond.bot. - `POST https://acornharness.com/api/quote` with `{"items": [...]}`: prices a multi-design order (same body as `/api/orders`) without creating anything. - `POST https://acornharness.com/api/orders`: creates an order. See below. - `GET https://acornharness.com/api/orders/{id}`: order status. - OpenAPI 3.1 description of all of these: https://acornharness.com/openapi.json All APIs are public JSON, no API key, CORS enabled. ## Placing an order `POST https://acornharness.com/api/orders` with a JSON body: ```json { "items": [ {"connector": "xt30-22", "length_mm": 350, "power_gauge": 16, "end_a": "straight", "end_b": "ra-down", "colors": ["red", "black", "green", "yellow"], "twisted": true, "quantity": 10}, {"connector": "xt30", "length_mm": 500, "quantity": 4}, "k=22&l=600&g=14&a=ra-u&b=ra-u&c=red.black.green.yellow&t=1&q=2" ], "email": "buyer@example.com", "reference": "PO-1234" } ``` - `items` (required, 1–40): each is an object of named fields or a design code / `design_url` string. In an object, omitted fields take the default design's values, unknown fields are rejected, and `design` can give a complete design code or `design_url` (as returned by /api/quote) to start from: - `connector`: "xt30" or "xt30-22". - `length_mm`: 30–3000, rounded to 5 mm. - `power_gauge`: 14, 16, 18. - `end_a`, `end_b`: "straight", "ra-up", "ra-down", "unterminated". Only `end_b` can be "unterminated". - `colors`: array in pin order (see `c` above). - `twisted`: true/false, XT30(2+2) only. - `quantity`: 1–5000. - `email` (optional): prefills checkout; the receipt, invoice and tracking go here. - `reference` (optional, ≤200 chars): your PO number or note, echoed back on the order. - Header `Idempotency-Key` (optional): retrying with the same key and body returns the same order instead of a new one. The 201 response has the order `id`, `status: "awaiting_payment"`, a `checkout_url`, `expires_at` (24 hours), `status_url`, and the full pricing: each item's unit price and total, `subtotal`, `volume_discount`, and `shipping_options`. Nothing is charged or built until someone pays: send the `checkout_url` to whoever pays (or open it in a browser you control). Stripe Checkout collects card / Link / wallet payment, the US shipping address, the shipping speed, and sales tax. Promotion codes can be entered there. `GET https://acornharness.com/api/orders/{id}` returns `status`: `awaiting_payment` (checkout_url still valid), `payment_processing` (a bank payment still settling), `payment_failed` (it didn't go through: create a new order), `paid` (the order is on the bench and ships within 5 business days; tracking is emailed to the buyer), or `expired` (create a new order). It also returns the charged totals: `subtotal`, `discount`, `shipping`, `tax`, `total`. The order id is the credential: treat it as private. Errors are JSON `{"error": "..."}` with a 4xx status and a message naming the bad field, e.g. `items[1].length_mm must be a number from 30 to 3000`. People can also order on the site: give them a `design_url`, they add it to their order and pay with Stripe. Several designs can go in one order.