Skip to the content
PCBKitNew board
2 layers58.7 × 59.3 mmPCB macropad, the printed circuit board in 3D

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 FinalizadoMontagem Física Interna
Protótipo FinalizadoMontagem Física

🔌 Mapeamento de Pinos (Pinout STM32F103C8T6)

PinoFunçãoModo GPIO / Periférico
PA1, PA2, PA3Linhas 1 a 3 da MatrizGPIO_MODE_OUTPUT_OD (Open Drain)
PA4, PA5, PA6Colunas 1 a 3 da MatrizGPIO_MODE_INPUT (Pull-Up Interno)
PA11 / PA12USB D- / USB D+Periférico USB Custom HID
PA13 / PA14SWDIO / SWCLKInterface de Gravação e Depuração ST-LINK

📂 Estrutura do Repositório

text
├── 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

  1. Requisitos:
    • STM32CubeIDE (v1.10 ou superior)
    • Gravador ST-LINK V2 ou via USB DFU Bootloader
  2. Passos:
    • Abra o STM32CubeIDE e importe a pasta streamdeck bluepill.
    • Compile o projeto (Project -> Build Project ou Ctrl+B).
    • Conecte o ST-LINK à placa Blue Pill (SWDIO: PA13, SWCLK: PA14, GND, 3.3V).
    • Clique em Run -> Debug ou Flash para gravar o arquivo .elf.

👥 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
QtyValueFootprintReferences
91N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D6, D7, D8, D9
9SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
2Conn_01x20Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ1, 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 mmDeskHop Rev1, the printed circuit board in 3D

    DeskHop Rev1

    hrvach/deskhop

    Fast Desktop Switching Device

    20 parts7.9kGPL-3.0
  • 2 layers86.4 × 64.8 mmSlot machine, the printed circuit board in 3D

    Slot machine

    google/google-ctf

    Google CTF

    20 parts5.1kApache-2.0
  • 2 layers36.2 × 26.8 mmEsp32 minimal, the printed circuit board in 3D

    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 mmSweep compact ble, the printed circuit board in 3D

    Sweep compact ble

    davidphilipbarr/Sweep

    Sweep - a small promicro based keyboard inspired by the Ferris.

    20 parts2.1k
  • 2 layers26 × 15.9 mmTPS54340 Buck Regulator, the printed circuit board in 3D

    TPS54340 Buck Regulator

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    20 parts1.2k
  • 2 layers67.6 × 30.5 mmRgb to hdmi, the printed circuit board in 3D

    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 mmLin bus adapter esp32, the printed circuit board in 3D

    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 mmFreeDeck TH 2020-02, the printed circuit board in 3D

    FreeDeck TH 2020-02

    FreeYourStream/freedeck-hardware

    all the stuff you need to build your own FreeDeck

    20 parts772