A2212 Brushless Motor Library for Proteus: an Arduino UNO V4.0, a 30A ESC on 11.1 V and the A2212 with its prop spinning

A2212 Brushless Motor Library for Proteus V1.0 (1000KV, Drone)

2.5K Views
40
700
60
25
60
PCBWay

Hello friends, I hope you all are doing great. Today, I am going to share the new A2212 Brushless Motor Library for Proteus V1.0. The A2212 1000KV is the motor that put a whole generation of makers in the air: four of them lift the classic F450 quadcopter, one pulls a trainer plane, two push a hovercraft. Now it spins in Proteus too, with its prop turning on the schematic at the simulated speed and a pop-up that tells you the speed, the thrust and the current in each of its three wires.

Updates

A2212 Brushless Motor Library for Proteus

Latest version: V1.0 (October 2026, this tutorial)

Helping Tools

A brushless motor never runs on its own - it needs an ESC that switches its three wires in turn. So the demo drives it the way you would on the bench: an Arduino UNO V4.0 sends servo pulses to our 30A brushless ESC, a separate library, and a potentiometer is the throttle. The motor answers like the real one: about 9,700 RPM and 800 g of thrust with a 1045 prop on a 3S battery.

NOTICE: a motor model that just turns a picture would be easy. We wanted the real thing: three windings, the back-EMF of fourteen magnets, a bell and a prop with real inertia and real drag, so the thrust, the current and the speed come out of the physics. It took our team a lot of hard work. Your feedback is the fuel that keeps us going, so please tell us what you think in the comments below or in the Motor Driver board of our forum. And if our free libraries help you, you can buy us a coffee. So, let's get started with the A2212 Brushless Motor Library for Proteus V1.0:

A2212 Brushless Motor Library for Proteus: an Arduino UNO V4.0, a 30A ESC on 11.1 V and the A2212 with its prop spinning
Figure: The A2212 Brushless Motor Library for Proteus: the Arduino UNO V4.0 sets the throttle, the 30A ESC drives the motor and the A2212 spins its 1045 prop at 9,684 RPM, its CW LED lit.

What is the A2212 Brushless Motor?

The A2212 is an outrunner brushless motor. In an ordinary motor the magnets stand still and the middle turns; in an outrunner it is the other way round. The copper windings sit on a star-shaped stator fixed to the mount, and the magnets are glued inside a bell that spins around them. The prop bolts straight onto the bell, so there is no gearbox and nothing to wear out but two ball bearings. Our Brushless DC Motor tutorial explains the principle in more detail.

The name is a size code: 22 mm is the diameter of the stator and 12 mm its height. "13T" means 13 turns of wire on each stator tooth, and 1000KV means the motor turns at about 1000 RPM for every volt, with no load. Fewer turns would give a higher KV, more speed and more current; more turns the opposite.

The A2212 at a glance
A2212 / 13T 1000KV
Typethree-phase brushless outrunner, 14 magnets (7 pole pairs)
KV1000 RPM a volt with no load
Battery2S - 3S LiPo (7.4 - 11.1 V nominal)
Current12 A for 60 s
Resistanceabout 90 mOhm between two wires (45 mOhm a phase)
Typical prop1045 (10 x 4.5 in): about 800 g of thrust at about 10 A on 3S
Size28 mm bell around a 22 x 12 mm stator, a 3.17 mm shaft, about 50 g

KV, Props and Thrust

KV tells you the speed with no prop: on a 3S battery at 11.1 V the A2212 turns at about 11,000 RPM and takes only half an amp. Put a prop on it and everything changes. The torque a prop needs grows with the square of its speed, and so does the thrust it gives. The motor slows down until its torque matches the prop's, and the current climbs with the torque. That is why a bigger prop gives more thrust, at a lower speed and a much higher current.

The library has three common props plus none, and we ran each at full throttle on 3S in our host tests:

The A2212 on 11.1 V at full throttle with each prop (the model)
PropSpeedBattery currentThrust
Noneabout 11,000 RPMabout 0.5 A-
8045 (8 x 4.5 in)about 10,500 RPMabout 4.1 Aabout 395 g
1045 (10 x 4.5 in)9,684 RPM9.65 A813 g
1147 (11 x 4.7 in)about 9,100 RPMabout 13.5 Aabout 1,050 g

The 1045 is the classic match. The 1147 pulls more, but takes more than the A2212's 12 A rating - the model warns about it if it lasts longer than a second.

