Babygnusbuino

From SGMK-SSAM-WIKI
Revision as of 19:22, 17 December 2012 by Dusjagr (talk | contribs)
Jump to navigation Jump to search

A ridiculously small Arduino with USB interface for bootloading and/or MIDI connection, based on the gnusb / Gnusbuino project.

Really bare-bones, no protection, no FTDI chip, single-sided PCB, no holes. The USB connector is directly etched on the board, so you actually plug in the PCB itself to upload a new sketch to the Arduino.


Building

Parts List

The only parts needed are:

  • 1 Atmel Attiny85 microprocessor
  • 2 resistors 68 Ohms
  • 2 zeners 3.3V
  • 1 resistor 1k6
  • 1 capacitor 100n

Circuit Schematic


PCB

File the board so that the brackets around the DIY USB connector are just barely visible, this should give the right fit.

Most PCB material is a little too thin, so this connector wiggles a lot inside the USB port - it's best to glue some cardboard or thin aluminum to the back of the board to make it slightly thicker.

Full SMD version

Scaled 400%

File:Babygnusbuino smd.pdf

DIL version

Scaled 400%

File:Babygnusbuino dil.pdf

Programming

Source Code

The source code can be found in the SVN repository of the Gnusbuino [[1]]

Bootloader

The Bootloader is based on the USBasploader-tiny85 [[2]] - and of course on V-USB [[3]], the virtual USB driver from objective-development.

To get as small as possible, the board does not contain a ISP connector. We'd need it only once to flash the bootloader, anyway. From then on the chip can be reprogrammed directly trough USB. In order to flash the small outline smd chip, I made an adapter plate for the Gnusb-Prog (see: [[4]]) - where the chip is mounted temporarily and held in place with a paper clip:

File:Babygnusb programmer eagle.zip

File:Tiny prog smd.pdf

Avrdude issues

Unfortunately, the current ATTINY85 bootloader does not cope well with the speed at which it gets its data from avrdude, so the Arduino IDE does not work out of the box to program the Babygnusbuino. You'll have to compile a slower version of avrdude and replace the one that comes with Arduino (inside the Arduino Application).

(from my read me file:)

  • download avrdude source code here[[5]] (I was using 5.11)
  • replace the file usbasp.c with the one in variants/attiny85/avrdude patch
  • compile avrdude:
        ./configure
          make
  • replace the file /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude with the newly compiled one

see also https://github.com/embedded-creations/USBaspLoader-tiny85/issues/1

Still, I sometimes have to try uploading three times until the "broken pipe" errors go away. Still work to do on this bootloader, guys…


Precompiled Binaries

Here is a patched version of avrdude - compiled for MacOS X 10.7. Nut sure if it works with other versions.

File:Avrdude tiny85 hack.zip

Questions

  • what to do with the boards.txt file? (dusjagr)
  • where to put stuff in linux? (avrdude is here: ./arduino-1.0.1/hardware/tools/)
  • what about the reset pin, aka PB5?