

PCB macropad
Este repositório contém o código-fonte do firmware em C (STM32CubeIDE), projeto de hardware no KiCad (PCB Single-Layer B.Cu e arquivos Gerber), modelos 3D em STL da carcaça e o relatório técnico para a disciplina de…
- Size
- 58.7 × 59.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 49
- Pads
- 103
- Tracks, vias
- 103, 6
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 31 Jul 2026
- Updated
- 7 Aug 2026
Overview
PCB macropad is an open-source printed circuit board by Ozneciv, from the Ozneciv/StreamDeck-Embeeded-System repository on GitHub. It is a 2-layer board of 58.7 × 59.3 mm with 20 parts on 49 nets, routed with 103 tracks and 6 vias.
Its parts include 9 diodes, 9 switches and 2 connectors. It belongs with the keyboards and input boards of this library.
README
README.md⌨️ StreamDeck Embedded System
Periférico de entrada dedicado (Macro Pad / Stream Deck) de 9 teclas mecânicas baseado no microcontrolador ARM Cortex-M3 (STM32F103C8T6), desenvolvido com arquitetura orientada a interrupção de timer (100 Hz), comunicação USB Custom HID nativa e PCB em camada única.
📌 Visão Geral
Este repositório contém o código-fonte do firmware em C (STM32CubeIDE), projeto de hardware no KiCad (PCB Single-Layer B.Cu e arquivos Gerber), modelos 3D em STL da carcaça e o relatório técnico para a disciplina de Sistemas Embarcados I da Universidade Federal de Uberlândia (UFU / FEELT).
🌟 Principais Características
- ⚡ Zero Polling: Varredura da matriz 3x3 realizada por Interrupção por Timer de Hardware (TIM2 a 100 Hz / 10 ms) com repouso em baixo consumo (
__WFI()). - 🔄 Re-enumeração USB Automática: Reset de software no pino USB D+ (
PA12) na inicialização para identificação instantânea no SO após gravações. - 🛡️ Anti-Ghosting: Matriz 3x3 associada a 9 diodos $1\text{N}4148$.
- 🔌 Classe USB Custom HID: Envio nativo de relatórios IN de 8 Bytes com atalhos de teclado (F13 a F21) e suporte a relatórios OUT bidirecionais.
- 📐 PCB Face Simples: Placa projetada no KiCad em camada única (
B.Cu) com trilhas reforçadas ($0.8,\text{mm}$ a $1.2,\text{mm}$) para fabricação por corrosão artesanal. - 📦 Carcaça 3D: Gabinete personalizado impresso em 3D com insertos roscados M3.
📷 Fotos do Projeto
| Protótipo Finalizado | Montagem Física Interna |
|---|---|
![]() | ![]() |
🔌 Mapeamento de Pinos (Pinout STM32F103C8T6)
| Pino | Função | Modo GPIO / Periférico |
|---|---|---|
| PA1, PA2, PA3 | Linhas 1 a 3 da Matriz | GPIO_MODE_OUTPUT_OD (Open Drain) |
| PA4, PA5, PA6 | Colunas 1 a 3 da Matriz | GPIO_MODE_INPUT (Pull-Up Interno) |
| PA11 / PA12 | USB D- / USB D+ | Periférico USB Custom HID |
| PA13 / PA14 | SWDIO / SWCLK | Interface de Gravação e Depuração ST-LINK |
📂 Estrutura do Repositório
├── streamdeck bluepill/ # Projeto STM32CubeIDE (Firmware C e arquivo .ioc)
├── PCB_FINAL/ # Arquivos de fabricação KiCad e Gerbers finais
├── 3D/ # Arquivos e modelos 3D STL do gabinete e teclas
├── dashboard/ # Painel web interativo para testes e telemetria
├── StreamDeck_SEMB.pdf # Relatório Técnico & Memorial Descritivo (PDF)
├── relatorio_streamdeck.tex # Código-fonte em LaTeX do relatório
└── README.md # Documentação do projeto🛠️ Como Compilar e Gravar o Firmware
- Requisitos:
- STM32CubeIDE (v1.10 ou superior)
- Gravador ST-LINK V2 ou via USB DFU Bootloader
- Passos:
- Abra o STM32CubeIDE e importe a pasta
streamdeck bluepill. - Compile o projeto (
Project -> Build ProjectouCtrl+B). - Conecte o ST-LINK à placa Blue Pill (SWDIO: PA13, SWCLK: PA14, GND, 3.3V).
- Clique em
Run -> DebugouFlashpara gravar o arquivo.elf.
- Abra o STM32CubeIDE e importe a pasta
👥 Equipe (Discentes / FEELT UFU)
- Bruna de Jesus Silva —
12021ETE007 - Gustavo Martins Ribeiro Moura —
12111ETE002 - Mateus Henrique Gonçalves —
12311ECP021 - Vicenzo De Marco Olivalves —
12421ECP006
Docente Responsável: Prof. Jeovane Vicente de Sousa
Curso: Engenharia de Computação & Engenharia Eletrônica — UFU / FEELT
Ano: 2026
Parts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 9 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D3, D4, D5, D6, D7, D8, D9 |
| 9 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9 |
| 2 | Conn_01x20 | Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_Vertical | J1, J2 |
Questions
How big is the PCB macropad PCB?
It measures 58.7 × 59.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the PCB macropad use?
20 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the PCB macropad KiCad files?
From the Ozneciv/StreamDeck-Embeeded-System repository on GitHub, at the commit this page was made from: the board is PCB_FINAL/PCB_macropad.kicad_pcb and its schematic PCB_FINAL/PCB_macropad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the PCB macropad design in my own project?
Its repository states no licence, so its author keeps all rights: ask Ozneciv before reusing the design.
Similar boards
- 2 layers66.9 × 74.5 mm

- 2 layers86.4 × 64.8 mm

- 2 layers36.2 × 26.8 mm

Esp32 minimal
atopile/atopile
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️
20 parts4kMIT - 2 layers108.1 × 393.8 mm

Sweep compact ble
davidphilipbarr/Sweep
Sweep - a small promicro based keyboard inspired by the Ferris.
20 parts2.1k - 2 layers26 × 15.9 mm

TPS54340 Buck Regulator
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
20 parts1.2k - 2 layers67.6 × 30.5 mm

Rgb to hdmi
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
20 parts1kGPL-3.0 - 2 layers44.3 × 28.7 mm

Lin bus adapter esp32
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
20 parts915 - 2 layers89.5 × 61.6 mm

FreeDeck TH 2020-02
FreeYourStream/freedeck-hardware
all the stuff you need to build your own FreeDeck
20 parts772

