Pololu Blog (Page 2)
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.
Nearly two years of operations under the COVID-19 pandemic are behind us. Like many other businesses around the world, our biggest challenges have moved from direct health and safety concerns to secondary disruptions, most notably the supply chain issues and the global chip shortage that has been making news and shutting down factories since last year. Initially, we were relatively isolated from the shortages because we had maintained a high inventory, often stocking a year or more of critical components. However, as the disruptions dragged on, our reserves were depleted, and we have had to resort to increasingly drastic measures to keep operating at all.
I apologize to our customers who are frustrated by our worsening response times, price increases, and unavailability of products. I hope showing you some of what we are dealing with will make it easier to understand.
Here is a screenshot from our internal system showing the inventory history of a relatively unremarkable component (a small MOSFET) that we have been using for almost ten years now:
Inventory history for a component with shortages in 2021.
The stock history is representative for a typical component that we gradually put into more product designs so that the rate of usage keeps increasing and the amount of stock we keep on hand gradually increases, too. Usage of this part ramped up in 2018, to around 35 thousand pieces per year. We last received some shipments in mid-2020 that put us in a seemingly-secure place, but the situation became less comfortable as we got into 2021, and the past several months have been downright alarming since we might only have enough parts for two more months, while the estimated shipment dates for my orders are well into 2022. And this is with us putting the brakes on parts usage!
Slowing down component consumption is really not fun since our main options are just not making any of a product at all (sometimes we are forced into that option anyway once we run out of parts) or raising prices. Higher prices can make it confusing for customers to select among alternatives since we expect the more expensive product to generally be the better one. To help communicate that some products’ prices and availability are temporarily distorted, we added several rationing-related entries to our list of product status designations. You can see the status of each product along with stock and pricing information:
We initially focused on reducing volume discounts, and building the rationing designations into our system let us automatically exclude rationed items from sales and other special promotions. It has been almost six months since we started officially designating products as rationed, and unfortunately, what we expected to be a temporary measure for a few select items has gradually affected more and more products as component shipments keep getting delayed.
Here is the inventory history for another component, a more expensive and specialized part than the previous one:
10-year inventory history for a component being rationed in 2021.
There were already some supply issues with the part in 2017 that led us to keep slightly higher inventory of that component, and you can see the change in the pattern as we ramped up our rationing efforts. We buy the part on reels of 1,000 pieces, so the upward jumps in the graph are multiples of a thousand, and we used to use up fairly high quantities in each manufacturing run, so the downward jumps were fairly sizable, too. For instance, we might make five hundred of a product at a time and just put it all in stock on the website and not make more for a couple of months. Starting in the second quarter of this year, you can see how the inventory graph is a lot smoother as we made much smaller production runs to preserve flexibility in which products to use the components.
This strategy does help us maximize the usage of the parts we have on hand, but it comes with many costs. Production is less efficient since the machine setup is the same whether we are making twenty units of a product or a thousand units. We also have much more internal scrutinizing, planning, and checking of which products to make since accidentally making the wrong product is a much bigger problem than it used to be—it could now mean prolonged inability to make a different, otherwise unrelated product. It’s also more difficult on customers who do want to buy in bigger volumes since we used to have more stock available on our website, and customers could just order. Now, when we show 29 of a motor controller in stock and a customer needs 50, they have to talk to us about how soon we can make the additional 21. This also strains our support staff resources and reduces the service quality for all customers. And the sad thing is that we are doing a lot more work to produce and sell fewer products.
What inventory do we do have?
You might be surprised to hear that our total inventory is actually at an all-time high. And apparently, that is fairly common, even among the biggest companies, including the main electronics distributors. When I was talking to my Arrow Electronics rep last month, he said his warehouse is full. I asked of what, and he said he didn’t know, but apparently not the parts he needs.
I spend a lot of time trying to understand what we do have. We have thousands of unique components, and on average we have thousands of each one, so we have many millions of components to keep track of. Most products use many different components, and most components get used in many different products. If we are missing one part out of fifty to make a product, we can’t make the product. And usage rates for the same component are different in different products; what are we supposed to do when we have five thousand left of a component that we use in a $5 product that used to sell thousands of units a month and in a $100 product that sells hundreds of units a month, and the earliest estimated delivery of more components is eight months out? So far, we have mostly raised the prices on the $5 product, sometimes very substantially, while not changing the price on the $100 product, and that lets us keep some finished products available to offer.
There are more and more components that have been on order for over a year now, and meanwhile estimated ship dates for new orders are well into 2023 (not 2022!). It’s a scary time to be an electronics manufacturer.
Other cost increases
As I mentioned, we are going through a lot more effort to make fewer completed products, and that contributes to increased costs and higher prices independent of what we are doing with rationing. On top of that, prices for most of the components we have been using for a long time have risen substantially, even as our order volumes increase. Most increases have been in the 10% to 20% range, but several are 50% or more.
Then there are parts that we now buy in smaller quantities from catalog distributors like Digi-Key and Mouser (when we find stock there), and those prices can be several times higher. Some parts I bought a year ago for twelve cents each in quantities of fifty thousand are now costing 25 cents each in those bigger volumes, and if I order just a few hundred or a few thousand, they can cost a dollar each. If we just need one of those on a product we sell for $100, it’s not that big of a deal, but if there are three of those components on a product that used to cost $5, the price is going to have to go up, sometimes dramatically.
Non-electronics component and material costs are also going up, though those have generally been in the more modest 5% to 20% range, but shipping costs are up a lot, so that disproportionately affects heavier and bulkier items. We have had to reprice some of our stepper motors primarily because of the shipping costs to get them here, while we have thus far been able to avoid raising costs on our micro metal gearmotors (though volume discounts are smaller than they used to be). Most of our products involve at least some processing in the US, but we are able to ship some items directly from our China warehouse to other countries to reduce the impact of shipping costs and the tariffs on many products coming into the US from China.
Broader problems and delays
The broader supply chain issues are a problem, too, even though it’s not as bad as with the chip shortages. Most of our mechanical parts, from injection molded plastic parts to motors and servos, come from China, and we are more directly involved in getting them shipped here (unlike the electronics parts, which are also mostly made overseas but which we buy from American distributors who deal with getting the parts into the US). Fortunately, most of our components are small and light so we ship a lot by air anyway, but we do ship heavier and bulkier items by boat and have had our share of days looking at all the ships waiting off the coast of California and wondering when ours would finally get to dock. It seems like regular delays by various carriers like FedEx and UPS are also getting worse, and we have now had at least a couple of instances where really important parts we were waiting months for made it to the US or even to Nevada and then got lost.
I have been writing mostly about components and how it affects electronics we manufacture, which is most of our business, but the other small manufacturers whose products we resell are in the same environment, and so we are seeing price increases and extended unavailability of products from them, too.
Delivery delays and other problems are affecting our shipments to our customers, too. Unfortunately, we are again mostly at the mercy of the large shipping companies and the general situation that has led to reduced service levels around the world. Many of the providers have suspended guarantees of delivery times or extended the times they say delivery will take. We have recently added UPS to our standard shipping offerings during checkout, so our customers at least have some more options in case one service is particularly bad in their area.
When will it get better?
As I wrote a few years ago, we buy our electronics components through major authorized distributors, and we have so far not had to resort to going to secondary sellers and brokers (with the associated risks of ending up with counterfeit parts). From my talking to manufacturers’ representatives, my impression is that the semiconductor companies are just genuinely facing a combination of increased demand and reduced capacity as the pandemic interfered with their operations that are spread throughout the world. For example, ST was telling me about one motor driver that gets the silicon processed in Italy, then tested (still in silicon wafer form) in Singapore, and then chopped up and packaged in Malaysia. In this one instance, the silicon is done, and as operations resume in Malaysia, they should be able to get me some of the parts by the end of the year. But for other parts from the same company, such as microcontrollers, they don’t even have enough allocated to my general western North America region to meaningfully talk about where in the queue we are.
When I first heard predictions in early 2021 that the chip shortages would drag on through the end of the year, I didn’t really believe it. It’s increasingly clear that those predictions were right, but at least 2022 is not that far away anymore! And while we do have many orders with expected ship dates two years out (late 2023), we also have several with expected ship dates in early 2022 (and some parts have been trickling in, so it’s not as if we were completely choked off on all supply).
As we approach the holiday season when we traditionally have our biggest sale, we are assessing which products we can make and possibly discount. We have a few new releases this year that we are very excited about, but new products are especially difficult to ramp up, especially if they use new components we didn’t already have on order a year ago.
Thank you for your continued business and support
Despite the various challenges presented by the evolving pandemic and associated disruptions, we have generally been able to keep operating relatively smoothly this year. I know there are many small businesses of all types struggling or even having to shut down completely, and I am very grateful that we have avoided such extreme scenarios. Thank you to all of the employees at Pololu for so reliably keeping everything running, and thank you to all of our customers for your continued business. I wish everyone a safe and happy conclusion to the year and look forward to things improving on all fronts in 2022.
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:
SpringRC SM-S4303R Continuous Rotation Servo Pair.
We are now offering a two-pack of Surplus SpringRC SM-S4303R Continuous Rotation Servos. These servos are functionally identical to our stock SM-S4303R servos except for the direction of rotation, which is reversed. We are selling them in pairs to help differentiate them. See the product page for more details and specs.
In case you missed it, the 3pi+ now comes with a graphical OLED display! Accordingly, we have released an updated version of the 3pi+ assembly video. This video walks you through the steps found in the assembly section of the 3pi+ 32U4 User’s Guide. While our user’s guides aim to be as thorough as possible, some things are a lot easier to understand when you actually see someone doing it (like soldering the leads to the motor tabs!), so we hope you find this video a useful addition to our 3pi+ documentation.
Is there something you would like to see in a future 3pi+ video? Let us know in the comments below!
We have published performance graphs (2MB pdf) for our 25D Metal Gearmotors! Each chart is based on hundreds of individual measurements that reveal how the speed, current, power, and efficiency of that particular gearmotor version depend on the applied load (i.e. torque). Our test methodology is the same as the one we used to make our Micro Metal Gearmotor performance graphs, so you can see our blog post about that for more information.
25D mm metal gearmotor undergoing dynamic performance testing.
These characterizations are yet another way we set our gearmotors apart from the many similar-looking alternatives out there. When you get your gearmotors from us, you know what kind of performance to expect, and you can count on consistency from batch to batch.
If you have any questions or feedback about these graphs or if there is additional information you would like to see available for our motors, please feel free to contact us (or just leave a comment below).
Performance summary table from 25D mm Metal Geamotor datasheet.
We are having a Labor Day sale starting now through Tuesday, September 7! Check out the sale page for more information. Please note that we will be closed Monday, so orders placed after 2 PM Pacific Time Friday, September 3 will be shipped on Tuesday, September 7.
Hello, I’m Curtis, an engineering intern at Pololu. I’m studying mechanical engineering at University of California, Irvine. I’ve been playing a lot of Tekken during the pandemic. In fighting games like Tekken a lot of people use arcade sticks to play. So, I wanted to build my own.
I designed the case myself in Solidworks. I decided on a length and width of 8" × 14" because that makes it large enough to be comfortable, while being small enough to fit in a backpack and carry around. The positioning of the buttons and joystick is based on Hori arcade sticks, with some modification to fit my hands. The difficult part was figuring out how to mount all the components. I ended up layering the acrylic pieces to form the top and bottom plates. This let me mount components in between the layers, which hid screws and made the case look better. I was also able to cut holes to position vertical supports, like the front and back walls, to increase the case’s rigidity.
It’s designed to fit:
- 8 × 30mm and 3 × 24mm Sanwa buttons
- Neutrik USB type A to B pass-through
- Brook Wireless Fighting Board
- IST Alpha 49s Joystick.
PCBs from Brook are popular for arcade sticks. They have low latency and are compatible with PC and consoles. Button and joystick choices are based on personal preference, similar to mechanical keyboard switches. Sanwa buttons are popular as well, and pretty standard in a lot of arcade cabinets, so I picked them because I’m used to them. I chose the IST joystick because the joystick tension is stiffer, which I prefer because it makes quick movements easier.
It can be a little tricky to put together. I didn’t realize that the joystick switches had tabs that extended beyond the sides of the joystick, so it couldn’t slide into the case. To get around this, the joystick just has to be taken apart and put back together inside the case.
Overall the case works really well. I was worried that the acrylic wouldn’t be stiff enough, but the case is rigid, and all the components fit.
You can download my CAD files (.DXF and .CDR) for the laser cut parts here (97k zip) to cut out the same case I designed, or as a starting point to design your own.
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.
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!
Belgian distributor MCHobby has released an adapter that allows a MicroPython Pyboard to control a Zumo Robot for Arduino. Using their MicroPython port of our Zumo Shield library, you can run programs like this on the Zumo:
from zumoshield import ZumoShield zumo = ZumoShield() zumo.motors.setSpeeds( 100, 100 ) # -400..0..400 zumo.motors.stop()
Even cooler, the on-board REPL allows live programming/debugging over USB. Here’s an example from their library documentation that shows a test of the Zumo’s accelerometer:
MicroPython v1.16-92-g98c570302-dirty on 2021-07-16; PYBv1.1 with STM32F405RG Type "help()" for more information. >>> >>> import test_acc x -241 y -23 x -236 y -16 x -233 y -68 x -223 y -81 x 1110 y -7073 <--- Knocked on the right side x -309 y -35 x -242 y -69
MicroPython is a minimal Python interpreter designed to run on microcontrollers such as the the Espressif ESP8266 and ESP32, the Raspberry Pi RP2040, and a variety of Arm processors. The Pyboard we are talking about here is the official reference board for MicroPython, based on a powerful Arm Cortex-M4 processor by ST. As you can see in the pinout diagrams below, most of the pins of the Pyboard are also broken out on the Zumo adapter, and the two Pyboard buttons are duplicated in more convenient locations:
An included Pololu voltage regulator and power diode allow the robot to be fully powered with batteries and also to safely connect to USB for programming. The MCHobby libraries demonstrate how to access all of the Zumo features from the Pyboard, in particular including example MicroPython code for line following and maze solving. There are many more possibilities with MicroPython on the Zumo, and we’re excited to see what the community will do with it!
For more information or to buy a board, see the Adaptateur Pyboard pour ZUMO Robot product page.