Skip to the content
2 layers44 × 47 mmGYRA motherboard, the printed circuit board in 3D

GYRA motherboard

ParthDhiman32/GYRA

GYRA is a 3 axis gimbal system onto which i can connect my small point and shoot camera. This system will automatically stabelize pitch roll and yaw axes of the gimbal via a high frequency PID loop runnong on an esp32 which contorls the 3 mg995 servo motors of the gimbal

Size
44 × 47 mm
Copper layers
2
Thickness
1.6 mm
Parts
22
Nets
42
Pads
114
Tracks, vias
121, 10
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
19 Apr 2026
Updated
19 Jul 2026

Overview

GYRA motherboard is an open-source printed circuit board by ParthDhiman32, from the ParthDhiman32/GYRA repository on GitHub. It is a 2-layer board of 44 × 47 mm with 22 parts on 42 nets, routed with 121 tracks and 10 vias.

It is built around the ESP32-S3-WROOM-1-N8, AP63203WU and HMC5883L. Its parts include 8 capacitors, 4 connectors, 2 resistors, 2 ICs and 2 switches. It belongs with the robots and motor control and computers and single-board computers boards and the ESP32 boards of this library.

Main components

3

README

README.md

GYRA

So "GYRA" is a 3-axis stabilization gimbal system i built for phones and lighteight cameras more specifically point and shoot cameras
GYRA is fully custom built from the 3D Design to the motherboard PCB all made by ME
The name "GYRA" i derived from gyroscope which is a part of the MPU6050 sensor used in this project and GYRA also sounds pretty cool too

PURPOSE

So why exatly does this project exist
This project exists because of a few reasons

  • cheaper solution to ronin gymbals
  • extremely good learning project
  • fully custom built so i can easily add my own features

FEATURES

  • based on ESP32 S3 WROOM-1
  • Fully custom 3D designed parts
  • MPU6050 and HMC5883L used for motion tracking
  • Portable design
  • Custom PCB
  • Designed for phones / lightweight cameras (upto ~ 200g)

HOW DOES IT WORK

The mpu6050 and HMC5883L countinuously track the relative motion of the gimbal and then send the signals to the motherboard the ESP32 based motherboard then processes the signals to understand the orientation and run 3 seperate PID loops for 3 seperate axes namely

  • YAW
  • ROLL
  • PITCH After the signals are passed through an Alpha filter for clearning the NOISE then are send to their respective PID loop the values i found which work for this system are
  • For roll and Pitch axis
  • Kp->1.2
  • Ki->0
  • Kd->0.1

I havent't really found the perfect values for the yaw axis as the yaw axis is the most unstable axis of the 3 axes and needs propery callibration even more precise PID tuning for proper axis stability

These 3 PID loops are the heart of the program these loops need to be very precise for proper theoretical working of the system
I have a very good reason why i am using the word Theoretical because in reality the project suffered from bracket instability joint wobble and print arm fles during the prototype phase which i worked hard to eliminate in MARK-1

HARDWARE

3D PRINTABLE ASSEMBLY

here is a render of the 3D printable design GYRA marl-1 with camera GYRA EXPLODED PNG The entire assembly consists of a total of 6 files which are

  • HEXALEGGED BASE (PCB housing)
  • PCB HOUSING LID
  • BASE HANDEL
  • YAW ARM
  • YAW--ROLL ARM
  • ROLL--PITCH ARM All of these are connected by mostly standard M3 screws whereas M2 screws may be required at some places such as the last 2 screws at ever arm of the 25T Aluminium CNC servo spline

PCB / elecronics

The pcb consists of the following majour parts

  • ESP32 S3 WROOM-1 module
  • JST Connectors for
    • MPU6050 (4-pinJST)
    • HMC5883L (4-pinJST)
    • SERVOS(incuding GND) (4-pinJST)
    • Battery connector (2Pin JST)
  • Decoupling capacitors
  • IO0 and EN switched (SMD)
  • M3 mounting hole image
image image

Now here comes the important part for the connnections so no-1 you need to first of all connect the 6-li-ion battries enclosed in the base handle to a 2S BMS module and to a DC femlae jack for charging and then you need to diectly connect the VCCs and GNDs of the servos to the BMS module and now you need to make a 4 pin JST connector which is basically 3 pins for servos yaw-roll-pitch respectively and final pin GND.

Now after this you need to take the battry 7.4V and then connect it directly to the PCB as the PCB has a internal Step-Down voltage circuit but you need to be careful with the polarity.

Please refer to the PCB schematics while hotplate soldering / assembling your PCB because the BARE PCB does not have much marking as to such where which pin should be conected

ZINE PAGE

GYRA

BUILT IRL

Demo Video- https://youtu.be/y3TJgLPC-Hc IMG_20260719_120033 IMG_20260719_120014 IMG_20260719_120004 IMG_20260719_120026

GYRA has been built IRL!

HOW TO BUILD IT FOR YOURSELF

So you want to make this project for yourself too
I have included each and every file and component that you will require in this repository and BOM STEP-1

  • Buy all the parts in the BOM
  • Print the parts inside the Mark-1--->>STEP FILE folder (total of 6 parts)
  • Get the PCB fabricated and solder all the components neatly using the HOTPLATE
  • Test the PCB for any imporperly soldered parts/components
  • Assemble the pcb inside the 3D printed hexalegged base using M2 screws
  • Now connect the battries in a 2S3P manner
  • Cut and strip the wires and make it into a JST connector
    • 1 FOR MPU6050
    • 1 FOR HMC5883L
    • 1 FOR SERVOS AND GND PIN
    • 1 FOR THE BATTERY connector
    • Solder the battery connections as stated under the "PCB / electronics part" and then house the battires inside the base handle
    • Join the hexalegged base to the pcb lid using M3 and M2 screws whereever needed
    • now assemble the above appembly consisting of
      • Servos
      • IMUs
      • YAW arm
      • YAW---PITCH arm
      • PITCH----ROLL arm
      • And then finally connect the 1/4th inch thread to the print
      • Connect your camera or phone adapter
      • Finally please use the code to TUNE your gimbal different tuning values are needed for different cameras because center of mass and orientation
      • Affect the PID constants a lot
      • After tuning your gimbal please hardcode the values into the gimbal (more info on that in a few days)
      • And finally enjoy a gimbal you made!!!!
        WARNING: you may need to heat the 1/4th inch screw to 100*C so it can be properly housed inside the PITCH arm

