Wednesday, July 2, 2014

New Arduino Add-Ons: USB Host Shield and In-System Programmer

Official Arduino USB host shield
If you're a fan of the 'official' Italian Arduino components, their blog just announced two new items -- a USB host shield and an In-System Programmer (ISP).

The Arduino Uno comes with a USB B port, and you use a USB A-to-B cable to connect the Uno to your computer for uploading sketches to the Uno. However, to make your Arduino a USB host, you need to add a shield. There are other USB host shields for the Arduino, such as the SparkFun one for $24.95 or the Circuits@Home one for $25 (a mini one is also available for $20). The official Arduino USB host shield is available from arduino.cc for 24 euros, which is about $33 right now. I couldn't
SparkFun USB host shield
find the official shield at any of the distributors I looked at tonight, probably because it's just been released.

So why might you want to get a USB host shield? Well, the Arduino announcement has a long list of uses:

  1. HID devices: keyboards, mice, joysticks, etc.
  2. Game controllers: Sony PS3, Nintendo Wii, Xbox360.
  3. USB to serial converters: FTDI, PL-2303, ACM, as well as certain cell phones and GPS receivers.
  4. ADK-capable Android phones and tables.
  5. Digital cameras: Canon EOS, Powershot, Nikon DSLRs and P&S, as well as generic PTP.
  6. Mass storage devices: USB sticks, memory card readers, external hard drives, etc.
  7. Bluetooth dongles.
If any of those particular use cases are of interest to you, but you still aren't totally clear on what is meant by a USB host, or why and how you want to use a USB host shield, Hardware Fun has a good post going into depth about USB host shields for Arduino. Their post explains 'USB host' like this:
"...let’s first understand what is an USB Host Shield. It is a shield which provides USB Host support for Arduino...The USB protocol defines two types of devices. One is called the host (or server) and the other one is called peripheral (client). The Host device controls the peripheral device and also provides power to it. When you connect any USB device like a mouse or a keyboard to your computer, your computer acts as the host and controls (or polls) the client device (keyboard or mouse or even an Arduino). For a successful communication to happen using USB protocol, you need at least one of the device to be the host, which means that you cannot connect two keyboards together and expect them to communicate with each other...Once you have this shield, your Arduino board can act as USB Host and you can connect other USB devices like keyboard, mouse or even an Android phone..."
For lots of technical details and to gain a better understanding of the USB host shield hardware, click on over to the Circuits@Home hardware manual for their USB host shield. The Arduino blog announcement for the official shield says "it can be used with theUSB Host Library for Arduino” hosted by Oleg Mazurov and Alexei Glushchenko from circuits@home" so a lot of the info in the hardware manual will likely also be applicable to, or helpful in understanding, the official Arduino shield. There's also a reference page for the shield on the arduino.cc site.

The other official Arduino hardware release was an Arduino AVR In-System Programmer. I might do a future post with more about the ISP and programming AVR microcontrollers, but here's what the Arduino blog says about this new hardware:
"It’s a tiny AVR-ISP...useful to anyone needing more space on the Arduino board. Uploading a sketch with an external programmer can be used for three main reasons:
  • remove the bootloader and use the extra space for your sketch 

  • burn the bootloader on your Arduino, so you can recover it if you accidentally corrupt the bootloader. 

  • when you use a new ATmega microcontroller in your Arduino, and you need the bootloader in order to upload a sketch in the usual way."
If either of these items sound useful for your microcontroller projects, you might want to read a bit more about them or place an order!

**********

No comments:

Post a Comment