Skip to the content
PCBKitNew board
2 layers42.5 × 43.5 mmPCB design, the printed circuit board in 3D

Sample files from Jad Haddad's Smart Table Solutions including: KiCad PCB files (schematic, layout, and 3D view) and screenshots, along with embedded C code for motor control

Size
42.5 × 43.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
42
Nets
57
Pads
177
Tracks, vias
131, 35
Pours
7
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
7 Feb 2026
Updated
10 Feb 2026

Overview

PCB design is an open-source printed circuit board by jad-jkh, from the jad-jkh/Smart-Table-Solutions repository on GitHub, published under the BSD-2-Clause licence. It is a 2-layer board of 42.5 × 43.5 mm with 42 parts on 57 nets, routed with 131 tracks and 35 vias.

It is built around the LM2596S-5.0, AMS1117-3.3 and SMBJ18A, with the SS54 among its other parts. Its parts include 19 capacitors, 7 resistors, 4 ICs, 3 diodes and 1 connector. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

4

README

README.md

Smart-Table-Solutions

Sample files from Jad Haddad's Smart Table Solutions including: KiCad PCB files (schematic, layout, and 3D view) and screenshots, along with embedded C code for motor control.

Overview

Smart Table Solutions provides an automated height-adjustable table control system using an STM32F103C8T6 (Blue Pill) microcontroller and DRV8876 motor driver. The system allows users to adjust table height via simple button controls.

Hardware Components

  • Microcontroller: STM32F103C8T6 (Blue Pill)
  • Motor Driver: DRV8876
  • Buttons: 2x momentary push buttons (Up/Down control)
  • LED: Status indicator (reserved for future features)

Pin Configuration

ComponentPinDescription
Button DownPB12Active LOW with internal pull-up
Button UpPB15Active LOW with internal pull-up
Motor Enable(IN1/EN)PA6
Motor Phase(IN2/PH)PA5
LED ReservePB7Reserved for future add-on features

Functionality

  • Hold DOWN button (PB12): Motor drives table downward
  • Hold UP button (PB15): Motor drives table upward
  • Hold BOTH buttons: Motor stops (safety feature)
  • Release buttons: Motor stops

Software

The embedded firmware is written in C using the Arduino framework with STM32duino support.

Features

  • Simple hold-to-run button logic
  • Safety stop when both buttons pressed simultaneously
  • 10ms software debouncing
  • Reserved LED pin for custom add on

Code Structure

  • motorControl.ino - Main control logic for motor operations

Setup Instructions

Hardware Setup

  1. Connect ST-Link programmer to Blue Pill SWD pins (SWDIO, SWCLK, GND, 3.3V)
  2. Solder buttons to PB12 and PB15 with pull-up configuration and LED + controller if applicable
  3. Solder DRV8876 motor driver IN1 to PA6, IN2 to PA5
  4. Plug jack into female connector

Software Setup

  1. Install Arduino IDE
  2. Add STM32 board support:
    • Go to Settings → Additional boards manager URLs
    • Add: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
  3. Install STM32 boards:
    • Tools → Board → Boards Manager
    • Search and install "STM32 MCU based boards"
  4. Select board:
    • Tools → Board → STM32 boards → Generic STM32F1 series
    • Tools → Board part number → BluePill F103C8
    • Tools → Upload method → STLink
  5. Open motorControl.ino and upload to Blue Pill

Repository Contents

  • /pcb - KiCad PCB design files
    • Schematic files
    • PCB layout
    • 3D view renders
  • /firmware - Embedded C code
    • motorControl.ino - Motor control firmware
  • /screenshots - Project documentation images

Author

Jad Haddad

Contact

jadkh6@gmail.com

Parts

