Skip to the content
PCBKitNew board
2 layers100 × 70 mmMediBox F401CC, the printed circuit board in 3D

Sistema embarcado para auxílio à rotina de medicação, desenvolvido com a placa BlackPill STM32F401CCU6. O equipamento permite configurar um horário diário, mantém data e hora por meio do RTC DS3231, apresenta as…

Size
100 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
41
Nets
43
Pads
118
Tracks, vias
130, 0
Pours
72
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
31 Jul 2026
Updated
31 Jul 2026

Overview

MediBox F401CC is an open-source printed circuit board by ChaMatteCoder, from the ChaMatteCoder/medi-box repository on GitHub. It is a 2-layer board of 100 × 70 mm with 41 parts on 43 nets, routed with 130 tracks and 0 vias.

It is built around the TMB12A05. Its parts include 9 capacitors, 5 resistors, 3 switches, 2 diodes and 1 transistor. It belongs with the STM32 boards of this library.

Main components

1

README

README.md

MediBox

Sistema embarcado para auxílio à rotina de medicação, desenvolvido com a placa BlackPill STM32F401CCU6. O equipamento permite configurar um horário diário, mantém data e hora por meio do RTC DS3231, apresenta as informações em um display OLED e emite alertas sonoro e visual. A abertura da tampa, detectada por reed switch, confirma o acesso ao medicamento.

Guia rápido para avaliação

Os principais materiais da entrega estão disponíveis nos links abaixo:

Estrutura da entrega

text
MediBox/
├── datasheets/                 # Datasheets dos componentes utilizados
├── docs/                       # Memorial e relatórios auxiliares de ERC/DRC
├── firmware/
│   └── MediBox_F401CC/         # Projeto completo do STM32CubeIDE
│       ├── Core/               # Código-fonte da aplicação e drivers
│       ├── Drivers/            # CMSIS e STM32 HAL
│       ├── Debug/              # Binário, ELF, mapa e artefatos da compilação
│       └── MediBox_F401CC.ioc   # Configuração do STM32CubeMX
├── hardware_PCB/
│   ├── BOM_E_CUSTOS/           # BOM em CSV e orçamento estimado
│   ├── GERBERS_E_FURACAO/      # Arquivos para fabricação da placa
│   ├── MediBox_F401CC_rework_V2_ZERO_ERC_DRC/
│   │   ├── 3D_Models/          # Modelos 3D utilizados no projeto
│   │   ├── *.pretty/           # Bibliotecas locais de footprints
│   │   ├── *.kicad_sym         # Biblioteca local de símbolos
│   │   ├── *.kicad_sch         # Esquemático eletrônico
│   │   ├── *.kicad_pcb         # Leiaute da placa
│   │   └── *.kicad_pro         # Arquivo principal do projeto KiCad
│   └── TESTES_E_VALIDACOES/    # ERC, DRC e testes de firmware em host
└── presentation/               # Apresentação final em PDF

Funcionalidades

  • configuração da data e da hora do sistema;
  • configuração de um horário diário para a medicação;
  • relógio de tempo real com RTC DS3231 e bateria de backup;
  • exibição de data, hora, alarme e estado da tampa no OLED SSD1306;
  • alerta sonoro por buzzer e alerta visual por LED;
  • confirmação de abertura da tampa por reed switch;
  • interface por três botões com tratamento de debounce;
  • indicação visual do estado do RTC pelo LED da BlackPill;
  • máquina de estados não bloqueante, executada periodicamente a cada 10 ms.

Funcionamento da interface

Na primeira inicialização, caso o RTC não possua uma data e hora válidas, o sistema conduz o usuário pelo ajuste do relógio. Em seguida é solicitado o horário diário do medicamento.

SituaçãoBotão UPBotão DOWNBotão OK
Operação normalAbre o ajuste do alarmeAbre o ajuste do RTCReservado
Tela de ajusteIncrementa o valorDecrementa o valorAvança ou salva

Quando o horário configurado é atingido, o buzzer e o LED de alerta são acionados. A abertura da tampa muda o estado da dose e encerra a sinalização conforme a máquina de estados do firmware.

O LED de status da BlackPill também informa a condição do RTC por diferentes frequências de piscada: operação normal, horário inválido ou falha de comunicação.

Hardware principal

