ISPnub - Stand-alone AVR programmer module
Like it? You can support via PayPal:
The programmer uses a firmware-only USB driver, no special USB controller is needed. USBasp is a low-cost programmer for AVR microcontrollers. It uses a pure software implementation of the USB communication protocol and it can be easily used with laptops. Works under multiple platforms. Linux, Mac OS X and Windows are tested. Support for Windows, Mac OS X and Linux (will work on. These AVR programmers are based on Thomas Fischl's USBasp design and connect to your computer's USB port. Not only are they quite compact (70x20mm), but the design is really elegant. The USB interface is achieved by using an atmega8 processor and the rest is done in firmware. The driver will work on both 32 and 64 bit platforms. On Linux And Mac OS X no kernel driver is required, just use AVRdude and specify the correct port. The programmer will work with a wide variety of Atmel AVR microcontrollers including the Atmega8a and Atmega168a.
Features
- Works under multiple platforms. Linux, Mac OS X and Windows are tested.
- No special controllers or smd components are needed.
- Programming speed is up to 5kBytes/sec.
- SCK option to support targets with low clock speed (< 1,5MHz).
Download
Firmware and circuit
The following packages include circuit and firmware.usbasp.2011-05-28.tar.gz (519 kB) TPI support, supports programmers with ATMega88 and ATMega8.
usbasp.2009-02-28.tar.gz (260 kB)
usbasp.2007-10-23.tar.gz (172 kB)
usbasp.2007-07-23.tar.gz (176 kB)
usbasp.2006-12-29.tar.gz (118 kB) Supports programmers with ATMega48 and ATMega8.
usbasp.2006-09-16.tar.gz (116 kB) New VID/PID!
usbasp.2005-11-14.tar.gz (175 kB)
usbasp.2005-07-03.tar.gz (166 kB)
usbasp.2005-04-21.tar.gz (169 kB)
Please refer to Readme.txt for details on building, installing and using USBasp.
Drivers
On Linux and MacOS X no kernel driver is needed. Windows requires a driver for USBasp. Please use this driver installation tool for Windows (see also: successful setup on Windows 10):Zadig - USB driver installation made easy
Software
- AVRDUDE supports USBasp since version 5.2.
- BASCOM-AVR supports USBasp since version 1.11.9.6.
- Khazama AVR Programmer is a Windows XP/Vista GUI application for USBasp and avrdude.
- eXtreme Burner - AVR is a Windows GUI Software for USBasp based USB AVR programmers.
Hardware
Lc Technology Usbasp V2.0 Driver
Schematic
Partlist
Partnumber | Value | Reichelt No |
---|---|---|
C1 | 4,7u | RAD 4,7/35 |
C2 | 100n | X7R-5 100N |
C3, C4 | 22p | KERKO 22P |
D1, D2 | 3V6 zener | ZF 3,6 |
CON1 | USB-B | USB BW |
CON2 | 10pol | WSL 10W |
IC1 | ATmega8-16 | ATMEGA 8-16 (not programmed!) |
JP1, JP2 | 2pol 2,54mm | SL 1X36G 2,54 |
LED1 | 3mm LED green | LED 3MM 2MA GN |
LED2 | 3mm LED red | LED 3MM 2MA RT |
Q1 | 12Mhz | 12,0000-HC49U-S |
R1, R2 | 68 | 1/4W 68 |
R3 | 2,2k | 1/4W 2,2k |
R4, R5, R6, R7 | 270 | 1/4W 270 |
R8 | 10k | 1/4W 10k |
R9, R10 | 1k | 1/4W 1k |
M1, M2 | Jumper | JUMPER 2,54GL SW |
M3 | Socket 28S | GS 28-S |
M4 | Case | TEKO 10007 |
M5 | PCB | - |
User PCB layouts
Here is a list of tested PCB layouts. If you have designed your own PCB, please let me know.usbasp_single_side.t3001.zip by Thomas Fischl Single-Side PCB, TARGET 3001! layout file Size: 90x40 mm (optimized for case Hammond 1591ATBU) | |
lv_usbasp.tar.gz by Pawel Szramowski (11/2007) With Low-voltage front-end. Single-Side PCB, EAGLE layout files, some SMD components | |
by Bernhard Walle Double-Side PCB, EAGLE layout files, part list with order numbers for Reichelt.de and Conrad.de Size: optimized for case Hammond 1591ATBU | |
http://thomaspfeifer.net/atmel_usb_programmer.htm by Thomas Pfeifer Single-Side PCB, PDF layout files, SMD components | |
by Tomasz Ostrowski Single-Side PCB, PDF and EPS layout files, only four 0805 SMD parts, rest discrete components | |
USBasp_CH.zip by Christian Heigemeyr Single-Side PCB, with some SMD 0805 components, PDF-files With additional buttons for reset and disconnection of the target | |
USBasp.sch, USBasp.pcb ComponentSide.pdf, TopSide.pdf, Schematics.pdf by Zhurov Pavel Single-Side PCB, P-CAD 2002 format and PDF files Crosspiece TXD and RXD are added for the ISP connector | |
usbasp_gr.rar by J.A. de Groot The board is single sided (EAGLE format), measures 3 by 8 cm and uses only regular components. | |
usbasb_mg.zip by Matthias Görner Single-Side PCB, eagle-format, with PS/PDF-files integrated sockets for target chips ATmega8 and ATmega32 | |
Tarball with layout by Hannes Östlund Doubleside-Side PCB, SMD components, very small | |
by Sergiy Bogdancev (01/2010) 3.3V version, ATMega48 only. Single-side PCB, ExpressPCB layout format + socket board for varies AVRs. Without future serial interface, chip initially must be programmed with another programmer. | |
Eaglefiles (sch/brd) and CAD case design (dxf) by Hans Hafner, HTL Mössingerstrasse-Klagenfurt, Österreich, hans.hafner (at) htl-klu (dot) at (01/2010) CNC-milled case (DXF file available), Eagle layout, only a few SMD parts | |
Different USBasp versions: Easy to built non-smd, smd version and a very small USBasp by Sven Hedin (01/2011) Eagle files available. | |
USB Key AVR Programmer by Fabio Baltieri (09/2011) Very small USB key like dimensions. SMD parts. | |
AVR ISP Programmer by Jaroslav Vadel (04/2012) Small programmer. SMD parts. | |
Target project and PDFs (layout/schematics) by Marius Schäfer (09/2013) | |
tinyUSBboard with USBasp-compatible firmware by Stephan Bärwolf (04/2014) | |
USBasp on breadboard with socket for controller daughter boards. by Fabian Hummel (11/2018) | |
Tjaart van Aswegen designed an SMD board: DIP TRACE and GERBER files. by Tjaart van Aswegen (09/2019) | |
Feature rich (e.g. different voltage levels, integrated USB to serial converter, USB-C connector) USBasp compatible design. AVR Programmer Github project. by Brian Pepin (12/2019) | |
USBasp with ZIF socket and through hole components. by Bruno (04/2020) | |
USBasp board with additional 6pin header and selectable target supply (3.3V/off/5.0V). by Marty E. (10/2020) | |
John included a 40 pin universal socket which takes 8, 14, 20 and 28 pin devices. He also added a versatile crystal oscillator with outputs of 1, 2, 4, 8 and 16 Mhz to clock the chips. There is also the standard 6pin ICSP connector and a user led connected to the MOSI pin. by John P. (11/2020) |
Links
http://www.obdev.at/products/avrusb/ Firmware-only AVR USB driverhttp://libusb.sourceforge.net/ libusb
http://libusb-win32.sourceforge.net/ LibUsb-Win32
http://www.nongnu.org/avrdude/ AVRDUDE - AVR Downloader/UploaDEr
The following instructions are from early 2007and are pretty outdated by now. They are still here for reference, butthey are not maintained anymore and very likely won't work with recentversions of MacOS anymore.
After having developed software for the AVR under Windows andLinux the only major plattform missing was MacOS X. Since werecently got a Mini Mac in our home office i decided to builda working development chain for MacOS X as well.
This page will tell you all the Mac specific stuff.It will not cover the basics of AVR programming. Pleaselook e.g. here,here or just ask google.
A simple AVR development chain usually consists of the following parts:
- A compiler toolchain,
- a hardware programming interface with
- matching programming software and
- a serial interface for debugging with
- a terminal program.
The compiler toolchain
If you want a powerful, free and portable compiler for the AVRyou'll end up with gcc. Fortunately, gcc is supporting the AVR cpu forquite some time now and e.g. the WinAVR toolchain for AVRdevelopment under windows is based on this compiler. Many people havealready ported these compilers to MacOS X incl. the finkproject and others.Unfortunately i had either trouble getting some parts to installproperly (fink didn't offer to install all the required libs) or thecompilers were just outdated versions and a long time ago updated tothe latest gcc version. I therefore tried my install_avr_gcc.sh script that i amusing to achieve the same under linux. This script has the advantageof being easily updated to use the latest compiler. Furthermore itinstalls the entire toolchain into /usr/local/avr which keepsthe setup seperated and you can easily remove everything for yoursystem without a trace just by deleting the entire tree under/usr/local/avr.
In order to have the script run successfully you'll needto have some applications installed on your system. Firstof all this is the XCode developmentsuite. This is necessary since the installation scriptneeds the gcc that comes with XCode to build the mac portof the avr-gcc. Furthermore the wget, bisonand flex tools are required to build the toolchain.You can get these three from the fink project as well.
Once you have all this set up, just run install_avr_gcc.sh from the command line. The script willfirst download all source code required and then start to buildeverything. You can now take a break as this will take some time.
Once the script is done, your new compiler is installed. Type/usr/local/avr/bin/avr-gcc to test-run it.
A demo program
A simple demo application (led-blink.tgz) is available to test your setup. It was meant to be used with a Atmega8 CPU. Just untar the archive and type makeblinky.hex to compile it.
The hardware programmer
Most cheap AVR programmers are little more than a cable that directly attaches to a PCsprinter port. Unfortunately todays Macs don't come with thenecessary parallel printer port and a standardUSB-to-printer-converter cable only works with printers but not withthis kind of adapter cables.
There are commercial USB solutions for this problem, but these areusually quite expensive. Luckily Thomas Fischl has developed his usbasp, a cheap do it yourselfUSB programmer that works under windows, linux and under MacOS X.
The programming software
Usbasp comes with patches for avrdude. You'll need the avrdude sourcecode. Then apply the patches from usbasp. Recent versions ofavrdude even include usbasp support out of the box and you might nothave to patch them at all. The usbasp enabled version of avrdude usesthe libusb to access the usbasb hardware. I therefore installed libusb formacos from the finkproject. Since the avrdude configure script didn't find libusbunder /sw/lib and /sw/include i made two symboliclinks from /sw/include/usb.h to /usr/include/usb.hand from /sw/lib/libusb.a to/usr/lib/libusb.a. Avrdude compiled fine afterwards. To testyour installation with our led-blink example just connect the usbaspto your Mac (no AVR required yet) and type make program. Ifyou end up with avrdude complaining that it can't read the fuses ofyour target everything went fine, the toolchain is working, the usbaspinterface is fine and avrdude can access it. You can now startdeveloping AVR based devices under MacOS X.
Debugging via RS232
Most AVR programs do some basic debugging output via RS232. But anRS232 interface is also lacking on the latest Macs. A standardUSB-to-RS232 converter cable will do fine and you just have to makesure that there are MacOS X drivers available for your cable. The OS-X driver forPL2303 will e.g. work for plenty of these cables. Finally you'llneed some terminal software like e.g. ZTerm tocommunicate via rs232.
Zadig Usbasp
Working in Xcode
This AVR toolchain is usually being used from the commandline by invoking make. Hereare some instructions telling you how to run everything inside Xcode.
Download the installation script
The current version was last updated by Bram Daams on 05/28/06, download it here.
Links
- Thomas Fischls usbasp interface
- AVR programming software avrdude
- A freeware terminal program named ZTerm