Author Archives: kevin

The Zumo gets a graphical display too: new Zumo 32U4 OLED Robot!

via Pololu Blog

Our 3pi+ 32U4 robot got an upgraded OLED display earlier this year, and now it’s the Zumo’s turn with the release of our new Zumo 32U4 OLED Robot!

In many ways, this new version is just like the original Zumo 32U4: it’s a versatile tracked robot designed to be a capable Mini-Sumo competitor, but with enough sensors and extra features to enable lots of other applications. The Zumo 32U4 OLED adds to that versatility by replacing the original LCD (liquid crystal display) with a high-contrast graphical OLED display. With this monochrome 128×64 screen, you can present high-density data displays to help you analyze the Zumo’s status and sensor readings, or you can add some flair to your Zumo by showing eye-catching graphics.

We’ve updated our Arduino library for the Zumo 32U4 to add OLED display support as well as an LCD compatibility layer (the same way we did for the 3pi+), letting you easily convert existing programs to run on the OLED version or write new programs that will work on both old and new robots.

As with the LCD version, the new Zumo 32U4 OLED robot is available as a kit (with motors not included so you can select your own to customize performance) or as a fully assembled robot with your choice of 50:1, 75:1, or 100:1 motor options

Assembled Zumo 32U4 robot.

Assembled Zumo 32U4 OLED robot.

New products: DRV8256E/P motor driver carriers

via Pololu Blog

We’re pleased to announce our inaugural products based on the DRV8256E and DRV8256P motor drivers from Texas Instruments, which we are especially excited about. These little carrier boards can deliver a continuous 1.9 A to a single brushed DC motor at voltages from 4.5 V to 48 V, so they have some of the broadest operating ranges of any of our drivers, and they can handle short bursts of considerably higher current (up to 6.4 A for less than a second). They also feature configurable active current limiting, which can help make them good choices for a motor that might only draw around an amp when running but much more when starting.

The DRV8256E and DRV8256P are very similar, and we use the same printed circuit board for both chips, but their control interfaces are different. The E version provides a phase/enable interface that lets you control a motor with a single PWM speed signal along with a simple digital direction signal, while the P version provides an IN/IN interface that gives you direct control over the motor outputs but requires two PWM signals for bidirectional speed control.

However, there is also a tradeoff with these two ICs. The DRV8256P uses drive/brake operation, shorting the motor outputs together and electrically braking the motor during the off portion. Many other TI drivers with phase/enable interfaces (like the DRV8838) also use drive/brake, but the DRV8256E does not: it operates in drive/coast mode, where the motor outputs are high impedance during the off portion of the PWM cycle, allowing the motors to coast. We don’t know why TI made a different decision for the DRV8256E, but it seems likely they have some high-volume customers who prefer it this way.

In our experience, drive/brake mode provides a much more linear relationship between PWM duty cycle and motor speed, so for an application where that is important, you might choose to accept the need for an additional PWM signal to get that improved linearity. These graphs show the difference in one specific scenario (powering a high-power micro metal gearmotor with no load):

However, graphing the relationship between duty cycle and the current drawn by the motor driver from the supply reveals some more interesting differences. Specifically, at lower PWM frequencies, drive/brake operation uses much more current at intermediate duty cycles as the motor current ramps up and down for each PWM cycle:

Finally, graphing current draw against motor speed shows that drive/coast can be more efficient for a given speed compared to drive/brake. So for an application with closed-loop speed control where it’s not as important for duty cycle to correspond linearly with speed, using drive/coast might be preferable if the PWM frequency is low.

If you have any thoughts about drive/brake vs. drive/coast and their use in different applications, we would be interested in hearing about it.

For more information about these drivers, see their product pages:

New 3pi+ 32U4 OLED Robot with graphical display!

via Pololu Blog

We are very excited to announce that the 3pi+ 32U4 OLED Robot is now available! This is an updated version of the original 3pi+ 32U4 Robot that replaces the old LCD with a monochrome 128×64 OLED display, giving it the ability to display fancy high-contrast graphics while following a line course, navigating a maze, or doing whatever it is that you want this compact but versatile mobile platform to do.

3pi+ 32U4 Robot, rear view.

3pi+ 32U4 OLED Robot, rear view.

For more than 16 years, starting with some of our oldest products (from well before I joined Pololu), we have used HD44780-compatible alphanumeric liquid crystal displays on our robots and robot controllers. These LCDs have been around forever and are limited to displaying simple text on a fixed grid, but they are also ubiquitous: there are plenty of manufacturers still making displays that use the standard HD44780 interface.

Pololu Orangutan Robot Controller connected to an AVR ISP (serial version).

It’s unlikely that we would have much difficulty sourcing this kind of display any time soon (as long as the pandemic doesn’t mess things up too badly), so using them in our products has always been a safe option despite their graphical limitations. The original 3pi+ 32U4 that we released late last year was our most recent design to include LCD support.

