# Pololu Blog

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.

# Our Black Friday/Cyber Monday Sale has started!

Posted by Emily on 22 November 2022

Our Black Friday / Cyber Monday sale is back! Visit the sale page to see all the available deals and add the necessary coupons to your cart. The sale runs through Monday, November 28, and most of the sale coupons can be used on backorders if we happen to run out of stock, but you should still get your orders as soon as possible since production of many items is limited by the global parts shortages, and lead times to make more can be long.

Please note that during the sale, our order fulfillment times might be longer than usual, but we will do our best to get your order shipped as fast as we can. Additionally, we are closed Thursday, November 24 for Thanksgiving. Happy Thanksgiving!

# October 2022: still waiting for parts…

Posted by Jan on 15 October 2022

Wow, it’s been almost a year since my last update about how Pololu has been impacted by the global supply chain disruptions and chip shortages. And unfortunately, not much has improved. In today’s post, I will cover a few representative component stock histories and then go over other areas of our business that have been impacted and what we are doing to get through this situation.

### Some parts on order since 2020 still have not shipped

In the case of one important part I mentioned last year, we are still waiting for an order placed in late 2020 without having received anything since a partial shipment in March 2021! Here is what our internal stock chart looks like for that component:

When I wrote about this component in November of 2021, we still had 461 units in stock, and the manufacturer was giving me specific updates about where we were in line and how I could expect parts by Q1 2022 or maybe even by the end of 2021. Well, we are now getting close to the end of 2022, and they are not even giving me updates anymore on when I can expect these parts that I ordered in 2020! We have gone almost a year without being able to make or sell the products that use that chip.

### Some parts arrived in 2021 and early 2022, but we are out again

That first example of still waiting for an order from 2020 is not typical. Unfortunately, we are seeing more and more of this pattern:

This is a component we ran out of over the summer of 2021, but we received some shipments in August of that year, and then more in early February of this year. But since then, nothing, and we are about to run out again despite our attempts to carefully ration the parts. It’s been over 14 months since I placed my oldest unfilled order for these parts, and the current expected ship date is February 2023.

### Shifting demand clears out stock of alternative components

Another pattern we are seeing more of looks like this:

Here, we were in a pretty good stock situation at the beginning of the year on a component we didn’t use that many of. However, as we raised prices on other products or ran out of stock completely, our customers moved to some of our recommended alternatives and cleared us out of those, and hence the sudden dropoff of those parts in April of this year. The additional problem with components like these is that we did not have as many on order because our historical usage was not that high, so it might take an extra long time to get that back to decent stock levels.

### New “supply outlook” feature

We commonly use the same components in several different products. One of the main ways we are dealing with the shortages is to substantially reduce our inventory of completed products so that we can be sure the components we do have are going toward products that are getting sold immediately.

One big downside of reduced ready-to-sell inventory is that it’s difficult for customers to tell what is really, really unavailable because we’ve been out of parts for a year and what is actually available as soon as we make some more. To give you some automated guidance, we introduced a “supply outlook” feature to our website. Here is how that looks at the moment:

The calculations of what we can make are quite complicated given that we have thousands of different components going into thousands of different products, and the products (and the associated inventory) can be in various stages of production. Components stop being available once they are soldered onto a board, but that board might still go through many more processing steps before being ready and available for sale. The in stock and “in final production stages” quantities should be spot on, but we variously round down the “enough components” estimate to keep it conservative. The numbers can be outdated quickly since we are selling and making products all the time, but we regenerate those numbers several times a day to be as up-to-date as possible.

The supply outlook feature does not factor in components we have on order, though this year has proven that would be almost useless anyway (I’m not sure if I prefer the suppliers who give me no estimate of a ship date or those who have been saying “next week” for months). On our to-do list is to get more manual/human notes so that we can have updates like, “we are estimated to receive components in March 2024”.

I wish that last line was exaggeration. Unfortunately, I am getting more and more order confirmations with lead times of well over a year and estimated ship dates in late 2024. For parts I ordered early this year, we are approaching three-year lead time estimates for components.

### Supply chain issues impact other aspects of business

