The programmer I use is an AVR-ISP-MK2 from Olimex.
Check that the programmer is connected:
$ system_profiler SPUSBDataType ... AVRISP mkII: Product ID: 0x2104 Vendor ID: 0x03eb (Atmel Corporation) Version: 2.00 Serial Number: 764215213308 Speed: Up to 12 Mb/sec Manufacturer: ATMEL Location ID: 0x14700000 / 19 Current Available (mA): 500 Extra Operating Current (mA): 0 To communicate with the programmer, install avrdude:
$ brew install avrdude Check that communication works:
$ avrdude -c avrispmkii -p t88 The LED on the programmer should change from orange to green light.
Make sure the XCode command-line tools are installed:
$ xcode-select --install Install AVR tools:
$ brew tap osx-cross/avr $ brew -v install avr-gcc It takes a looong time to compile.
$ brew cask install arduino Select the AVR-ISP-MK2 programmer by Tools->Programmer->AVRISPmkII.
Install arduino-tiny package by Arduino->Preferences->Settings->AdditionalBoardsManagerURLs
http://www.leonardomiliani.com/repository/package_leonardomiliani.com_index.json Replace the bundled avrdude with the Brew version:
$ cp /usr/local/Cellar/avrdude/6.3_1/bin/avrdude
~/Library/Arduino15/packages/arduino/tools/avrdude/6.0.1-arduino5/bin/avrdude
Load the new boards by Tools->Board->BoardsManager and search for attiny. Click Install, and after that the boards status should read INSTALLED.
Change the speed to 8MHz (see AVR Fuse Calculator):
$ avrdude -p t2313 -U lfuse:w:0xE4:m Select the board by Tools->Board->ATtiny2313/4313, and the speed Tools->Micro->ATtiny2313@8MHz.
Set the programmer's TARGET jumper to ON and the POWER jumper to 5V so that it can provide power to the ATtiny microcontroller.
Use in-system programmer (ISP/ICSP) output. Make a cable that can connect the ATtiny (target) to the programmer, cf. the wiring from the programmer and how I split out a 10-wire cable, soldered stiff, coloured wires to it, and finished it up.
Check that communication works:
$ avrdude -c avrispmkii -p t2313 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e910a (probably t2313) avrdude: safemode: Fuses OK (E:FF, H:DF, L:64) Make it blink with Aduino IDE:
#define PIN_16 13 void setup() { pinMode(PIN_16, OUTPUT); } void loop() { digitalWrite(PIN_16, HIGH); delay(500); digitalWrite(PIN_16, LOW); delay(500); } Change to pure C++: https://electronut.in/getting-started-with-attiny85-avr-programming/
Use with external crystal oscillator (>=8MHz, maximum upstart time):
$ avrdude -p t2313 -U lfuse:w:0xFF:m -U hfuse:w:0xDF:m I use a 12.288 MHz crystal because I have a bunch of them.
The datasheet. More at Microchip.
The datasheet.
The datasheet.
Connect the AVR-ISP-MK2 directly to the ATtiny10 via TPI, see picture. Use AVR Fuse Calculator and https://www.avrfreaks.net/forum/fuse-rstdisbl-attiny10 to see how to set RSTDISBL:
$ avrdude -c avrispmkii -p t10 -U fuse:w:0xfe:m After that it is only possible to program with 12V on reset pin.
See tiny-12V-programmer directory for schematic, PCB, etc.
With the ATtiny10 fused to RSTDISBL and placed in the 12V programmer board, run a connectivity test:
$ avrdude -c avrispmkii -p t10 - Install MIDI Library from Forty Seven Effects in Arduino IDE.
- https://www.instructables.com/id/Send-and-Receive-MIDI-with-Arduino/
To get rid of an old installation:
$ brew cask uninstall arduino $ rm -rf ~/Library/Arduino15 Protocols: