top of page
  • Writer's pictureJohn Strope

Envision Board | A Nano-Sized PWM Driver (and my first PCB!)

Updated: Sep 10, 2021


The animatronic eyes had too much wiring. There. I said it. I designed them to be super small and compact, but then had a massive 'brain' and breadboard controlling everything. So I set out to make everything smaller. About 1/5th the original size, actually. So here it is: The Envision Board™ (not really tm).

What does it do?

  • It allows you to run and control up to 16 servos (4 eyes) off of one power supply.

  • Technically, it can also drive anything compatible with PWM. Long LED light strips are a common application, but we'll focus on servos here.

How does it do it?

  • It basically marries an Arduino Nano and the PCA9685 servo driver used in the project previously.

  • It also has two modes: 'Run Mode' and "Program Mode', which cuts power to the servos while you program and avoids pulling too much power through your computer's USB port (in case you were to accidentally unplug the DC power jack.)

  • It also has an extra row of header pins, so you can still connect to a breadboard and play with switches, sensors, and other gadgets.

Why bother?

  • It's more compact

  • It's also much easier to run things off of a battery pack. This means you can install the whole kit in a tight space and use rechargeable power!

  • It eliminates significant potential for beginner's wiring error.


  • It me. And JLCPCB. I am blown away by their service. I learned KiCAD in an evening, submitted my file to JLCPCB, and 6 days later had the prototypes in my hand. For $2!! I can't believe how straightforward it was. Now I've got a new tool in my backpocket. You learn something new every day!

  1. Order an Envision Board, with or without the power supply, here.

  2. Unwrap your package. You should see an Arduino Nano, PCA9685 servo board, and the Envision Board itself, as well as an optional 5V 3A power supply.

  3. If you're lucky, they'll already be assembled. If so, proceed to step 4. If not, place the Nano controller on the side labeled 'Place Nano Controller Here' with the USB plug oriented to the end marked on the board.

  4. You should have all of the Nano's pins inside the Envision Board's inside sockets, and a row of outside sockets available on each side.

  5. Flip the board to the back side, and slide the PCA9685 into the top row of pins on the right angle connector. Press it all the way in until the board markings line up.

  1. Notice that the markings are labeled 'X', 'Y', 'T', and 'B'. These correspond to where the servos for the X eye movement, Y eye movement, top eyelid movement, and bottom eyelid movement.

5. Plug in your DC power supply to the barrel jack on the front of the board. Now you're ready to move some motors!

  1. When programming, switch the 'MODE' switch to the 'PGM' position. This cuts power to the servos but keeps the Nano powered. Upload your code and you're good to go!

  2. When you're ready to run the motors, flip the 'MODE' switch to 'RUN'. Everything should start moving!

Programming Notes
  • In the Arduino IDE under Tools, make sure you have the following settings:

  • board selected to be 'Arduino Nano'

  • processor to be 'ATmega328P (Old Bootloader)'

  • programmer to be 'AVRISP mkII'

  • the USB plugged in.

bottom of page