Although the chip shortages are the most nerve-wracking aspect of the current environment, other aspects of our business are also affected by the supply chain problems, and it’s getting more and more uncomfortable.

• Waiting more than 9 months for commercial air conditioners - One literal example is the air conditioners in our building. We have over fifty of them, and dozens of them are over twenty years old, meaning they are inefficient and reaching the end of their useful lives. We have had several on order since the beginning of the year, and at this point we are hoping that maybe they will arrive by the end of this year. Fortunately, we made it through the summer, but several units did die recently, and it’s not clear that we can even have them replaced by next summer.

• Waiting more than 6 months for window film - We started applying special solar-blocking films to our windows to help reduce the energy use by the ACs. That project started in late spring, and although part of it got done over the summer, most of it has been delayed by at least six months waiting for more of the film to get manufactured.

• 6-12 month lead time on compressors and nitrogen generators - We ordered a nitrogen-generation system earlier this year, and lead times on that are in the ballpark of a year as well. There are several components to the system and we get billed for them as they arrive, so I don’t think the manufacturer is holding back on any of them while waiting for the others. One component is a fairly standard (though nice) air compressor that I am expecting to use for the rest of manufacturing as our existing ones are getting kind of old. It’s scary to think some of our production or equipment could be out of commission for a year waiting for machines or components that normally are available within a few weeks.

### Outlook

We have been very fortunate at Pololu because we have a broad range of products and do our own design and production, so we have been able to adjust what we make based on what components are available. I don’t understand how more small manufacturers are not going out of business, though I am anecdotally starting to hear more about companies facing financial difficulties. Contract manufacturers in particular have it tough when they have to pay for the components they can get while waiting forever for the last few components and not getting paid until they can complete the final product.

My main hope is that just as we could not see how bad the shortages would be, we cannot see how close we are to the end. If it took two years to get a part that shipped today, it might be reasonable to estimate it will take two years to get a part we order now, or even to tack on an extra year for good measure, but eventually things will be better. I expect inventories everywhere are building up (ours are, just not of the last few critical parts!), and the coming global recession that seems to be forecasted from all sides (e.g. by the IPC) could accelerate chip manufacturers finally catching up to the extra demand from the last few years.

Since we are a small business, broader economic downturns can sometimes work in our favor. Our customer base is such a tiny portion of the world, and some of them could do well even if on average the global economy does not. If the slowdown leads to parts we need becoming available sooner, that might overall be better for us. Some of our best supplier relationships came out of the 2008 downturn, when companies started caring about our business after losing some of their bigger customers. We also got a good deal on renting part of the building we are in after it sat vacant for a couple of years, and that served us especially well as we gradually expanded to the whole building over the past ten years.

It’s unsettling that after two years of parts shortages, it does not seem to be getting any better. The situation might even be worse than it was a year ago, but we won’t really know until we are out of it and things are actually good again. I know it has been difficult for our customers, especially those who built our products into their own products or curricula and are counting on us to keep their operations moving. Please know that we are working very hard to keep our stock and production levels up with the minimal possible disruptions, and thank you very much for your continued business and support.

# New products: DRV8434A and DRV8434S stepper motor driver carriers

Posted by Claire on 10 October 2022
Tags: new products

Our selection of compact stepper motor driver carriers is expanding with the addition of three new boards based on the DRV8434A and DRV8434S from Texas Instruments. They feature stall detection, adjustable current limiting, over-current and over-temperature protection, and 11 microstep resolutions (down to 1/256-step). They operate from 4.5 V to 48 V and can deliver approximately 1.2 A continuous per phase without a heat sink (up to 2 A peak). The DRV8434A version uses a standard GPIO interface for configuring microstepping and stall detection and a potentiometer for setting the current limit, while the DRV8434S versions use SPI to configure microstepping, stall detection, decay modes, and the effective current limit.

Two DRV8434S carrier versions are available, one with a potentiometer for adjusting the maximum current limit and one with the maximum current limit fixed at 2 A; on both of these, the actual current limit can be scaled down to some percentage of the set maximum through SPI. There are 16 evenly spaced scale settings available, which corresponds to increments of 125 mA on the version with the fixed 2 A maximum. For lower-current applications that would benefit from finer current limit resolution, we recommend the version with the potentiometer. For example, if you set the maximum to 500 mA with the pot, you can then use SPI to scale the current limit down from there in increments of 31 mA.

