Welcome to the Pololu Blog, where we provide updates about what we and our customers are doing and thinking about. This blog used to be Pololu president Jan Malášek’s Engage Your Brain blog; you can view just those posts here.
We are now finally carrying a cable for the Sharp GP2Y0A51SK0F Analog Distance Sensor 2-15cm. The GP2Y0A51SK0F, our shortest-range analog distance sensor, has a compact package with a unique JST ZH-style connector, so this cable will not work with any of our other distance sensors. The cable is 12 inches (30 cm) long, with wires that you can cut and terminate as necessary for your project.
For more information, see the product page.
I am excited to announce our new A-Star 32U4 Robot Controller LV with Raspberry Pi Bridge, a general-purpose robot controller based on Atmel’s ATmega32U4 microcontroller.
This new robot controller is the latest model in our A-Star line of Arduino-compatible USB microcontroller boards. We started with the A-Star 32U4 Micro and have been gradually expanding the line, adding peripherals and various form-factor and voltage options, with the goal of eventually replacing our older Orangutan robot controllers. The Zumo 32U4 was a major step in that direction, since its controller board is essentially an A-Star 32U4 plus extra peripherals for motor control and sensing. But while the Zumo 32U4 is a complete robot kit, this board is for people who want to design their own robot.
The A-Star 32U4 Robot Controller LV includes most of the features of the A-Star 32U4 Prime LV, including an Arduino-compatible USB bootloader, an efficient step-up/step-down regulator, and handy peripherals like the buzzer and buttons, and it expands on the A-Star line by adding a pair of Texas Instruments DRV8838 1.8 A motor drivers, the same motor drivers as on the Zumo. All of the AVR’s GPIO lines are broken out, and we have included handy power and ground rails so you can easily connect lots of things like servos and sensors:
This board is well-suited for small robots that would have otherwise used an Orangutan controller like the SV-328 or SVP-1284. While we did not include an LCD like on the Orangutans, you can get far better display, monitoring, or data logging by making use of the Raspberry Pi connection, which I will talk about next.
Using the robot controller with a Raspberry Pi
The Raspberry Pi is a great board for an embedded project that needs serious computational power or connectivity. We have released a couple of Raspberry Pi motor driver boards over the past year, which give you a way to get started exploring robotics with your Raspberry Pi. But robotics projects tend to use a lot of analog sensors, timing-sensitive devices like servos, and other peripherals that are not compatible with the limited I/O capabilities of the Raspberry Pi. These types of things are what microcontrollers are designed for, so you can do a lot more if you pair your Raspberry Pi with a complete microcontroller board.
That’s why instead of using the standard Arduino form factor like the Prime, we built the A-Star 32U4 Robot Controller LV to double as a Raspberry Pi HAT:
|A-Star 32U4 Robot Controller LV with Raspberry Pi Bridge on a Raspberry Pi Model B+.|
The Robot Controller fits on top of a Raspberry Pi A+/B+/2, powers the Pi, and connects to it as an I²C slave device, giving you a bidirectional channel of communication between the two processors. We have broken out all of the GPIO of the Raspberry Pi, and there are a few general-purpose level-shifters included on the board to help you experiment with other communications protocols or interface other hardware to your system. We even include the EEPROM required by the HAT specification, though we have not found it to be particularly useful – we ship it blank and unlocked for you to experiment with.
For more information about the A-Star 32U4 Robot Controller LV, or to order, see the product page. You can also check out our open-source A-Star 32U4 Arduino library, which provides easy access to the main features of the Robot Controller, including its motor drivers; we will be adding examples showing I²C communication with the Raspberry Pi soon.
Our 25D mm metal gearmotors are now available with 12 V motors in three power levels: High-Power (HP 12V) (5.5 A stall), Medium-Power (MP 12V) (2.1 A stall), and Low-Power (LP 12V) (1.1 A stall). The new 12 V LP motor can deliver approximately the same power as its 6 V counterpart, but since the voltage is doubled, it only requires half the current to do so, which means you can control it with lower-current, higher-voltage motor drivers like the DRV8801 or MAX14870 motor driver carriers. At their respective nominal voltages, the 12V HP motor has nearly the same free-run speed as the 6V HP motor, but it produces approximately twice the torque, which in turn means approximately double the output power. The 12V MP motors fall nicely between the 12V LP and HP options, offering a significantly more power than the LPs without the large current draw of the HPs. All five motor variants are the same size, which makes it easy to swap one for another if your design requirements change.
As with our original 6 V options, we have paired these new motors with a variety of gearboxes spanning gear ratios from 4.4:1 through 378:1. The result is 26 new versions, bringing our total selection of 25D mm metal gearmotors to more than 50 options. Unfortunately, we do not have encoder options for the 12 V motors yet, but we should have those later this year.
@ Rated Voltage
@ Rated Voltage
@ Rated Voltage
|6.5 A||9800 RPM||2 oz-in||1:1 HP 6V w/encoder|
|2200 RPM||8 oz-in||4.4:1 HP 6V w/encoder||4.4:1 HP 6V|
|1000 RPM||17 oz-in||9.7:1 HP 6V w/encoder||9.7:1 HP 6V|
|480 RPM||36 oz-in||20.4:1 HP 6V|
|285 RPM||60 oz-in||34:1 HP 6V w/encoder||34:1 HP 6V|
|210 RPM||80 oz-in||47:1 HP 6V w/encoder||47:1 HP 6V|
|130 RPM||130 oz-in||75:1 HP 6V w/encoder||75:1 HP 6V|
|100 RPM||160 oz-in||99:1 HP 6V w/encoder||99:1 HP 6V|
|57 RPM||260 oz-in||172:1 HP 6V|
|2.4 A||6100 RPM||1 oz-in||1:1 LP 6V w/encoder|
|1400 RPM||5 oz-in||4.4:1 LP 6V|
|630 RPM||11 oz-in||9.7:1 LP 6V w/encoder||9.7:1 LP 6V|
|300 RPM||24 oz-in||20.4:1 LP 6V|
|180 RPM||40 oz-in||34:1 LP 6V w/encoder||34:1 LP 6V|
|130 RPM||50 oz-in||47:1 LP 6V w/encoder||47:1 LP 6V|
|82 RPM||85 oz-in||75:1 LP 6V w/encoder||75:1 LP 6V|
|62 RPM||110 oz-in||99:1 LP 6V|
|36 RPM||170 oz-in||172:1 LP 6V w/encoder||172:1 LP 6V|
|27 RPM||220 oz-in||227:1 LP 6V|
|16 RPM||250 oz-in||378:1 LP 6V|
|12 RPM||300 oz-in||499:1 LP 6V|
|5.5 A||2200 RPM||23 oz-in||4.4:1 HP 12V|
|1000 RPM||44 oz-in||9.7:1 HP 12V|
|480 RPM||85 oz-in||20.4:1 HP 12V|
|285 RPM||120 oz-in||34:1 HP 12V|
|210 RPM||165 oz-in||47:1 HP 12V|
|130 RPM||240 oz-in||75:1 HP 12V|
|100 RPM||300 oz-in||99:1 HP 12V|
|2.1 A||1750 RPM||11 oz-in||4.4:1 MP 12V|
|800 RPM||22 oz-in||9.7:1 MP 12V|
|375 RPM||42 oz-in||20.4:1 MP 12V|
|225 RPM||63 oz-in||34:1 MP 12V|
|165 RPM||85 oz-in||47:1 MP 12V|
|100 RPM||125 oz-in||75:1 MP 12V|
|77 RPM||165 oz-in||99:1 MP 12V|
|45 RPM||250 oz-in||172:1 MP 12V|
|34 RPM||320 oz-in||227:1 MP 12V|
|1.1 A||1250 RPM||8 oz-in||4.4:1 LP 12V|
|570 RPM||15 oz-in||9.7:1 LP 12V|
|270 RPM||29 oz-in||20.4:1 LP 12V|
|160 RPM||43 oz-in||34:1 LP 12V|
|115 RPM||60 oz-in||47:1 LP 12V|
|75 RPM||85 oz-in||75:1 LP 12V|
|55 RPM||115 oz-in||99:1 LP 12V|
|32 RPM||180 oz-in||172:1 LP 12V|
|24 RPM||240 oz-in||227:1 LP 12V|
|15 RPM||320 oz-in||378:1 LP 12V|
Keep in mind that stalling or overloading gearmotors can greatly decrease their lifetimes and even result in immediate damage. For these gearboxes, the recommended upper limit for instantaneous torque is 200 oz-in (15 kg-cm), and we strongly advise keeping applied loads well under this limit. Stalls can also result in rapid (potentially on the order of seconds) thermal damage to the motor windings and brushes, especially for the versions that use high-power (HP) motors; a general recommendation for brushed DC motor operation is 25% or less of the stall current.
|Brushed DC motor performance curves.|
We list stall torques and currents for our gearmotors because these are end points of approximately linear DC motor performance curves shown above, and with them you can determine how the motor will behave as the voltage or load changes. For more information about how to generate specific performance curves for our gearmotors from the specifications we provide, see the first frequently asked question on any of the motor product pages.
We have had a lot of requests for single-color packs of our 3″ Premium Jumper Wires and Wires with Pre-crimped Terminals, which until now have only been available in 50-piece rainbow packs like this. I am happy to announce that we have now added monochromatic 3″ packs in six colors: black, red, yellow, green, blue, and white. Multiply that by three different gender combinations (i.e. female-female, male-female, and male-male) and two styles (i.e. with or without housings), and that’s 36 new products in all!
We have two new versions of our Micro Metal Gearmotors with 1000:1 gearboxes: low-power with an extended motor shaft, which is useful if you want a very slow gearmotor with an option for encoder feedback, and medium power (MP). The main applications in which these motors shine are ones where slow, smooth motion is required. The high gear ratio also allows these gearmotors to generate high torque without drawing as much current or stressing the motor as much as if you tried to get comparable torque from versions with lower gear ratios, but at typical voltages you might not actually achieve a higher torque before the gears fail. (The stall torques we list are theoretical because these 1000:1 gearboxes can generate enough torque to destroy themselves before they get close to stalling!)
These new additions bring our Micro Metal Gearmotor selection to 57 (I have an idea for a Heinz joke to put here, but it’s not coming out very well), all of which can be found in our Micro Metal Gearmotor category.
Along with the V5 RoboClaw motor controllers we recently started carrying (2x5A, 2x15A, and 2x30A), we now have a pair of 2x45A versions from Ion Motion Control as well. The regular RoboClaw 2x45A (V5) has pin headers for its control I/O connections, like the other RoboClaws, while the Roboclaw ST 2x45A (V5) has screw terminal I/O connections for a potentially more convenient way to connect wires.
Both variants are capable of supplying a continuous 45 A (60 A peak) to a pair of motors at voltages from 6 V to 34 V, and they offer the same control options as the other members of the RoboClaw family: USB, TTL serial, RC signals, and analog voltages.
This new ball caster is an improved version of our original ball caster with 1″ plastic ball, with better rollers for reduced friction and a two-part ABS housing that securely encloses the plastic ball. The ball can rotate freely in any direction, making this caster suitable for use as a third contact point for wheeled, differential-drive robots weighing up to around ten pounds (the smaller ball caster on our 3pi robot is an example of this kind of application).
We designed the rollers to be replaceable by ball bearings for even better performance, and we expect to release a version that includes them by the end of summer. If you’re impatient, you can make this upgrade yourself by getting some standard 3×7×3mm ball bearings (3 mm inner diameter, 7 mm outer diameter, 3 mm width) along with 3 mm diameter dowel pins to hold them. The left picture below shows dowel pins we crudely cut ourselves in 8 mm segments from a longer rod.
You can also replace the included plastic ball with a metal one (not included) if a harder ball would better suit your application, but please note that a metal ball is much heavier and will not necessarily increase the load-bearing capacity of the ball caster.
The Pololu Dual MC33926 Motor Driver for Raspberry Pi is our latest offering designed to help you build a robot around the powerful and versatile Raspberry Pi single-board computer. It features a pair of Freescale MC33926 motor drivers, each capable of supplying a motor with up to 3 A continuous (5 A peak) at voltages from 5 V to 28 V. This makes it a good choice for driving bigger things like our 25D and 37D motors and even linear actuators.
|Driving motors with an assembled dual MC33926 motor driver on a Raspberry Pi Model B+. A step-down regulator provides 5 V to the Raspberry Pi.|
We particularly like using the MC33926 because of its robustness: it can withstand voltage transients up to 40 V, and it has a current regulation feature that actively limits the output current to a safe amount. Furthermore, the driver automatically lowers the current limit as its temperature increases, allowing it to gracefully reduce the motor current instead of abruptly shutting down.
This add-on board is a step up from the relatively minimal, lower-power DRV8835 motor driver expansion we released last year, but it is just as easy to use. Our Python library helps you quickly get your motors running with the board’s default pin mappings, which use logic gates to enable drive/brake operation of the MC33926 drivers with only two control pins per motor.
Additional inputs and outputs on the MC33926 drivers are exposed for advanced users who want to make use of other configurations and control methods, and a small prototyping area on the side of the board provides a convenient space for adding custom circuits. As with the DRV8835 board, you can optionally connect a voltage regulator (not included) to power the Raspberry Pi from the motor power supply.
The motor driver board is available in two versions:
- a partial kit, with connectors included but not soldered in
- fully assembled, with the female header and terminal blocks soldered to the board
If you’re familiar with other Raspberry Pi add-on boards, you might find it unusual that we are not calling this board a “motor driver HAT”. In fact, it meets most of the requirements needed to qualify as a Raspberry Pi HAT (Hardware Attached on Top): it matches the HAT mechanical specification, and it even includes the recommended ideal diode circuit, allowing the optional regulator and the Raspberry Pi’s usual USB Micro-B power supply to be safely connected at the same time.
The reason the board does not qualify as a HAT is the absence of an ID EEPROM. Such a component is intended to allow the Raspberry Pi to identify a HAT board and configure itself to work with that board. We spent some time looking into how an ID EEPROM might help make this motor driver expansion better or easier to use, and we made provision for adding one in the design of the PCB, but eventually we concluded that it seems to offer no substantial value for this kind of board. (We’ve even seen some similar HATs from other manufacturers that ship with a completely blank EEPROM!)
Automatic configuration might be useful for making the Raspberry Pi automatically load a Linux device driver for an I²C or SPI add-on, but since this motor driver expansion is controlled with direct manipulation of GPIO pins, the responsible program or library can easily set up the pins itself before it begins driving and reading them. Other use cases, like enabling the Raspberry Pi to detect whether the HAT is connected and potentially distinguish between different versions of the HAT, would require much more complex support software to take advantage of while being of questionable benefit.
As a result, we’ve decided to omit the ID EEPROM from the board, even if that means it doesn’t meet the full HAT specification and shouldn’t be called a HAT. The EEPROM format specification still appears to be preliminary and subject to change, so it’s possible that future Raspberry Pi updates will make the EEPROM more useful; if so, we will likely reconsider the decision not to populate the EEPROM chip. However, if you think we’ve missed an argument for including an ID EEPROM now or have any other thoughts on its value, we’d be interested to hear your observations.
We’re excited to offer a series of APA102C-based addressable RGB LED strips to complement our existing WS2812B-based LED strips. Like the WS2812 strips, the new strips have connectors on both ends to make chaining easy, and they are available in the same six combinations of LED densities and lengths:
- 1 meter, 30 LEDs (30 LEDs/m)
- 2 meters, 60 LEDs (30 LEDs/m)
- 5 meters, 150 LEDs (30 LEDs/m)
- 1 meter, 60 LEDs (60 LEDs/m)
- 2 meters, 120 LEDs (60 LEDs/m)
- 0.5 meters, 72 LEDs (144 LEDs/m)
Like the WS2812B, the APA102C combines an RGB LED and driver into a single 5050-size package, allowing them to be packed as densely as 144 LEDs per meter, and each pixel can be individually addressed to give you full control over the color of each RGB LED. However, while the WS2812B uses a high-speed one-wire control interface with strict timing requirements, the APA102C has a standard SPI interface, with separate data and clock signals, that lets it work with a wide range of communication rates, making it much easier to control.
For example, it isn’t easy for a Raspberry Pi to generate a control signal with the exact timings that the WS281x requires. However, an APA102 only reads its data signal on the rising edge of its clock signal, and the Raspberry Pi controls both signals, meaning it is free to bit-bang data to the LEDs as slowly (or quickly) and as irregularly as it wants. Alternatively, it’s straightforward to use the SoC’s built-in SPI peripheral to drive APA102 LEDs. Of course, both the bit-banging and hardware SPI approaches can also be used on many other devices, including A-Stars and Arduinos.
|Close up of one segment of an APA102C-based LED strip, with the red, green, and blue LEDs on at a low brightness.|
The APA102C also offers a few other improvements over the WS2812B, including a color-independent brightness control that lets you easily adjust the intensity of each LED without changing its color. Also, the color channels on an APA102C are pulse-width modulated (PWM) at a much higher frequency, making it less susceptible to flickering on camera and more suited to persistence-of-vision (POV) applications.
For more information about our APA102C-based LED strips, see their product pages.