PCB Motor

A smaller and cheaper open source brushless motor

Similar projects worth following
My open source PCB motor is my attempt to build a smaller, cheaper and easier to assemble micro brushless motor.

What unique about this motor design is that the stator is printed on a 4-layer PCB board. The six stator poles are spiral traces wounded in a star configuration. Although these coils produce less torque compared to an iron core stator, the motor is still suitable for high-speed applications.

It also has a 16mm diameter, 1.7mm thin 3d printed 4-pole rotor. So the total thickness of this axial flux motor adds up to 5mm (excluding the shaft) and weighs 1.5 grams.

The inspiration for this idea came from trying to build smaller and cheaper drone. Making the motor onto the PCB itself will reduce the overall price of any tiny robot, allowing swarm robotics to become more affordable.

My PCB-Motor is made from a 6-pole stator printed on a 4-layer PCB and a 4-pole 3d printed rotor. Its has an outer diameter of 16mm and is rated at 1 watt. 

I had this idea when I was trying to design a small compact drone. The PCB motor is much cheaper than other micro brushless motors and also easier to assemble. My goal is to make the rotor part of the BOM and mounted just like any other component on a PCB. 



RAR Archive - 151.40 kB - 06/04/2020 at 20:41


6-layer PCB Motor Gerber Files.rar

Gerber files for my 11mm diameter 6-layer PCB Motor

RAR Archive - 46.53 kB - 11/07/2018 at 16:52



BOM for my PCB motor brushless ESC with Hall sensor feedback

JPEG Image - 59.80 kB - 10/22/2018 at 04:42


PCB Motor ESC Gerber Files.rar

Open Source Gerber Files for my PCB motor brushless ESC with Hall sensor feedback

RAR Archive - 171.61 kB - 10/20/2018 at 17:47


PCB Motor ESC Schematics.JPG

Open Source Schematics for my PCB motor brushless ESC with Hall sensor feedback

JPEG Image - 61.15 kB - 10/20/2018 at 17:45