All carriers are available with and without header pins soldered. The following table compares the key differences among the three versions:

DRV8434A DRV8434S(Potentiometer forMax. Current Limit) DRV8434S(2A Max. CurrentLimit) I/O pins SPI STEP and DIR pins STEP and DIR pins or SPI through GPIO through SPI Potentiometersetting (0–2 A) Potentiometer settingfor max. (0–2 A),scaled with SPIsetting (%) 2 A fixed max.,scaled with SPIsetting (%) 1 8

One of the most exciting features of these new chips is their integrated stall detection. We make carriers for a few other stepper motor drivers that provide back EMF outputs, such as the AMIS-30543 and High-Power Stepper Motor Driver 36v4, but processing those signals for stall detection is complex. On the DRV8434A and DRV8434S, the back EMF processing is integrated into the chip and a learning mode is provided to make stall detection simpler and more accessible. Even so, these drivers’ stall detection functionality might not work well in every application, and we have some notes on the product pages with tips on getting it to work (such as using hardware PWM to generate a steady step signal).

The DRV8434A carrier was designed to be as similar to our popular A4988 and DRV8825 stepper motor driver carriers as possible, and it can be used as a drop-in replacement for these in many applications because it shares the same size, pinout, and general control interface. The DRV8434A always operates with a decay mode that TI calls “smart tune ripple control”, which tries to minimize the ripple current through the motor coils for smoother stepping and reduced audible noise in many cases. If additional flexibility is required, the DRV8434S offers a choice of eight decay modes, configurable through SPI; these include slow, mixed, and fast decay as well as the more advanced smart tune dynamic decay and smart tune ripple control modes.

TI also makes a DRV8434 (with no letter A or S at the end) in the same family of drivers. This version doesn’t have the stall detection feature or SPI, but it gives you the same choice of eight decay modes that the DRV8434S does. Why don’t we have a carrier board for the DRV8434 then? Well, we do have the boards, but with the extra long lead times right now, it could still be a while before we have the chips. (These are parts we ordered in June 2021, so more than 16 months ago now!)

Our DRV8434A carrier’s printed circuit board is designed to work with the DRV8434 too, and that’s why some of the pins are labeled with two names on the silkscreen. So, for those of you interested in a DRV8434 carrier, those will be coming some day!

# New product: LSM6DSO 3D Accelerometer and Gyro Carrier

Posted by Kevin on 9 September 2022
Tags: new products

We’ve just released a new LSM6DSO 3D Accelerometer and Gyro Carrier! ST’s LSM6DSO is a combination of a 3-axis accelerometer and 3-axis gyroscope into a single chip, offering acceleration and rotation rate readings in the ranges of ±2 g to ±16 g and ±125°/s to ±2000°/s through I²C or SPI. This board is mostly an update of our older LSM6DS33 carrier that had most of the same capabilities, although the LSM6DSO features a number of improvements over its predecessor, like lower noise, a higher maximum output data rate for the gyro, and the option to use MIPI I3C (a communication standard intended as an advanced, but backward-compatible, replacement for I²C).

The LSM6DSO additionally supports operation in specialized modes with a secondary interface, allowing it to act as a master (sensor hub) on a second I²C bus or provide an auxiliary SPI slave interface that is useful for image stabilization applications. We’ve increased the width of the carrier board to 0.5″ to bring out those secondary interface pins and let it plug into a breadboard nicely:

Other than the extra pins and the different mounting holes, our LSM6DSO board is pretty much a drop-in replacement for the LSM6DS33 board. We’ve updated our LSM6 Arduino library to support the new chip too, so any code that was written for the LSM6DS33 can probably be modified to work with an LSM6DSO without too much trouble.

# New products: Motoron dual high-power motor controllers

Posted by Kevin on 9 August 2022

