Introduction: ATtiny V-USB Project Board

CONCEPT

The Paperduino Tiny is a great little project. However I wanted to create something a little more robust, with a small prototyping project area, using a custom PCB of 60mm x 40mm in size.

This is the result.

Step 1: Schematic

Schematic for the custom PCB generated in Fritzing

Step 2: PARTS LIST

Table of parts and unit costs as of this time of writing. Most prices represent a unit cost calculated for a bulk purchase of items.

Description, No. Required, Source, Unit Cost, Total Unit Cost

  1. Custom PCB, 1 , PCBWay , $4.00 each , $4.00
  2. (when 10 units are produced, unit price drops when more boards are ordered for production)
  3. Atmel ATtiny85-20PU, 1 , Amazon , $2.74 each , $2.74 (a little expensive at the moment, not sure why, I have purchased them for around $1 in the past)
  4. 8-pin ic socket, 1 , Amazon , $0.08 each, $0.08
  5. 4-pin Male Header(1 x 40 pin 2.54mm pitch single row pin header) ,2(1 40-pin header) , Amazon , $0.30 each , $0.30
  6. USB B Female connector , 1 , Amazon , $0.38 each , $0.38
  7. 4-pin Female Header (1 x 40 pin 2.54mm pitch single row pin header), 2 (1 40 pin header) , Amazon , $0.21 each , $0.21
  8. 8-pin Female Header , 1 (same as above)
  9. 10μF 25V electrolytic capacitor, 1 Amazon , $0.04 each , $0.04
  10. 0.1μF ceramic capacitor, 1 , Amazon , $0.06 , $0.06
  11. 3V6 , 0.5 Watt zener diode, 2 , Amazon , $0.07 each , $0.14
  12. 1N4148 diode, 1 , Amazon , $0.06 each , $0.06
  13. 22Ω , ¼ Watt resistor, 2 , Amazon , $0.05 each , $0.10
  14. 1KΩ, ¼ Watt resistor, 3 ,Amazon , $0.05 each , $0.10
  15. LED (5mm), 2 , Amazon , $0.04 each , $0.08
  16. small tactile switch( 6 x 6 x5mm 4 pin), 1 ,Amazon , $0.06 each , $0.06
  17. small switch (2 Position SPDT 1P2T 3 Pin PCB Panel Mini Vertical Slide Switch), 1 ,Amazon , $0.06 each , $0.06

Total Cost for components in the Project $8.21

Also we will need a programmer, in order to flash the Micronuleus to the ATtiny85 microcontroller. I used this, but any method is acceptable, (e.g. Arduino as ISP).

Step 3: The PCB

I wanted the custom PCB to breakout all of the chip pins to headers both male and female, I also wanted the pins to be in-order left to right ;PB0, PB1, PB2, PB3, PB4, PB5, GND and VCC. I used Fritzing to draw out the schematic using the Paperduino Tiny as the template, but keeping the board dimensions to 60mm x 40mm. when I was happy with the board layout, I exported the project as Gerber files to a folder. This I then zipped and tested using GerbLook, confirming that the files were readable I then proceeded to order my custom PCB from PCBWay (10 pcbs for $13 + S/H $28). The boards were in my hands four days later.

The circuit may also be laid down onto prototyping board, by just following the details of the schematic. I like the 60mm x 40mm size boards available here. This will cut the cost of the assembled project quite significantly (total cost of the project would then be around $4).

Step 4: Assembly

There are relatively few components, so assembly is really just a logical progression. Solder in the smaller components first, then the headers and IC socket. Finally complete the assembly by soldering in the USB connector. The headers around the ATtiny85 chip may be placed as desired, in fact, placing male headers under the board will allow the PCB to be placed onto a solderless breadboard. This will allow the pcb to supply power from the usb and pin connection to the breadboard project.

Step 5: Micronucleus

The project uses the Micronucleus bootloader available on Github.

Step 6: Bootloader

