You are currently viewing a selection of posts from the Pololu Blog. You can also view all the posts.
Level shifting is a common issue when interfacing multiple microcontrollers or other digital logic devices. For example, you cannot directly connect an Arduino running at 5 V to the Wixel, which runs at 3.3 V. Our Wixel Shield for Arduino contains several level-shifting circuits to help you do this.
In some cases, such as connecting a digital sensor output to your microcontroller, a simple voltage divider or transistor inverter might be good enough. However, in many cases a better solution is necessary. I²C, for example, is a common protocol that makes use of a bidirectional communication line. Luckily, a relatively simple circuit consisting of a MOSFET and two pull-up resistors can be used for general-purpose bidirectional level shifting:
|Schematic of a single bidirectional logical level shifter.|
We have used this level shifter circuit on many of our breakout boards operating at a lower voltage, such as the MinIMU-9. It works like this:
- When Lx, the lower-voltage input, is driven low, the MOSFET turns on and the zero passes through to Hx.
- When Hx, the higher-voltage input, is driven low, Lx is also driven low through the MOSFET’s body diode, at which point the MOSFET turns on.
- In all other cases, both Lx and Hx are pulled high to their respective logic supply voltages.
The circuit works for any pair of voltages (within the limitations of the MOSFET) and can be used with most common bidirectional and unidirectional digital interfaces, including I²C, SPI, and asynchronous TTL serial. You can read more about it in NXP’s application note on I²C bus level-shifting techniques.
Today we released a logic level shifter board featuring four of these bidirectional channels:
Our board can convert signals as low as 1.5 V to as high as 18 V and vice versa, so you can use it for almost any logic-level signals that you might encounter in your project. It is also, as far as we know, the smallest bidirectional logic level conversion board out there:
Note the use of a more internationally-appropriate size reference than our traditional U.S. quarter. After we put together this image, nobody believed that the board was actually that small, but we verified it several different ways to make sure.
Anyway, with this board’s small size, low cost, and versatility, we think it is something that everyone should have in their toolbox. For more information or to order, see the product page.
We are happy to welcome GarageLab as a Pololu distributor! GarageLab, located in Doral, FL, is the US branch of our Brazilian distributor Laboratório de Garagem. They carry a wide range of Arduino, microcontroller, and robotics-related products, including their very own Arduino-compatible Garagino.
For distributors in your area, you can check out our complete list of almost 200 distributors.
We recently released the A-Star 32U4 Micro, an Arduino-compatible ATmega32U4 breakout board intended to be cheap enough to go into (and stay in) almost any project. To help our customers put A-Stars in everything, we are announcing a new, limited-time offer: on any order over $100, you can get a free A-Star 32U4 Micro with coupon code FREEASTAR.
Taking advantage of this deal? What are you planning to use your A-Star for? Please tell us about your project in the comment section.
LVBots is a robotics club that has been meeting at the Pololu office in Las Vegas, Nevada for almost ten years. Our meetings are open to all ages and skill levels, and everyone is encouraged to bring their projects to share – even projects that are not capable of flying hundreds of feet into the air. Do you live in the area, or are you passing through? Check out our schedule and join us!
Today we released a general-purpose AVR microcontroller breakout board, the A-Star 32U4 Micro. But before I get to the A-Star (A* for short), I would like to mention some of our history with AVR boards.
Some of our history with AVR boards
|Original Orangutan Robot Controller (back view) from 2004.|
It has been almost ten years since we introduced our Orangutan Robot Controller, which featured an AVR microcontroller, dual motor drivers, and user-friendly features like a display and buzzer. Over the years we expanded the line, making larger, more complicated Orangutans like the Orangutan SVP as well as the miniature Baby Orangutan.
I have used the Baby Orangutan in many of my own projects, because I like its simplicity and small size. Ironically, the built-in motor driver gets in the way when I want to use a newer motor driver such as the DRV8835 in a project, since valuable PWM pins are unavailable. So I have built my more recent robots using minimal microcontroller breakout boards without motor drivers, such as Arduinos and the Wixel. (I posted about my latest such project last week.)
Our focus has been on boards that include motor drivers, and we have not had a really simple microcontroller board for people who don’t want the motor driver. Even though there are far more powerful controllers available, 8-bit AVR microcontrollers continue to be popular in the community, and the basic AVR breakout board is something we have wanted to make for a long time.
|Original Baby Orangutan robot controller from 2005 (left) next to A-Star 32U4 Micro boards.|
Introducing the A-Star 32U4 Micro
That is why I am excited today to announce the A-Star 32U4 Micro, a Pololu breakout board for Atmel’s ATmega32U4 AVR microcontroller:
|A-Star 32U4 Micro pinout diagram.|
Compared to the popular ATmega328P microcontroller that we used on several Orangutan models, the ATmega32U4 is a newer processor with features like more analog inputs, more PWM outputs, and, most importantly, USB support. The USB connection, which we have broken out to a Micro-B connector, makes programming easy and enables interesting projects involving connections to a PC.
Also, since the ATmega32U4 is used on the Arduino Leonardo, Arduino Micro, and many other breakout boards, there is a large community with experience using the microcontroller. To support this community, we are shipping the A* with an Arduino-compatible bootloader and have followed Arduino conventions including pin numbering and LED connections.
Since we wanted to make a minimal breakout board, we decided to make it as small as we could, hoping that it would be small and cheap enough to go into (and stay in) almost any project. The result is that the A-Star 32U4 Micro is, as far as we know, the smallest ATmega32U4 breakout board available. It is even smaller than some AVR boards with less powerful microcontrollers that implement USB support in software and have only a few general-purpose I/O lines available.
|The Pololu A-Star 32U4 Micro is about half the size of an Arduino Micro.|
Now that we have reached a reasonable extreme on the minimal end, we intend to expand back toward more integrated features, eventually replacing our older Orangutan robot controllers with versions offering more modern power handling and perhaps other features like inertial measurement sensors. What would you like to see in an integrated robotics or automation controller? Did we leave out too much on the A-Star 32U4 Micro? Please let us know in the comment section.
For more information, see the A-Star 32U4 Micro product page.
This post is about my first-place entry in the 2014 LVBots Dead Reckoning Competition, a 150 mm round robot named paul-dead-reckoning2.88ec5df. I designed this robot to be similar to the 3pi, but larger, to leave plenty of room for wiring and sensor mounting. The central controller is an Arduino Leonardo, and (unlike the 3pi), the motors are equipped with quadrature encoders. Continued…
This week we made higher-resolution pictures available throughout the Pololu website. When we overhauled our website back in 2007, 1080p displays were almost unheard of, and we decided to show our pictures at a maximum width of 600 pixels so that they would fit on everyone’s screen. Now, about a quarter of our web visitors have displays that are 1080p or better, and 600 pixels is looking disappointingly small.
It turns out that even though we were not displaying them, we already had many high-resolution pictures in our database. So, just changing the code allows some old pages to get a lot better! For example, this picture of our QTR-8A Reflectance Sensor Array was originally uploaded as a 1000-pixel-wide image – now you can zoom in and try to read the resistor values:
Screenshots were particularly disappointing before, since they are naturally high-resolution. Here is an example, an oscilloscope trace of some LC Voltage Spikes. Click the picture for the full, 1024-pixel-wide image. Note: the image gets resized to fit in the popup window, so you might have to click one more time to zoom in all the way.
We will be gradually adding new higher-resolution pictures, but are there any that you would like us to redo as soon as possible? Any additional views, like the bottom of a board, that you think we are missing? Please post a comment to let us know.
We are excited to welcome several new distributors that have joined Pololu over the past few months!
To start with, we have gained two new distributors in the United States. We have been following Adafruit Industries (New York, NY) for a long time – I remember receiving a SpokePOV kit as a birthday present back in 2007 – so we are particularly excited that they will now be selling some of our products. They are starting with the Zumo, which they featured in a recent new product video. We will also be distributing some of their products, such as the Adafruit Data Logging Shield for Arduino. Is there anything from Adafruit that you would like to see at Pololu? Please let us know in the comment section.
Anibit Technology (Cary, NC) is another new US distributor, founded in 2013 by engineer Jon Wolfe, who is marketing his own designs along with parts from Pololu and Adafruit. We are looking forward to seeing what else he will create!
Next, MiniRobot (Azcapotzalco, Mexico City, Mexico), joins a number of other Mexican distributors. They carry a large selection of parts, including many Pololu items, as well as Arduinos, components, and prototyping supplies.
Continuing south, we have a new distributor in Viña del Mar, Chile: Zambeca. In addition to carrying a number of Arduino, Lilypad, and robotics-related products, they have been posting some interesting-looking project videos on their blog (in Spanish). We have one other distributor in Chile, MCI Ltd – Olimex Chile, who has been with us since 2009.
We now have a distributor in China, ALSRobotBase, located in Harbin, Heilongjiang province. They have a whole “Pololu” category and are also offering to help customers in China with special orders.
For distributors in your area, you can check out our complete list of almost 200 distributors.
Here at Pololu we love USB and put a USB port on most of the microcontroller boards that we make. One of the lovable things about USB is that it provides a convenient power supply, but making good use of USB power presents a board design challenge: many of our products can be powered from either USB or an external source (e.g. batteries) and require a circuit to select between the two power sources. We call this circuit a power multiplexer, or just power mux.
A simple power mux like the one we use on the Wixel consists of a pair of diodes with a MOSFET that automatically disconnects the less-preferred power source. You can see another instance of the diode mux in the Orangutan SVP schematics (99k pdf). This works, but the forward voltage drop of the diodes can cause the output of the mux to be too low to power 5 V devices.
In the maker community, 5 V is very popular since it is the voltage standard used by numerous devices from Arduinos to Sharp Distance Sensors. Unfortunately for us, 5 V is not important for modern consumer devices like mobile phones, which operate at much lower voltages, so there is not much reason for semiconductor manufacturers to build the kind of devices that we need for good 5 V power multiplexers.
The USB power mux on many Arduinos uses a MOSFET, and does not suffer from the forward voltage drop problem, but it allows current to flow into the USB port in some situations, a potentially dangerous violation of the USB specifications.
So we were excited to find the FPF1320, a chip from Fairchild that implements a better MOSFET-based power mux circuit. The FPF1320 switches up to 1.5 A of current at 1.5 V to 5.5 V with an insignificant voltage drop, and it blocks reverse current into either of the sources. This chip seems like a great solution for USB power and other power-switching situations. Its tiny size, however, makes it inaccessible to most hobbyists:
|Three FPF1320 BGA parts (two with solder balls facing up) among grains of rice and components in 0603, 1206, and SOT-23 packages.|
That’s where we come in! We have made the FPF1320 available on a carrier board that breaks out all of its lines onto breadboard compatible pins and implements a minimal circuit to support automatic power switching. Our carrier board also breaks out a USB Micro-B connector to support USB power-switching applications. This diagram shows how the carrier would be used in a typical USB application:
|Typical connection diagram for using the FPF1320 power multiplexer carrier with USB as the preferred supply.|
Power multiplexers are useful for more than just USB. For example, many devices can be powered by both batteries and an external power jack, with external power preferred when it is available. Our FPF1320 carrier can be connected to two non-USB power supplies:
|Typical connection diagram for using the FPF1320 power multiplexer carrier without USB.|
Building a good power mux is a challenge, and the FPF1320 is not a perfect solution. One frustrating thing about it is that it is disabled (powered off) by default, and enabling it required us to build an additional power mux into the circuit! As you can see in the schematic below, we used the double-diode technique to drive the EN line high:
The diodes, unfortunately, take up more board space than the FPF1320 itself.
While typical applications involve USB and 5 V, our carrier is designed to work over the full range of input voltages supported by the FPF1320; therefore, extra consideration might be required to ensure glitch-free transitions between power sources. Specifically, we designed it to “prefer” one of the power supplies whenever it is present. The board will allow the preferred supply (and hence the output) to drop to 1.5 V or lower before switching, even if a better alternate source is available. Unfortunately, this guarantees that the voltage will always drop to below 1.5 V when switching from the preferred to the alternate source. The chip is capable of a seamless transition, and a more sophisticated application might involve monitoring the levels of both input voltages and switching in an intelligent way. You can also adjust the behavior to match typical applications using a few additional resistors or other components. Our carrier brings out the SEL line to make these kinds of modifications possible in your application.
For more information, see the FPF1320 Power Multiplexer Carrier product page.
We saw this robotic ping-pong ball collector by Will Jessop on the Raspberry Pi blog a few days ago. The robot uses the Pololu 30T Track Set, a Raspberry Pi, and a lot of custom electrical and 3d-printed mechanical parts.
Apparently, Will plans to put his robot into service at the office of his employer, 37signals. This is exciting for us at Pololu because 37signals is the originator and a major sponsor of the Ruby on Rails web framework, on which our website is built. And although we did not attend this year’s RubyConf, we are proud that some of our parts, as shown in the video above, made an appearance.
You can find detailed build information in Will’s ping-pong robot blog posts.