# andriymelnykov/electronic_eyepiece_for_cdk20 architecture

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

- Interactive diagram: https://gitdiagram.com/andriymelnykov/electronic_eyepiece_for_cdk20
- Repository: https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20
- Video tour (about a minute): https://gitdiagram.com/andriymelnykov/electronic_eyepiece_for_cdk20/video

## Overview

This repository documents and provides hardware for an electronic telescope eyepiece: 3D-printable mechanical parts, example calibration/configuration files, and Arduino keyboard firmware. The documented observing workflow sends telescope-camera images to external PC-based EAA software for live stacking, then presents the result through the eyepiece. The PC application is explicitly a separate project; no source excerpts were supplied, so internal processing and hardware wiring are not mapped.

Main entry points: [`3D_Models/Eyepiece_Body_Layer0_1_RandomSeam.step`](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/3D_Models/Eyepiece_Body_Layer0_1_RandomSeam.step) (Electronic eyepiece), [`Config_Example/config.txt`](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/Config_Example/config.txt) (Example configurations), [`Config_Example`](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/tree/main/Config_Example) (Calibration frames)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_instrument["Eyepiece hardware"]
  node_models["Mechanical parts"]
  node_keyboard["Hotkey keyboard"]
  node_eyepiece["Electronic eyepiece"]
end

subgraph group_processing["Image processing"]
  node_eaa["EAA PC software"]
end

subgraph group_setup["Setup and calibration"]
  node_configs["Example configurations<br/>[config.txt]"]
  node_calibration["Calibration frames"]
end

node_observer(("Observer"))
node_telescope["Telescope"]
node_camera["Astronomy camera"]

node_telescope -->|"optically images"| node_camera
node_camera -->|"sends images"| node_eaa
node_configs -.->|"configures"| node_eaa
node_calibration -.->|"calibrates"| node_eaa
node_eaa -->|"displays stack"| node_eyepiece
node_observer -->|"views through"| node_eyepiece

click node_models "https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/tree/main/3D_Models"
click node_keyboard "https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/Keyboard_SW/Keyboard_for_CDK_hotkeys.ino"
click node_eyepiece "https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/3D_Models/Eyepiece_Body_Layer0_1_RandomSeam.step"
click node_configs "https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/Config_Example/config.txt"
click node_calibration "https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/tree/main/Config_Example"

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_models,node_keyboard,node_eyepiece toneBlue
class node_eaa toneAmber
class node_configs,node_calibration,node_observer toneMint
class node_telescope,node_camera toneIndigo
```

## Components

### Eyepiece hardware

- [Mechanical parts](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/tree/main/3D_Models): `3D_Models`
- [Hotkey keyboard](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/Keyboard_SW/Keyboard_for_CDK_hotkeys.ino): `Keyboard_SW/Keyboard_for_CDK_hotkeys.ino`
- [Electronic eyepiece](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/3D_Models/Eyepiece_Body_Layer0_1_RandomSeam.step): `3D_Models/Eyepiece_Body_Layer0_1_RandomSeam.step`

### Image processing

- **EAA PC software**

### Setup and calibration

- [Example configurations](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/blob/main/Config_Example/config.txt): `Config_Example/config.txt`
- [Calibration frames](https://github.com/andriymelnykov/electronic_eyepiece_for_cdk20/tree/main/Config_Example): `Config_Example`

### Other components

- **Observer**
- **Telescope**
- **Astronomy camera**

## Connections

- Telescope → Astronomy camera: optically images
- Astronomy camera → EAA PC software: sends images
- Example configurations → EAA PC software: configures
- Calibration frames → EAA PC software: calibrates
- EAA PC software → Electronic eyepiece: displays stack
- Observer → Electronic eyepiece: views through