BlocoComponenteFunção
ProcessamentoBlackPill STM32F401CCU6Controle central do sistema
RelógioMódulo DS3231 com AT24C32Data/hora com backup por bateria
Interface visualOLED SSD1306 128 × 64, I²CExibição de horário e estados
Interface do usuário3 botões tácteisNavegação e configuração
Alerta sonoroBuzzer ativo de 5 VAviso do horário da dose
Alerta visualLED externoIndicação do alarme ativo
Sensor da tampaReed switch normalmente abertoDetecção da abertura do compartimento
Alimentação e proteçãoCapacitores, diodo Schottky e transistorFiltragem, proteção e acionamento

A relação completa de componentes está em BOM_MediBox.csv. A estimativa consolidada do protótipo está em CUSTO_ESTIMADO.md.

Pinagem utilizada

SinalPino STM32Configuração
LED de statusPC13Saída digital, ativo em nível baixo
Sensor da tampaPA0Entrada com pull-up e interrupção nas duas bordas
Controle do buzzerPB0Saída digital
LED de alertaPB1Saída digital
Botão UPPB12Entrada com pull-up
Botão DOWNPB13Entrada com pull-up
Botão OKPB14Entrada com pull-up
I²C1 SCLPB6Clock do RTC e do OLED
I²C1 SDAPB7Dados do RTC e do OLED
SWDIOPA13Programação e depuração
SWCLKPA14Programação e depuração

Firmware

O firmware foi desenvolvido em C com STM32 HAL. A aplicação usa o TIM2 para produzir a base de tempo de 10 ms e organiza as tarefas de forma modular.

MóduloResponsabilidade
app_medibox.cCoordenação da aplicação, telas e modos de configuração
medication_alarm.cHorário da dose e máquina de estados do alarme
rtc_ds3231.cComunicação, leitura e ajuste do RTC
display_ssd1306.cDriver e framebuffer do OLED
buttons.cLeitura e debounce dos três botões
lid_sensor.cInterrupção e debounce do reed switch
buzzer.cControle temporizado do aviso sonoro

Como abrir e compilar

  1. Instale o STM32CubeIDE com suporte à família STM32F4.
  2. No STM32CubeIDE, selecione File > Import > Existing Projects into Workspace.
  3. Informe a pasta firmware/MediBox_F401CC.
  4. Selecione o projeto MediBox_F401CC e execute Build Project.
  5. Para gravar a BlackPill, conecte um programador ST-Link às interfaces SWDIO, SWCLK, 3V3 e GND.

O projeto utiliza STM32Cube FW_F4 V1.28.3, compilador GCC e clock do sistema configurado em 84 MHz. Os arquivos pré-compilados .bin e .elf também estão na pasta Debug.

Projeto eletrônico e PCB

O projeto principal do KiCad é MediBox_F401CC.kicad_pro. Ele referencia bibliotecas locais de símbolos, footprints e modelos 3D incluídas na própria entrega, permitindo abrir o esquemático e o leiaute sem depender de arquivos externos do autor.

Para fabricação, envie o conteúdo da pasta GERBERS_E_FURACAO ao fabricante da PCB. Ela contém cobre, máscara, serigrafia, contorno, arquivos de furação PTH/NPTH e o arquivo de trabalho Gerber.

Validação

Os relatórios finais foram gerados no KiCad 10.0.4 em 31/07/2026:

VerificaçãoResultadoEvidência
ERC do esquemático0 violaçõesERC_FINAL_20260731.json
DRC da placa0 violações e 0 itens desconectadosDRC_FINAL_20260731.json

A pasta TESTES_HOST_FIRMWARE reúne os fontes de testes complementares executáveis em computador, com simulação das dependências de hardware. Os relatórios intermediários e as linhas de base também permanecem em docs para rastreabilidade.

Documentação técnica

Os datasheets utilizados no dimensionamento, na integração e na conferência das interfaces estão organizados em datasheets. O acervo contempla os principais módulos e componentes do projeto, incluindo o STM32F401CCU6, o RTC DS3231, o display SSD1306 e os dispositivos de acionamento e proteção.

Autoria

Projeto acadêmico desenvolvido por ChaMatteCoder.

Parts