PROBLEMS FACED

there were a lot of problems i faced during the development of this project i have all the prototypes saved in subfolders in the CAD filder this project had a total of 5 iterated prototypes before i made the actual MARK-1
so here is a list of probelms i faced

So first of all i had no inspiration and was designing the structure i had in my head when i built and tested the first printed prototype i found out many many fatal flaws such as the biggest one being that the roll arm was colliding with the base of the YAW arm where the sensor was seated and also that the motor constrians were misjudged second of all the arms were flexing because i made then longer than they needed to be and the arm used to jitter and shake because the motor could not take the load of the heavy arms and assembly

after like 3 iterations i finally took a bit of inspiration from ronin's gimbal and finally understood how the gimabl's standard structure should actually be first of all i was veru skeptical about if the motors could move the long arms or not as the length of the arms were almost excedding the torue the motors could produced but once it was assembeled nd i tested it....IT worked just fine

Now here comes the biggest challenge i faced almost throughtout the project so first of alli was using MG995 motors's plastic head and attachments to connect the 3D printed arm with the motor which was an bad idea because it already had a bit of play which was only made worse by the motor repeatedly moving and wearking out the joint's teeth during Prottype's PID tuning and i found out the solution to this when i was sitting in my room at 12 AM and the idea of using CNC Aluminium 25T servo spline arm
image This thing and now i designed the nre joint in accordance to the dimension's of the spline and i used properl M3 and M2 screws to mount the print on this isntead of using improper sized M2.2 screws everywhere and hoping it would work

Overall this project was one of the best learning project i had made because it taught me many things related to 3D printing CAD and print tolerances and also sharpened my skills of PCB and Embedded design design and overall project design and workflow The multiple failed prototypes challenged the appumptions i made and i developed a new kind of more efficient workflow than before

I SPENT A TOTAL OF ~68 HOURS ON THIS PROJECT

CREDITS

Parts

22
QtyValueFootprintReferences
20.1uFCapacitor_SMD:C_0805_2012MetricC3, C6
210KRResistor_SMD:R_0805_2012MetricR1, R2
210uFCapacitor_SMD:C_0805_2012MetricC2, C8
222uFCapacitor_SMD:C_0805_2012MetricC4, C5
2M3MountingHole:MountingHole_3.2mm_M3REF, REF
1100nFCapacitor_SMD:C_0805_2012MetricC7
11uFCapacitor_SMD:C_0805_2012MetricC1
12S3P BATConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ4
13.9uHInductor_SMD:L_7.3x7.3_H4.5L1
1AP63203Package_TO_SOT_SMD:TSOT-23-6U2
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U1
1HMC5883LConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ2
1LOGOhackclublogo:hackclublogoG***
1MPU6050Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ1
1SERVOSConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ3
1SW_ENButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW1
1SW_IO0Button_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW2

Similar boards

  • 2 layers137 × 84 mmESP32-Geiger Counter, the printed circuit board in 3D

    ESP32-Geiger Counter

    AronASzucs/Avalanche32

    Handheld ESP32-S3 Geiger counter with a firmware-regulated 400 V boost, SBM-20 tube, USB-C charging and OLED display.

    89 parts3
  • 2 layers101.9 × 82.3 mmNivara Controls, the printed circuit board in 3D

    Nivara Controls

    Gabriel-dot-hub/Gabriel_Ortiz_Electiva_2025_C2

    Repositorio para las clases de la electiva con el profesor Carlos Antonio Pichardo Viuque

    91 parts2
  • 4 layers100 × 100 mmBrain, the printed circuit board in 3D

    Brain

    Pegoku/SarcasmOS

    Personal assistant characterized by Bender from Futurama

    225 parts2
  • 2 layers203.1 × 108.1 mmESP32 Breakouts Playground, the printed circuit board in 3D

    ESP32 Breakouts Playground

    PockyBum522/cad-pcb-projects

    Various PCB projects, mostly in KiCad

    117 parts2MIT
  • 4 layers80 × 50 mmGlowbuck, the printed circuit board in 3D

    Glowbuck

    Diamantenmine/glowbuck

    Together with Firefly Luciferin, you can create your own ambilight that connects via USB-C to your computer and draws power from a USB-C PD power supply. Glowbuck is in no way associated with the linked project.

    132 parts1GPL-3.0
  • 2 layers163 × 75.8 mmProjeto, the printed circuit board in 3D

    Projeto

    AlisonTristao/bally_robot

    Porjeto de Hardware - Bally

    97 parts
  • 4 layers102.2 × 83 mmZorionx nivara, the printed circuit board in 3D

    Zorionx nivara

    BRYANSFM/Bryan_Fernandez_ELECTIVA_2025_C2

    132 parts

Questions

How big is the GYRA motherboard PCB?

It measures 44 × 47 mm and has 2 copper layers, 1.6 mm thick.

What parts does the GYRA motherboard use?

22 parts, built around the ESP32-S3-WROOM-1-N8, AP63203WU and HMC5883L. 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 GYRA motherboard KiCad files?

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

Can I use the GYRA motherboard design in my own project?

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