Install the bootloader onto the ATtiny85 microcontroller. Just follow the directions laid down in the Micronuleus readme file. Then flash the hex file using avrdude, or your favorite software IDE (e.g Extreme Burner or Avrdudess).

  1. Download the Micronucleus zip file from this link, to a working folder
  2. Unzip the file.
  3. Find the HEX file t85_default.hex in the folder micronucleus/firmware/releases.
  4. Now flash this to your ATtiny85 (e.g. USBasp or Extreme Burner)

Consider this excellent instructable which describes the installation of the micronucleus bootloader and the subsequent upgrade of the bootloader. These steps are exactly what are required to install the bootloader onto this device.

Step 7: ARDUINO 1.6.x IDE

The Micronucleus will work with the Arduino IDE. Follow this instructable in order to add the Micronucleus support to the Arduino IDE.

Step 8: IT’S ALIVE

Compile and flash the blink sketch to the board, don’t forget to change the pin number from 13 to 1. When the system prompts, press RESET. The Start LED should begin blinking.

  1. In the Arduino IDE select : Board : Digispark(Default-16.5mhz)
  2. Select Programmer "Micronucleus"
  3. Load Blink from the example sketches
  4. Change all references to pin 13 to 1
  5. Click the compile and upload icon, when the "waiting ... Plug in device now" prompt appears
  6. Press the Reset button on the ATtiny85 device
  7. The Start LED should now begin blinking

Blink Sketch

/*  Blink  

  Turns on an LED on for one second, then off for one second, repeatedly.  

  Most Arduinos have an on-board LED you can control. 
  On the Uno and  Leonardo, it is attached to digital pin 13. If you're unsure what  pin the on-board LED is connected to on your Arduino model, check  the documentation at <a href="http://www.arduino.cc" rel="nofollow"> <a href="http://www.arduino.cc" rel="nofollow"> <a href="http://www.arduino.cc"> http://www.arduino.cc </a> </a> </a>  This example code is in the public domain.  modified 8 May 2014  by Scott Fitzgerald<br>  

  Modified for use with the ATtiny85 project board (January 2016)
  Pin change to 1.
 */

// the setup function runs once when you press reset or power the board

void setup() {  // initialize digital pin 1 as an output. 
 pinMode(1, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {  digitalWrite(1, HIGH);    // turn the LED on (HIGH is the voltage level)  

 delay(1000);              // wait for a second  

 digitalWrite(1, LOW);     // turn the LED off by making the voltage LOW  

 delay(1000);              // wait for a second

}

Step 9: Try Some Other Things

The device will now function with a number of the example Arduino sketches. The example pictured shows a Revision 1 board attached to an 8x8 led matrix.

Step 10: CONCEPT STAGES

Evolution of the project board from the original Paperduino Tiny through two custom PCB designs

Step 11: CONCLUSIONS

The integration of Micronucleus with the Arduino IDE is really fantastic, it just works. The whole Micronucleus team have done a really wonderful job. This creation collects existing projects together, and attempts to make them functional as one device. The project was successful.

Step 12: FURTHER DEVELOPMENT

Currently I am trying to make the nRF24L01+ work with the board using the 3 pin concept developed by nerdRalph, and now contained in the examples distributed with the RF24 libraries. I have replaced the red led with a 3V6 zener diode. However at the moment I have not been able to communicate with another node, although the radio does appear to be happily pinging away, denoted by the pulsing Start LED. Perhaps an item for another time if I get it to work.

Step 13: PROJECT LINKS

Documentation

Micronucleus, https://github.com/micronucleus/micronucleus

ATtiny85 USB Boot Loader: Overview, http://www.embedded-creations.com/projects/attiny...

USBasp, http://www.fischl.de/usbasp/

Paperduino Tiny, http://paperduino.eu/doku.php



Files

Gerber W09633AS4 (the attached zip file)

Before and After Contest 2016

Participated in the
Before and After Contest 2016