View all 6 files

  • 1 × 3D Printed Rotor
  • 1 × PCB Stator
  • 4 × Magnets (5mm diameter x 1mm thick)
  • 1 × Shaft (1.5mm diameter)
  • 1 × SMF681X-ZZ Bearing

  • PCB Motor v3

    Carl Bugeja06/05/2020 at 16:12 1 comment

  • How to design a PCB Motor?

    Carl Bugeja04/10/2020 at 13:46 0 comments

  • Rotor Flux PCB Motor

    Carl Bugeja07/13/2019 at 17:22 0 comments

    This video shows my attempt in trying to design a rotor-flux brushless pcb motor prototype:

  • SPEED!

    Carl Bugeja06/04/2019 at 00:59 0 comments

    How fast can my PCB Motor go? 

  • CORE PCB Motor

    Carl Bugeja01/07/2019 at 19:06 0 comments

    Check out this teardown of the CORE-PCBMotor!! I came across this motor a few months ago, after a few people who saw my design sent me their website's link. There's not much information on it and its also patented but this guy managed to take it apart and review it.

    I have no idea why they decided to use it for a lawn trimmer (there's much more interesting applications) but its very interesting to see how it was designed, the way the windings are connected and that it has sufficient torque to rotate a blade!

  • Smallest PCB Motor

    Carl Bugeja10/31/2018 at 00:11 0 comments

    My SUPER tiny 6-layer PCB Motor is spinning! Here's the full video describing how I designed it:

    My original 4-layer PCB motor had a 16mm diameter. By adding two extra layers I was able reduce the number of turns per layer and get it to 11mm. The total height of the motor is 3.6mm and its weight is 0.5 grams.

    No space is lost in this pcb! Each coils have 3 vias to connect the in-between layers. These forced a triangular shaped stator poles, which utilize the magnetic field area more efficiently.

    The tiny rotor design has four press-fit 2mm n52 magnets and a 3mm bearing. This new design has the shaft soldered onto the stator, so it is fixed and don't rotate with the rotor.

    I had chosen to go with this design because of two things:

    1. I couldn't find a bearing small enough to fit in the middle of the stator.
    2.I'm not planning to use a shaft. Customized 3d-printed rotors makes much more sense. 

    The phase resistance of this motor was measured to be 15ohmsand its getting to 85℃ with a 4V supply, so it should be perfect for a 1s lipo.

  • ESC details

    Carl Bugeja10/20/2018 at 17:52 0 comments

    This video shows how i designed my PCB Motor's ESC and what where the challenges involved in getting my speed controller to work.

    This is its schematics:

    It has a PIC16F1503 as the main controller and a triple half bridge driver STSPIN230, to control the three phases of the motor. These are both powered from the same supply, to avoid having an extra power wire or on-board regulator, reducing the cost even further. I filtered the digital circuitry supply from an LC filter to attenuate any noise the motor can generate. It can operate from a 5V to 2.6V supply and draws around 220mA in total.

    As i explained in my previous project logs, the back emf generated from my pcb motor was too weak to implemented a sensorless speed controller. So i decided to use a hall sensor to provide feedback to the microcontroller and then implemented a speed closed loop speed controller. 

    The open source gerber files and schematics for this PCB are available for download. 

    In the beginning of November I will be giving a demo of this project at the Hackaday Superconference so see you there! 

  • PCB Motor with integrated ESC!

    Carl Bugeja10/14/2018 at 14:36 0 comments

    I have finally finish my PCB Motor with the integrated ESC! Made this quick video showcasing it:

    The PCB was hand soldered. It took me a little while to get it to work because I had some soldering flux residue on one of the motor driver chip that was acting as impedance. This was triggering the driver's on-board protection circuit. But after removing the chip and clean its pads, it was up and running.

    I have managed to fit the ESC in such a small area by soldering parts on both sides of the PCB and using the smallest footprints I could find! Both the MCU and motor driver have a 3x3mm qfn package and most of the other discrete components are 0201s! 

    I'm currently making another video explaining how i design this driver and what were the challenges involved! So I will be releasing its schematics and gerber files in the next few days :)

  • SUPER tiny 6-layer PCB Motor

    Carl Bugeja10/12/2018 at 21:22 1 comment

    Today I have received my super tiny 6-layer PCB stator measuring 11mm in diameter. 

    This is how it compares to my 4-layer prototype. 

    I'm super excited to test this thing out and see it run, but unfortunately the magnets still haven't arrived yet :/ stay tuned for more updates!

    JLCPCB was cool enough to sponsor and manufacture this tiny 6-layer PCB Motor! I highly recommend them if your looking for super cheap pcb prototypes. 

  • 6-layers

    Carl Bugeja10/02/2018 at 19:46 3 comments

    I love designing electronics that fit in very tiny space. My 4-layer brushless PCB Motor is currently 16mm in diameter. So how can I make it smaller?

    This 16mm design is already pushing the limits by having 4mils (0.1mm) track width and clearance. Using thinner pcb traces is possible, but would make its price (for prototyping) explode. My intent is to make this open source motor accessible to others, so it doesn't makes much sens to go in this direction. So I'm sticking to 4/4mil traces.

    My motor has around 40 turns, so going much lower than that would make the coils too inefficient and the pcb would heat up way to much. Based on a my pcb coils tests the minimum number of turns for 4mil should be 40 turns and for 5mil it should be 60 turns, not to exceed 70°C with a constant (100% duty cycle) supply. 

    The only remaining option to try and make it smaller, is to increase the number of layers to decrease the number of turns per layer. The current design has 10 turns per layer, so for this tiny 6-layer motor I  decided to go for 6 turns per layer, having a total of 36 turns. Setting a tight clearance of 4mil, the total diameter of the motor end up being 11mm.

    The extra two layer, increased the number of vias in the middle of each coil to three. This naturally formed the spiral to have a triangular shape which use the area of the magnetic field more efficiently.

    Another natural advantage of using a 6-layer pcb, is that the thickness between each layer is much smaller which increases the magnetic field strength.

    For this design I had to make some changes on the rotor, because I couldn't find a bearing small enough to fit at the center of the pcb (smallest bearing available is 2mm). So what i decided to do is extended a stationary-shaft from the pcb, and connect the bearing on the rotor. I'm still designing the 3d-printed part, so I will post more info on that soon.

    I have just ordered this 6-layer pcb motor from JLCPCB which were kind enough to sponsor this design. 

    We'll see how it goes!

View all 28 project logs

  • 1
    Step 1

    Its this simple:

View all instructions

Enjoy this project?



reginev wrote 6 days ago point

Your PCB is amazing.

  Are you sure? yes | no

reginev wrote 02/26/2021 at 13:34 point

Nice work dude. Any tutorial?

  Are you sure? yes | no

ogiea wrote 02/26/2021 at 13:09 point

I am using this when I was in college.

  Are you sure? yes | no

Tim E wrote 03/26/2020 at 01:09 point

I think this motor could change many things in society. Good work!


  Are you sure? yes | no

Jarrett wrote 11/15/2019 at 00:18 point


For your first 4-layer coil, is there any particular reason you went with the layering order you did?

You go for top->L3->L2->Bottom, just wondering if there was some sort of design reason there

  Are you sure? yes | no

sash wrote 10/12/2019 at 23:23 point

can u make tutorials on how to make 3d print rotors and stators?thx

  Are you sure? yes | no

sash wrote 10/12/2019 at 22:07 point

what are the dimensions of the SMF681X-ZZ Bearing. Can you reply sap this is for my science project and i need to use a pcb motor becuase it a cheap and small motor to make. Thank you so much Carl.

  Are you sure? yes | no

albper wrote 04/19/2019 at 14:52 point

Hi, Carl:

Your  PCB motor is really amaizing.

I think that perhaps you can improved the torque using flex-PBC coil.

  Are you sure? yes | no

Martin Parnell wrote 04/03/2019 at 12:01 point

hi. I wondered if you could get one of these to spin at much lower RPM. I am in need of this design to build a remote foot switch operated motor to be placed over a volume potentiometer. Specifically for guitar effects pedal.. I believe it is a very sought after use for this sort of motor. Would you like to collaborate in a busines venture? My email is

  Are you sure? yes | no

nokemono wrote 02/18/2019 at 16:49 point

How did you design this coil?

What is the CAD you used?

  Are you sure? yes | no

ClearloveG wrote 01/24/2019 at 12:40 point

hello Carl,I  did one of your steps, ESC version.

When I prepared all the devices, I found that I did not have MCU program.

So, I want to say, is this program not open source?


  Are you sure? yes | no

anton.fosselius wrote 01/07/2019 at 05:44 point

Have you seen this:

"A company called Core makes some unusual electric lawn tools based on axial flux PCB motors.  I first heard about them several years ago, and finally picked up one of the motors to take apart."

  Are you sure? yes | no

Carl Bugeja wrote 01/07/2019 at 19:09 point

I just saw the article it very interesting to see how they're designed!

  Are you sure? yes | no

bboyes wrote 01/02/2019 at 04:12 point

What a great idea! I love how this makes you go to the basics and analyze what really makes a motor and how can you compromise to make a "usable" motor out of unconventional materials? I'd like to try making one of these... I notice the bearing, SMF681X-ZZ, obviously a key component, is about $9 each from Boca bearing. Any idea on lifetime and lowering that cost? Boca doesn't list lifetime data:

I wonder if this could be adapted to be a low cost local fan for circulating air from a PCB heater.

  Are you sure? yes | no

TINLΞTHΛX wrote 10/19/2018 at 13:07 point

Cool project ,Interesting 

  Are you sure? yes | no

ep.hobbyiest wrote 10/18/2018 at 05:13 point

great idea and Awesome project !!!

  Are you sure? yes | no

Michael Graham wrote 10/16/2018 at 23:47 point

HI Carl, I love your projects, very creative! Just curious if you have experimented with stacking these things? 

 You could ~double your torque if you stack a second stator to sandwich ether side of your rotor.  Connect the stators together in parallel with the headers
 The result would still have your nice flat profile (thicker but no diameter change) and it would support the output shaft on either side making it more robust. 
 It would prevent you from attatching a fan but the rotor could still be used as a gear/pulley.

  Are you sure? yes | no

majolillo wrote 09/18/2018 at 18:21 point

Have you considered rebuilding to a switched reluctance motor instead of a bldc? My gut feeling tells me this could be done slightly cheaper and more efficient. What would be required:

- Keep the ferrite sheet in the back

- Ferrite core in each winding

- Replace permanent magnet with reluctance core patterns to match the amount of windings. Probably 3d printed in ferrite, any high permeability low conductive material. A pattern like one that is shown in the end of this video:

As for the required torque, you might want to consider a 3d printed planetary gear

  Are you sure? yes | no

Patrick Ryan wrote 09/06/2018 at 00:31 point

I am thinking about scaling this up in size and stacking motors and rotors to build a lighter and more efficient hub motor for one person electric vehicles.

  Are you sure? yes | no

warhawk-avg wrote 08/30/2018 at 08:41 point

Very cool..wonder if you could make a via large enough (between the coil via's) to slip a metal nail inside the coil to focus the electromagnetic force (say a thumb tack or rivet? [epoxy in]) very very cool design!

  Are you sure? yes | no

Carl Bugeja wrote 10/02/2018 at 20:18 point

Yes it is possible but its size will need to increase

  Are you sure? yes | no

clatour007 wrote 07/14/2018 at 00:38 point

Good hacking,learning project !

A few comments/questions.

1) it seems that you want to increase the torque. (buy you did not specified if static or dynamic, the way you seem to be testing it is giving you results for static torque.  most real world applications require measuring dynamic torque.  it is indeed more dificult to test in a home-lab, but still affordable and doable.

2) The usage of 'round' magnets, or though cheaper, is not optimal. (Square/rectangular magnets optimizes the 'surface' of the magentic field in an easy'er to capture coil. the coil would need to be shaped as a triangle, but the shape maximizes the 'flux'/Area for any given size.   ... look up axial-flux generator and reverse the power-transfer. the equations  are the same. (*well not exacly, but close enough)

3) given the planar orientation designed, perhaps dissasably of old floppy-drive motors would teach a lot. (their magnets were a single round cylinder with 'weird' magnetization, while preserving the planar/6 coils structure.   not sure the actual static/dynamic torque, but they were able to spin the at over  300rpm... indicative of the Dynamic torque)

4) you did not specify the ferrite material used. (is it ferrite is specified by mixture i.e. mix-43/-68/-71 etc. usually color coded....)  the actual mix has a 'HUGE' influence in the (eddy)losses which of course make it 'heat-up' the material.   such loses  are dependent on both the material and the frequency of operation. (i.e. a single pulse of 1000ms would have a given loss, a same pulse of 2000ms would have a totaly different loss. of course the worst case scenario is continuous current (no pulse) as the 'magentic' field would be constant-steady and  heating the material and would produce no alternating-flux hence no power/torque.

5) in reference to #1 and #4 above, Triaminic drivers specs/explanation pages (all the rage in 3d printer motor drivers) give very clear insight (at a layman's level) of the static/dynamic and totat power (i.e. work) expected from any given setup.