What's New in A2212 Brushless Motor Library for Proteus V1.0

  • A real three-phase motor: three windings in a star with the sine back-EMF of 14 magnets, solved by Proteus together with the ESC that drives it.
  • A prop that spins: the bell and the prop turn on the schematic at the simulated speed, a translucent disc when fast.
  • Four props: NONE, 8045, 1045 and 1147, each with its own torque and thrust; change them while it runs.
  • Thrust in grams, the phase currents, the electrical frequency, the power and the efficiency, live.
  • A jam: click the prop and the bell stops dead, as if a hand caught it - watch the ESC lose its timing and retry.
  • Wiring checks: an open phase wire is found and named; the phase order decides the direction.
  • A pop-up window with four pages - Motor, Graphs, Event log and Check.
  • An Arduino demo with our 30A ESC library and a throttle pot, on our Arduino UNO V4.0.

The A2212 in Proteus

A2212 brushless motor in Proteus: the dark bell on its cross mount, a black 1045 prop, the A, B and C wires and the strip
Figure: The part as the library draws it, running: the bell on its cross mount, the prop, the three phase wires, the CW LED lit and the strip with the RPM, the thrust and the current.

Search A2212 in Pick Devices; the device A2212MOTORTEP is in TEPA2212.LIB (category Electromechanical, DC Motors) and its model is TEPA2212.DLL. It shows the motor from above, at its real size: the grey cross mount with its four screw holes, the dark bell with its vents, the collet in the middle and a black prop, shortened to fit the plate. The red, yellow and blue wires come in from the left to the pins A, B and C. Real A2212s usually have three black wires; the colours here only make the phases easy to follow.

On the plate are two LEDs, CW (green) and CCW (amber), for the direction. The strip under the plate shows the speed with its direction, the thrust and the phase current, and the OPEN PANEL button. The plate, the LEDs and the strip are TEP additions.

