# saatom/wedge_cutter architecture

> Architecture diagram of the GitHub repository saatom/wedge_cutter, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/saatom/wedge_cutter
- Repository: https://github.com/saatom/wedge_cutter

## Overview

This repository describes a physical dispenser for 0.160-inch TREMCO POLYSHIM II window wedges, with mechanical CAD, embedded firmware, and an instruction manual. The documented product goal is dispensing wedge material; the README also specifies a NEMA 23 stepper, power rails, and Raspberry Pi Pico firmware uploaded manually. The manual and firmware source were not sampled, so the graph avoids assuming operating steps or firmware-to-actuator calls. CAD files are represented as design artifacts rather than an inferred assembly sequence.

Main entry points: [`wedge_cutter/wedge_cutter.ino`](https://github.com/saatom/wedge_cutter/blob/master/wedge_cutter/wedge_cutter.ino) (Controller firmware)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mechanical["Mechanical design"]
  node_native_cad["Native CAD model"]
  node_axle["Axle models<br/>[Axle V2.3mf]"]
  node_axle_cutout["Axle cutout<br/>[AxleWithCutout.3mf]"]
  node_blade_parts["Blade parts<br/>[Blade Parts V3.3mf]"]
  node_guide["Guide models<br/>[Guide V3.3mf]"]
  node_wedge_assembly["Wedge cutter assembly"]
  node_wedge_core["Wedge cutter core"]
end

subgraph group_control["Embedded control"]
  node_firmware["Controller firmware<br/>[wedge_cutter.ino]"]
  node_pico["Raspberry Pi Pico"]
end

subgraph group_operation["Product and power"]
  node_dispenser["Wedge dispenser"]
  node_dispensed_wedges["Dispensed wedges"]
  node_manual["Instruction manual"]
  node_battery["20 V battery"]
  node_stepper_supply["Stepper supply"]
  node_servo_supply["Servo supply"]
  node_logic_supply["Logic supply"]
  node_stepper["NEMA 23 stepper"]
  node_stepper_driver["Stepper driver"]
  node_servo["Servo"]
end

node_operator(("Operator"))
node_wedge_stock["Wedge stock"]

node_operator -->|"operates"| node_dispenser
node_wedge_stock -->|"dispensed by"| node_dispenser
node_dispenser -->|"dispenses"| node_dispensed_wedges
node_firmware -->|"uploaded to"| node_pico
node_battery -->|"powers"| node_stepper_supply
node_battery -->|"powers"| node_servo_supply
node_battery -->|"powers"| node_logic_supply
node_stepper_supply -->|"35 V supply"| node_stepper_driver
node_servo_supply -->|"7 V supply"| node_servo
node_logic_supply -->|"5 V supply"| node_pico

click node_manual "https://github.com/saatom/wedge_cutter/blob/master/Wedge%20Cutter%20Manual.odt"
click node_native_cad "https://github.com/saatom/wedge_cutter/blob/master/wedge_cutter_v3.FCStd"
click node_axle "https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Axle%20V2.3mf"
click node_axle_cutout "https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/AxleWithCutout.3mf"
click node_blade_parts "https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Blade%20Parts%20V3.3mf"
click node_guide "https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Guide%20V3.3mf"
click node_wedge_assembly "https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Wedge%20Cutter%20Assembly%20V3.3mf"
click node_wedge_core "https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Wedge%20Cutter%20V3%20Core.3mf"
click node_firmware "https://github.com/saatom/wedge_cutter/blob/master/wedge_cutter/wedge_cutter.ino"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_native_cad,node_axle,node_axle_cutout,node_blade_parts,node_guide,node_wedge_assembly,node_wedge_core toneBlue
class node_firmware,node_pico toneAmber
class node_dispenser,node_dispensed_wedges,node_manual,node_battery,node_stepper_supply,node_servo_supply,node_logic_supply,node_stepper,node_stepper_driver,node_servo toneMint
class node_operator,node_wedge_stock toneIndigo
```

## Components

### Mechanical design

- [Native CAD model](https://github.com/saatom/wedge_cutter/blob/master/wedge_cutter_v3.FCStd): `wedge_cutter_v3.FCStd`
- [Axle models](https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Axle%20V2.3mf): `3d_print_files/Axle V2.3mf`
- [Axle cutout](https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/AxleWithCutout.3mf): `3d_print_files/AxleWithCutout.3mf`
- [Blade parts](https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Blade%20Parts%20V3.3mf): `3d_print_files/Blade Parts V3.3mf`
- [Guide models](https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Guide%20V3.3mf): `3d_print_files/Guide V3.3mf`
- [Wedge cutter assembly](https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Wedge%20Cutter%20Assembly%20V3.3mf): `3d_print_files/Wedge Cutter Assembly V3.3mf`
- [Wedge cutter core](https://github.com/saatom/wedge_cutter/blob/master/3d_print_files/Wedge%20Cutter%20V3%20Core.3mf): `3d_print_files/Wedge Cutter V3 Core.3mf`

### Embedded control

- [Controller firmware](https://github.com/saatom/wedge_cutter/blob/master/wedge_cutter/wedge_cutter.ino): `wedge_cutter/wedge_cutter.ino`
- **Raspberry Pi Pico**

### Product and power

- **Wedge dispenser**
- **Dispensed wedges**
- [Instruction manual](https://github.com/saatom/wedge_cutter/blob/master/Wedge%20Cutter%20Manual.odt): `Wedge Cutter Manual.odt`
- **20 V battery**
- **Stepper supply**
- **Servo supply**
- **Logic supply**
- **NEMA 23 stepper**
- **Stepper driver**
- **Servo**

### Other components

- **Operator**
- **Wedge stock**

## Connections

- Operator → Wedge dispenser: operates
- Wedge stock → Wedge dispenser: dispensed by
- Wedge dispenser → Dispensed wedges: dispenses
- Controller firmware → Raspberry Pi Pico: uploaded to
- 20 V battery → Stepper supply: powers
- 20 V battery → Servo supply: powers
- 20 V battery → Logic supply: powers
- Stepper supply → Stepper driver: 35 V supply
- Servo supply → Servo: 7 V supply
- Logic supply → Raspberry Pi Pico: 5 V supply