We’ve expanded our Motoron series of motor controllers with some dual high-power motor controllers: the Motoron M2S family for Arduino and Motoron M2H family for Raspberry Pi! These new Motorons have the same I²C interface as the M3S256 and M3H256, and though they only have two channels instead of the three on their smaller counterparts, they can drive much more powerful motors with up to 20 A of current at 30 V or 16 A at 40 V. There are four combinations of voltage and current ranges, available in versions designed to work as Arduino shields and as Raspberry Pi expansions.

These eight additions bring the Motoron family up to a total of ten members overall:

Motoron Motor Controllers

M3S256

M3H256

M2S24v14

M2H24v14

M2S24v16

M2H24v16

M2S18v18

M2H18v18

M2S18v20

M2H18v20
Motor channels: triple (3) dual (2)
Max
input voltage:
48 V 40 V1 30 V1
Max nominal
battery voltage:
36 V 28 V 18 V
Max continuous
current per channel:
2 A 14 A 16 A 18 A 20 A
Available versions
for Arduino:
M3S256 M2S24v14 M2S24v16 M2S18v18 M2S18v20
Available versions
for Raspberry Pi:
M3H256 M2H24v14 M2H24v16 M2H18v18 M2H18v20
1 Absolute maximum.

As with the smaller Motorons, the high-power versions can also be stacked and their addresses configured to allow many motors to be controlled with only one I²C bus. For a stack of M2S boards on an Arduino, we recommend soldering thick wires to the kit or board-only version because 5mm terminal blocks are tall enough that they would cause short circuits within the stack. However, the M2H boards can be set up to stack safely by trimming the terminal block leads and adding extra nuts to the standoffs for additional spacing.

It’s also possible to stack different kinds of Motoron controllers so you can control different kinds of motors:

Unfortunately, the current state of the electronics supply chain is affecting how we’re making and selling these Motorons. In the past, when we released boards in multiple versions that have different MOSFET footprints, it was primarily to get us different power levels. Typically, we would make a less expensive one with smaller, lower-power MOSFETs and a more expensive one with bigger, higher-power MOSFETs. While we’re still doing this kind of thing with the M2S and M2H Motorons (the 24v14 and 18v18 use smaller MOSFETs and the 24v16 and 18v20 use bigger ones), in this case, it’s largely about maximizing parts options.

When we don’t know how many months (or years!) it will take for us to get more of a MOSFET, it’s hard to offer a product line where each model is totally dependent on one specific part. So we’ve chosen to make the different Motoron versions less distinct; the specified performance and prices are not as different between the small- and big-MOSFET versions since we want them to be viewed more interchangeably. Their performance specifications are also a little on the conservative side to give us more room to use different MOSFETs.

Even with those considerations, we still haven’t been able to get the parts to make as many of these new high-power Motorons as we want to. That’s why they are listed with a “Rationed” status in our store, with lower stock and higher pricing than we’d like. But we hope that as parts availability improves, we will eventually be able to ease up on those restrictions.

In fact, that just happened with the smaller M3S256 and M3H256: we received some long-awaited critical components that will let us make a lot more of those, so you should see more in stock soon, and we’ve already removed their Rationed status and lowered their prices!

# New product: Motoron M3H256 Triple Motor Controller for Raspberry Pi

Posted by Kevin on 24 May 2022

Our Motoron M3H256 Triple Motor Controller for Raspberry Pi is now available! The M3H256 is a stackable I²C motor controller that can drive up to three brushed DC motors bidirectionally at voltages between 4.5 V and 48 V and continuous currents up to 2 A per channel. Unlike its M3S256 sibling, which is designed as a shield for an Arduino, the Motoron M3H256 is intended to stack on top of a Raspberry Pi (Model B+ or newer), similar to a HAT (Hardware Attached on Top). With an I²C address that can be configured uniquely for each board, a stack of Motorons let you control many motors at once without taking up lots of GPIO pins and PWM outputs from the Pi.

If you decide not to plug it into a Raspberry Pi, the Motoron M3H256 can also be used in a breadboard or another custom setup with your own wiring:

The Motoron M3H256 is available in three different configurations similar to its Arduino shield counterpart: you can get one fully assembled with stackable headers and terminal blocks already soldered, a kit that lets you pick which of the included connectors to solder in yourself, or the board alone if you already have or don’t need connectors and standoffs.

And to help you get started using the Motoron with a Raspberry Pi, we have a Python library you can use to configure the M3H256 and send it commands:

import motoron

# Clear reset flags to allow Motorons to run
mc1.clear_reset_flag()
mc2.clear_reset_flag()

# Set up acceleration limits for Motoron #1
mc1.set_max_acceleration(1, 200)
mc1.set_max_acceleration(2, 200)

# Set up acceleration and deceleration limits for Motoron #2
mc2.set_max_acceleration(1, 75)
mc2.set_max_deceleration(1, 250)
mc2.set_max_acceleration(2, 80)
mc2.set_max_deceleration(2, 300)
mc2.set_max_acceleration(3, 75)
mc2.set_max_deceleration(3, 250)

# Drive the motors

mc1.set_speed(1, -100)
mc1.set_speed(2, 100)

mc2.set_speed(1, 300)
mc2.set_speed(2, 200)
mc2.set_speed(3, 50)

We’re sure there are plenty of applications where the convenience and scalability of Motorons will be useful. What kind of projects can you think of that would make good use of one (or several)?

# New product: VL53L5CX Time-of-Flight 8×8-Zone Distance Sensor Carrier

Posted by Kevin on 16 May 2022
Tags: new products

I’m excited to announce the release of our new VL53L5CX Time-of-Flight 8×8-Zone Distance Sensor Carrier! Over the past several years, STMicroelectronics has introduced a number of FlightSense distance sensors, starting with the VL6180X, that use time-of-flight (TOF) measurements of infrared laser light to measure distances. Each new sensor has been more capable than the last (usually offering an increased range), but the VL53L5CX is more than just another incremental upgrade. What makes the VL53L5CX really special is its ability to take readings of multiple targets across a grid of multiple zones, allowing you to generate a depth map with up to 8×8 resolution and 4 m range.

Compared to sensors that only give a 1D measurement, the VL53L5CX does demand more from a microcontroller to support its operation as a 3D lidar. Initializing the sensor through I²C and processing its data requires a lot of RAM and program memory, so it is not practical to use the VL53L5CX with most 8-bit MCUs like the Arduino Uno. (The same was true for the VL53L3CX, which shares the VL53L5CX’s multi-target capability but does not have multi-zone capability.) We found that the Raspberry Pi Pico’s RP2040 microcontroller worked well for interfacing with the VL53L5CX, and other similarly powerful 32-bit controllers like an ESP32 should also work.

It’s fun to compare our VL53L5CX carrier with our other ST time-of-flight sensor boards because even though the boards are the same size (and pin-compatible), the VL53L5CX component itself is significantly bigger than its predecessors. We also switched from using 0603-size surface-mount resistors (0.06″ × 0.03″, or 1.5 mm × 0.8 mm) to 0402-size parts (1 mm × 0.5 mm) to help everything fit in the same form factor, and that makes for even more contrast with the large IC. As we refine our manufacturing abilities to let us work with more challenging parts like these, it’s nice to have more options for making things even more compact. (When can we try some 0201 parts?)

# New products: DRV8874 and DRV8876 motor driver carriers

Posted by Kevin on 19 April 2022
Tags: new products

We’ve expanded our selection of motor drivers again with the release of some compact carrier boards for TI’s DRV8874 and DRV8876 motor drivers, which feature current sense feedback and adjustable current limiting. These three ICs and their boards are all very similar, differing mainly by the amount of current they can handle: in a TSSOP chip package, the DRV8874 delivers up to 2.1 A continuous on our carrier board and the DRV8876 does 1.3 A. The DRV8876 chip is also available in a smaller QFN package, so for a lower-current and lower-cost option, our DRV8876 (QFN) carrier can deliver 1.1 A continuously. All three versions can drive a single brushed DC motor at voltages from 4.5 V to 37 V.

The DRV8874 and DRV8876 drivers offer a choice of control modes that includes phase/enable (PH/EN) and direct PWM (IN/IN) as well as independent half-bridge control, which lets you drive two motors unidirectionally. With their wide operating voltage range and current sense/current limiting added in, this combination of capabilities results in some unusually versatile motor driver boards, especially considering their small size. (But if you need something that works with even higher voltages, consider our similar DRV8256E and DRV8256P carrier boards too, though those don’t provide current sense feedback.)