A2212 brushless motor running in Proteus at 9684 RPM with 813 g of thrust and its 1045 prop as a spinning disc
Figure: M1 at full throttle: 9,684 RPM CW, 813 g and 9.1 A a phase on the strip; the prop is a blur over its disc.
The three pins of the A2212
PinWireWhat it does
Aredphase A - to the ESC's A
Byellowphase B - to the ESC's B
Cbluephase C - to the ESC's C; swap any two wires and the motor turns the other way
Double-click the motor to change it
PropertyDefaultWhat it does
PROP1045the prop: NONE, 8045, 1045 or 1147 (the pop-up's chips change it while it runs)

Click the prop while the simulation runs and the bell jams, as if a hand caught it. The ESC loses the back-EMF it was following, stops and tries again; the motor's pop-up shows the stall current. Click again to let it go and the ESC starts it by itself.

Download A2212 Brushless Motor Library for Proteus

The download link of A2212-Brushless-Motor-Library-for-Proteus-v1.0.zip (without the source code) will be added here soon. The zip file will contain:

  • README.txt: installation, the demo, the wiring, the props, real hardware, troubleshooting and the limits.
  • Proteus Library Files: TEPA2212.LIB and ArduinoV4TEP.LIB from our Arduino Library for Proteus V4.0.
  • Proteus Model Files: TEPA2212.DLL and TEPARDUINO.DLL.
  • Proteus Simulation: A2212-Brushless-ESC30A-ArduinoUnoV4.pdsprj, ESC_A2212_Demo.hex and copies of the DLLs.
  • Arduino Code: ESC_A2212_Demo.ino (the Servo library comes with the Arduino IDE).

Important: the demo's ESC is not in this zip. It is our 30A Brushless ESC Library for Proteus, a separate library: download it and install its TEPESC30A.LIB and TEPESC30A.DLL first, the same way as below.

No Proteus yet? Read How to Download and Install Proteus 7 and 8. New to libraries? Follow How to Install a New Library in Proteus.

How to Install A2212 Brushless Motor Library for Proteus

  1. Close Proteus and extract the whole zip file, for example to your Desktop.
  2. Copy TEPA2212.LIB and ArduinoV4TEP.LIB from Proteus Library Files into the LIBRARY folder of Proteus (usually C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY).
  3. Copy TEPA2212.DLL and TEPARDUINO.DLL from Proteus Model Files into the MODELS folder.
  4. Install our 30A Brushless ESC library the same way, for the demo's ESC.
  5. Delete TEPA2212.IDX from the LIBRARY folder if it is there.
  6. Start Proteus, press P and search for A2212.

Tip: keep the Proteus Simulation folder together, because the project needs its .hex file and the DLLs beside it. The library is tested in Proteus 8.5; Proteus 7 is not supported.

The Demo Circuit

A2212 brushless motor demo running in Proteus on an A3 sheet: Arduino UNO V4.0, 30A ESC, A2212 and the throttle pot
Figure: The demo project running on its A3 sheet at full throttle.

Open A2212-Brushless-ESC30A-ArduinoUnoV4.pdsprj. ARD1 is an Arduino UNO V4.0 from our Arduino UNO Library for Proteus V4.0, running ESC_A2212_Demo.hex with its serial monitor built in. ESC1 is the 30A ESC (the device ESC30ATEP of our ESC library), its battery leads on a +11.1V power terminal - the 3S battery - and its signal on D9. M1 is the A2212 with a 1045 prop, its three wires straight from the ESC's A, B and C. RV1 on A0 is the throttle.

The wiring (the same in Proteus and on the bench)
FromToNote
ESC A / B / CA2212 A / B / Cany order; swap two to reverse
ESC SIGArduino D9the Servo library's pulses: 1000 - 2000 us
ESC BAT+ / BAT-+11.1V / GNDa 3S LiPo on the real thing
RV1 wiperArduino A0the throttle

The Arduino Code

The Arduino never talks to the motor; it talks to the ESC, with the same Servo library as a hobby servo. The 30A Brushless ESC Library for Proteus article walks through the sketch line by line. The essential part is short: attach with the throttle range, send zero for a few seconds so the ESC arms, then send the throttle:

const int US_ZERO = 1000, US_FULL = 2000;
  esc.attach(ESC_PIN, US_ZERO, US_FULL);
  mode = ARMING; armUntil = millis() + 2500;
  esc.writeMicroseconds(US_ZERO);

After the 2.5 s the pot becomes the throttle, with a small dead zone at the bottom so that "fully down" always means stop:

    int raw = analogRead(POT_PIN);
    int us = raw < 20 ? US_ZERO : map(raw, 20, 1023, US_ZERO, US_FULL);   // a dead zone at the bottom: a sure stop

In the monitor, t 50 sets 50 % throttle, stop sends zero, arm arms again and knob returns to the pot. The HEX file is in the package; to change the sketch, export the compiled binary as in How to get the HEX file from Arduino. It needs 5,852 bytes of flash and 293 bytes of RAM.

Running the Demo

Press Run. The monitor and both pop-ups open; move them aside. The ESC counts its battery, measures the motor - 45.0 mOhm a phase, the A2212's own number - and arms during the sketch's 2.5 s of zero throttle. Then the pot takes over:

30A ESC + A2212 brushless motor demo - The Engineering Projects
ESC signal on D9, a 3S battery on the ESC. The pot on A0 is the throttle once the ESC is armed.
Commands: t 50 | stop | arm | knob | help
Arming: zero throttle (1000 us) for 2.5 s...
Armed (the ESC beeped) - the pot is the throttle now
Pot 768 -> 1745 us = throttle 74 %
A2212 and 30A ESC demo in the built-in serial monitor of the Arduino UNO V4.0: arming, the pot and the commands
Figure: ARD1's monitor: the arming, the pot at 75 %, then t 100, stop and knob.

The ESC starts the motor, locks on its back-EMF a tenth of a second later and the prop runs up to speed:

A2212 pop-up Motor page in Proteus: RUNNING CW 7666 RPM, 509 g thrust, 5.8 A a phase and the three phase currents
Figure: The Motor page at 77 % throttle: 7,666 RPM CW, 509 g of thrust, 5.8 A a phase - and the three phase currents, three sines 120 degrees apart.

The motor's window, TEP A2212 Brushless Motor, has the look of our TEP Serial Monitor Advance for Proteus and four tabs: Motor, Graphs, Event log and Check. The Motor page names the state in its banner - RUNNING CW with the speed, the thrust and the current. The gauge goes to 12,000 RPM either way, with the thrust as a bar under it. The live values add the electrical frequency, the power going in, the efficiency, the prop and the direction. At the bottom the three phase currents of the last 5 ms are drawn as three sines, 120 degrees apart: that is what a brushless motor looks like from the inside.

Full Throttle

Type t 100. The ESC goes to full throttle and the motor settles at 9,684 RPM:

A2212 pop-up Motor page at full throttle in Proteus: 9684 RPM, 813 g thrust, 9.1 A a phase, 104.6 W and 89 percent
Figure: Full throttle: 9,684 RPM, 813 g of thrust, 9.1 A a phase, 104.6 W in at 89 % efficiency, 1129.8 Hz electrical.

813 g of thrust, 9.1 A in each phase, 104.6 W going in and 89 % of it coming out as mechanical power. The electrical frequency, 1129.8 Hz, is seven times the turns a second - the A2212 has 7 pole pairs, so each turn of the bell is seven electrical cycles. On the ESC's side the battery gives 9.65 A. Those are the numbers of the makers' tables for an A2212 with a 1045 on 3S.

30A ESC pop-up in Proteus driving the A2212: 77 percent throttle, 7666 RPM and 4.8 A from the battery
Figure: The ESC's side of the same run at 77 %: the battery gives 4.8 A, and the ESC reads the motor's 7,666 RPM from its back-EMF.

Stop, Coast and Start Again

Type stop. The ESC sends nothing more, the phase currents drop to zero and the bell coasts. With a 1045 on it the drag is strong, so it stops in under three seconds; without a prop it would spin for much longer. Type knob and the ESC starts it again and brings it back to 7,667 RPM. If the prop is still turning when the throttle comes back, the ESC catches it on the fly instead of starting from rest - the 30A Brushless ESC Library for Proteus article shows that in its event log.

Event Log

A2212 pop-up Event log in Proteus: driven, steady speeds with thrust and current, coasting, stopped and the restart
Figure: The Event log, newest first: every steady speed with its thrust, current and power, the coast, the stop and the restart.

The Event log records when the motor is driven and when it coasts, every steady speed with its thrust, phase current and power, every stop, a change of prop and the warnings. Filter it by speed or warnings, pause it or clear it. The Graphs page draws the speed, the thrust and the phase current over the last 1, 3 or 6 seconds.

Check

A2212 pop-up Check page in Proteus: wiring, drive, direction, current, prop, thrust and efficiency all green
Figure: The Check page at 77 % throttle: every row green.

The Check page is for a motor that does not start, jerks, turns the wrong way, gets hot or pushes too little. It checks that all three phases carry current, shows the drive frequency and what it means in RPM, the direction and how to change it, the current against the A2212's 12 A, the prop, the thrust and the efficiency, each with a green, amber or red verdict.

How the Model Works

Each phase of the model is a winding of 45 mOhm from its pin to the star point inside the motor, with the back-EMF of the magnets in series. The back-EMF is a sine whose size grows with the speed and whose angle follows the bell, seven cycles a turn. Proteus solves these three windings together with the ESC's outputs at every analog step, so the current in each wire is the real result of the voltage the ESC applies and the voltage the magnets give back. The torque of the three currents turns the bell; the prop's drag, the bearings' friction and the inertia of the bell and the prop hold it back. Thrust is the prop's constant times the speed squared.

Because it is all physics, the classic effects appear by themselves: the motor slows down under a bigger prop, a start pulls a current peak while the prop accelerates, two swapped wires turn it the other way, an open wire leaves it jerking on two phases. We checked it with 17 automatic tests before it ran in Proteus. If you know our brushed 130 DC Motor Library for Proteus, compare the two: the 130 turns on plain DC, the A2212 only with an ESC.

Troubleshooting

  • STOPPED - NO PHASE CURRENT: the ESC is not armed or at zero throttle - its own pop-up says why.
  • It jerks and does not start: one phase wire is open; the Check page names it.
  • It turns the wrong way: swap any two of A, B and C, or set the ESC's DIRECTION to REVERSED.
  • STALLED: the prop is jammed - click it again - or the prop is too big for the throttle.
  • OVER-CURRENT: more than 12 A a phase for over a second - use a smaller prop or less throttle.
  • No motor part, or no ESC: TEPA2212.DLL is missing from MODELS and the project folder, or our 30A ESC library is not installed.

Things to Know Before Using a Real A2212

  • Take the prop off for every bench test. A 1045 at full throttle pulls about 800 g and cuts like a knife.
  • The prop's direction: a motor turning CW needs a CW prop (the "R" one of a pair); if the air blows the wrong way, swap two motor wires or the prop.
  • The battery: a 2S or 3S LiPo that can give 10 A and more. 4S or a prop bigger than the 1147 overloads the A2212.
  • Balance the prop: an unbalanced prop shakes the bearings and every sensor on your frame.
  • Mount it on the cross with short screws: a screw that touches the windings shorts them.

Limitations of the Simulation

  • Not modelled: the windings' inductance (about 15 uH, which matters only above about 10,000 RPM), cogging, heating, the air's density and the spread between real motors and props.
  • The prop is drawn shortened to fit the plate; the plate, the LEDs and the strip are TEP additions.
  • The model is our own, written from the typical data of the A2212 / 13T 1000KV motor and its props; this library is not made or endorsed by any motor maker, Arduino or Labcenter.
  • Licences: the demo HEX contains the Arduino Servo library 1.2.2 (LGPL 2.1) and the Arduino AVR core 1.8.6 (LGPL); the sketch is included and the README gives the source links.
  • Tested in Proteus 8.5 in October 2026 with the demo as shipped and our 30A ESC library: the arming, the pot, full throttle, stop, the restart and all four pages of the pop-up. Proteus 7 is not supported.

So, that was all about the A2212 Brushless Motor Library for Proteus V1.0. I hope it helps you see what a drone motor really does with your throttle - the speed, the thrust and the amps it costs - before the first prop goes on. If you have any questions, ask in the comments and I will help you out. Till the next tutorial, take care and have fun!


Comments

0

Join the conversation