PCA9685 board/Builds/13. When nothing moves
Builds · 13 of 13

When nothing moves

Two LEDs in the corner tell you which rail is missing before you open a single file: red is VCC, the chip, and blue is V+, the servos. After that, an I²C scan says whether the chip answers, and the rest of the faults each have a symptom that points at them.

Look at the LEDs first

Read the two LEDs first
the adapter, then the VCC wire
The LEDs show
Red, VCC
dark
Blue, V+
dark
Look at
the adapter, then the VCC wire
Neither rail is up: no servo power and no power for the chip. Plug the 5 V adapter into the USB-C socket and check the blue LED lights. If a supply is on the terminal, it may be reversed: the MOSFET blocks it, so swap the wires. Then check VCC.
Red (VCC)Blue (V+)What it means
offoffNo power at all. Check the adapter and the VCC wire.
offonServo power, but the chip is unpowered: wire VCC, or bridge one V+TO VCC pad.
onoffThe chip runs, the servos have nothing. Plug in the adapter.
ononBoth rails are up. The fault is on the bus, in the sketch, or at the servo.

Each LED sits straight across its rail through 5.1 kΩ, so it proves that rail and nothing else.

Both lit: does the chip answer?

Run an I²C scan, or the first-servo sketch, which says No PCA9685 at 0x40. when nothing answers. If the chip is silent:

  • SDA and SCL swapped. SDA goes to GPIO 8 or A4, SCL to GPIO 9 or A5.
  • No GND wire between the board and the microcontroller.
  • The sketch starts I²C on other pins than the ones wired. On an ESP32 the pins are whatever Wire.begin() was given.
  • An address pad is bridged, so the board answers somewhere other than 0x40. A scan of the whole bus shows where.

It answers, and the servo still does not move

  • OE is HIGH. Anything wired to OE that sits HIGH holds every output LOW, while the bus carries on normally. Disconnect it.
  • The servo is on another channel, or its plug is turned round. Channel 0 is the left-hand column; brown or black goes on the bottom row.
  • The pulse is going to an empty channel. Check the channel number in the sketch against the number printed above the pins.

It moves, badly

  • It buzzes at the ends: its pulse is past what the servo can reach. Bring that end 50 µs toward 1500 at a time. The 150 and 600 counts from older tutorials, 732 and 2928 µs, do this to most servos.
  • The microcontroller resets when servos move: servo current is reaching its supply. V+ must come from its own adapter, never the microcontroller's 5V pin or a computer port.
  • Servos twitch when several move: the supply is too small for the stall current (Sizing the supply).

A meter goes a long way

MeasureAgainstExpect
VCC pinGND3.3 V or 5 V, the microcontroller's logic
V+ pinGNDthe adapter's voltage, 6 V at most
OE pinGND0 V
SDA and SCL, bus idleGNDthe same as VCC

SDA at 5 V with an ESP32 on the other end means VCC is on the wrong supply, and the fix is in V+ and VCC.

When it does not work

Nothing works after I experimented with the MODE1 register.

The EXTCLK bit was probably set. It stays set until the power is cycled or the chip is reset, and on this board the external clock pin is grounded, so the PWM stops. Unplug everything and power it up again, or write 0x06 to I²C address 0x00, the general call software reset.

Every servo is off by the same few degrees.

The chip's oscillator is not at the frequency the sketch assumes. Measure one channel's period and set the real oscillator frequency, as in 4096 counts. If the error differs from channel to channel on one board, it is the servos, not the chip.

Two boards, and only one of them responds.

Both are at 0x40. Bridge A0 on one of them and address it as 0x41 in the sketch. A scan should then show two addresses.

A board moves when a different one is commanded.

It is at 0x70, which is also the All Call address every chip listens to from power-up. Unbridge A4 or A5 so it has an address of its own.

Where this goes next

The reference page: specifications, pins, downloads and the quick reference.

PCA9685 16-channel servo driver →

Edit this page — content/books/pca9685/when-nothing-moves.mdx

Community

Questions about this product

See what other owners have asked, and read their solutions.

Ask a question ↗

PCA9685 16-Channel Servo Driver Board, USB-C Powered

Loading discussions…

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Modules and blocks on the forum →