Comparison of the DRV8874, DRV8876, and DRV8256 motor driver carriers

DRV8876 (QFN)

DRV8876

DRV8874

DRV8256E
DRV8256P
Motor channels: one
Min. operating voltage: 4.5 V
Max. operating voltage: 37 V 48 V
Max. continuous current(1): 1.1 A 1.3 A 2.1 A 1.9 A
Peak current: 3.5 A 6 A 6.4 A
Current sense feedback? 2500 mV/A 1100 mV/A none
Size: 0.6″ × 0.7″ 0.6″ × 0.6″
1-piece price: $5.95$6.95 $9.95$12.95 (E)
\$12.95 (P)
1 On Pololu carrier board, at room temperature and without additional cooling.

# Taking control of a typosquatting domain with a UDRP case

Posted by Paul on 7 April 2022

Have you ever mistyped our website as “polulu.com”? (It’s a common mistake.) Until recently, you would have ended up on the page shown above, full of ads and offers to buy the domain. Even worse, emails misaddressed to polulu.com would disappear without any notification, and the domain owner could easily have used it in phishing scams against our customers. We have been working on tightening up our domain security to fight this kind of abuse, and polulu.com was an obvious problem we needed to solve.

This post describes how we obtained polulu.com under the Uniform Domain-Name Dispute-Resolution Policy (UDRP). While the UDRP is supposed to be an efficient and accessible process, I could not find any clear step-by-step guides online, so I’m posting our experience both to help others and get feedback about what we could have done better. Continued…

# New product: Motoron M3S256 Triple Motor Controller Shield

Posted by Kevin on 31 March 2022

We’re excited to announce the launch of our new Motoron M3S256 Triple Motor Controller Shield! This I²C motor controller is designed to plug into an Arduino or Arduino-compatible board and control up to three bidirectional brushed DC motors at voltages from 4.5 V to 48 V with continuous currents of up to 2 A per channel. However, what really sets the Motoron apart from our other motor shields is that you can easily stack multiple boards to control even more motors at once!

Unlike basic motor driver shields that are best for driving just a few channels using the Arduino’s hardware PWM outputs, the Motoron M3S256 has its own on-board microcontroller with an I²C interface, letting you communicate with a stack of many controllers using only two I/O lines. Each Motoron can be configured to have a unique I²C target address, ensuring that every shield can be addressed individually and every motor can be controlled independently. For synchronized motion, you can even signal all the motors on several controllers to change speed at the same time with a single I²C command.

We provide an Arduino library for the Motoron that makes it easy to send it commands and configure its many settings, including motion parameters and error handling options. Working with multiple Motoron controllers is as simple as calling a few functions once you have set up their I²C addresses:

// Set up acceleration and deceleration limits for Motoron #1
mc1.setMaxAcceleration(1, 80);
mc1.setMaxDeceleration(1, 300);
mc1.setMaxAcceleration(3, 50);

// Set up acceleration and deceleration limits for Motoron #2
mc2.setMaxAcceleration(2, 50);
mc2.setMaxDeceleration(2, 200);

// Drive the motors

mc1.setSpeed(1, -800);
mc1.setSpeed(2, 100);
mc1.setSpeed(3, -100);

mc2.setSpeed(1, -400);
mc2.setSpeed(2, 50);
mc2.setSpeed(3, 300);

Alternatively, if you are not using a microcontroller board with the standard Arduino form factor, it is almost as easy to use the Motoron on a breadboard.

The Motoron M3S256 is available in three versions with different connector options:

You might wonder why the assembled version comes with 3.5mm-pitch terminal blocks soldered in when the through-holes are spaced 5 mm apart. The answer is that the smaller 3.5 mm terminal blocks allow for more clearance when the shields are stacked, reducing the risk of shorting them to each other, but we still designed the board with bigger holes and wider spacing for maximum flexibility.

For more information about the Motoron M3S256, see the product pages and the comprehensive user’s guide. We have plans to expand the Motoron family with more versions including Raspberry Pi-compatible form factors and higher-power models, so expect more announcements soon!

(702) 262-6648
Same-day shipping, worldwide