Packages to generate a PCB motor, Carl Bugeja style, for KiCad using Python
Carl Bugeja shared several projects where eletric motors are made directly using PCBs, see Hackaday and Youtube. Drawing these circuits can be a pain. This scripts automates the fabrication. The scripts only supports Archimidean spirals. Trapezoids are a more popular choise and most likely work better. An implementation/plugin for kicad can be found here.
Install poetry and python
sudo apt install python3 python3-pip
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 -
Use poetry to install the dependencies in pyproject.toml
poetry install
Change parameters in the script and run it
poetry run python spiral.py
The script modifies the base_kicad_pcb and creates a spiral.kicad_pcb.
This can be opened with KiCad and should contain the motor.
This design can be attached to another pcb via Kicad PCB import method.
This feature is only available if KiCad PCB is run in standalone mode. Disable the rat's net before doing so.
At the moment, the user still needs to add connect the coils using the via's.
It can also be useful to change set the net to the same number as the one you plan to use in the final layout.
The magnetic field of a circular ring is shown below;
.
The commutation and switching of motor is outlined here. A pancake motor provides an alternative implementations of a PCB motor. It was not used as there is no open source design available.
The optimal number of magnets can be found from this document and goes into depth in the winding factor https://things-in-motion.blogspot.com/2019/01/selecting-best-pole-and-slot.html. The information is based off the paper 'Distribution, coil-span and winding factors for PM machines with concentrated windings' by S.E Skaar et al. and the book 'Design of Brushless Permanent-magnet Machines' by J. R. Hendershot and T. Miller. See the 'recommended reading' list above for more information on this book. The emotor.com glossary page is also useful for reference.
Standard grade neodymium magnets have a maximum operating temperature of 80 degrees Celsius.
Force between two magnets follows a square law, ideally the PCB is thin!
Heat generated by the PCB equals
The resistance of a PCB trace is;
Here, R is the resistance; L is the length of the trace; T is the thickness of the trace;
W is the width of the trace and Tamb is the ambient temperature in Celcius.
Alpha is the resistivity of copper which is 0.39 percent for each degree.
Torque is defined as
Script creates a 4 layer PCB motor with 6 poles.
The front copper layer is shown below,
The In1.Cu layer is shown below. The style of these connections is named "Carl Bugeja" styled PCBs.
A voltage of 5V was applied over the board. The current reached 0.7 amps. Over time the temperature of the board stabilized at 60 degrees Celcius.
Gateware to pulse the motor can be found here.