41
QtyValueFootprintReferences
6100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC2, C4, C5, C6, C7, C8
4M3_MOUNTING_HOLEMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3TACT_SWITCH_6x6x5mmMediBox_Footprints:SW_TACT_6x6x5_2PIN_P5.00mmSW1, SW2, SW3
210uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC3, C9
21KΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4, R6
10R / WIRE JUMPERResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalJP1
110KΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR7
110kΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3
11N5817Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1
12N2222Package_TO_SOT_THT:TO-92_InlineQ1
1330ΩResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5
147uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC1
1BlackPill_STM32F401CCU6MediBox_Footprints:BlackPill_STM32F401CCU6_2x20_P2.54_W15.24A1
1LEDLED_THT:LED_D5.0mmD2
1OLED_SSD1306_I2C_4PINMediBox_Footprints:OLED_SSD1306_I2C_0.96_4PIN_27.3x27.8A2
1REED_SWITCH_INPUTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1RTC_DS3231_AT24C32MediBox_Footprints:RTC_DS3231_AT24C32_1x06_P2.54_VERTICALA3
1TMB12A05Buzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1TP_3V3TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP2
1TP_5VTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP1
1TP_BUZZER_CTRLTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP8
1TP_BUZZER_NEGTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP9
1TP_GNDTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP3
1TP_I2C_SCLTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP4
1TP_I2C_SDATestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP5
1TP_LED_ALERTTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP7
1TP_LID_SENSORTestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mmTP6
1WIRE_JUMPERMediBox_Footprints:WIRE_JUMPER_P5.08mmJP3
1WIRE_JUMPERMediBox_Footprints:WIRE_JUMPER_P10.16mmJP2

Questions

How big is the MediBox F401CC PCB?

It measures 100 × 70 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MediBox F401CC use?

41 parts, built around the TMB12A05. 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 MediBox F401CC KiCad files?

From the ChaMatteCoder/medi-box repository on GitHub, at the commit this page was made from: the board is hardware_PCB/MediBox_F401CC_rework_V2_ZERO_ERC_DRC/MediBox_F401CC.kicad_pcb and its schematic hardware_PCB/MediBox_F401CC_rework_V2_ZERO_ERC_DRC/MediBox_F401CC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MediBox F401CC design in my own project?

Its repository states no licence, so its author keeps all rights: ask ChaMatteCoder before reusing the design.

Similar boards

  • 2 layers50.6 × 71.1 mmOpen ESPilot, the printed circuit board in 3D

    Open ESPilot

    Tomas-Kuchta-FPV/Open-ESPilot

    An open-source project to develop a custom ESP32-based flight controller designed primarily for use with ArduPilot. Focused on affordability, flexibility, and ease of integration with various robotic and UAV platforms.

    109 parts18CERN-OHL-W-2.0
  • 2 layers55 × 84.4 mmOpenReflowPlate, the printed circuit board in 3D

    OpenReflowPlate

    makingdevices/OpenReflowPlate

    An Open Reflow Plate machine for smd soldering

    71 parts6
  • 4 layers65 × 45 mmStopWatch, the printed circuit board in 3D

    StopWatch

    makingdevices/StopWatch

    This project is a simple StopWatch for measuring times on different processes or activities.

    55 parts5GPL-3.0
  • 2 layers40 × 65 mmBytesCounter, the printed circuit board in 3D

    BytesCounter

    makingdevices/Bytes-Counter

    Bytes Counter is a Open Source Tally Counter HW project

    36 parts4GPL-3.0
  • 2 layers160 × 110 mmAcquedotto test v4 finale, the printed circuit board in 3D

    Acquedotto test v4 finale

    igorilla666/water-controller

    Scheda di controllo basata sul modulo Waveshare ESP32-S3-ETH, con ingressi sensore, RS-485, pilotaggio rele, buzzer e alimentazione/protezioni dedicate.

    139 parts1CERN-OHL-S-2.0
  • 2 layers124.8 × 68 mmESP-32-RELAY CONTROLLER, the printed circuit board in 3D

    ESP-32-RELAY CONTROLLER

    pasachan/ESP-32-RELAY-CONTROLLER

    An 8-channel relay controller with Wi-Fi, an RS-485 field bus, and a 12 V power rail for downstream nodes. Designed as the master board for a small home-automation network: this board switches loads directly, talks to…

    106 parts1CERN-OHL-P-2.0
  • 4 layers128.1 × 128.1 mmDrone ver2, the printed circuit board in 3D

    Drone ver2

    caophi1324/Do-An-Tot-Nghiep

    269 parts