2026 hardware: add main-pcb-2026-11-13/
The Teensy 3.6 carrier board mounted inside the robot body (Teensy
peeks through the top-body hole). Contents:
- PCB_test_2026-11-13.json : EasyEDA PCB source (editor v6.5.61).
- OBJ_test.obj + .mtl : EasyEDA 3D OBJ export (slab + holes only).
- top.png, bottom.png : EasyEDA renders of each side; bottom.png
is the authoritative source for the
JP1-JP7 silkscreen numbering.
- 20190524_234512.jpg : photo of the populated bottom side.
- 20190524_234518.jpg : photo of the top side, powered on.
- main-pcb.scad : parametric OpenSCAD reconstruction. Real
board outline, 4 M3 holes, and every major
component (Teensy 3.6, nRF24L01+, GY-521
IMU, 7805, ZENER, JP7 battery JST, six
JST-PH 2mm servo headers JP1-JP6, POWER
LED + 510R resistor, "Hexapod v1" silk) on
the correct side of the board. Placements
are the pad-group centres pulled from the
EasyEDA JSON, not eyeballed.
- README.md : explains the files, the EasyEDA format and
unit conversion, which side each part is
on, and an authoritative placement table.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
1 parent
cb1e9234c6
commit
b1c94e4149
9 files changed
+753
No files matched your search
@@ -0,0 +1,103 @@
|
||||
# Main PCB (2026-11-13)
|
||||
|
||||
The PCB mounted inside the robot body, with the Teensy 3.6 peeking through
|
||||
the hole in the top body. Teensy 3.6 carrier that distributes six servo
|
||||
connectors (one per leg), an nRF24L01 radio, an MPU6050 IMU, a TO-252
|
||||
regulator, a status LED and a 2-pin battery input.
|
||||
|
||||
## Files in this folder
|
||||
|
||||
| File | What it is |
|
||||
|------|------------|
|
||||
| `PCB_test_2026-11-13.json` | EasyEDA PCB source (editor v6.5.61). The authoritative board. |
|
||||
| `OBJ_test.obj` + `.mtl` | EasyEDA 3D OBJ export. Just a slab shape with the four mounting holes; no components. Keep it because it round-trips with the EasyEDA source — but prefer `main-pcb.scad` for anything readable. |
|
||||
| `main-pcb.scad` | Readable, parametric OpenSCAD model. Real board outline, 4 M3 mounting holes, and every major component as its own module on the correct side (see "Which side"). Component bodies have real-world dimensions; each module's local origin is the centre of its pad group so placements come straight from the pad bbox centres extracted from the EasyEDA JSON — no eyeballed positions. |
|
||||
| `20190524_234512.jpg` | Photo of the **bottom** side: nRF24, IMU, 7805, ZENER, BATT JST and the six servo headers (JP1–JP6). |
|
||||
| `20190524_234518.jpg` | Photo of the **top** side: Teensy 3.6 raised above the PCB on tall pin headers, USB powered, green POWER LED lit. |
|
||||
| `top.png` | EasyEDA render of the **top** side (shows "Hexapod v1" title, spider silk, Teensy footprint, POWER + 510 Ω SMDs). |
|
||||
| `bottom.png` | EasyEDA render of the **bottom** side (shows JP1–JP7 labels, NRF24L01, MPU, ZENER, 7805 footprints). This is the authoritative source for silkscreen names. |
|
||||
|
||||
## Which side each component is on
|
||||
|
||||
- **Top:** Teensy 3.6 (on 2×24 tall pin headers so it clears the IMU/radio underneath and pokes through the hole in the top body), POWER LED and its 511 Ω series resistor.
|
||||
- **Bottom:** nRF24L01+ module (antenna hanging off the −Y board edge), GY-521 (MPU6050) IMU sitting directly under the Teensy, 7805 regulator, ZENER, 2-pin JST battery input, and the six servo headers JP1–JP6.
|
||||
|
||||
## Understanding the EasyEDA JSON
|
||||
|
||||
The JSON is EasyEDA's native PCB format: a `shape` array of tilde-separated
|
||||
primitives. Here the board has **88** shape entries:
|
||||
|
||||
| Kind | Count | Field layout (after first `~`) |
|
||||
|------|-------|--------------------------------|
|
||||
| `TRACK` | 54 | width, layer, net, `x y x y …`, id, locked |
|
||||
| `COPPERAREA` | 2 | id, layer, net, SVG path, … (one VCC pour, one GND pour) |
|
||||
| `TEXT` | 9 | type, x, y, size, rotation, layer, …, string, path |
|
||||
| `SVGNODE` | 1 | JSON of an SVG path (the 3D model placeholder) |
|
||||
| `LIB` | 14 | x, y, `` package`NAME` ``, rotation, … (components) |
|
||||
| `HOLE` | 4 | x, y, diameter (mm), id, locked |
|
||||
| `VIA` | 4 | x, y, diameter, net, drill, id, locked |
|
||||
|
||||
**Layers** (`layers` key) follow EasyEDA's standard numbering: 1 TopLayer,
|
||||
2 BottomLayer, 3/4 silk, 5/6 paste mask, 7/8 solder mask, 10 BoardOutline,
|
||||
11 Multi-Layer, 13/14 assembly, 19 3DModel, Hole, DRCError.
|
||||
|
||||
### Units
|
||||
|
||||
Positions (and most sizes) are in **10-mil units = 0.254 mm**. The user
|
||||
clearly laid out on a 1 mm grid: every component's x-offset from the
|
||||
EasyEDA origin (4000, 3000) divides cleanly by 39.3700787 (10 mm per
|
||||
10-mil unit). Hole and via **diameters** in this export are in millimetres
|
||||
directly, which is standard EasyEDA practice.
|
||||
|
||||
### Coordinate frame
|
||||
|
||||
EasyEDA: +X right, +Y **down**, origin at `(4000, 3000)` (also the
|
||||
top-left mounting hole). This OBJ export keeps the same X but flips Y to
|
||||
negative.
|
||||
|
||||
`main-pcb.scad` uses +X right, +Y **up**, origin at the board's
|
||||
**bottom-left corner**, so dimensions read the way you'd expect in CAD.
|
||||
The conversion applied is:
|
||||
|
||||
```
|
||||
x_mm = (x_eda - 3980.315) * 0.254
|
||||
y_mm = (3330.7087 - y_eda) * 0.254
|
||||
```
|
||||
|
||||
## Board summary
|
||||
|
||||
- Outline: 46.0 × 89.0 mm, black soldermask, 1.6 mm FR4 (the OBJ's 2.54 mm
|
||||
"slab" is just the export; the physical board is standard).
|
||||
- Four M3 clearance holes (⌀ 4 mm), 5 mm in from each edge (hole grid
|
||||
35.78 × 78.96 mm).
|
||||
- Component placements (pad-group centres from the EasyEDA JSON — these
|
||||
are the exact (x, y) the SCAD uses). All in mm from the board's
|
||||
bottom-left corner.
|
||||
|
||||
| Component | Side | (x, y) mm | Notes |
|
||||
|-----------|------|-----------|-------|
|
||||
| Teensy 3.6 | top | (22.62, 44.79) | centre of 2×24 pin pattern; long axis along Y; USB at +Y, SD at −Y; raised 11 mm on tall headers |
|
||||
| POWER LED (1206) | top | (33.00, 83.00) | |
|
||||
| 510 Ω series resistor (2010) | top | (32.55, 78.72) | |
|
||||
| "Hexapod v1" title silk | top | (6, 80.9) | top-silk text |
|
||||
| nRF24L01+ | bottom | (28.00, 8.00) | header centre; module body + PCB antenna extend −Y and hang off the board edge |
|
||||
| GY-521 (MPU6050) | bottom | (19.22, 44.73) | centre of 1×8 header; board extends +X; sits under the Teensy |
|
||||
| 7805 regulator | bottom | (23.00, 79.00) | EasyEDA uses a `TO252` footprint but the physical board has a **through-hole 7805 in TO-220** bent flat into those pads |
|
||||
| ZENER | bottom | (22.00, 67.00) | horizontal between its two pads |
|
||||
| JP7 (2-pin JST, battery) | bottom | (15.00, 9.00) | |
|
||||
| JP1 (5-pin JST-PH, servos) | bottom | ( 9.00, 69.00) | left column, top |
|
||||
| JP2 | bottom | ( 9.00, 43.00) | left column, middle |
|
||||
| JP3 | bottom | ( 9.00, 20.00) | left column, bottom |
|
||||
| JP4 | bottom | (38.00, 69.00) | right column, top |
|
||||
| JP5 | bottom | (38.00, 44.00) | right column, middle |
|
||||
| JP6 | bottom | (38.00, 20.00) | right column, bottom |
|
||||
|
||||
Servo headers are 5-pin JST-PH footprints at **2.0 mm pitch** (total
|
||||
span 8 mm), not 2.54 mm pin headers.
|
||||
|
||||
## Viewing
|
||||
|
||||
- OBJ: any 3D viewer (Fusion 360 will import it; `OBJ_test.mtl` sets a
|
||||
dull-yellow material).
|
||||
- SCAD: open `main-pcb.scad` in OpenSCAD; toggle `SHOW_COMPONENTS` and
|
||||
`EXPLODE` to see parts lifted off the board.
|
||||
Reference in new issue
Block a user