Skip to the content
PCBKitNew board
2 layers60 × 50 mmButton interface, the printed circuit board in 3D

Button interface

koilkl/y3yp

Here is the Group1's year 3 year-long project repository

Size
60 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
17
Pads
71
Tracks, vias
96, 68
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Aug 2026
Updated
5 Nov 2026

Overview

Button interface is an open-source printed circuit board by koilkl, from the koilkl/y3yp repository on GitHub. It is a 2-layer board of 60 × 50 mm with 28 parts on 17 nets, routed with 96 tracks and 68 vias.

Its parts include 12 connectors, 5 capacitors, 4 resistors and 3 diodes. It belongs with the interfaces and adapters boards of this library.

README

readme.md

🥾 Next-Generation Ankle Rehabilitation System (Actuation Belt Trainer)

Welcome to the official repository for the Next-Generation Ankle Rehabilitation System, a biomechanically engineered solution designed to build structural resilience and prevent trail-induced lower-limb injuries.

👥 Meet the Team

Hikingggggggg(HKUST 2026 ISDN3001&ISDN3002 Group 1)

  • Teammate:Kwok Tsz Yueng
    • Kwok Tsz Yueng(Tom)
    • Li,Kaile(Koil)
    • Lee Wang Ngai(Cyrus)
    • Yu Kin Shing(Ken)

We are a team of passionate engineers and biomechanics enthusiasts dedicated to bridging the gap between clinical rehabilitation and real-world outdoor sports readiness.


🏔️ Project Overview

The Problem: The Hiking Injury Epidemic

With the massive global expansion of hiking participation, there has been a severe spike in trail-induced injuries.

  • Acute Lateral Sprains account for an overwhelming 85% of all acute trail traumas.
  • In competitive downhill races, lower-limb injury rates spike dramatically to 49%.
  • Hikers face a "Deficit in Terrain Adaptability"; modern flat surfaces fail to prepare the body for the eccentric braking and instantaneous balance reflexes required on unpredictable mountain terrains (like loose rock and scree).

When a sudden, forceful ankle inversion exceeds 25 degrees, it tears the Anterior Talofibular and Calcaneofibular ligaments.

The Solution: The Actuation Belt Trainer

Existing market solutions force a compromise: balance boards train reflexes but lack heavy external load, while clinical dynamometers are expensive and lack multi-axis functional movement.

After multiple ideation phases (including dynamic treadmills and linear pedal trainers), we finalized the Actuation Belt Trainer. This active, stationary device isolates the protective reflex arc by applying changeable, programmable external loads to train specific muscle reaction times across 3 Degrees of Freedom (DOFs).


⚙️ System Architecture

Our system integrates responsive hardware with a closed-loop software control mechanism to ensure precise resistance and user safety.

Control Loop Workflow

  1. Command Input: Users input commands via a terminal to wirelessly control motor force and turning direction for specific muscle targeting.
  2. Processing & Communication: A Microcontroller Unit (MCU) processes the command using a PID controller and sends signals via a CAN Module to 6 Motor Electronic Speed Controllers (ESCs).
  3. IMU Feedback: An Inertial Measurement Unit (IMU) under the pedal continuously detects the XYZ angle of the pedal.
  4. Evaluation & Visual Feedback: The MCU calculates the control error against the target origin angle. If the user successfully holds the pedal within a +/- 10-degree range against the motor resistance for 5 seconds, an LED indicator triggers to signal successful completion.

🛠️ Component Design

The mechanical structure relies on motor-driven belts and gears to safely and effectively stimulate the ankle:

  • Roll Mechanism (Inversion/Eversion): Four M3508 motors utilize a 1:1 gear transmission to transfer torque to a pulley system. This produces tension along an elastic belt connected to the pedal, creating a twisting motion that the user must resist.
  • Pitch Mechanism (Dorsiflexion/Plantarflexion): A motor and gear turn the entire middle module and the central pedal, supported by a large external bearing for smooth turning. A limited angle of gear teeth physically restricts motion to guarantee it remains within an acceptable, safe anatomical range.

🔬 Biomechanical Validation

The system targets the biological failure points of the ankle by isolating the primary protective muscles:

  • Fibularis (Peroneal) Group: Primary evertors critical for resisting sudden inward ankle rolling (inversion) on shifting scree.
  • Tibialis Group: Crucial for dorsiflexion, arch support, and absorbing repeated impact with controlled eccentric braking during steep descents.

By engineering a device that challenges the ankle with resisted eversion and perturbation, the system is theoretically proven to improve strength and balance deficits.


