SparkFun Pi Servo HAT

The SparkFun Pi Servo HAT allows your Raspberry Pi to control up to 16 servo motors in a straightforward and uncomplicated manner via an I2C connection. Thanks to its I2C capabilities, this PWM HAT saves the Raspberry Pi's GPIO, allowing you to use them for other purposes. Additionally, the Pi Servo HAT adds a serial terminal connection, which will allow you to bring up a Raspberry Pi without having to hook it up to a monitor and keyboard.

Power to the SparkFun Pi Servo HAT is supplied by a microUSB connector that can be used to power the servo motors only, or to power the servo motors as well as the Pi that is connected to the HAT. This USB connector can also be used to hook up the Pi via serial port connection to avoid having to use a monitor and keyboard for setting up the Pi. To supply power only to the servo power rail (and not the Pi's 5V power rail), you just need to remove a small blob of solder on the isolation jumper. Doing this allows you to drive heavier loads coming from multiple or larger servos.

Each of this HAT's 16 servo motor pin headers has been spaced out the correct distance from the others to make it easier to attach your servo motors. They are pinned out in the proper order for most hobby-type servo motor connectors. The Pi Servo Hat is the same size and form factor as a Raspberry Pi Zero and Zero W, but it can also operate with a regular Raspberry Pi.

Note: This HAT does not include headers to connect to a Raspberry Pi, those will need to be purchased separately. We recommend the 2x20 "tall" headers.

SparkFun Pi Servo HAT Product Help and Resources

Pi Servo Hat Hookup Guide

September 14, 2017

This hookup guide will show you how to connect and use the Pi Servo Hat in a project.

Setting Up the Pi Zero Wireless Pan-Tilt Camera

September 14, 2017

This tutorial will show you how to assemble, program, and access the Raspberry Pi Zero as a headless wireless pan-tilt camera.

Getting Started with the Autonomous Kit for the Sphero RVR

December 13, 2019

Want to get started in robotics? Look no further than the SparkFun autonomous kit for the Sphero RVR! Whether you purchased the Basic or Advanced kit, this tutorial will get you rolling...

Basic Autonomous Kit for Sphero RVR Assembly Guide

December 12, 2019

Get your Basic Autonomous Kit for Sphero RVR all hooked up with this guide!

Advanced Autonomous Kit for Sphero RVR Assembly Guide

December 12, 2019

Get your Advanced Autonomous Kit for the Sphero RVR built up with this hookup guide!

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels

Core Skill: Robotics

This skill concerns mechanical and robotics knowledge. You may need to know how mechanical parts interact, how motors work, or how to use motor drivers and controllers.

3 Robotics

Skill Level: Competent - You may need an understanding of servo motors and how to drive them. Additionally, you may need some fundamental understanding of motor controllers.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #1267880 / about 6 years ago / 2

    Does anyone know if the Adafruit Python PCA9685 Library will work with this?

    • SFUptownMaker / about 6 years ago / 1

      I don't see why not. They're both based on the same chip and they operate from the same principle.

  • Ocean Mj / about 7 years ago / 2

    Can we change the address and use more than one to drive more servos?

    • Jorge P. / about 6 years ago / 1

      I am interested in the same. After looking at the schematic, and board, I think the address pins are all left floating. I purchased a couple with the same intent and plan on soldering a wire wrap wire to the address pins so I can test this out. I wish the design would include a spot for a SMD DIP Switch or Jumper Block on the back, where there looks to be plenty of room, to assign the address more easily!

  • Member #1343107 / about 5 years ago * / 1

    I'm driving 4 large servos from the sparkfun servo hat off a pi3b+. I've removed the solder on the hat. I have powered the Pi and the hat with separate 5v 2.1A usb power supplies. A green light appears on the hat, I'm using python and get the error on the line (bus.write_byte_data(addr, 0, 0x20)). Error: IOError [errono 121] Remote I/O error. Any ideas? I've treid with only pins 1-8 connected from the pi to the hat (jumper leads) and only the sda/scl connected. I get the same error both times. Can someone do a tutorial on removing the solder and which wires need to be connected to the pi at a minimum via jumper leads?

  • Member #893540 / about 6 years ago / 1

    I am attempting to use this with servos that are standard size (though they are high torque..), and it seems like the current draw is still too much for this board when I've removed the blob of solder to have all power going to the servos. I have no problem using multiple micro servos.

    Is there a way to supply additional power to the board to deal with this?

    • SFUptownMaker / about 6 years ago / 1

      How many servos are you attempting to drive? Can you pipe in power directly via one of the unused servo power pins? That'd be my solution.

  • Mark G. / about 6 years ago / 1

    To supply power only to the servo power rail (and not the Pi’s 5V power rail), you just need to remove a small blob of solder on the isolation jumper. Doing this allows you to drive heavier loads coming from multiple or larger servos.

    How much load requires a separate power supply?

    • SFUptownMaker / about 6 years ago / 1

      If I were using a servo larger than the ones that came with the kit, or more than the two that came with the kit, I'd look at an additional power supply.

  • PickledDog / about 7 years ago / 1

    While the hookup guide mentions that you need to add a 2x20 female header before you can pop this on your Pi, the description does not. Considering every other HAT on the site either includes one or has it pre-installed, this requirement should probably be mentioned to prevent unpleasant unboxing surprises :)

Customer Reviews

3 out of 5

Based on 1 ratings:

Currently viewing all customer reviews.

3 of 3 found this helpful:

sort of working -- but not well Buyer Beware!

I bought this board to control an x-y servo stack to move a raspberry pi camera around (pan-tilt) by remote control. So far what I have seen is a mixed bag. I have been able to control individual servos from the PI (these are small 9 gm servos) but not with the precision or finesse I was expecting. When two servos are connected I get quite a bit of random movement that seems to be related to electrical noise on the power bus. I have powered the unit both from the sparkfun board's micro USB connector as well as the one on the Raspberry Pi Zero W. In both cases I get lots of random movement and in the former case I also have periodic crashing of the Pi. I'm thinking that the only way to get this board working right is to separate the 5 volt power between it and the Pi and probably greatly increase the amount of filtering on the supply to prevent high frequency noise from influencing the servos. When the above issues are combined with the very poor build quality of the pan-tilt assembly that was sold with it, I find a lot of room for buyers remorse. The mechanical connections between the servos and the plastic housings included are so poor that I doubt the pan-tilt mount can be made to function for more than a brief "test bench" demonstration without breaking or stripping out the screws used to attach servo arms to the plastic housings. In fact, the lower (pan) element cannot be interfaced to the servo with the arms provided as they don't match either the instructions or the molding of the plastic housing. This means that in order to even test the device I had to do significant hacking of the hardware of the kit. Not classy at all. Perhaps at some point I'll be able to make use of it but the amount of work to be done just to get the kit to function has sent me down the path of multiple fixed position cameras for now.