V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.
To the authors knowledge this is, by far, the smallest USB bootloader for AVR ATtiny The V2.0 release is a complete rewrite of the firmware and offers significant improvements over V1.x:. Support for the entire ATtiny family instead of only ATtiny85. USB Drivers for ATtiny85 Board are very important as the driver is responsible for enabling the Arduino IDE to program the ATtiny85. It's called Digispark-Kickstarter-USB-Attiny85-Pluggable-Development-Board and consists of a board with 8pin socket, a separate attiny85, a micro-usb jack, some electronics and 4.2 + 3.1 holes. A USB Rubber Ducky is a keystroke injection tool disguised as a generic flash drive. The most prominent one being Hak5’s USB Rubber Ducky.Its general idea is to look like a normal USB flash drive while acting like a keyboard, with prerecorded key strokes, when being attached to a computer.
Features
Fully USB 1.1 compliant low-speed device, except handling of communication errors and electrical specifications.
Example projects demonstrate device and host driver implementations on Linux, Mac OS X and Windows.
Supports multiple endpoints: one control endpoint, two interrupt/bulk-in endpoints and up to 7 interrupt/bulk-out endpoints. (Note that the USB specification forbids bulk endpoints for low speed devices, but V-USB supports them to some degree.)
Transfer sizes up to 254 bytes by default, more as configuration option.
Comes with freely usable USB identifiers (Vendor-ID and Product-ID pairs).
Usb Drivers For Mac Os X
Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz.
No UART, timer, input capture unit or other special hardware is required (except one edge triggered interrupt).
Can be clocked with 12 MHz, 15 MHz, 16 MHz 18 MHz or 20 MHz crystal or from a 12.8 MHz or 16.5 MHz internal RC oscillator.
High level functionality is written in C and is well commented.
Only about 1150 to 1400 bytes code size.
You can choose the License: Open Source or commercial. Click here for details.
Hardware
This diagram shows a typical circuit for a bus powered device.
D1 and D2 are a low cost replacement for a low drop 3.3 V regulator chip, such as the LE33. Operating the AVR at higher voltages exceeds the common mode range of many USB chips. If you need to run the AVR at 5 V, add 3.6 V zener diodes at D+ and D- to limit the voltage.
For a prototyping board, please see metaboard.
Documentation Resources
Download the V-USB package containing a short description and several simple code examples.
V-USB's git repository is on github.com.
V-USB Forum. Discuss ideas or get help from other users.
V-USB Wiki is a public Wiki with lots of additional information.
There is also an excellent step by step tutorial by Code and Life.
Another third party tutorial can be found at workinprogress.ca.
Objective Development's Developer Article: Implementing USB 1.1 in Firmware
Benefits over Alternative Solutions
Why not choose a microcontroller with built-in USB hardware? There are several of these available (see http://janaxelson.com). Or combine the microcontroller of your choice with a USB chip?
Advantages over Microcontrollers with USB Hardware
Standard AVR controllers are usually easier to obtain.
Most of the controllers with USB support are only available in SMD, which is almost impossible to handle for hobbyists.
V-USB comes with a free shared Vendor- / Product-ID pair.
A good free ANSI-C compiler (GNU gcc) and a free development system for Windows (WinAVR) are available for AVR.
AVR controllers are faster than most of the controllers with integrated USB and cost less.
Stand-alone operation: Some of the USB controllers download their firmware from the host computer into RAM. They don’t work without connection to the host.
AVR controllers have on-chip EEPROM.
Advantages over separate USB Peripheral
No additional cost.
No additional hardware complexity: simpler PCB, less failures.
More freedom in the choice of USB descriptors.
V-USB comes with a free shared Vendor- / Product-ID pair.
Little hardware resources used: only two to three I/O pins.
USB chips are often hard to obtain.
Advantages over other Firmware-Only Implementations
A similar driver for the AVR series of microcontrollers is available from Igor Češko. Our USB driver has the following advantages over Igor’s driver:
All customizable code written in ANSI-C and thus easier to maintain.
Modular concept: easier to integrate into existing designs.
Slightly smaller code size in spite of high level language modules.
Faster: All encoding/decoding (USB requires NRZI coding and bit stuffing) is done in real-time, not in the main loop after storing away the raw data stream.
More endpoints, USB descriptors can be better customized.
V-USB comes with a free shared Vendor- / Product-ID pair.
The level of standards conformance is documented (description of limitations and potential problems).
Licensed under the terms of the GNU General Public License or alternatively under a commercial license.
Dick Streefland has stripped down an older version of V-USB to the basics. His code is easier to read and understand, but lacks some of the features found in V-USB:
V-USB supports up to 4 endpoints. This allows implementing devices conforming to the HID or CDC device class.
V-USB passes the tests in usb.org’s test utility.
V-USB supports many different clock rates, some even with the internal RC oscillator.
I²C Tiny USB Status: stable Repository:https://github.com/sre/i2c-tiny-usb/ Autor: sre
For the access control system and different private and space related projectssre regularly uses I²C sensors/devices. For testing purposes it helps a lot, ifthose devices can be connected to a notebook. So far he either used a VGAadapter (VGA cables contain an I²C signal to transport the display’s DDCinformation. Most of the open source linux graphic card drivers allow users toaccess the i2c bus on the adapter using standard tools). Unfortunately newerhardware no longer provides VGA adapters and/or muxes the connectors in a strangeway, so that it’s no longer easily possible to use the I²C port.
Another option is using a Bus Pirate, which supportsI²C and is connected to the notebook via USB. The Bus Pirate is not supportedby the standard kernel interfaces, though. This is not very nice forapplication development.
Fortunately the kernel supports a few USB based I²C adapters. Most of them arequite expensive in the 100€ range, but one of them requires just an ATtiny85, acrystal and a few resistors/diodes. That one is a project from Till Harbaum,who developed the adapter and provides instructions on hishomepage.
sre took that information and designed his own PCB, adding voltage regulatorsand logic level converts for 3.3V and 1.8V. So most common sensors can be connectedeasily. Also the PCB has a mini USB connector instead of the huge USB-B connector.
Attiny85 Usb Drivers For Mac Windows 7
The PCB design allows a nice sandwich-style case as visible in the graphicbelow (file for a lasercutter). The top left part can be put on top of the PCBand should have the same height as the USB connector. The bottom right partshould be put directly below the PCB and should have at least the height of thecrystal. Then the other two parts can be put at the bottom and on top of theother two parts. The result is quite stable and does not waste much space. Itshould be cut out of acryl glass or labels must be added to know the pin assignment.
Attiny85 Usb Drivers For Mac Windows 7
PCB Description
So let’s have a short look at how it works. Below is the PCB’s schematic. Itstarts with a pull-up resistor from USB- to Vcc, which tells the USB host,that we are a low-speed device. Then there are two zener-diodes on the datalines to limit the voltage to 3.3V making the device comply with the USBstandard. Next there are blocking capacitor for our ATtiny85. Then we havethe USB connector, followed by the I²C pull-up resistors on SCL and SDA.
Attiny85 Usb Drivers For Mac Drivers
In the next row the ATtiny85 and its crystal follows. Also there aretermination resistors of 68 Ohm before the USB pins. Then in the third row wecan see the logic level converter for SDA and SCL for 1.8V using a BSS138. Nextto it the MCP1755S-1802E provides the 1.8V reference, which is also availablefrom one of the PCB’s pins. Then last but not least the last row contains thelogic level converts for 3.3V and the matching voltage regulator (TS1117).
As you can see the hardware setup is pretty simple. The USB communication isimplemented in software by bitbanging the ATtiny85’s pins, that are connectedto the USB port.
Driver Support
Attiny85 Usb Drivers For Mac Os
While I’ve been told, that there are Windows and Mac OSX drivers available, Ihave not tested those parts myself. On Linux the kernel driver has beenupstreamed and most distributions have it enabled in their kernel config. As aresult it works out of the box. It can be tested by loading the i2c-dev moduleand using i2cdetect to find the right adapter (You will have to do thefollowing as root). Get the number for the i2c device labeled i2c-tiny-usband you can scan the bus for devices.
Attiny85 Usb Drivers For Mac Windows 10
If that works you can start developing in your favourite programming languageand switch to e.g. the Raspberry Pi’s native I²C interface at any point by just changing the I²C device number. Of course the adapter can also be usedto develop I²C Linux kernel drivers.