# nicholas1023/macro-microcontroller-2 architecture

> Architecture diagram of the GitHub repository nicholas1023/macro-microcontroller-2, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nicholas1023/macro-microcontroller-2
- Repository: https://github.com/nicholas1023/macro-microcontroller-2

## Overview

Macro Microcontroller 2 combines an RP2040 development board and macropad with firmware for GPIO control, a serial BASIC interpreter, and a BIOS/DOS environment. Users interact through the board’s keys or a serial terminal; firmware dispatches commands to GPIO devices or presents DOS commands and BASIC. Hardware design and production artifacts, documentation, and a custom-firmware template are supporting product capabilities. Firmware relationships are shown only where excerpts or the README establish them; the web editor is documented but its integration is not established.

Main entry points: [`PCB Files/macro-microcontroller-2.kicad_pcb`](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_pcb) (Macro Microcontroller 2), [`Firmware Files/macro-microcontroller-basic.c`](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-basic.c) (BASIC Interpreter), [`Firmware Files/macro-microcontroller-bios+dos.c`](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c) (BIOS + DOS), [`Firmware Files/macro-microcontroller-bios.c`](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios.c) (BIOS Firmware)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_firmware["Firmware"]
  node_bios["BIOS Firmware"]
  node_bios_dos["BIOS + DOS"]
  node_dos_commands["DOS Commands"]
  node_basic["BASIC Interpreter"]
  node_embedded_basic["Embedded BASIC"]
  node_custom_fw["Firmware Template"]
  node_example["BASIC Example<br/>[example.bas]"]
end

subgraph group_hardware["Board Hardware"]
  node_pcb["PCB Design"]
  node_schematic["Circuit Schematic"]
  node_enclosure["Enclosure Model<br/>[enclosure.stl]"]
  node_production["Production Files"]
  node_board["Macro Microcontroller 2"]
end

subgraph group_docs["Product Resources"]
  node_datasheet["Datasheet"]
  node_guides["User Guides"]
end

node_user(("User"))
node_terminal["Serial Terminal"]
node_web_editor["Web Editor"]

node_user -->|"enters commands"| node_terminal
node_terminal -->|"sends BASIC input"| node_basic
node_terminal -->|"sends DOS input"| node_bios_dos
node_user -->|"presses keys"| node_board
node_board -->|"selects boot mode"| node_bios_dos
node_bios_dos -->|"dispatches commands"| node_dos_commands
node_bios_dos -->|"enters interpreter"| node_embedded_basic
node_bios -->|"invokes interpreter"| node_basic
node_basic -->|"controls GPIO"| node_board
node_embedded_basic -->|"controls GPIO"| node_board
node_dos_commands -->|"drives outputs"| node_board
node_user -->|"edits programs"| node_web_editor
node_web_editor -.->|"targets BASIC"| node_basic
node_example -->|"provides sample program"| node_basic
node_custom_fw -->|"configures GPIO"| node_board
node_pcb -->|"documents circuitry"| node_schematic
node_pcb -->|"provides board design"| node_production
node_pcb -.->|"supports enclosure"| node_enclosure
node_datasheet -->|"describes hardware"| node_board
node_guides -->|"documents usage"| node_user

