Bootloader brings USB, firmware updating to the ATtiny85

[Jenna] sent in a very cool bootloader she thought people might like. It’s called Micronucleus and it turns the lowly ATtiny 85 into a chip with a USB interface capable of being upgraded via a ‘viral’ uploader program. Micronucleus weighs in at just over 2 kB, making it one of the smallest USB-compatible bootloaders currently available.

The USB support comes from V-USB, a project that puts a virtual USB port on a suite of AVR microcontrollers. With V-USB, it’s easy to turn a Tiny85 into a keyboard, custom joystick, data logger, or computer-attached LED display.

One very interesting feature of Micronucleus is the ‘viral updater’ feature. This feature takes a new piece of firmware, and writes it to a Tiny85, disabling the current bootloader. If you’re designing a project that should have a means of updating the firmware via USB instead of the usual AVR programmer, this might be the bootloader for you.

Not bad for a bootloader that emphasizes small code size. At just over 2 kB, it’s possible to use this bootloader on the similar, smaller, and somewhat cheaper ATtiny45.

USB dongle for unmodified NES controllers

This USB dongle will let you use your unmodified NES controllers on a computer. That’s because it includes the same socket you’d find on the classic console.

The image above shows the prototype. Instead of etching the copper clad board, each trace was milled by hand (presumably with a rotary tool). To the left the black square is made of several layers of electrical tape that builds the substrate up enough to fit snugly in a USB port.

An ATtiny45 running the V-USB stack has no problem reading the controller data and formatting it for use as a USB device. This is actually the second iteration of the project. The first attempt used an ATtiny44 and a free-formed circuit housed inside the controller. It worked quite well, but required alterations to the circuit board, and you needed to replace the stock connector with a USB plug. This dongle allows the controller to go unaltered so it can be used with an NES console again in the future.

Use your TV remote as an HID mouse

[Vinod’s] latest project lets him use a TV remote control as a mouse. It may not sound like much, but he did it with a minimum of hardware and packed in the maximum when it comes to features.

He’s using an ATmega8 to read the remote control signals and provide USB connectivity. With the V-USB stack he enumerates the device as an HID mouse. One note of warning, he used the PID/VID pair from the USBasp programmer project. If you use that programmer you’ll need to uninstall the drivers to get this to work (we think this is only necessary on a Windows box).

The cursor can be moved in eight directions using the number pad on the remote. The numeral five falls in the center of the directional buttons so [Vinod] mapped that to the left click, with the zero key serving as right click. He even included the scroll wheel by using the volume buttons. The firmware supports cursor acceleration. If you hold one direction the cursor will move slowly at first,then pick up speed. Fine adjustments can be made by single clicking the button. Check out his demonstration embedded after the break.

Continue reading “Use your TV remote as an HID mouse”

LED case lights reflect CPU usage

A lot of Linux users include system monitor information in their status panel so that they can see when the CPU is grinding away. [Kevin] is taking the concept one step further by changing his case lights based on CPU usage. Above you can see green, orange, and magenta, but [Kevin’s] implementation uses the full spectrum of color.

The project is based on an ATmega48. It’s running the V-USB stack and connects to one of the motherboard’s internal USB ports. This lets him easily push the CPU usage data over to the microcontroller where it is translated into color. One RGB LED has been installed behind each fan panel on the front of the case, with a white LED above and below as an accent. Pulse-width modulation via some MOSFETs lets him mix and match for just the right color. He’s powering the add-on off of the PSU rails rather than USB so that it turns off when the computer goes to standby.

Don’t miss [Kevin’s] explanation of the system, and a demo of it in action after the break.

Continue reading “LED case lights reflect CPU usage”

Learning to use the V-USB (AVR USB firmware) library

The V-USB library is a pretty handy piece of code that lets you add USB connectivity to ATtiny microcontrollers (it was previously named tinyUSB). But if you’ve ever looked into adding the library to your own projects you may have been stymied by the complexity of the code. There are many examples, but there’s a lack of a concise quick-start for the uninitiated. [Joonas Pihlajamaa] has been working to correct that shortfall with his four-part V-USB tutorial series. It’s not for the absolute newbie; you should already be comfortable working with AVR chips but that’s the only real prerequisite we can see.

He starts the series with a look into the hardware considerations. USB provides a 5V power rail but the data lines expect 3.3V logic so this must be accounted for. With the test rig built on a breadboard he moves on to pick apart the code, covering various user-defined variables that you’ll need to set based on your project’s needs. We’re going to keep this on the back burner and hopefully the Troll Sniffing Rat will get a makeover (although we must say comments have been a lot nicer as of late… keep it up!).

We’ve embedded links to all four tutorial parts after the break.

Continue reading “Learning to use the V-USB (AVR USB firmware) library”

Tiny USB business card

[Frank Zhao] put together a USB business card. It’s even got the instructions printed right on the silk screen of the PCB explaining how it should be used. He based the design around an AVR ATtiny85 microcontroller. It runs the V-USB package that handles USB identification and communication protocols. The rest of the hardware is pretty standard, the uC draws power from the 5V USB rail, with a couple of 3.6V Zener diodes to drop the two data lines down to the proper level.

Once plugged in it waits until it detects three caps lock keypresses in a row, then spews a string of its own keypresses that type out [Frank’s] contact information in a text editor window (video after the break). It’s not as reusable as the mass storage business card because [Frank] didn’t breakout the pins on controller. But we still enjoy seeing business cards that make you stand out.

This is a great project to tackle with your newly acquired AVR programming skills.

Continue reading “Tiny USB business card”

USB adapter options

[Ladyada] takes some time out of her day to explain the common options available for connecting projects through USB. You may be thinking that you already do this with an Arduino. Well, yes and no. The Arduino uses one of these options, an FTDI chip that handles the USB on one side and spits out microcontroller-friendly voltage signals on the other. This chip can be used with your projects, a topic that [Phil Burgess] covered in great detail.

In the video after the break you’ll also hear about USB to serial converters which connect to the Universal Serial Bus and output the traditional 12-20V serial signals (with the exception of cheap knockoff cables like the one from last week). These need to be stepped down to 5 volts or less using a MAX232 chip to work with your project.

Finally there’s the option of using a microcontroller running the V-USB firmware package. This is how the USBtinyISP works and I’ve used it in my own projects to build a LIRC compatible IR receiver.

Continue reading “USB adapter options”