6) I'm a bit confused when you specify your magnets/setup give 1W did you mean 1Tesla?Gauss? .. (magnets by themselves don't give power...) or you meant that the 'motor' consumes 1W to deliver 9gr of static torque?

7) It appears to me, that the easy way to radically improve the torque, without redesing) is to decrease the  magnet to coil distance (if using Mag. above and another below, decrease this distance.) i.e. minimize the distance between the surface of the coil and the magnets.  (dont forget to add the height of you board material in the equation !)    

7a) if using a single plane of magnets (pictures seem to show one above, one below.. ) would almost double your power (torque) .... CORRECTION: mean to say using one above in below would double your power...

Sorry, way too long a comment. :-} 

Good Luck!


Further comments on the ferrite. 

In order to be effective the ferrite must be at the center of the coil and be as deep as the coil itself. Placing  as you did makes it behave as a shield!! (eddy currents in the ferrite sheet create a magnetic field OPPOSING the desired magnetic field ON ALL COILS!.)   ie. is behaves as if a steel plate was between your magnets and your coils, all the while heating it up!.

Also, your coils do not need to go all the way to the center, (that space would be much better used to put a tiny ferrite bead instead)  lowering the coil length will also have the desired effect of reducing the ohm resistance, a therefore allowing a higher current with the same voltage.  since the magnetic flux is proportional to current, your flux is much higher, hence higher extracted power. (more efficient.)  my -personal- Rule of thumb is for the center of the coil to be about 1/3 of the total coil width.