Meanwhile, monochrome organic light-emitting diode (OLED) displays have become increasingly popular in electronics over the last decade or so, and it’s not hard to see why: you can draw graphics on them, they can fit more information on the screen, they’re easier to read in the dark, and they just plain look cooler. But even though you might be able to go to eBay or Amazon and order a cheap OLED display for your project when you want one, it’s critical that we find a dependable supplier for a component like this before we can start to design it into our products.

That is why the availability of the 1.3″ OLED module we announced recently was actually a pretty big deal for us: it means that we finally have a source that we can rely on for larger quantities of these displays. The 3pi+ 32U4 OLED is the first of what we hope will be many robots and control boards that make use of the graphical capabilities offered by an OLED screen.

Like the original 3pi+ 32U4, the newer OLED version is available with three different motor options, either fully assembled or as a kit:

3pi+ 32U4 OLED Version Products Micro Metal Gearmotor Top Speed Comments
Standard Edition assembled or kit 30:1 MP 6V 1.5 m/s good combination of speed and controllability
Turtle Edition assembled or kit 75:1 LP 6V 0.4 m/s longest battery life, easiest to control, good for swarm robots or introductory robotics courses
Hyper Edition assembled or kit 15:1 HPCB 6V ~4 m/s very fast and difficult to control, easy to damage; only recommended for advanced users

For anyone who wants to use different motors than the options above, the 3pi+ 32U4 OLED control board is likewise available separately and can be combined with a 3pi+ chassis and a pair of motors to build a custom robot.

We will be phasing out the original 3pi+ 32U4 robots and kits (they will remain available by special order), but that does not mean the old versions are suddenly obsolete or that you will have to learn an entirely new platform to use the new OLED version. Aside from the display interface, the hardware on the LCD and OLED versions is exactly the same, with features including encoders, line sensors, front bump sensors, and a full IMU (inertial measurement unit).

From a software perspective, it can actually be pretty challenging to work with graphics, especially on a small processor like the ATmega32U4. The simplicity of a text LCD can be an advantage in that you can essentially just ask it to do something like printing the letter “A” on the first column of the second row. On a graphical display, even if you just want to show some text, you have to define the shape of the letter in pixels; optionally composite that shape into a memory buffer; and then send the complete pixel data to the display. That means you have a lot more control over how that letter “A” is shown, but it takes a lot more work to do it.

To help get you started, we’ve developed an LCD compatibility layer as part of our Arduino library for the 3pi+ 32U4. This makes it easier to use the OLED screen for common display tasks, and it’s straightforward to write programs that will work on either version of the robot with minimal changes, since you can update an existing program to run on the OLED version by changing just a single line of code.

A 3pi+ 32U4 OLED and an original 3pi+ 32U4 running nearly identical programs and displaying the same text.

Additionally, the same library makes it trivial to get the benefit of a higher-density text area: you can easily “upgrade” from an 8×2 character grid to an 11×4 or 21×8 layout.

Higher-density text layouts on the displays of some 3pi+32U4 OLED robots.

We plan to continue improving our libraries to give you more options for efficiently working with both text and graphics on an OLED display; stay tuned for updates!

3pi+ 32U4 OLED Robot, front view.

3pi+ 32U4 OLED Robot, side view.

3pi+ 32U4 OLED Robot, rear view.

New product: 1.3" graphical OLED display

via Pololu Blog

We’re now selling an OLED display module that you can use to add some fancy graphics to your project! This monochrome OLED screen measures 1.3 inches diagonally and uses a common SH1106 driver that can be controlled via SPI communication. (For more information, see its product page.)

Graphical OLED Display: 128×64, 1.3", White, SPI, controlled by an A-Star 328PB Micro running at 3.3V.

With a 128×64 grid of individually-controllable, high-contrast pixels, this OLED display can show a lot more information (and looks a lot cooler) than simple text-only LCD screens. We’re working on something that can take advantage of these enhanced graphical capabilities, so keep an eye out for updates!

New longer-range Pololu distance sensors

via Pololu Blog

We released the first of our new Pololu distance sensors a few months ago, and now we’re releasing additional Pololu Digital Distance Sensors with longer ranges! These boards have the same form factor and pinout as both our old Sharp/Socle GP2Y0D8x carrier boards and the short-range Pololu distance sensors designed to replace those, but the new versions offer greatly increased detection and measurement ranges, opening up new possibilities in applications where longer-distance sensing capabilities are desired.

Comparison of a Pololu Carrier with Sharp GP2Y0D8x Digital Distance Sensor and two Pololu Digital Distance Sensors (irs16a and irs17a).

Like their shorter-range counterparts, these new Pololu distance sensors determine distance by using an integrated lidar module to measure the time of flight (ToF) of invisible, eye-safe infrared laser light. The new versions include four digital output versions, which simply indicate whether they detect an object within their respective range thresholds:

There are also two new versions with pulse width outputs, which encode a distance measurement in a pulsed signal:

(For more detail on how the different output types work, see the earlier announcement or the sensors’ product pages.)

This brings us up to ten different Pololu distance sensor options, as shown in these tables:

Digital output
(does not provide distance measurement)
Sensor Maximum
range1
Minimum
range
Minimum
update
rate
Jumper
settings
(4321)
PCB ID
#4050: Digital output, 5cm 5 cm < 5 mm 145 Hz 0000 irs16a
#4052: Digital output, 10cm 10 cm < 5 mm 115 Hz 0010
#4054: Digital output, 15cm 15 cm < 5 mm 95 Hz 0100
#4066: Digital output, 25cm 25 cm < 1 mm 100 Hz 0000 irs17a
#4067: Digital output, 50cm 50 cm < 1 mm 100 Hz 0001
#4069: Digital output, 100cm 100 cm < 1 mm 100 Hz 0011
#4077: Digital output, 200cm 200 cm < 1 mm 30 Hz 1011

Pulse width output
(provides distance measurement)
Sensor Maximum
range1
Minimum
range2
Resolution Minimum
update
rate
Jumper
settings
(4321)
PCB ID
#4064: Pulse width output, 50cm max ~50 cm 1 cm 3 mm 50 Hz 1110 irs16a
#4071: Pulse width output, 130cm max ~130 cm 4 cm 1 mm 100 Hz 0101 irs17a
#4079: Pulse width output, 300cm max ~300 cm 4 cm 2 mm 30 Hz 1101

1 Effective range depends on object reflectivity and ambient lighting conditions.
2 Objects closer than the minimum distance can still be detected, but the measured distance might be inaccurate. The minimum detection range is < 5 mm for irs16a boards and < 1 mm for irs17a boards.

We’ve also just published comprehensive information about all the possible jumper settings for these sensor boards on their respective product pages. By changing the jumper connections, you can make a sensor act like a different version or even select another configuration that isn’t available as a standard product. (And if you have a special volume requirement, we can manufacture a custom batch of sensors for you; please contact us for more information.)

Once again, we are offering an extra introductory special discount on these sensors, to help share in our celebration of releasing new products. The first hundred customers to use coupon code DISTSENSORS can get up to three units of each type (including the shorter-ranged versions released earlier) for just $9.95 each!

New Pololu distance sensors with digital and pulse width outputs

via Pololu Blog

In many applications ranging from robotics to industrial automation, it is useful to quickly detect the presence of objects within a certain distance. Our carrier boards for the Sharp/Socle GP2Y0D8x digital distance sensors have been popular in this role, but those sensors are unfortunately no longer being produced and are becoming hard to find. So we are excited to announce the release of our next-generation lidar-based Pololu Digital Distance Sensors, which can replace the discontinued Sharp sensors and more!

Comparison of a Pololu Carrier with Sharp GP2Y0D8x Digital Distance Sensor and a Pololu Digital Distance Sensor (5cm, 10cm, or 15cm).

Comparison of a Pololu Carrier with Sharp GP2Y0D8x Digital Distance Sensor and a Pololu Digital Distance Sensor (5cm, 10cm, or 15cm).

These new sensors use an on-board rangefinder module to determine distance by measuring the time of flight (ToF) of invisible, eye-safe infrared laser light. They are available in three different digital output versions with the same range thresholds as the GP2Y0D8x series:

We also have one additional option for more advanced applications:

(More on that version below.)

A camera with no IR filter shows the infrared light emitted by a Pololu Digital Distance Sensor.

The Pololu Digital Distance Sensors work like the Sharp sensors: they operate with either a 3.3 V or 5 V supply and output a simple digital signal, which is low if an object is detected within the specified range, high otherwise. They have the same indicator LED, pinout, and form factor as our GP2Y0D8x carrier boards (but are much thinner than the Sharp sensors), allowing them to be drop-in replacements in most applications.

The pulse width output version looks almost identical to its digital output counterparts, but instead of simply indicating the presence or absence of an object, it outputs a pulsed signal (similar to a hobby servo control signal) that encodes the distance it is measuring in the length of each high pulse. By timing these pulses, you can get quantitative range readings for targets up to half a meter away (depending on reflectance and environmental conditions).

The four numbered surface-mount jumpers on these sensors’ printed circuit boards, near the mounting hole on the front side, determine the sensor’s operating mode. You can change the jumper connections yourself to customize its behavior and even effectively convert the sensor into a different version (more information on the jumper settings will be available soon). And since we assemble and program these boards here in our Las Vegas facility, we can produce a custom-configured batch of sensors for you. If you are interested in manufacturing customization, please contact us for more information.

We are back to offering an introductory special discount on new products, to help share in our celebration of releasing these Pololu distance sensors. The first hundred customers to use coupon code DISTSENSORS can get up to three units of each type for just $7.87 each!