Skip to main content

dingopdm-hardware

Physical wiring reference for the dingo ecosystem hardware: dingoPDM / dingoPDM-Max power-distribution modules (the main DT/Deutsch connector pinout, connector and socket part numbers, power/ground lugs, USB cabling caveats, CAN termination, output current ratings, MCU test points, and how physical Output/Input pins map to the config's numbering and var-map) and the CANBoard CAN I/O expander (digital/analog inputs, low-side outputs, CAN base-ID and termination jumpers, and the CAN frame layout the PDM uses to read/command it). Use whenever the task involves wiring a dingoPDM or CANBoard, picking connectors/contacts, or relating a physical pin to a configured output/input.

Quellinformationen

Repository
esensible/dingo-cli
Letzte Quellaktivität
20. Juni 2026 um 23:57
Erkannte Sprache von SKILL.md
Englisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
7 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
dingopdm-hardware
description
Physical wiring reference for the dingo ecosystem hardware: dingoPDM / dingoPDM-Max power-distribution modules (the main DT/Deutsch connector pinout, connector and socket part numbers, power/ground lugs, USB cabling caveats, CAN termination, output current ratings, MCU test points, and how physical Output/Input pins map to the config's numbering and var-map) and the CANBoard CAN I/O expander (digital/analog inputs, low-side outputs, CAN base-ID and termination jumpers, and the CAN frame layout the PDM uses to read/command it). Use whenever the task involves wiring a dingoPDM or CANBoard, picking connectors/contacts, or relating a physical pin to a configured output/input.
# dingo hardware / wiring (dingoPDM + CANBoard) Physical wiring reference for the **dingoPDM** / **dingoPDM-Max** PDMs and the **CANBoard** CAN I/O expander. For the *configuration* side (the dingoConfig JSON, var-map, applying with `dingo-cli`) see the companion **`dingopdm-config`** skill — this skill is the hardware/pin layer. Source of truth: the official hardware docs at https://github.com/corygrant/dingoPDM/blob/master/docs/hardware/connections.md and https://github.com/corygrant/CANBoard (pulled 2026-06-20). The signal/I-O logic lives in firmware: https://github.com/corygrant/dingoFW . Reference copies of the source diagrams/schematics are vendored under `assets/` next to this file. Verify pin numbers against the molded numbers on the connector and the pin-number diagram before crimping — current ratings below are connector **estimates**, not firmware limits. ## Connectors (the three external interfaces) | ID | Connector | Part | Notes | |---|---|---|---| | 1 | Main signal/output | **DT 12-position, `DT06-12SA`** (+ `W12S` wedgelock) | all outputs, inputs, and CAN | | 2 | 12V DC power | `M6` / `1/4"` ring lug | **4–10 AWG** (large-gauge battery feed) | | 3 | Ground | `M6` / `1/4"` ring lug | 18–20 AWG ok | | 4 | USB Type-C | — | firmware config/flash; see USB caveat | dingoPDM outputs are **high-side** (they switch +12 V to the load); each load returns to chassis ground **directly, not through the PDM**, so the ground lug only carries the module's own reference current — hence the modest gauge. **Contacts for the DT12** (solid, size-16 Deutsch): - `0462-209-16141` — 14–16 AWG — **×2** (use for the two 13 A outputs) - `0462-201-16141` — 16–20 AWG — **×10** (everything else) ## dingoPDM pinout — DT06-12SA (12 pin) | Pin | Function | Rated current | |---|---|---| | 1 | CAN L | — | | 2 | CAN H | — | | 3 | Output 8 | 8 A | | 4 | Output 7 | 8 A | | 5 | Output 6 | 8 A | | 6 | Output 5 | 8 A | | 7 | **Output 1** | **13 A** | | 8 | Input 1 | — | | 9 | Output 4 | 8 A | | 10 | Output 3 | 8 A | | 11 | Input 2 | — | | 12 | **Output 2** | **13 A** | - **Outputs 1 and 2 are the high-current (13 A) channels** (pins 7 and 12) — use the 14–16 AWG contacts here and put your heaviest loads (motors, pumps) on them. Outputs 3–8 are 8 A. - Main 12 V feed and ground are on the **separate lugs**, not the DT connector. - **Inputs** (pins 8, 11) are typically wired **switch-to-GND**; pick `pull` / `invert` in the config to match (see `dingopdm-config` → inputs). Only Input 1 (pin 8) can wake the device from sleep. ## dingoPDM-Max pinout — DT06-12SA (12 pin) The Max has 4 outputs, each on a **doubled pair of pins** (~26 A/output). Different pin order from the standard PDM — do not assume they match. | Pin | Function | Rated current | |---|---|---| | 1 | Output 4 | 26 A | | 2 | Output 4 | 26 A | | 3 | CAN L | — | | 4 | CAN H | — | | 5 | Output 3 | 26 A | | 6 | Output 3 | 26 A | | 7 | Output 1 | 26 A | | 8 | Output 1 | 26 A | | 9 | Input 1 | — | | 10 | Input 2 | — | | 11 | Output 2 | 26 A | | 12 | Output 2 | 26 A | (Both pins of an output pair are the same channel — land both for full current.) ## CAN - **No internal termination.** There is no 120 Ω terminating resistor on the PDM's CAN — add one externally (the PDM should sit at a bus end with a terminator, or the bus must already be terminated at both ends). - CAN L / CAN H are pins 1 / 2 on dingoPDM (pins 3 / 4 on the Max). ## USB USB-C is for configuration/flashing (this is the port `dingo-cli` talks to). | Hardware | USB C–C cable | USB A–C cable | |---|---|---| | **v7.2** | ❌ not supported | ✅ | | v7.3 and up | ✅ | ✅ | If a v7.2 board won't enumerate, suspect a C-to-C cable — use an A-to-C cable. ## Physical pin ↔ config mapping The config (dingoConfig JSON / var-map, see `dingopdm-config`) addresses outputs and inputs by **number**, 1-based; arrays are 0-based so `outputs[i]` = Output `i+1`. Map number → physical pin with the table above. For the standard dingoPDM: | Config | Array idx | DT pin | var-map (Active) | |---|---|---|---| | Output 1 | `outputs[0]` | 7 (13 A) | 87 | | Output 2 | `outputs[1]` | 12 (13 A) | 91 | | Output 3 | `outputs[2]` | 10 | 95 | | Output 4 | `outputs[3]` | 9 | 99 | | Output 5 | `outputs[4]` | 6 | 103 | | Output 6 | `outputs[5]` | 5 | 107 | | Output 7 | `outputs[6]` | 4 | 111 | | Output 8 | `outputs[7]` | 3 | 115 | | Input 1 | `inputs[0]` | 8 | DigIn1 = 5 | | Input 2 | `inputs[1]` | 11 | DigIn2 = 6 | (Out{n}Active = 87 + 4·(n-1); Current/Overcurrent/Fault are +1/+2/+3.) So "drive the motor from OUT1" = land it on **DT pin 7**, and only DigIn1 (pin 8) can wake the device from sleep. ## Test points (debug / extra I/O headers) | Label | Function | MCU pin | |---|---|---| | I2C | I2C1 clock | PB6 | | I2D | I2C1 data | PB7 | | CR | CAN receive | PB8 | | CT | CAN transmit | PB9 | | E1 | Extra 1 | PC10 | | E2 | Extra 2 | PC11 | | E3 | Extra 3 | PC13 | | GND | Ground | — | | TagConnect | Debugger | — | ## Wipers Driving a wiper motor directly needs a separate **WiperModule** (3 relays for slow / fast / brake; slow input also supplies motor power, ground and park pass through). See https://github.com/corygrant/WiperModule . The PDM's wiper *logic* and output vars are documented in `dingopdm-config`. ## CANBoard (CAN I/O expander) A separate CAN node — a small I/O board (steering wheels, switch panels, button boxes) the PDM reads and commands over CAN. Hardware repo: https://github.com/corygrant/CANBoard ; firmware: https://github.com/corygrant/dingoFW . The PDM-side config recipe is in `dingopdm-config` → "Driving a CANBoard from a PDM"; this is the hardware/electrical layer. MCU: STM32F303K8T6. **I/O capability:** - **8 digital inputs (DI1–8)** — *ground-switching*: each idles **high** (internal pull-up) and is asserted by connecting it to **GND**. Wire a switch between the DI pin and a GND pin — no external voltage. 10 kΩ series protection per input. - **5 analog inputs (AI1–5)** — **0–5 V max**, RC-filtered and internally scaled to the 3.3 V ADC (4.7 kΩ series + 10 kΩ to GND). For pots / 2–3-wire sensors; the 5 V and GND header rails are there to power them. - **4 digital outputs (DO1–4, silk `DIGOUT1–4`)** — **low-side open-drain N-FET (DMN2004WK), 0.5 A max each.** The pin sinks to GND when on; wire the load between **+12 V and the DIGOUT pin**. **0.5 A will not drive a motor or lamp directly — switch a relay (or a PDM output).** Add an external **flyback diode** across any inductive load (relay coil); the board has none on the outputs. For a standard automotive relay: coil terminal **86 → +12 V**, terminal **85 → the DIGOUT pin**, flyback diode across 85–86 with its **cathode to +12 V**. (A horn or lamp draws several amps — well over 0.5 A — so always relay it, never direct.) **Power:** 12 V in → onboard 5 V (TPS56339 buck) and 3.3 V (LD1117S33). The 5 V rail is exposed on the headers for sensors / switch LEDs. **CAN:** - Transceiver MCP2562 with ESD protection. **Optional 120 Ω termination** via the **CAN Term** solder jumper (JP3 / `TERM_SB`) — solder only if the board is at a bus end. - **Base CAN ID is set by two solder jumpers** (silk `JP1` / `JP2`; *Closed* = soldered bridge, *Open* = not soldered) so several CANBoards can share a bus: | Jumper 1 | Jumper 2 | Base ID | |---|---|---| | Open | Open | 0x640 | | Closed | Open | 0x650 | | Open | Closed | 0x660 | | Closed | Closed | 0x670 | **CAN frame layout (ids are relative to the base; default base 0x640):** - **Broadcast — base+2 (`0x642`):** byte 4 = digital-input bitfield (bit0 = DI1 … bit7 = DI8, 1 = asserted/closed-to-ground); byte 6 = output-state bitfield (bit0 = DO1 … bit3 = DO4); byte 7 = heartbeat. (Analog values are also broadcast — see firmware/DBC for exact bytes.) - **Command — base+3 (`0x643`), DLC ≥ 4:** byte0 bit0 = DO1, byte1 bit0 = DO2, byte2 bit0 = DO3, byte3 bit0 = DO4 (0x01 = on). The PDM must send this continuously; pad to DLC 4. - Non-default base shifts everything (base 0x650 → broadcast 0x652, command 0x653). - In a PDM config these are decimal: read DIs from `id` 1602 (0x642), command DOs to `id` 1603 (0x643). See `dingopdm-config`. **Connectors:** four 8-pin single-row headers (`Conn_01x08`, J1–J4), grouped by function: - **Digital inputs** — DI1…DI8 in pin order (one full header). - **Digital outputs** — DIGOUT1…DIGOUT4 (+ 5 V / GND). - **Analog inputs** — AI1…AI5 (+ 5 V / GND sensor supply). - **CAN + power** — CAN H, CAN L, +12 V, GND. The digital-input header is straight DI1→DI8; for the exact pin order of the power/CAN/analog/output headers, check the vendored connections diagram (`assets/canboard-connections.png`) and schematic (`assets/canboard-schematic-v2.pdf`) against the board silkscreen before crimping. **Programming:** TC2030 Tag-Connect (J5: SWDIO / SWCLK / NRST / 3V3 / GND); firmware = dingoFW. ## Provenance - dingoPDM pinout, connector/contact part numbers, USB table, test points: `corygrant/dingoPDM` `docs/hardware/connections.md` (master, 2026-06-20). - CANBoard electrical spec, jumper tables, programming: `corygrant/CANBoard` `README.md` + `Export/V2/CANBoard_HW_V2.pdf` (main, 2026-06-20). CAN frame map cross-checked against `dingopdm-config` / dingoFW. - Vendored source docs live in `assets/` beside this skill (CANBoard connections diagram + schematic; dingoPDM connection/pinout diagrams + hardware PDF). - Current ratings are connector estimates; actual capacity depends on wire gauge, install, and config. Firmware enforces the per-output current limits you set in the config, not these connector numbers. CANBoard outputs are a hard 0.5 A.
Auf GitHub ansehen