beware that the ferrite bead in the center would be subject to strong axial-push/pull forces. i.e. up down, best  solution is to use 'threaded' beads and thread the PCB accordingly. (adding a touch of crazy glue would not hurt.)


The actual magnets were not specified, but some have WAY more pulling force than others(flux), simply changing the actual magnets can substantially increase their flux/power.      Carefull thought, higher flux magnets de-magnetize at lower temperatures ... i.e. proper cooling may be required for a HIGH-power (i.e. drone motor) application...

  Are you sure? yes | no

Carl Bugeja wrote 07/18/2018 at 21:58 point

Hi! Thank you for your comment and suggestions :)

In the shown video i was testing for static torque which would be more beneficial for servo like applications. As you said dynamic torque is harder to test.

Regarding the triangular shaped coil, this would definitely maximise the flux area of the stator however this shape would have less turns (around 7 on each layer) for this motor-size which would significantly reduce the impedance of the windings and thus heat up. This also applies for the core idea you proposed, its something that is great to have but in practice i'm not so confident it will work due to lack of turns. But this is definitely something that can be considered for larger sized pcb motors though.

The static torque test was done with a constant power supply voltage of 5V. The motor was drawing around 200mA of current so it can be rated to around 1W.

  Are you sure? yes | no

clatour007 wrote 07/20/2018 at 03:28 point

