Pololu Blog (Page 8)
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.
All the student engineering interns we had over the summer from out-of-town colleges are headed back to school, so I get to announce the release of products they worked on over the summer. The new QTR sensors we are releasing today include the 15-channel version laid out by seventeen-year-old Chris H.
Hadouken! (2018 summer engineering intern Chris couldn’t come up with a clever pun to use for this picture of him posing with a circuit board he designed.)
You can see more about our new line of QTR reflectance sensor arrays in the first blog post I wrote about them a few weeks ago. One cool design and manufacturing aspect I did not mention then is that we designed these boards so that they could be populated at various densities. For example, that lets us make an 8-channel version with 8 mm sensor pitch on the same board that also works as a 15-channel array with 4 mm sensor pitch:
QTRX-MD-08RC Reflectance Sensor Array.
Here are some diagrams showing some of the thought that went into the soon-to-be released 31-channel version, which can also be populated to be an 8 mm pitch, 16-sensor array; a 12 mm pitch, 11-channel array; and a 20 mm pitch, 7-channel array:
With so many combinations of sensor types and output circuits, we won’t make every one of the possible arrangements a stock product, but the idea is that if you have an application where a particular sensor pitch is ideal for you, we can quickly make some for you without having to lay out new PCBs.
We expect eight channels on an 8 mm pitch to be a popular variant, so those will be stock products. We have also added the corresponding 4-channel version (using the same boards used for the full-density, 7-channel product), so this new product announcement covers twelve new stock sensor arrays:
Our introductory promotions are still going strong! Be one of the first 100 customers using coupon code QTRINTRO and snag any of these new sensors at half price! (Limit 3 per item per customer.)
We have just released our USB 2.0 Type-C Connector Breakout Board. The Type-C connector has become increasingly common on devices like smartphones and notebook computers over the past few years, and it offers a number of interesting improvements over the legacy USB A and B connectors it is supposed to replace.
One of the most noticeable features is that the connector is reversible: you can plug a Type-C cable into a receptacle with either side up, and since Type-C ports can be used for both USB hosts and USB devices, the two ends of the cable can be interchangeable too. The USB-C specification also provides for negotiation of increased power (up to 20 V and 5 A) and alternate uses of the USB interface wires.
All of this flexibility comes at a cost. The Type-C connector itself, which measures about 1 cm (0.4″) square, has 24 separate tightly-packed pins:
- 4 power pins (VBUS)
- 4 ground pins
- 4 USB 2.0 data pins (D+ and D−, each duplicated for reversibility)
- 8 USB 3.1 SuperSpeed data pins
- 2 configuration pins
- 2 auxiliary (sideband) pins
Making all the required connections for a prototype or hobby project is therefore a much more daunting task with a USB-C receptacle compared to a Type-A or Type-B connector with only 4 or 5 pins. This is where our Type-C connector breakout board comes in, exposing all the pins necessary for USB 2.0 communication along a row of 0.1″-spaced holes. (Note that the board does not break out the USB 3.1 SuperSpeed differential pairs.)
If you are designing something that uses USB-C, you also need to consider what to do with the Configuration Channel (CC) pins. These pins are used to determine the role of a port when it is connected—whether it is a USB host or device, and whether it provides or consumes power—and they are also used to configure more advanced functionality like higher-voltage power delivery and alternate modes that allow other protocols over the USB interface.
Since we expect many users of this breakout board to employ it as a USB device port, we populate the board with pull-down resistors on the CC pins that make it a straightforward replacement for a Type-B, Mini-B, or Micro-B port. If you have a different application in mind, you might want to disconnect or remove the resistors yourself, or you can contact us about customizing the termination resistors.
We are interested in hearing any feedback you might have about the USB Type-C connector in general, this board in particular, and any follow-on boards you would like to see. Are you excited about using Type-C connectors instead of Micro-B? Would you have a use for the USB 3.1 SuperSpeed pins brought out to 0.1″-spaced holes? Do you want something with an on-board configuration controller that makes it easier to set up USB Power Delivery or other advanced functionality? Please share your thoughts in the comments below.
As with all our new products this year, we are offering a special introductory promotion. You can get up to three of the new breakout boards for just $1.92 each, limited to the first 100 customers using coupon code USBCINTRO.
Today we are finally releasing our new U3V70x family of boost regulators, which are now our highest-current boost regulators. (I said “finally” because we have had the boards designed for over six months, but we just finally received the main ICs for our production builds even though I ordered them last year.) Besides supporting the most current of any of our boost regulators, we also have an adjustable version with a multi-turn trimmer potentiometer, which makes setting the output voltage to a particular value much easier than when the whole output voltage range is represented by the 250 degrees or so of a single-turn pot. The regulators operate with input voltages down to 2.9 V, and the adjustable output version can be set to an output in the range of 4.5 V to 20 V. Talking about the current on boost regulators is tricky since it’s so dependent on input and output voltages, so it’s best to just show you a few performance graphs:
For those who don’t need adjustability (that multi-turn pot is expensive!), we offer fixed-voltage versions in six standard voltages:
- U3V70F5: Fixed 5V output
- U3V70F6: Fixed 6V output
- U3V70F7: Fixed 7.5V output
- U3V70F9: Fixed 9V output
- U3V70F12: Fixed 12V output
- U3V70F15: Fixed 15V output
We can also make customized fixed versions for you with other voltages between 4.5 V and 20 V.
Comparison of the newer U3V70A boost regulator (top) to the older U3V50ALV (bottom).
It’s exciting that these new regulators are smaller than what used to be our highest-power boost regulator (the U3V50x family) despite handling more current. One way we kept the size smaller is by using only ceramic capacitors. One consequence of that is that the new regulator outputs are slightly noisier, so if that is important for your application, you might want to add some external capacitors to further smooth out the voltage. The older design also supports a higher maximum output voltage, so if you need more than 20 V, our U3V50F24 fixed 24 V and U3V50AHV adjustable 9 V to 30 V units are still our highest-power options.
As with all our new products this year, we are offering a special introductory promotion. You can get up to three of each version for just $9 (which is an especially good deal for the adjustable regulator!), limited to the first 100 customers using coupon code U3V70XINTRO.
Some of the Pololu summer 2018 student engineering interns posing with QTR HD circuit boards they designed.
Hi everyone! My name is Matthew, and I am one of nine student engineering interns working at Pololu this summer. As I was preparing to head back to MIT for my sophomore year of studying Mechanical Engineering, I was graciously inflicted with the responsibility of announcing our second wave of high-density QTR reflectance sensor arrays. These two- and four-sensor boards, along with all of the other soon-to-be-released QTR sensor arrays, were designed by us student interns. For many of us, these boards were the first we ever routed, so it’s especially exciting to see them be real products going out into the world. While I did not personally lay out any of the boards being released today, we all thoroughly cross-checked each other’s work (the first board I directly routed should be released next week).
Because of their small size, these boards have one LED brightness control pin. All boards with more than four sensors will have separate LED brightness control for odd-numbered and even-numbered LEDs.
As Jan mentioned in the first blog post introducing this line of sensors, each board is available in analog and RC configurations and with two different sensor types. This post therefore covers the release of eight new products:
- QTR-HD-02RC Reflectance Sensor Array
- QTR-HD-02A Reflectance Sensor Array
- QTRX-HD-02RC Reflectance Sensor Array
- QTRX-HD-02A Reflectance Sensor Array
- QTR-HD-04RC Reflectance Sensor Array
- QTR-HD-04A Reflectance Sensor Array
- QTRX-HD-04RC Reflectance Sensor Array
- QTRX-HD-04A Reflectance Sensor Array
We have also released an update to our QTR Arduino library for use with these new QTR sensor arrays.
As we have been doing with all our new products this year, we are offering an extra special introductory discount on these boards! The first 100 customers using coupon code QTRINTRO will get half off on up to three of each sensor.
We’ve expanded our line of Glideforce Light-Duty Linear Actuators to now include options with a 10:1 gear ratio. As you might know if you are a long time customer, we’ve carried our light-duty actuators in 20:1 and 5:1 gear ratios for many years. The 20:1 actuators have nice load capabilities, but they’re kind of slow. The 5:1 actuators are speedy, but they can’t push around the larger loads that the 20:1 actuators can. These new 10:1 actuators fall in the middle, offering a great blend of force and speed.
We carry these new actuators in stroke lengths ranging from 2–12 inches and in versions with and without feedback, bringing our total line of light-duty actuators to 28 options.
@ 12 V
@ 12 V
@ 12 V
|1.2 A –
|1.2 A –
|1.2 A –
For actuators with feedback, a built-in potentiometer is linked to the shaft position allowing for precise control of the actuator’s extension. Our line of Jrk G2 Motor Controllers with Feedback are a great solution for use with any of our linear actuators with feedback, and our most affordable option, the Jrk G2 21v3, is a great choice for use with our light-duty actuators specifically.
In separate but related news, we’ve also either created or updated Jrk settings files for all our linear actuators with feedback for use with our Jrk G2s:
- Light-duty actuators with the 5:1 gear ratio: Jrk 21v3 settings file for use with LACTxP-12V-5 (2k txt)
- Light-duty actuators with 10:1 or 20:1 gear ratios: Jrk 21v3 settings file for use with LACTxP-12V-10 or LACTxP-12V-20 (2k txt)
- Medium-duty actuators: Jrk 24v13 settings for MD linear actuators (2k txt)
- Industrial-duty actuators: Jrk 24v21 settings for ID linear actuators (2k txt)
These settings files can be opened in the Jrk configuration utility and then uploaded to your Jrk G2 motor controller. Please make sure to follow the detailed instructions on your actuator’s product page.
So what does one of these settings files do for you? The Jrks use a PID control loop to control the position of a motor based on feedback from that motor. PID stands for proportional, integral, and derivative, and for a control loop to work well, the PID coefficients must be tuned for the specific system they are being used in. The Jrk uses the coefficients for those terms along with the along with the difference between the motor’s actual position and its target position to calculate what the power to the motor should be. The details of this calculation are discussed in the Jrk’s user’s guide. Tuning the PID coefficients so your motor goes where you want it to can sometimes be difficult. The Jrk settings files provide a set of parameters that should work well for most uses of the linear actuators. Some systems might require more fine tuning, but even in those cases, the files should provide a good starting point.
I created these files by first starting with the default settings for the Jrk motor controller. I left the settings on the Motor, Errors, and Advanced tabs of the Jrk configuration utility on their defaults (with the exception of one of the files for the light-duty actuators having the motor direction reversed). On the input tab, I also left the input mode in Serial so you can control the linear actuator directly from the software. On the feedback tab, I set the feedback mode to analog voltage so the Jrk can read the potentiometer wiper of the linear actuator. To get the feedback values, I connected an actuator to the Jrk and ran the feedback setup wizard. (You might need to rerun this wizard for the specific actuator you have connected to your Jrk. The instructions on the actuators’ product pages go into more detail about this.)
Once all that was done, I configured the PID settings and worked out the PID coefficients by testing each type of actuator with the Jrks. We wanted to provide files that worked generally well across all the stroke length options for each type of actuator, so a lot of actuators were tested to come up with coefficients that worked well for all of them.
Many of the actuators used for creating Jrk settings files (can you find all 12?).
I set the proportional and derivative terms first, selecting terms that allowed the actuators to move at their highest speeds but not overshoot their target position. In general, you can get fairly good control over the actuator just using the proportional and derivative terms. In fact, if you are just testing your motor without a load, it might seem like you don’t need an integral term at all. However, there are situations where the control system can get stuck without moving all the way to its target. The controller will continue to apply power to get the actuator to the set position, but it won’t be enough to actually move the actuator. This can be fixed using the integral term of the PID loop. The error will add up over time and eventually get big enough to get things moving again. I was able to test this with the light-duty actuators using the setup below:
Testing Jrk settings with a load.
That’s one of our 20:1 light-duty actuators lifting 105 lbs (5 lbs less than its max dynamic load rating). Once I had a large enough load on the actuator, I could see that without an integral term set, the actuator would stall just short of its target position, continuing to apply power but not getting anywhere. Once the integral term was added, the Jrk was able to move it that last little bit to the target.
Unfortunately, I wasn’t able to perform the same test with our medium- and heavy-duty actuators; my makeshift testing rig couldn’t support a load high enough to produce the steady state error issue. However, I did add a little bit of an integral term to the files for those actuators anyway, making sure that doing so didn’t have an obvious negative effect on their performance.
One last note: the intro coupon for our Jrk G2 controllers still has some uses left. Add coupon code JRKG2INTRO to your cart and get up to three Jrk G2 motor controllers for 40% off!
Customer Daniel Castelli of the Allen Institute has released a Python package for interfacing with our Tic Stepper Motor Controllers. Currently, he only supports 64-bit Windows, but the source code is available and should be straightforward to extend to other operating systems. Here is example code using PyTic to control a stepper motor:
import pytic from time import sleep # - Initialization ------------------------------------------- tic = pytic.PyTic() # Connect to first available Tic Device serial number over USB serial_nums = tic.list_connected_device_serial_numbers() tic.connect_to_serial_number(serial_nums) # Load configuration file and apply settings tic.settings.load_config('path\\to\\config.yml') tic.settings.apply() # - Motion Command Sequence ---------------------------------- # Zero current motor position tic.halt_and_set_position(0) # Energize Motor tic.energize() tic.exit_safe_start() # Move to listed positions positions = [1000, 2000, 3000, 0] for p in positions: tic.set_target_position(p) while tic.variables.current_position != tic.variables.target_position: sleep(0.1) # De-energize motor and get error status tic.enter_safe_start() tic.deenergize() print(tic.variables.error_status)
The code and documentation for this package are available on GitHub.
I am excited to announce the first of a new line of reflectance sensor arrays that feature a high-density 4-mm pitch and dimmable IR emitter brightness control. In addition to versions with our familiar IR emitter/phototransistor pair modules without lenses, which we will keep calling “QTR,” we have versions with a higher-performance sensor with lenses on the IR emitter and phototransistor, which we are calling “QTRX.” These higher-performance sensors allow similar performance at a much lower IR LED current, which can really start adding up at higher channel counts. (High-brightness, “QTRXL” versions of these boards are coming soon, too.)
These new sensor arrays also feature LED brightness control that is independent of the supply voltage (which can be 2.9 V to 5.5 V) and separate controls for the odd-numbered LEDs and the even-numbered LEDs, which gives you extra options for detecting light reflected at various angles. As with our older QTR sensors, we are offering these in “A” versions with analog voltage outputs and “RC” versions that can be read with a digital I/O line on a microcontroller by first setting the line high and then releasing it and timing how long it takes for the voltage to get pulled to the logic low threshold:
Schematic diagrams of individual QTR sensor channels for A version (left) and RC version (right). This applies only to the newer QTRs with dimmable emitters.
This announcement therefore covers four total new products:
- QTR-HD-07RC Reflectance Sensor Array
- QTR-HD-07A Reflectance Sensor Array
- QTRX-HD-07RC Reflectance Sensor Array
- QTRX-HD-07A Reflectance Sensor Array
As with all our new products this year, we are offering a special introductory promotion, and this one is for half off up to three of each sensor type, limited to the first 100 customers using coupon code QTRHD07INTRO.
We are now carrying the Raspberry Pi 3 Model B+. The Raspberry Pi is a popular credit card-sized computer that can run ARM Linux distributions. The Raspberry Pi 3 Model B+ has many performance improvements over the Pi 3 Model B including a faster CPU clock speed (1.4 GHz vs 1.2 GHz), increased Ethernet throughput, and dual-band WiFi. It also supports Power over Ethernet with a Power over Ethernet HAT. Continued…
Our Jrk G2 family is growing! Today we released the Jrk G2 21v3 USB Motor Controller with Feedback, which you can think of as the baby version of the new Jrk G2 motor controllers we released a few months ago or the updated version of our original Jrk 21v3. I already wrote about the history of the Jrk motor controllers in the blog post announcing the Jrk G2 motor controllers, so for today’s announcement I just want to quickly go over how small this motor controller is and how much we packed into it.
First off, this latest controller is small! Here it is next to the original Jrk 21v3:
Comparison of the newer Jrk G2 21v3 (black PCB) with the original Jrk 21v3 (green PCB).
We managed to reduce the size by more than a third, which is quite an achievement given that connectors and mounting holes already took up a pretty good portion of the board area, and we did not want to reduce those. If you looked closely at that picture above, you probably noticed that the motor driver and microcontroller are not visible on the G2, and that’s because they’re now on the back side. Here is that back side, with a quarter for scale:
Jrk G2 21v3 USB Motor Controller with Feedback, bottom view with dimensions.
Because the Jrk G2 21v3 is based on the same foundation as our bigger controllers, you get all the same convenient configurability over USB using our software utility that is available for Windows, macOS, and Linux (if you are interested, you can read more details in this post about the Jrk G2 software).
The graph window in the Jrk G2 Configuration Utility (version 1.2.0).
The main window and the variables window in the Jrk G2 Configuration Utility (version 1.2.0).
You also get all the great features and interfaces of the Jrk G2 family:
- 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, for closed-loop speed control using pulse counting (for higher-frequency feedback) or pulse timing (for lower-frequency feedback)
- 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 (for Windows, Linux, and macOS)
- Configurable parameters include:
- PID period and PID coefficients (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
Here is a quick comparison of the different Jrk versions, including the original ones that we do not recommend for new designs:
|28 V(1)||16 V||28 V(1)||24 V(2)||34 V(3)||24 V(2)||34 V(3)|
|24 V||12 V||24 V||18 V||28 V||18 V||28 V|
|Max continuous current
(no additional cooling):
|2.5 A*||12 A||2.6 A||19 A||13 A||27 A||21 A|
|TTL serial, USB,
Analog, RC control:
|Hardware current limiting:|
|Dimensions:||1.35″ × 1.35″||1.85″ × 1.35″||1.0″ × 1.2″||1.4″ × 1.2″||1.7″ × 1.2″|
|1 Transient operation (< 500 ms) up to 40 V.
2 30 V absolute max.
3 40 V absolute max.
* Reduced from “3 A” based on newer, more stringent tests. The value now is directly comparable to the rating for the newer G2 21v3.
No new product announcement this year would be complete without our introductory special: be among the first 100 customers to use coupon code JRKG2INTRO and get up to three Jrk G2 motor controllers for 40% off. This coupon is good for the whole family, so you can use it for the 21v3 version we released today or for the larger units released earlier this year.
I am excited to share the second Pololu product for which I routed the PCB, the Dual TB9051FTG Motor Driver for Raspberry Pi. This board complements the TB9051FTG Single Brushed DC Motor Driver Carrier and the recently announced Dual TB9051FTG Motor Driver Shield for Arduino by making it easy to control two motors with a Raspberry Pi (Model B+ or newer).
The TB9051FTG can deliver a few amps across a wide operating voltage (4.5 to 28 V), which makes this expansion board ideal for controlling two small or medium size motors in your Raspberry Pi project. You can optionally connect a voltage regulator, like a D24V10F5 or D24V22F5 step down regulator, to power the Raspberry Pi with your motor power supply. The board also provides a prototyping area to help you construct clean custom circuits without the need for additional prototyping PCBs beyond the footprint of your Raspberry Pi.
The Dual TB9051FTG Motor Driver for Raspberry Pi is available in two versions:
- a partial kit, with connectors included but not soldered in
- fully assembled, with the female header and terminal blocks soldered to the board
The board adheres to the Raspberry Pi HAT (Hardware Attached on Top) mechanical specification, although it does not conform to the full HAT specifications due to the lack of an ID EEPROM. (A footprint for adding your own EEPROM is available for applications where one would be useful.)
With the addition of this product, we now have eight Raspberry Pi motor driver expansion boards for you to choose from. To control more powerful motors, we offer various high-power motor drivers for Raspberry Pi. If you don’t need all the power provided by the TB9051FTG, consider our small and inexpensive DRV8835 Dual Motor Driver for Raspberry Pi or the dual MAX14870 motor driver expansion board (the first board I routed).
We have an introductory discount to go with this new product announcement. The first 100 customers to use coupon code RPITB9051INTRO can get up to two units for just $10.95 each. Note that this introductory offer applies only to the units without connectors soldered in. The introductory coupons for the single TB9051FTG carrier, the dual TB9051FTG Arduino shield, and some other products introduced this year are still available; you can see all the coupons available on our specials page.