You are currently viewing a selection of posts from the Pololu Blog. You can also view all the posts.
Last December we started carrying addressable RGB LED strips based on the WS2812B LED driver. Since that driver integrates an LED and a driver into the same package, we were able to offer higher density strips than before.
We are excited to announce that we are now carrying an even higher-density WS2812B LED strip. This strip has 72 LEDs and is 0.5 m long, for a density of 144 LEDs per meter. It is also the shortest WS2812B strip we carry.
|LED side of the WS2812B-based addressable LED strips, showing 30 LEDs/m (top), 60 LEDs/m (middle), and 144 LEDs/m (bottom).|
|A 1/2-meter, 72 LED addressable RGB LED strip on the included reel.|
This LED strip, like the other WS2812B strips we carry, has both input and output JST SM connectors, which make it easy to connect multiple strips together. It is compatible with many popular microcontrollers, and we provide Arduino libraries to help you get started. More information about this LED strip, including how to use it, can be found on its product page.
You can also view our entire selection of WS2812B LED strips.
Just about every integrated switching regulator datasheet I come across advertises how easy it is to use the chip, which is probably a good sign that it’s not necessarily that easy. I have designed several of our regulator boards, and for the most part, following the manufacturer recommendations and warnings about short traces and small loops led to working designs without much drama. But, as we push for higher performance, it can get tricky, and I thought I would share some fun pictures of what goes into troubleshooting a design that ought to work but did not.
This instance is about the D24V25F5 step-down regulator we just released today. It should have been straightforward because the basic circuit is very similar to that of the higher-power D24V60F5 and D24V90F5 regulators we released earlier this year. Because this board was supposed to be really small, I designed it with components tightly packed on both sides, which meant I had to make compromises on some of those trace lengths and loop sizes. It wasn’t even clear that the circuit would be routable with just two PCB layers, so when I did find a solution, the design team wanted to try it even though we knew we were pushing our luck.
|Pololu 2.5A Step-Down Voltage Regulator D24V25Fx, side view.|
Well, if we had been lucky, you might have been reading a less interesting version of this new product announcement three weeks ago. As is typical for these borderline cases, it was the especially hope-dashing kind of failure where a casual test indicated that the board was working, but more in-depth tests revealed stability and performance issues. To make sure the components were not the source of the problem, we put the exact same components onto the PCB of the larger version that already worked. The pictures below show the D24V60F5 regulator (left) populated with its standard components and the D24V60F5 regulator’s PCB populated with the components for the new D24V25F5 (right).
The new components on the old board worked, so after some final checks that the new prototypes were assembled correctly, we knew it was a layout issue. We wanted assurance that the design could work before just diving into a four-layer revision, so I took some prototypes and added redundant connections to see their impact. The pictures below show some of my test boards with varying numbers of additional ground connections.
I was able to see that the more additional ground connections there were, the more the issues went away. So, I routed the four-layer board, and after a week of tests on over a dozen prototypes, I am happy to announce the release of our most sophisticated regulator yet! The D24V25F5 buck regulator generates 5 V from input voltages of up to 38 V with typical efficiencies of 85% to 95%. The board measures only 0.7″ × 0.7″, but it allows a typical continuous output current of up to 2.5 A.
We are quite happy with how manufacturing of these units is going, so we expect to be moving toward more dense designs like this in future products.
|3D rendering of the Pololu carrier with Sharp GP2Y0A60SZLF distance sensor.|
We have released some simple boards over the past few weeks that were developed by our mechanical engineers (see earlier posts for Jon’s board and Brandon’s board). The board I got to design is a carrier board for the Sharp GP2Y0A60SZ 10-150cm analog distance sensor, which is a part we have been trying to get for almost five years.
While the board itself is simple, the GP2Y0A60SZ is exciting for us because it pretty much outperforms all of the other analog Sharp distance sensors. In particular, compared to the more expensive Sharp GP2Y0A02YK0F, which can also detect objects out to a maximum distance of 150 cm, the GP2Y0A60SZ offers half the minimum sensing distance (10 cm) and more than twice the update rate (60 Hz) in a much smaller package:
|Sharp GP2Y0A02YK0F Sensor 20-150cm (left) next to Pololu Carrier with Sharp GP2Y0A60SZLF Sensor 10-150cm (right).|
One application of these sensors that I am looking forward to is mini-sumo. The features on the sensor make them a great addition to a mini-sumo robot like the one I built for the LVBots mini-sumo competition last year. With these on my robot (the one with the Magikarp on it), I might be able to knock out a few more competitors the next time we have a competition.
5V and 3V versions available
Sharp’s optical rangefinders and distance sensors have long been a favorite among robot builders for quick, easy, and affordable obstacle detection. We are excited to add to our selection the new digital GP2Y0D815Z0F sensor, which can detect objects ranging from 15 cm (6″) to almost touching the sensor face. The GP2Y0D805 and GP2Y0D810 digital sensors we have had for years are great because of their small size, high sampling rate, and small minimum sensing distances, but their short detection ranges have limited their applications. We have always wanted a version that could see farther, and now we have one! We have the sensor available by itself and on a carrier that makes connecting and mounting it a lot more convenient.
Last week, Jon mentioned how several of the mechanical engineers here at Pololu were assigned a simple board to develop. Well, our new Breakout Board for microSD Card is the first board that I designed!
Electrically, this board is pretty basic. It breaks out all of the connections available on a microSD card into two rows of 0.1″-spaced pins for easy prototyping use with standard perfboards, solderless breadboards, and 0.1″ connectors. We tried to arrange the pins in a convenient order by placing all of the pins needed for SPI mode on one side of the board (along with the card detect pin). What makes this board interesting mechanically is that it is the first of our products to use a connector for a microSD card. The push-push type connector is positioned so that when a microSD card is fully inserted, it protrudes slightly beyond the edge of the board to allow easy access to the card. The integration of our electrical and mechanical procedures allows us to make 3D models such as the one below to help support our products. We currently use models like this in the dimension diagrams we publish for our boards, but we hope to eventually make the models themselves available too.
|Breakout Board for microSD Card rendered in Solidworks.|
Integration with 5 V systems
There are no other components on the board aside from the microSD card connector. Since standard microSD cards use 3.3 V logic, no extra considerations need to be taken to use it with a 3.3 V microcontroller, but signal conditioning is required for use with 5 V microcontrollers. We did some tests using our 4-channel level shifter and an Arduino Uno to read and write from a microSD card using the Arduino SD library, and we had successful results; however upon closer inspection, we noticed the level shifter did not have time to shift the 3.3 V signals all the way up to 5 V, so this setup only worked because the Arduino Uno registered 3.3 V as a high signal. With a 5 V microcontroller that accepts a 3.3 V signal as high, the microSD card outputs can be connected directly to the microcontroller, and the microcontroller’s 5 V outputs can be shifted to 3.3 V using a simple voltage divider. We found the resistor values needed to be fairly low – we settled on 500 Ω and 1 kΩ resistors. Since we used the standard Arduino SD library, our tests were done at SPI speeds of 4 MHz. In systems operating at higher speeds or with more stringent logic voltage requirements, it might be necessary to use a buffer IC or other high-speed level-shifting solutions.
For more information about this breakout board, see its product page.
If you’ve checked out my company profile, you might have noticed that my focus at Pololu is on developing mechanical parts. So, I am particularly excited to reveal this basic board I designed! (Don’t worry, like Jan mentioned in this blog post, we have support structures for checking all of the work we do, so other experienced electrical engineers here assessed and contributed to my work.)
The DRV8838 motor driver carrier is the smallest motor driver we’ve made yet. With a motor supply range from 0 V to 11 V and the ability to deliver a continuous 1.7 A (1.8 A peak) to a single brushed DC motor, the DRV8838 is an exciting option for controlling any one of our plastic or micro metal gearmotors. (That includes the high power versions.)
For more information about this carrier, see its product page.
But Jon, why are mechanical engineers designing PCBs?
As our products get more sophisticated, we find ourselves wanting to integrate mechanical and electrical aspects of our design process. To give the mechanical engineers better perspective on what goes into designing electronics, we were each assigned a simple board to develop. We expect this to improve our all-around engineering abilities and also to lead to additional benefits for our customers, like better documentation and support.
When the Raspberry Pi Model B+ was released last month, one of the most exciting features for us was the availability of a second hardware PWM output that can be used for motor control (previously, only a single hardware PWM output was available on the Model A and Model B). Two is a really useful number for robot builders, since that’s what you need for a basic robot platform, so we thought it would be a great time to make a dual motor driver kit for the Raspberry Pi.
The new Pololu DRV8835 Dual Motor Driver Kit for Raspberry Pi B+ is a minimal, low-cost motor driver expansion board based on the Texas Instruments DRV8835 dual motor driver, one of our favorite motor driver chips for small robots like the Zumo because of its excellent combination of size, cost, and performance. We carry a basic breakout board for this chip and just released an Arduino shield based on the DRV8835 last week.
|Pololu DRV8835 dual motor driver kit (assembled) on a Raspberry Pi Model B+.|
When assembled, the board plugs into a 2×17 block of pins on the Raspberry Pi GPIO header. Power and motors are connected to a separate block of pins, and you can use the included terminal blocks for easier wiring. The board takes an input voltage of 2 V to 11 V and provides two bidirectional motor channels capable of 1.2 A continuous or 1.5 A peak. You can also reconfigure the board for a single channel with twice the current.
Bonus feature – power your Raspberry Pi from your motor supply!
The Raspberry Pi requires a regulated 5 V supply, which is usually provided via the Micro-B USB power port. This is fine for a stationary setup, since you can just use a USB wall power adapter. On a battery powered Raspberry Pi-based robot, however, you need to somehow incorporate your own 5 V regulator capable of supplying about 500 mA. To help simplify your project, the motor driver kit includes a connection point for a three-pin regulator with the standard VIN-GND-VOUT pinout.
In the picture below you can see a complete setup using the motor driver board and our Step-Up/Step-Down Voltage Regulator S7V7F5 to drive two Pololu plastic gearmotors and power the Raspberry Pi from a set of four AA NiMH cells. This regulator is a good match for the range of input voltages of the DRV8835, though below about 4 V you might need something with higher current capability.
|Driving motors with an assembled Pololu DRV8835 Dual Motor Driver Kit on a Raspberry Pi B+. A step-up/step-down regulator provides 5 V to the Raspberry Pi.|
For more information, including schematics, pinout diagrams, and example Python code, see the product page.
We just released the P-Star 25K50 Micro, a programmable breakout board for Microchip’s PIC18F25K50 microcontroller. Although we have been using PIC microcontrollers since our very first product, the P-Star 25K50 Micro (abbreviated P*) is our first product where the PIC microcontroller can be programmed by the user. The P-Star 25K50 Micro is the same size as our AVR-based A-Star 32U4 Micro, and we designed it with the hope that it would be small and cheap enough to go into (and stay in) almost any project.
The PIC18F25K50 has 32 KB of flash program memory, 2 KB of RAM, and built-in full-speed USB functionality. Applications can be developed using standard Microchip PIC compilers and development tools (such as MPLAB X and XC8).
The P-Star 25K50 Micro can be programmed via its proprietary USB bootloader using our open source software that is available for Windows, Linux, and Mac. The bootloader uses 8 KB of flash memory, leaving 24 KB for the user. Alternatively, an ICSP programmer can be used to erase the bootloader and access the full 32 KB of program memory. (Since the bootloader cannot be recovered, we recommend this option only for those who are comfortable programming exclusively with an external programmer.)
The P-Star 25K50 Micro features a precision 16 MHz crystal, a USB Micro-B connector, and three user-controllable LEDs. A voltage regulator and power selection circuit allow the board to be powered from either USB or an external 5.5 V to 15 V source, while a resettable PTC fuse on the USB VBUS supply and reverse protection on VIN help protect it from accidental damage.
|P-Star 25K50 Micro pinout diagram.|
Compared to the popular ATmega32U4 microcontroller, the PIC18F25K50 has nearly the same performance and memory capacity, but it also has some compelling features that are missing on the AVR. For example, the PIC18F25K50 uses the PIC18 architecture, which has two interrupt priority levels: interrupts can be assigned to either level, and a high-priority interrupt routine can run in the middle of a low-priority one. This powerful feature is what enables our Maestro servo controllers to generate precise servo signals while still using low-priority interrupts to assist with serial communication and other tasks. Unlike the ATmega32U4, the PIC18F25K50 can operate at full speed down to 2.7 V (though the brown-out reset on the P-Star is activated at 2.85 V by default).
The PIC18F25K50 also has a 5-bit digital-to-analog converter (DAC), which is a fun feature not available on many 8-bit microcontrollers.
|A 3 kHz triangle wave generated by the 5-bit digital-to-analog converter (DAC) on the P-Star 25K50 Micro.|
For more information, check out the P-Star 25K50 Micro page, and let us know what you think in the comments.
We are excited to announce the addition of two new motor drivers to our selection of Arduino shields: the Pololu DRV8835 Dual Motor Driver Shield for Arduino and the Pololu A4990 Dual Motor Driver Shield for Arduino. These miniature shields are low-cost, basic dual motor drivers for your Arduino or Arduino-compatible board. When connected to an Arduino, each provides two channels of bidirectional PWM motor control suitable for driving small brushed DC motors. The boards include various handy features like reverse protection, multiple power and motor connection options, and the ability to customize some of the pin mappings. Our open-source libraries provide a convenient way to get started controlling these motors with an Arduino.
Selecting a motor driver shield
|Pololu DRV8835 Dual Motor Driver Shield for Arduino, top and bottom sides.|
|Pololu A4990 Dual Motor Driver Shield for Arduino, top and bottom sides.|
The main practical difference between the shields is their input voltage range, so most people should probably select a shield based on their desired power supply. Here are some details:
Our DRV8835 shield, based on the DRV8835 motor driver from Texas Instruments, has an input voltage range of 2 V to 11 V and can deliver a continuous 1.2 A (1.5 A peak) on each channel. It is suitable, for example, for battery-powered robots similar to the 3pi or Zumo. As a bonus feature of our shield, you can parallel the motor outputs to get a single channel with twice the current capability.
Our A4990 shield uses the Allegro A4990 and is specifically intended for higher-voltage applications, such as projects powered by a 12 V or 24 V battery. It has an input voltage range of 6 V to 32 V and can deliver a continuous 0.65 A (0.9 A peak) per channel. The A4990 can detect and signal a variety of errors like over-temperature and short-circuit, allowing more sophisticated control and monitoring.
Basic breakout boards available
Congratulations to our summer interns!
If you carefully inspect the back of the boards, you will notice “TKern” and “izzyg” etched in copper. These inscriptions commemorate the internships of Ted Kern and Ismael “Izzy” Gomez, Las Vegas natives who were indoctrinated in Pololu design philosophies this summer while creating these new products. We wish Ted and Izzy good luck as they head/return to college at CMU and MIT!
Get a FREE copy of Circuit Cellar magazine’s August issue with your order, while supplies last. To get your free issues, enter the coupon code CIRCUIT0814 into your shopping cart. The Circuit Cellar magazine will add 6 ounces to the package weight when calculating your shipping options.
For back issues and more information, see our free Circuit Cellar magazine offers.
And don’t forget that free copies Elektor magazine’s double-sized July/August issue are still available.