42
QtyValueFootprintReferences
9100nFCapacitor_SMD:C_0402_1005MetricC7, C8, C9, C11, C14, C16, C19, C20, C20
20.1uFCapacitor_SMD:C_0805_2012MetricC2, C12
2100ΩResistor_SMD:R_01005_0402MetricR4, R5
210kΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R7
210uFCapacitor_SMD:C_01005_0402MetricC5, C10
10.1mFCapacitor_SMD:C_0402_1005MetricC6
1100uFCapacitor_SMD:C_0805_2012MetricC1
110kΩResistor_SMD:R_01005_0402MetricR3
110kΩResistor_SMD:R_0805_2012MetricR1
110nFCapacitor_SMD:C_01005_0402MetricC15
110uFCapacitor_SMD:C_0402_1005MetricC4
110uFCapacitor_SMD:C_1206_3216MetricC3
110ΩResistor_SMD:R_01005_0402MetricR2
11nFCapacitor_SMD:C_0805_2012MetricC13
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1DRV8876PWPRDRV8876PWPR:IC_DRV8876PWPRU5
1Jack-DCConnector_BarrelJack:BarrelJack_CUI_PJ-063AH_HorizontalJ1
1LM2596S-5Package_TO_SOT_SMD:TO-263-5_TabPin3U2
1SMBJ18ADiode_SMD:D_SMB_HandsolderingD2
1SOD323Diode_SMD:D_SOD-323FD3
1SS54Diode_SMD:D_SMBD1
1STM32F103C8TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU1

The 34 most common of 42 parts.

Questions

How big is the PCB design PCB?

It measures 42.5 × 43.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PCB design use?

42 parts, built around the LM2596S-5.0, AMS1117-3.3, SMBJ18A and SS54. 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 design KiCad files?

From the jad-jkh/Smart-Table-Solutions repository on GitHub, at the commit this page was made from: the board is pcb/PCB_design.kicad_pcb and its schematic pcb/PCB_design.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PCB design design in my own project?

Its repository publishes it under the BSD-2-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers210 × 120 mmRelay24 ESP32, the printed circuit board in 3D

    Relay24 ESP32

    renatorgr/Boards

    Hardware and firmware for the AgOpenGPS AiO v4.5 autosteer boards: Teensy 4.1 firmware with its own web page (GPS, IMU, autosteer), a XIAO ESP32 Wi-Fi status page, XIAO adapter boards, and an Arduino Nano sprayer…

    164 parts2GPL-3.0
  • 2 layers172.5 × 392 mmEsp32 midi, the printed circuit board in 3D

    Esp32 midi

    0xFEEDC0DE64/esp-midi-board

    ESP32 usb midi controller

    444 parts1
  • 2 layers120 × 95 mmAmp, the printed circuit board in 3D

    Amp

    rmalchow/ondaire

    A KiCad 10 project for a powered-speaker node: an ESP32-S3 dev board drops into a socket, an I²S DAC + class-D amp turn the stream into 40–50 W of audio, and the whole thing runs from a single USB-C cable via USB-PD.

    68 parts1
  • 2 layers99 × 90 mmHomeyPCB, the printed circuit board in 3D

    HomeyPCB

    jadam3k/Homey

    Home Asistance/Industrial PLC

    99 parts
  • 4 layers73.2 × 41.9 mmElectric angle actuator, the printed circuit board in 3D

    Electric angle actuator

    MichalKacperek/electric_angle_actuator

    PCB for AM4096 encoder with STM32F103RBT6 microcontroller and terminals for DC motor controller based on two L6390D with CAN bus interface.

    66 parts
  • 2 layers76.2 × 61.9 mmDigits pcb, the printed circuit board in 3D

    Digits pcb

    justinlindh/digits

    Encrypted retro phone network — private VoIP over vintage desk phones

    71 parts4AGPL-3.0
  • 4 layers40 × 40 mmAuv sensor hub, the printed circuit board in 3D

    Auv sensor hub

    ginomcfino/auv-sensor-hub

    STM32-based sensor hub for autonomous underwater vehicles, integrating CAN bus communication, inertial and pressure sensing, and multi-rail power regulation.

    59 parts
  • 2 layers100 × 100 mmCOPIE 0, the printed circuit board in 3D

    COPIE 0

    AssaadMH/shadow-4wd-motor-shield-pcb

    The 24-signal interface board that replaces SHADOW's perfboard wiring — and the two pin conflicts that only appeared on re-checking the spec.

    154 parts2MIT