🚀 Future Roadmap

  • Weeks 1-3: Develop a dedicated mobile app for user control, design a "hiking-like" training mode, and improve mechanism functionalities.
  • Weeks 4-6: Design pedals to fit different foot sizes, replace electronics to minimize overall device size, and refine the product outfit.
  • Weeks 6-7: Conduct extensive user testing, identify potential new user groups, and perform evaluations based on feedback.
  • Weeks 7-8: Design new features and establish a future plan for product line depth to fit various target demographics.

💾 Cloning This Repository

The repo uses git submodules (firmware) and Git LFS (large media files):

bash
# 1. Install Git LFS (once per machine)
#    macOS:      brew install git-lfs
#    Windows:    winget install Git.LFS
#    Ubuntu:     sudo apt install git-lfs
git lfs install

# 2. Clone with submodules
git clone --recursive https://github.com/koilkl/y3yp.git
  • git lfs install sets up the LFS filters on your machine. Without it, LFS-tracked files (e.g. *.mp4) are checked out as small pointer files instead of the real content.
  • Already cloned without LFS support? Run git lfs install && git lfs pull to download the tracked files.
  • --recursive fetches the firmware submodules under ELEC/; alternatively run git submodule update --init --recursive inside an existing clone.

📂 Repository Structure

text
y3yp/
├── DOCUMENT/                 # Presentations & demo video
│   └── Version-1.0/
│       ├── Midterm Presentation.pptx
│       ├── Final Presentation.pdf
│       └── demo video.mp4
├── ELEC/                     # Electronics & firmware
│   ├── Version-1.0/
│   │   └── Year_3_first_prototype/   # submodule: STM32F103C6T6, CAN motors + IMU + PID
│   └── Component/
│       └── Incliometer/              # submodule: STM32F401RETx, Modbus-RTU inclinometer
├── MECH/                     # Mechanical design (CAD)
│   └── Version-1.0/
│       └── Gen1-belt.zip             # Belt-actuation assembly (STEP)
└── readme.md                 # This file

📁 Resources & Appendices

Parts

28
QtyValueFootprintReferences
50.1uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5
4330ΩResistor_SMD:R_0805_2012MetricR1, R2, R3, R4
4MountingHoleMountingHole:MountingHole_4.3mm_M4_DIN965_PadH1, H2, H3, H4
35VLED_THT:LED_D5.0mmD1, D2, D3
1Back1_2pinConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ8
1Back2_2pinConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ9
1BackUP_3PinConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ7
1Button1Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ2
1Button2Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ3
1Conn_01x05_SocketConnector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ12
1Conn_01x08Connector_JST:JST_XH_B8B-XH-A_1x08_P2.50mm_VerticalJ4
1Conn_01x08_SocketConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ6
1LED barConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ1
1Out2_XHConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ11
1SwitchConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ5
1out1_XHConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ10

Questions

How big is the Button interface PCB?

It measures 60 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Button interface use?

28 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 Button interface KiCad files?

From the koilkl/y3yp repository on GitHub, at the commit this page was made from: the board is ELEC/PCB/Button_interface/Button_interface/Button_interface.kicad_pcb and its schematic ELEC/PCB/Button_interface/Button_interface/Button_interface.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Button interface design in my own project?

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

Similar boards

  • 2 layers44.5 × 72.7 mmOSO SWAT C1-jig, the printed circuit board in 3D

    OSO SWAT C1-jig

    joeycastillo/Sensor-Watch

    A board replacement for the classic Casio F-91W wristwatch

    28 parts2.1k
  • 2 layers95 × 54 mmEinkPDA screen, the printed circuit board in 3D

    EinkPDA screen

    TalismanDesign/PocketMage_PDA

    An E-Ink PDA device using the ESP32 S3.

    28 parts2kApache-2.0
  • 2 layers45 × 45 mmSmartbuttons, the printed circuit board in 3D

    Smartbuttons

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    28 parts915
  • 2 layers24.1 × 36.2 mmEsp32miniBT, the printed circuit board in 3D

    Esp32miniBT

    asterics/esp32_mouse_keyboard

    ESP32 implementation for HID over GATT Keyboard and Mouse (Bluetooth Low Energy). Including serial API for external modules (similar to Adafruit EZKey HID)

    28 parts911GPL-3.0
  • 2 layers34.8 × 12.2 mmInfnoise goldfingers, the printed circuit board in 3D

    Infnoise goldfingers

    waywardgeek/infnoise

    The world's easiest TRNG to get right

    28 parts854CC0-1.0
  • 2 layers55.9 × 99.1 mmStm32f0 disco Luos shield, the printed circuit board in 3D

    Stm32f0 disco Luos shield

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    28 parts546MIT
  • 2 layers88 × 25 mmEleLab v2 Frontpanel a, the printed circuit board in 3D

    EleLab v2 Frontpanel a

    Chrismettal/EleLab_v2

    Cheap DIY lab system for hobbyists and the tinkering folk

    28 parts531GPL-3.0