Engage Your Brain
A blog by Pololu president Jan Malášek. For more information, please read the first post.
I have some exciting new wheels to tell you about (available as an 80×10mm black pair and an 80×10mm white pair). With a few small exceptions, all of the wheels we have made so far were for press fits (more properly called interference fit) onto 3mm D shafts such as those on our micro metal gearmotors. The press fit is simple and convenient for smaller motors and wheels, but there is an inherent trade-off between how hard you have to push to get the wheel on the shaft and how well the wheel stays on the shaft. As we contemplated designing some new wheels for our growing lines of 20D gearmotors and 25D gearmotors with 4mm output shafts (and higher power), I wanted something better. Our wheels already worked with our machined hubs with set screws, like this:
But the machined hubs are expensive, more expensive than the rest of the wheel. There’s also the much more minor issue of the machined hub option only allowing for the wheel to be placed at the very end of the shaft unless you drilled out the plastic wheel to have a hole larger than the shaft. I wanted to have an all-plastic, injection moldable solution that involved multiple parts that would somehow clamp the wheel onto an axle, kind of like a chuck on a drill.
My initial idea was to have just two parts: the outer wheel and an inner, interchangeable collet that would get wedged between the wheel and axle. But our mechanical engineers were not able to come up with a single part that could both compress onto the shaft and attach rigidly to the outer wheel. Because the parts are so small, the resolution of our 3D printer limited the effectiveness of prototypes, so we worked with scaled-up models. This picture shows one earlier model next to the final production parts for scale:
The other side of that model shows what we were thinking about for holding nuts in place on the back side of the wheel:
At that point, we were at a three-component design, plus the three screws and nuts, which was turning out to be difficult to assemble onto a shaft, even if it worked. The screw heads needed to be accessible from the outside of the wheel so they could be tightened, and that left the nuts near the motor where they were difficult to access, and trying to make the wheel hold the nuts required the wheel to be toward the motor and the collet piece on the outside, which was less aesthetically appealing.
So, in the end, we gave up on my all-plastic goal and designed a single stamped plate with threaded holes that clamps the wheel onto the collet insert. It definitely makes the assembly much easier, as you can see from this expanded view:
Having a design that seems like it might work on a 3D printed mock-up is still quite different from getting it working on the final, injection-molded parts. The clamping action of the collet inserts might have given us a little more margin for error than our usual press-fit wheels, but on those, a wrong fit is relatively straightforward to adjust: start with the fit a little on the loose side, and if it’s too loose, make the pin (and hole) smaller until it’s tight enough. With the new wheels, there were many more things that could go wrong, including alignment (wobbling). There was also the unknown of how much torque the hubs would take.
In the end, I think we arrived at a nice performance point. The wheels cannot take as much torque as if they were screwed on to the machined hub with set screw, but they can do much more than just the press fit hubs while putting less strain on the motor output shafts during installation. It’s possible to assemble the wheels with a little wobble, but if it’s a concern in your application, you can fiddle with how you tighten the three screws to get it as lined up as you like.
We started with our 80×10mm wheels, and made inserts that work with 3mm and 4mm shafts, both round and D-shaped:
Since the concept seems to be working, we will be working on different wheel sizes and inserts for larger shafts later this year.
As with all our new product introductions this year, we are having an introductory special. Be among the first 100 customers to use coupon code MULTIHUBINTRO (click to add the coupon code to your cart) and get 33% off on up to three sets.
I don’t blame you if you have no idea why the new Stability Conversion Kit for Balboa is so exciting. With a name like that, you probably couldn’t even guess what it is, let alone why it’s exciting. But let me keep you guessing while I share a little about the first robot I built, which is kind of a hint. It’s pure coincidence that I happened to get reunited with it just as we were preparing to release this new product I’m announcing here.
I know for sure that I built my first robot in eighth grade, for the science and engineering fair for which everyone in my school had to do a project, which means I must have started working on it in 1992 when I was twelve years old. The better projects in my school went on to the local, island-wide science fair in Hilo, and the better projects there went on to the state fair in Honolulu. (I was initially not among those chosen to go on from the Big Island, I think because of some judging process mistake, but my science teacher and probably others lobbied to get me there.) There was time between the different stages, so I kept working on it through the spring of 1993, which would now make it over 25 years old. I probably added the labels in later stages in response to some advice to better present what I made.
Jan’s first robot, “Robot Line Tracker,” built 1992-1993.
When Paul saw the robot for the first time in my office this morning, he immediately recognized a piece of it: “That looks like the gearbox from my first robot!” I was a bit skeptical, but he immediately backed it up by pulling out Gordon McComb’s Robot Builder’s Bonanza and showing me the project he had followed from the book. (In another amusing twist, it turns out that the copy of the book Paul had in his office is my old book, though I hadn’t gotten it until high school, and I didn’t realize until today that the gearbox in the book was the same one I had used.)
I’m pretty sure I got the gearbox from Edmund Scientific, because their printed catalogs and Radio Shack (nearest one in Kona, 40 miles away) were initially my only sources for anything electronics-related. The wheels were from some broken radio control toy. The ball caster was long a point of frustration. In earlier versions of the robot, I had tried more common swivel casters and then a ball caster I made from a ping pong ball in a toilet paper tube, but neither was very reliable. I was very happy to eventually find the metal ball caster that I used in the final version, which you can see here along with the three IR LED and phototransistor pairs used for detecting a two-inch white line on a black background:
That heavy, noisy caster was not ideal, but at least it didn’t jam at a bad angle like the swivel caster or collapse like my ping pong ball and cardboard creations. I am mentioning all these details because it was so much work just to put a basic chassis together, without even getting to the electronics part. The electronics are not something I want to cover in this blog post, but I should mention that I was very fortunate to find a mentor at the Canada-France-Hawaii Telescope headquarters right across the road from my school. CFHT had a nice electronics lab stocked with all kinds of components they just gave me and tools they let me use, and I got lots of help from John Horne when I was in 8th grade and then from many others there while I was in high school.
So, to bring this back to Pololu’s new product: the Stability Conversion Kit for Balboa is primarily a ball caster attachment for the Balboa chassis:
That might sound pretty basic, but using it fundamentally transforms the Balboa into a very different kind of robot. As a reminder, Balboa is a two-wheeled, balancing robot:
You can read more about the balancing robot in my blog post introducing the Balboa robot. It’s a very capable platform that we spent many years developing, but making a balancing robot is not easy, and it’s probably not the best type of robot to build as your first robot. We did not even release the chassis as a separate product independent of electronics because it would be difficult to do much with it. The new stability conversion kit completely changes that. With the ball caster, the chassis can be used as a much more beginner-friendly differential-drive mobile base with three points of contact with the ground:
We offer the ball caster attachment by itself, for those who want to use it with a complete Balboa 32U4 robot kit to immediately get up and running without developing their own electronics. We also now offer the Balboa Chassis with Stability Conversion Kit, which includes all the mechanical components for the chassis other than wheels and motors:
Balboa Chassis with Stability Conversion Kit (No Motors, Wheels, or Electronics).
As with the original Balboa 32U4 kit that includes electronics, we deliberately do not include motors and wheels so that you can pick your own to customize the look and performance of your robot. This diagram shows the possible chassis angles with four different wheel sizes ranging from 60 mm through 90 mm:
Variety of chassis angles available when using different wheels on the Balboa Chassis with Stability Conversion.
Micro metal gearmotor HPCB with extended motor shaft.
For motors, we recommend our 30:1 HPCB, 50:1 HPCB, or 75:1 HPCB micro metal gearmotors with extended back shafts that can be used with encoders. Even if you do not plan on using encoders on your robot at first, it’s nice to have the option down the road.
And options are what our chassis kits are all about, whether you select our Zumo tracked chassis, Romi round chassis, or now the new Balboa chassis. One of my guiding principles in developing our robot platforms is that I want to help you, our customers, build your robot, not just the particular one we designed.
I realize there are many kids interested in robotics who are not as fortunate as I was to have Canada-France-Hawaii Telescope headquarters across the street from my middle school, and that for many of them (and their parents and teachers), all of the options we offer can be overwhelming. Over the next several years, we will be working on sensors and other modules specifically for the Balboa, along with combination bundles and tutorials that will make Balboa a platform that students can begin with as a basic first robot in middle school and keep expanding through higher levels of their education.
I’ll end this product introduction as I have all my product announcements this year, with an introductory special to encourage you to try the Balboa chassis out for yourself. Be among the first 100 customers to use coupon code BALBOACHASSIS (click to add the coupon code to your cart) and get 15% off on Balboa-related products (limit 4 per product).
Installation of our new Mycronic MY600 that arrived earlier this month is going smoothly. Here are a few pictures and a video from our first test print on a Pololu PCB panel.
Ninoos from Mycronic showing us how to use the MY600 solder paste jet printer.
First Pololu test panel in our new Mycronic MY600 solder paste jet printer.
The gantry is supported only on the left side!
First print on a Pololu PCB panel using Mycronic MY600 solder paste jet printer.
MY600 jet printer first print: Looks like we need a little more solder paste under the central chip and a little less on the leads.
That footage of the jet printer in action is not sped up!
In my February post about our new equipment, I wrote about why I did not get a jet printer for solder paste. Well, I ended up getting one after all, and it arrived today.
We have a great building, but we don’t have loading docks, which always makes these big equipment deliveries a bit more of an adventure. Despite assurances that the crate would be at the back of the truck (and that it would have a lift gate that could handle the weight), it arrived way at the front.
18 May 2018: yet another heavy machine (MY600 jet printer) arrives deep in a truck.
At least it wasn’t as big of a crate in as deep of a truck as this time. The Mycronic MY600 jet printer is not the biggest machine, but it weighs a ton because of its granite base. And by “it weighs a ton”, I mean literally more than two tons. Especially with the weight of the crate and the other accessories in there, it was way too much for the lift gate. We tried to get two pallet trucks under it but could not get it to move, even after repositioning the truck to make the crate moving downhill.
Because of the crate’s weight and weight distribution, we couldn’t drag it downhill even with two pallet trucks.
The big forklift we rented had not arrived yet, but our smaller forklift was able to add enough pulling power to get the crate to the back of the truck.
Dragging the MY600 jet printer crate out of the truck with our smaller forklift.
MY600 jet printer crate almost to the back of the truck.
I like noticing that silver Honda in the back of some of these pictures. Here it is almost sixteen years ago (more about our first ten years in Vegas here):
Leaving Watertown, MA on 30 May 2002.
The big forklift arrived just in time to keep us from attempting some small forklift plus lift gate kind of stunt.
10,000 pound forklift with long forks arrived just in time.
The crate had a very lopsided weight distribution, and the crate had some peculiar skids that required some precision alignment to get the fork into the pocket. (The small gap was too small for the pallet trucks, which contributed to the earlier difficulty in moving the crate with pallet trucks.)
Couldn’t they have given us a few more inches for the fork to fit?
Ryan lining up the forks just right to get under the MY600 jet printer crate.
I really liked truck driver Sharrieff, with a great “we’re going to work together and we’re going to get this crate down” attitude. I just noticed now as I wrote this up that he’s the owner of his trucking company.
Woo, the crate is safely on the ground!
With the crate in our warehouse and the sides removed, it was easier to see why the weight distribution was so off-center.
First glimpse of the MY600 jet printer in its crate.
MY600 jet printer unwrapped.
And here it is in its temporary home next to the Europlacer stencil printer we got earlier this year:
Mycronic MY600 jet printer temporarily in position next to Europlacer stencil printer.
It’s a temporary home since we will be doing some major remodeling of our building later this year. At the moment we have two full SMT assembly lines, with the newest pick-and-place machine separately on its own in a batch setup. Once we free up more space on the main manufacturing floor, we should be putting the jet printer in line with the pick and place machine in a third complete line that should be ultra-optimized for efficient manufacturing in small quantities. Installation of the new jet printer isn’t until after Memorial Day, and I will be sure to post more updates once we have the machine in action.
We didn’t drop it!
This is the second new motor driver product in less than a week, and I’m really excited about this one: the TB9051FTG from Toshiba. The TB67H420FTG I posted about the other day has this new part beat for higher voltages, but its one shortcoming for our purposes is that it doesn’t work at lower voltages. This new TB9051 doesn’t go up into those voltages where it starts getting dangerous, but it covers a great operating range of 4.5 V to 28 V, with transient operation to 40 V, which means you can use this driver with everything from 6 V lead-acid batteries and 2-cell LiPo packs all the way up to 24 V systems and 6-cell LiPo packs, maybe even 7-cell packs. The operating voltage range is similar to another recent favorite of mine, Maxim’s MAX14870, but this new Toshiba part delivers almost double the current.
Pololu dual MC33926 motor driver (assembled) on a Raspberry Pi Model B+.
With its excellent operating voltage range and great current ability for an integrated package, I expect the TB9051 to be an ideal all-around DC brushed motor driver for most indoor robots and other projects that do not involve moving frighteningly large objects at potentially catastrophic speeds. The chip seems positioned to compete performance-wise with my previous almost-favorite chip, the
Motorola Freescale NXP MC33926. That chip would have been my favorite if it had been easier to work with Freescale, and things have only gotten worse since NXP acquired them and then got distracted by yet another merger, this time with Qualcomm, which seems to have been in limbo forever. Maybe their sales are actually doing great, and we just have a hard time with them because they are busy with bigger customers. In any case, a part with great performance is not so great overall if it’s difficult to get it, so you can expect us to be updating some of those products that use the NXP part to use the Toshiba part instead.
One pretty obvious feature the TB9051 has over the MC33926 is its smaller size, from 8 mm x 8 mm down to 6 mm x 6 mm, which is great for getting these onto smaller boards in smaller spaces, but it might also have some ramifications for how it tolerates pushing the limits of the specs. We liked how the MC33926 was able to endure lots of abuse from customers who were pushing it because it was our highest-voltage integrated driver. The TB9051 is, like the MC33926, an automotive-rated part, so it is intended to last a long time in harsh conditions. It’s interesting to see how thick the packages for these chips are, and I like their thickness (similar to how I like the proportions on 737 airplanes):
Clockwise from upper left: packages of a 28-pin microcontroller, TB9051FTG, MC33926, TB67H420FTG, and TB6612FNG.
This video makes it seem like Toshiba is quite proud of their packaging accomplishment with the TB9051FTG:
Update: It looks like the above video might no longer be available on youtube, but it is still available on the Toshiba website.
Is the “competitor” in this video the MC33926? Sure seems like it to me. I know of no other part like that, and I keep looking.
Toshiba has not publicly posted a complete datasheet for the TB9051FTG yet, so the product page for our carrier only has a preliminary summary document. Our product page has more information about how to use the device, and we are working on getting a complete datasheet that we can post.
Since I expect this driver to hit a nice sweet spot for many of our customers’ general-purpose motor control needs, it’s a good candidate for using in some higher channel count products. We have not gone much beyond two motors (the TReX motor controllers have a third, unidirectional channel), and I would like to know what kind of interest there is in single boards that can control three or more motors. If you would like to see such products, please let me know.
As with all of our new product announcements, we are offering an introductory discount to make it extra easy to try out these new drivers. Be among the first 100 customers to use coupon code TB9051INTRO (click to add the coupon code to your cart) and get up to three units for just $4.95 each. We are still manufacturing our initial stock of these, and even if the quantity shown online goes to zero, you can backorder with the coupon price and chances are that we will be able to fill your order the same day.
A-Star 32U4 Mini pinout diagram.
I think of our new A-Star 32U4 Mini SV as more of an update than a genuinely new product. For those of you not already familiar with our A-Star 32U4 Minis, they are a series of ATmega32U4-based, USB-programmable controllers with integrated switching regulators that offer operating voltage ranges not available on typical Arduino-compatible products; the “SV” variant features a step-down converter that enables efficient operation with inputs as high as 40 V. The slight PCB update for this latest product was done primarily for manufacturing reasons (e.g. reset button footprint change, addition of a test point, and switching to an ENIG finish that has worked better for us for double-sided assembly), but I figured that while we were updating all our internal records for the new PCB, we might as well also upgrade the regulator.
There’s a difficulty to making small improvements to products when we have hundreds of distributors around the world since even if we clear out our inventory of older versions before shipping newer units, we cannot control the inventory at distributors’ warehouses. We’re all usually tolerant of products being a little better than advertised, but when we try out a product, and then buy another one, and it ends up being worse than the one we already had, it just doesn’t feel right. (That’s one reason we sometimes do not reveal exact components we use, to avoid over-specifying some aspect of a product that we feel is not that important and that we do not want to commit to.) Once the regulator was different (and better!) enough to merit changing the product specifications, we needed to change the product number, and hence we have a new product.
The regulator change is from the ISL85415 to the ISL85418, both made by Renesas (which acquired Intersil). The ISL85415 was the first of a great regulator family by Intersil, and they expanded the family with several pin-compatible versions with various current specifications. These new parts could also operate to 40 V instead of the 36 V of the original ISL85415, but even as various aspects of the datasheets got updated, the maximum voltage rating on the ISL85415 in particular did not.
Renesas website screen capture showing ISL85415 is only part in its family with 36 V maximum input.
I asked our Intersil contact about why only the ISL85415 wasn’t rated to 40 V. It sounded like it was getting made on the same process as the other parts, and that the higher voltage rating of the later parts in the family was more the result of better characterization (and thus confidence) in the process than in any modifications to the process. In other words, new ISL85415 parts can probably do 40 V just like the other parts, and the older ISL85415 parts probably the same; they just weren’t confident about calling them 40 V parts then. But who knows what the inside story is. Maybe they did tweak their recipes a bit, and once they had parts out in the world with the 36 V spec, they didn’t want to change it without changing the part number, just like we couldn’t just keep our old A-Star part number and also talk about the higher maximum input voltage.
A-Star 32U4 Mini ULV, LV, and SV.
In case you’re wondering why we didn’t just put the even better ISL85410 or ISL854102 with 1.0 A and 1.2 A outputs on the new board, it’s because the performance limit moved more to the inductor, and even if the better regulator chip takes up the same space, we would need a bigger inductor to take advantage of that. And the A-Star Minis are pretty packed designs, so there’s not much room for a bigger inductor.
So, to make a long story short, the main new feature of the updated A-Star 32U4 Mini SV is that it can now take up to 40 V input and give you up to 800 mA to work with. This chart shows you what the new regulator (in darker green) can do compared to the older one (lighter green) on the A-Star Mini. It looks like the old one already provided well over its 500 mA specification.
Typical maximum output current of the regulators on the A-Star 32U4 Mini boards.
To make this new product a little more exciting, we reassessed our costs and cut some of our margins in keeping with our push this year to be more competitive in our manufacturing. We have reduced the unit price from $19.95 to $14.95. And as usual for our new product releases this year, we’re offering an extra introductory discount: use coupon code ASMINISVINTRO to get up to three units for just $9.95. (Click to add the coupon code to your cart.) Our promotion banner shows the usual limit for the first 100 coupon uses, but since we’re also having our Arduino Day sale, we’re removing that restriction for the duration of the sale. If we run out of stock during the sale, you can still backorder with the discount, and we should be able to catch up with production within a few days.
After many months or years of work (depending on how you look at it), I am happy to introduce our newest motor controllers, the Jrk G2 USB Motor Controllers with Feedback, which we are releasing today in four power variants:
|24 V(1)||34 V(2)||24 V(1)||34 V(2)|
|18 V||28 V||18 V||28 V|
|Max continuous current
(no additional cooling):
|19 A||13 A||27 A||21 A|
|Dimensions:||1.4″ × 1.2″||1.7″ × 1.2″|
1 30 V absolute max.
2 40 V absolute max.
The main purpose of the Jrk G2 family is to enable feedback-based control of DC brushed motors, simplifying closed-loop control of things like the position of an actuator. An example that is probably familiar to most of us is the common hobby servo that has an output shaft that can rotate to various positions as commanded over a simple interface. The Jrk motor controllers can be used for giant versions of those servos, and they can also be used in many other systems as long as you can somehow get feedback in the form of an analog voltage or a frequency. Analog voltage feedback is often easy to get from potentiometers that can serve as angle or position sensors.
The frequency feedback feature is handy for maintaining a speed of a motor independent of your supply voltage and motor load. You might use that kind of feature to run a treadmill at some set speed independent of the weight of the lab rats on it or to stir some jar of goop at a constant rate as the goop gradually thickens. With mobile robot applications, it can be handy to have a motor controller that will make your wheel go at the speed you set independent of whether the robot is on a hard floor or a carpet. (The Jrks do not support quadrature encoders, but you can use one channel of a quadrature encoder as the tachometer for the Jrk. In some applications, keeping track of absolute position is not necessary, or the quadrature encoder can be monitored directly by a main controller that could still benefit from the closed-loop speed control being taken care of by the motor controller.)
To control a wide range of motors in a variety of applications, it’s important to be able to configure a lot of parameters, which makes the Jrk’s USB connection and free configuration utility software extremely important. Even if you ultimately want to use your Jrk in a radio control installation or command it over I²C from your favorite embedded controller, it’s very convenient to be able to set everything up from your computer.
That screenshot is actually of the utility for the original Jrks, which we released almost 9 years ago (I announced those on the forum because we did not have this blog back then). You might notice on some older web pages that we referred to the original Jrks as our second-generation feedback controllers. The really original ancestor to today’s new motor controllers is this product we called simply Pololu 3A Motor Controller with Feedback, which we released at the beginning of 2005. Here are a picture and block diagram of that controller:
Candice and I were probably still running Pololu out of our house back when we started work on that controller, and it’s probably the last product of ours for which Candice wrote some of the firmware. That controller led to the development of a larger, customized controller (similar to our SMC04 High-Power Motor Controller with Feedback) and an even higher-power version that was used on control cables of large autonomous parachutes for the military.
Back to the new Jrk G2 family: these new controllers are in many ways a refinement of the original Jrks, which have been used all over the world in applications from animatronic displays to motion simulators and even full-sized airplanes. The most noticeable improvement on the four Jrk G2 controllers we are releasing today is the increased power available from their discrete MOSFET H-bridges. The G2 high-power motor driver design is part of the reason for the “G2” in the new Jrk family name, though we plan on releasing lower-power, smaller Jrk G2 products later this year. The new driver technology, along with going to double-sided PCB assembly and four-layer PCBs, allowed us to make much higher-power controllers that are smaller than the old Jrk 12v12, which used to be our highest-power version.
The Jrk G2 24v13 and 24v21 in particular open up new application opportunities because they can operate off of 24 V power rails, making them appropriate for huge linear actuators (note that we only carry 12 V versions right now, partly because we did not have controllers that we could recommend for 24 V use). It’s exciting that these tiny boards can control such huge actuators, and the size difference is so big it’s difficult to convey in a picture:
The size difference makes it difficult to get a Jrk G2 24v13 and an industrial-duty linear actuator in the same picture.
Other features new to the G2 Jrks are an I²C interface option and an improved tachometer/frequency feedback mode that now offers pulse width measuring rather than only frequency counting to allow for better control of low-speed motors with lower-resolution encoders or tachometers. Here is a summary of the main features of the Jrk G2 motor controllers:
- Easy open-loop or closed-loop control of one brushed DC motor
- A variety of control interfaces:
- USB for direct connection to a computer
- TTL serial operating at 5 V for use with a microcontroller
- I²C for use with a microcontroller
- RC hobby servo pulses for use in an RC system
- Analog voltage for use with a potentiometer or analog joystick
- Feedback options:
- Analog voltage (0 V to 5 V), for making a closed-loop servo system
- Frequency pulse counting (for higher-frequency feedback) or pulse timing (for lower-frequency feedback), for closed-loop speed control
- None, for open-loop speed control
- Note: the Jrk does support using quadrature encoders for position control
- Ultrasonic 20 kHz PWM for quieter operation (can be configured to use 5 kHz instead)
- Simple configuration and calibration over USB with free configuration software utility
- Configurable parameters include:
- PID period and PID constants (feedback tuning parameters)
- Maximum current
- Maximum duty cycle
- Maximum acceleration and deceleration
- Error response
- Input calibration (learning) for analog and RC control
- Optional CRC error detection eliminates communication errors caused by noise or software faults
- Reversed-power protection
- Field-upgradeable firmware
- Optional feedback potentiometer disconnect detection
As with all of our new product releases this year, we are offering an extra introductory discount: the first 100 customers to use coupon code JRKG2INTRO can get 40% off up to three units. (Click to add the coupon code to your cart.)
Our new programmer, the Pololu USB AVR Programmer v2.1, was supposed to be a minor update to our existing programmer, coming right after the A-Star 328PB Micro that we released last month, with the main point of excitement being the Las Vegas-inspired $7.77 price. But as we were testing the combination of the programmer with the A-Star, we were getting brown-out resets on the programmer when it powered the A-Star. The relevant part of the circuit was just a P-channel MOSFET that connected the programmer’s own logic voltage (which we call VDD) to the VCC pin of the ISP connector:
MOSFET-based target VCC power control used on Pololu USB AVR Programmer v2.
The problem was caused by the MOSFET turning on too well (quickly and with low resistance), causing the logic voltage on the programmer to drop if the VCC of the target device had more than a few µF of discharged capacitance on it. The bigger the capacitance on VCC, the bigger the voltage drop on VDD, until eventually the drop was big enough to trigger the brown-out reset protection on the programmer’s microcontroller. We tried various firmware tricks with our existing hardware, such as turning on the MOSFET for very short pulses to gradually charge up the target device’s VCC capacitance, but none of them worked reliably enough. So in the end, we decided to redo our PCB and put in a dedicated high-side power switch with a controlled slew rate. The new programmer can now power target boards with up to about 33 µF on their logic supplies.
These are the two other improvements we made to the new v2.1 programmer over the older v2 programmer:
- Plugging a v2 programmer into a 3pi robot could cause one of the motors to briefly run at full speed because the programmer’s circuitry for measuring VCC could inadvertently pull up one of the 3pi’s programming pins (which doubles as a motor driver input) before the GND connection was established. The v2.1 programmer has improved circuitry for measuring VCC which limits the duty cycle of this effect to about 0.2%, so the motor won’t move (but it might make a 25 Hz clicking sound).
- The v2 programmer would typically brown-out if a 5 V signal was applied to its RST pin while it was operating at 3.3 V. The v2.1 programmer does not have this problem.
The v2.1 programmer is otherwise identical to the v2 programmer, which means it’s a USB AVR microcontroller programmer that can program targets at 3.3 V and 5 V and offers an extra UART-type TTL serial port (like the popular FTDI USB-to-serial adapters) that can be super handy for debugging, bootloading, or even general connection of your project to a USB port.
Pololu USB AVR Programmer v2.1, labeled top view.
The v2 programmer was already a good deal at under $12, but at $7.77, and with free shipping in the USA, we hope to make AVR development extremely accessible. The manufacturing improvements and other cost reduction initiatives I have been blogging about this year help us make this offer without losing money on it, but I am not expecting to be making money directly off of the programmers, either. My goal is to give you the best value in a basic tool you will use over and over as you build your own projects, with the hope that that will help you keep Pololu in mind the next time you need some electronics or robotics parts.
And, as usual for our new product releases this year, we’re offering an extra introductory discount: the first 100 customers to use coupon code AVRPROGINTRO get that already great $7.77 price dropped to $5.55 (limit 2 per customer). (Click to add the coupon code to your cart.)
My posts last month (here, here, and especially here) about the new electronics manufacturing equipment we installed focused on our new pick and place machine and stencil printer. This post is about the other major new machine we got at the same time, an automated optical inspection (AOI) machine from Mirtec.
AOI machines have cameras that move around over an assembled board to take a bunch of pictures that then get processed to determine whether or not the board is assembled correctly. The machines often have several cameras that enable taking pictures from various angles, along with fancy lighting to variously illuminate the boards and components being inspected. Our AOI machines have rings of LEDs of different colors at different angles, so that, for example, red light highlights a different portion of a solder fillet than blue light. This picture shows a panel of our Dual G2 High-Power Motor Drivers in one of our older AOI machines:
A panel of Dual G2 High-Power Motor Drivers illuminated by blue LEDs during automated optical inspection (AOI).
The tricks with lighting are basically attempts to generate more three-dimensional information than you can get with just 2D pictures out of a camera. What is exciting about our new machine is that in addition to the traditional lighting and cameras, it also has a sophisticated sensor for doing precise height measurements everywhere along a component. Machines with this kind of sensor are called 3D AOI machines.
5-pin SOT-23 component getting set up for 3D automated optical inspection (AOI).
The machine we got is Mirtec’s latest AOI machine, the MV-3 OMNI, which is a desktop or batch version of their inline inspection machine that has the same technology. I ordered the machine with the optional stand, which turned out to be a good thing because for a desktop machine, this thing is huge. The crate was much larger than I expected, and while not requiring a 10,000 pound forklift rental like the pick and place machine, we did have to use our fork extensions.
Out of the crate, the machine and stand are quite a bit smaller. Something to keep in mind for anyone considering such a machine is that this one is too big to fit through a single three-foot door.
We had an especially busy week, with the installation and training for the AOI machine happening at the same time we were doing the Europlacer pick and place machine and stencil printer installation that I wrote about earlier.
Mirtec MV-3 OMNI 3D AOI machine training.
Our Yestech AOI machines are visible in the background of that last training photo. (They are also featured in our The Manufacturing of A-Star 32U4 Micro video.) We already performed 100% AOI on every board we made before we got this latest machine. We are happy with those machines, and since we had two, capacity and redundancy were not primary motivations for getting this new one. With any piece of equipment like this, the challenge is to find every possible defect without generating a lot of false positives. If the settings are too lax, or the machine is not capable enough, defects will make it through, but it’s not enough to just flag every mismatched pixel since the ultimate authority is still the human operator that inspects every spot the machine identifies as suspect. If the machine inundates the operator with a thousand possible defects for every actual defect, the operator is likely to miss the one actual problem. It’s difficult to characterize this since there are many different components and every design is different, plus how we set up or train the machines also matters a lot.
3D automated optical inspection (AOI) setup for Pololu DRV8825 stepper motor driver carrier.
So, the main motivation for getting this new machine was the hope that it will give us more capabilities going forward to have the highest possible confidence in the quality of our products. The new machine is almost twice the cost of the older ones, and especially with the 3D capability, it should be able to deliver that. Our first impressions have been very positive, but to really know, it will take some time to get familiar with the machine’s strengths and weaknesses and to integrate it well into our manufacturing processes.
3D automated optical inspection (AOI) setup for Pololu Dual VNH5019 Motor Driver Shield for Arduino.
I am a little proud (but mostly embarrassed) that I still do basically all of the electronics component purchasing for Pololu. Today I am writing about buying components because their prices have a huge impact on the end price of our products, especially when we work to cut down other costs as I have been discussing lately. Buying parts when trying to compete globally is more frustrating than you might think, and I hope that writing this will help trigger some conversations that will help us do better and also encourage component manufacturers and distributors to better support small electronics manufacturers in the United States.
I buy almost all of the electronic components that go into our products from suppliers in the United States. That includes integrated circuits, discrete semiconductor products like transistors and diodes, resistors, capacitors, inductors, and so on. The only parts I do not buy in America are components like connectors and electromechanical devices like switches and buzzers. This post is mostly about buying components in the US from US suppliers, but I will briefly touch on the non-US components to provide some background and comparison.
There are two main reasons for those non-US components: they are much cheaper than similar parts in the US and we can evaluate that they are good enough. That second reason is important because counterfeits and fake parts are a big problem in the electronics industry. We can look at something like a 0.1" male header or an electromagnetic buzzer and see basically what it is. Once we can be confident that a component or supplier is good enough for the level of performance and reliability we need from our products, we can look at prices to see whether it’s worth the extra hassle (and that amount of hassle keeps going down) to get the components overseas, which pretty much means China (and Taiwan, in case that distinction is meaningful). And that price difference can be huge. When I started getting connectors directly from Taiwan over ten years ago, the price difference was approaching a factor of ten, meaning that for around a thousand dollars I could buy what would cost me ten thousand domestically. Some of the price differences seem to be getting smaller, but the components still seem to be easily three to five times cheaper in China. Early on (around 2005), local salespeople would ask me what prices I was getting in China, thinking they had some better deal or connection than I knew of; nowadays, they don’t even ask or try to compete.
With all the other component types, even for the most basic parts like resistors and capacitors, we are not really qualified to evaluate them, and I would not want to be responsible for doing quality control for millions of units even if we could analyze one particular instance of a resistor or capacitor and conclude that it is good enough. So, I only buy components from reputable brands through their authorized distributors, which means I buy basically all our components through American companies (with one exception I’ll get to soon that almost doesn’t feel like an exception, anyway). Those companies also tend to be the biggest electronic parts distributors in the world.
I still buy some components from the catalog-type sources that are probably familiar even to most students and hobbyists, like Digi-Key, Mouser, and Newark. Once upon a time, these companies printed large catalogs that were the best way to find out what kinds of components even existed (especially when I was growing up in Hawaii). Digi-Key stopped printing catalogs a few years ago; Newark apparently still does. In any case, these kinds of sources now have good online resources for finding parts, they tend to have a lot of parts in stock, and they are set up for small quantities, which is why they are great resources for individuals, too. Usually, it’s very easy to buy components from these sources, and I rarely interact with anyone when I do since I usually just place the orders through the web sites at their listed prices.
However, the prices usually are not the best at those most convenient sources, especially when my minimum quantities tend to be full reels with thousands of parts rather than a few individual parts. So for most of my electronics purchasing, I go with big distributors like Arrow, Avnet, and Future Electronics. These companies have local offices (though for Las Vegas, “local” tends to mean in Phoenix, Arizona or somewhere in Southern California) that have salespeople that I can talk to that can help me get lower prices. Future Electronics, being a Canadian company, is the exception that I mentioned earlier; but, working with them is basically the same as working with Avnet or Arrow since they have the local staff and things like a distribution center near Memphis, Tennessee (here is a video about it).
Back when I was a student and before I started Pololu, I thought electronics distributors just bought components from manufacturers and then sold them with some markup on their cost. I think some of that did happen and still happens today, but it’s less common and less practical now because there are so many different, specialized components that they cannot all just be sitting in stock somewhere, waiting for the unlikely scenario that someone would come along and buy them. When I buy from distributors like Digi-Key and Mouser, I am almost always buying something they have in stock; when I buy from Arrow and Future, it’s almost never something they have in stock (or it’s something they have in stock because they had good reason to expect me to order).
But there was a much bigger misconception in my naive view than just the timing of when a distributor bought some parts relative to when the end customer ordered them. The major thing I learned in the early years of running Pololu is that component manufacturers charge the distributors different prices for the same components, based on the end customer! In some ways, that’s frustrating because it means I have to do a lot more work to get a good price. I have to convince each distributor and each manufacturer to give me a good price, and sometimes I have to do that with each component. It can also be a good thing in that if I do establish a good relationship with some manufacturer and distributor, the hassle per part goes down over time as they get to know our business and what factors are important to us. And some of them probably do give me a globally competitive price sometimes.
The difficulty, and what prompted me to write this post, is with those manufacturers that do not. (That or counterfeits, which is sometimes the explanation or excuse I get back from manufacturer’s representatives.) Well, the really specific thing that led me to write this post is the AVR Freaks thread about my last post, in which I introduced our new A-Star 328PB Micro:
AVR Freaks post about A-Star 328PB Micro announcement, the motivation for this blog post.
The poster mentions a board similar to Pololu’s with an ATmega328P for $1.70 (and wonders about the chip authenticity). I went to look at the part price on Digi-Key, and this is what I saw:
Screenshot of Digi-Key price for ATmega328P with prices highlighted, retrieved 25 February 2018.
I have highlighted the relevant fields, which are the lowest prices: $1.77 each at 100 pieces, and alternately, on a reel of 2000 pieces for $1.83. 100 pieces is kind of low for a highest price break. A long time ago, I tried out the higher volume quote request option that is suggested under the 100-piece price, and after some back-and-forth, Digi-Key gave me an official volume quote for higher quantities with the exact same price as at the 100-piece break:
Excerpt from quantity price quote from Digi-Key (from around 2010)
I tried it a few more times with some other parts, but it was basically the same result every time, so I have not tried special pricing with Digi-Key since. That was close to ten years ago, so maybe it’s different now, and maybe it would be different if I had asked for 10k or 100k pieces.
Back to the original point: you can get the whole assembled board from China, in single-piece quantities, for less than the price of just the one component, even in volume quantities. And this Atmel/Microchip example is far from atypical or anywhere near the worst case. Here is an AliExpress listing for a small development board for the STM32F103C8T6 microcontroller:
AliExpress listing for an STM32F103 development board for $1.79 including shipping, captured 25 February 2018.
In this case, Digi-Key has prices listed for higher quantities than in the earlier example, and the 2400-piece reel has the best unit price of $3.04:
Screenshot of Digi-Key price for STM32F103C8T6, retrieved 25 February 2018.
I have been working on pricing for similar STM32 parts, and even at twenty thousand pieces (not through Digi-Key), they are not getting to the prices of just one of these complete boards, with double-sided assembly and a bunch of additional components (and free shipping!—though that is some separate scam that I do not blame the electronics component manufacturers and distributors for). Something clearly doesn’t add up, right?
As I mentioned earlier, some manufacturers will say the parts in the cheap boards from China are counterfeits. I believe that is the explanation in some cases, and we have our share of frustrations with knock-offs and counterfeits of our own products. But I had one experience around five years ago that makes me very skeptical that that is anywhere near the whole story. One of our more successful early products, at least by number of units sold, was a basic carrier for Allegro’s A4988 stepper motor driver. I remember being frustrated because Allegro seemed to have some deal in place with Digi-Key that gave them the best prices (and unlike the examples above, Digi-Key did have volume breaks up to many tens of thousands on that part). Digi-Key has been getting better on prices, but still, paying “Digi-Key prices” seemed like an insult when I was buying tens of thousands of these parts at a time.
It became more of a problem when the knock-offs of our boards started appearing on eBay and other sites for basically the same prices as just our component costs. I kept trying to get my suppliers to help me with my prices until I got the parts from Asia via Future Electronics. They assured me these were genuine parts through their global partners or subsidiaries, and they could do that for me because they were not authorized distributors for Allegro in the United States. So, that alone was a good indication that these parts were out there, through reputable sources, at lower prices than I could get in the US. But the conclusion to this story gets better: someone who could do something about it at Allegro finally got word that I was getting these parts elsewhere (they noticed the sales abruptly went away, and they wanted to see my invoices from other vendors) and reduced my authorized price, through Arrow, to almost half of what it had been.
This was over the course of maybe two years, and while it did help and we lowered our prices, I believe we missed out on a lot of potential sales because it took so long to get the prices down. The sad thing is that there are probably many more missed opportunities, not even just for Pololu, because of how components get priced in the US. The manufacturers seem more willing to cut prices after demand is proven and they start losing sales rather than up front to make the sales happen in the first place. And to be clear, I am not talking about small quantities like broken reels and cut tape that require extra handling and processing. I also understand that these modern 32-bit microcontrollers like the STM32 are such amazing achievements that it seems really unappreciative to complain about one costing $2. It’s just that when the same parts are costing one dollar somewhere else, we need to figure out how to get that price if we want to be globally competitive with our products.
Since I know many of you are also interested in open-source hardware, I should mention the ramifications component pricing has for openness with our designs. One of the factors that goes into how much information we release is how good I think our component price is. It’s easier to share key components that we use if I think we can keep making our products competitively.
Back to some of the comments that led me to start writing on this topic. I hope I have shown you a different kind of behind-the-scenes view than just the machines that go into making our products. Some of that “twice as expensive as a similar board from Ali / Ebay” goes all the way down to the basic component level. I hope you can see that I am working on addressing that. I would be interested in what other small manufacturers in America (and in other countries besides China) do. Should I just start sourcing more components from China? Should I be using smaller distributors in the US? (I am skeptical that would make a big difference because of my understanding that manufacturers are basically setting the prices). Or is there something else I’m completely missing? I know some of you who read my posts work for the electronics manufacturers and distributors; can you help push for getting better component pricing in the US? For all of you who like making electronics, wouldn’t it be nice to have the option (or for your kids to have the option) to do that without having to live in China or being limited to industries like aerospace and military where components costs might not matter as much?