Ok, not really 100%sure static torque is better for modelizing servos, but to each it's own.

Not really sure why you say a triangle-shape would have less turns... (mind you, even the circular-shaped coils don't need to coil all the way to the center, the extra loop's contribution to flux is quite minimal and the extra ohmic resistance far outweights  its benefits, specially since they become 'heating' elements). Regarding the impedance, a lower impedance means more current , which means a more intense flux, which means a more 'power-full' (holding) torque  which is what you wanted!    If heating is a problem (perhaps your 'wire'/board traces's cross-section, is too small (hence their resistance is too great, and act more as a 'resistor' instead of a coil)    

One way to decrease the current is to lower the voltage (ohms law), but an easier way (if using drivers such as the 4988/drv8825/triminic 2100 etc. etc etc. ) is to Increase the frequency of the pwm signals. (mind you, doing so would require-you to calculate the actual reactance (impendace) of the coils for the new frequency. (actually easier to do trial-error, than to acurately model it via maths)

Another way to achieve the same result is to Lower the voltage, instead of driving it with a 5 volt source, try a 3.3 v. inversly, you can drive it with a 12 volt source (watch your driver's specs.) and LOWER the max current limit of the driver. either way you'll limit the input power, hence the torque. (the input-power to torque curve is NOT linear, it is indeed a log. curve !  (log/antilog depends how you plot it).

Also, it occurs to me, given the size of the motor,  that instead of using ferrites it would be easier to use steel screws. (make sure they can be magnetized, not all steel can be ) iron screws would be better, but they rust quite fast ..

Gotcha for the 1W calc. makes sense.  However, (haven't actually done the math but, gut feeling,  it appears to me quite to be very IN-efficient. 

ANOTHER type of motor (see axial-flux generator's coil/magnet arrangement) in which 2 coils face 1 magnet can be designed, it would allow for the same current (at 2times the voltage) to 'repel'(or attract)  the magnet with the same force. HOWEVER, the 'cooling' surface is twice as big, and therefore the accumulated heat is much lower (not quite half, but thereabouts) at the same "power-input to torque" point. .... (perhaps I don't make myself clear, I'm at a loss to how to explain it better.... :-|

Alternatively, a *much* more complicated 'geared' motor could be done. (specially for servos, as they don't really need to move very fast.) the added advantage of a geared fast moving rotor, is that a simple fan-blade can be attached to cool it down.  and the static-torque is multiplied by the gear-ratio. 

PPS: the ferrite material you used is primarily used for shielding, (very high loss) basically it is designed to convert the Rf/Em to heat !. exactly what you do not want in this instance. 

Sorry I know it was a very long reply :-/

  Are you sure? yes | no

Carl Bugeja wrote 07/30/2018 at 21:50 point

For that prototype, my goal was to make it as small as possible, and the spiral shaped coils have been designed to fit in the smallest area possible with the minmal clearance. For the triangular shapes coils, the stator diameter would result in a slightly larger. However, I am currently designing another board to test slightly larger motors (less than 20mm diameter) with different coil shapes.

There is a balance between the amount of current that you pass through the coils and heat. From what i have tested with these coreless printed coils the limit is around 40-turns for 4/4mil traces and 60-turns for 5/5mil. 

Using iron screws i the middle is something that I have considered. These would act as the core of the stator. But my original goal for this project was to try and make the smallest and easiest to assemble motor, and adding these screws would defiantly increase the size and complexity of the build. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates