Introduction: Articulating Wireless Power Transmitter

Want an articulating arm to pointlessly follow your device to charge? This is the project. I Wireless Power Transmitter and Receiver combo that will follow your long as its about three inches away.


  • Custom printed circuit boards (schematics and layout files to follow)
  • Custom Servo Mounts (files to follow)
  • 4.95uH Transmission Coil
  • 2 x SG90 Servos
  • 3.7V LiPo Battery
  • 19V Laptop Power Supply
  • Polycarbinate 3in x 5in E

Step 1: Schematics and PCBs: Design Modification and Customization

For this project I decided to order one bare board from a fabrication house and cut the other with a LPKF laser cutter. Both work but due to the amount of through-hole vias I would suggest ordering the boards instead of cutting them yourself. Both of the boards are based off of the ESP32 microcontroller which make connecting to this project over WiFi or Bluetooth very straightforward, however for this project they are set to only connect to themselves when activated.

I also used Eagle for schematic capture and board layout. Because Eagle is now owned by Autodesk it integrates well with their drawings tools like Fusion360 and Inventor. This allowed me to check mechanical fits against board layouts quickly and easily.

  1. Check through both of the schematics and make any desired changes.
  2. If you plan to change either of the coils ensure the tuning capacitors resonate with the inductance value of the new coil. Also make sure the coils maintain a 3:1 inductance ratio

Circuit Description: Transmitter

This design has two main parts of the circuit: the first being communication/control and the second being the resonating circuit for the wires power transmission The WPT frequency is centered at 127KHz and can handle about 10W. The transmission portion is a tuned series resonant circuit. The board as a whole can be powered from 18VDC to 36VDC so your standard laptop power supply will work great for this project.

Circuit Description: Receiver

This design is also based around the ESP32 but also uses the LTC4120. This chip is designed specifically to be a WPT receiver and is able to detune the receiver circuit such that the correct amount of power is supplied to the system. The chip also has a single cell LiPo charging circuit with several safety functions like over current protection and charging timeout.

Step 2: Order PCBs

There are several board houses in which bare boards can be purchased. If you are a student many of them also have discounts as long as you have a school email address.

  • Advanced Circuits (4PCB)
  • Sunstone Circuits
  • PCBWay
  • Gold Pheonix

If you also do not want to populate your board with parts you can by them pre-populated for a little bit extra money. Keep in mind many of these places use external board houses.

  • Screaming Circuits
  • CircuitHUB
  • TurnKey PCB

Depending on the board house they will require certain files sometimes in different formats. If you are ordering just bare boards this is less of an issues as gerbers are the file of choice for most fab houses. Below is a list of files you would need for a turnkey solution.

  1. Board Gerbers: .grb
  2. BOM: .xlsx(This is generally in a format dictated by the board house; in general they link refdes(reference design part numbers) to each component.
  3. Centroid: .xlsx (This file calls out the location and orientation of each parts based on origin and ref des)
  4. Layer Stackup (This is not always required but nice to have)

Step 3: Print Parts

There are three total parts to print:

  1. Upper Servo Arm
  2. Lower Servo Arm
  3. Arm Base

Step 4: Flashing Code

All of the code was written in the Arduino IDE using the ESP32 libraries from Espressif. To install the USB->UART drivers along with board support files please follow this link:

Much of this code is based off Espressiff's ESP32 libraries and their comments and suggestions are derived from them, NOT me.

Transmitter Functionality

The transmitter is actually the WiFi "slave" in this configuration. This is due to the receiver being the arbiter of sending its orientation information to the transmitter board. On boot, the board will initialize itself as a wireless access point waiting for connection from the "master" ESP32. After this it then initializes IO and waits for connection. once connected a red LED will turn on and start gimballing.

Receiver Functionality

On boot, the receiver initializes is access point and starts looking for a "slave". Once found they negotiate a "channel" to operate on and move to it. Once there the program then checks accelerometer data and begins piping it to the transmitter board. If a "slave" device cannot be found the program will continue to reinitialize its WPA interface and continue looking.