click node_bios "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios.c"
click node_bios_dos "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c"
click node_dos_commands "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c"
click node_basic "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-basic.c"
click node_embedded_basic "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c"
click node_custom_fw "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/firmware-template.c"
click node_example "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/example.bas"
click node_pcb "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_pcb"
click node_schematic "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_sch"
click node_enclosure "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Printing%20Files/enclosure.stl"
click node_production "https://github.com/nicholas1023/macro-microcontroller-2/tree/main/Production%20Files"
click node_datasheet "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/docs/assets/macro-microcontroller-2-datasheet.pdf"
click node_guides "https://github.com/nicholas1023/macro-microcontroller-2/tree/main/docs/guides"
click node_board "https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_pcb"

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_bios,node_bios_dos,node_dos_commands,node_basic,node_embedded_basic,node_custom_fw,node_example,node_user toneBlue
class node_pcb,node_schematic,node_enclosure,node_production,node_board toneAmber
class node_datasheet,node_guides toneMint
class node_terminal,node_web_editor toneIndigo
```

## Components

### Firmware

- [BIOS Firmware](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios.c): `Firmware Files/macro-microcontroller-bios.c`
- [BIOS + DOS](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c): `Firmware Files/macro-microcontroller-bios+dos.c`
- [DOS Commands](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c): `Firmware Files/macro-microcontroller-bios+dos.c`
- [BASIC Interpreter](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-basic.c): `Firmware Files/macro-microcontroller-basic.c`
- [Embedded BASIC](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/macro-microcontroller-bios%2Bdos.c): `Firmware Files/macro-microcontroller-bios+dos.c`
- [Firmware Template](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/firmware-template.c): `Firmware Files/firmware-template.c`
- [BASIC Example](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Firmware%20Files/example.bas): `Firmware Files/example.bas`

### Board Hardware

- [PCB Design](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_pcb): `PCB Files/macro-microcontroller-2.kicad_pcb`
- [Circuit Schematic](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_sch): `PCB Files/macro-microcontroller-2.kicad_sch`
- [Enclosure Model](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/Printing%20Files/enclosure.stl): `Printing Files/enclosure.stl`
- [Production Files](https://github.com/nicholas1023/macro-microcontroller-2/tree/main/Production%20Files): `Production Files`
- [Macro Microcontroller 2](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/PCB%20Files/macro-microcontroller-2.kicad_pcb): `PCB Files/macro-microcontroller-2.kicad_pcb`

### Product Resources

- [Datasheet](https://github.com/nicholas1023/macro-microcontroller-2/blob/main/docs/assets/macro-microcontroller-2-datasheet.pdf): `docs/assets/macro-microcontroller-2-datasheet.pdf`
- [User Guides](https://github.com/nicholas1023/macro-microcontroller-2/tree/main/docs/guides): `docs/guides`

### Other components

- **User**
- **Serial Terminal**
- **Web Editor**

## Connections

- User → Serial Terminal: enters commands (evidence: `README.md`)
- Serial Terminal → BASIC Interpreter: sends BASIC input (evidence: `README.md`)
- Serial Terminal → BIOS + DOS: sends DOS input (evidence: `README.md`)
- User → Macro Microcontroller 2: presses keys (evidence: `README.md`)
- Macro Microcontroller 2 → BIOS + DOS: selects boot mode (evidence: `Firmware Files/macro-microcontroller-bios+dos.c`)
- BIOS + DOS → DOS Commands: dispatches commands (evidence: `Firmware Files/macro-microcontroller-bios+dos.c`)
- BIOS + DOS → Embedded BASIC: enters interpreter (evidence: `Firmware Files/macro-microcontroller-bios+dos.c`)
- BIOS Firmware → BASIC Interpreter: invokes interpreter (evidence: `Firmware Files/macro-microcontroller-bios.c`)
- BASIC Interpreter → Macro Microcontroller 2: controls GPIO (evidence: `Firmware Files/macro-microcontroller-basic.c`)
- Embedded BASIC → Macro Microcontroller 2: controls GPIO (evidence: `Firmware Files/macro-microcontroller-bios+dos.c`)
- DOS Commands → Macro Microcontroller 2: drives outputs (evidence: `README.md`)
- User → Web Editor: edits programs (evidence: `README.md`)
- Web Editor → BASIC Interpreter: targets BASIC
- BASIC Example → BASIC Interpreter: provides sample program (evidence: `README.md`)
- Firmware Template → Macro Microcontroller 2: configures GPIO (evidence: `Firmware Files/firmware-template.c`)
- PCB Design → Circuit Schematic: documents circuitry (evidence: `README.md`)
- PCB Design → Production Files: provides board design (evidence: `README.md`)
- PCB Design → Enclosure Model: supports enclosure
- Datasheet → Macro Microcontroller 2: describes hardware (evidence: `README.md`)
- User Guides → User: documents usage (evidence: `README.md`)
