在車間部署了十幾個網絡版的溫濕度采集器(基於arduino的),這些采集器分布在不同的地方,現在要更新一下上面的固件。最笨的方法是一個一個地取下來,插到電腦的USB接口上進行固件更新,這樣做顯然很麻煩。能不能直接通過網絡(以太網)進行固件的更新呢?
我查了一下資料,發現網上只有通過藍牙更新的固件的,但是沒有以太網的。低功耗的商用的藍牙,其傳輸距離只有10米,且那個方法必須在板上進行手動復位。我研究了一下,發現了通過以太網刷新固件的方法,現跟大家分享一下。
1、原理:
(1)通過串口轉wifi模塊發送一個指令,讓arduino復位。
(2)然后開始傳送編譯好的二進制文件,arduino在重啟的時候,會將這個文件寫入到flash中。avr固件的燒錄原理請見:http://news.eeworld.com.cn/mcu/2013/0608/article_13291.html
2、硬件:
Arduino uno + 串口轉wifi模塊。
線路連接:2號IO口串聯一個550k電阻接到reset上。
我所用的Wifi模塊是在這家店買的:
http://item.taobao.com/item.htm?spm=a1z09.2.9.41.0CxtvI&id=36815717425&_u=blmt59h45fc
3、所需要工具軟件:
(1)avrdude。版本013.9.18,在附件的bin文件夾下。這個程序可用來將編譯好的二進制文件刷寫(燒錄)到arduino中,它需要用到串口。
(2)VSPM虛擬串口服務器,下載地地址:http://www.kinghwawin.com/DownloadShow.asp?ID=40。
這個軟件的作用是將TCP服務器虛擬成本地的串口,用於跟avrdude配合使用,即提供一個串口給avrdude使用。下載完畢之后,請按默認路徑安裝。啟動該程序,然后新建一個虛擬串口,將串口號設置為“COM256”。如圖所示:
(3)TCP/UDP調試工具。此工具的作用是給遠端的arduino控制器發送復位指令。
4、arduino代碼

void setup() { Serial.begin(115200); pinMode(2,OUTPUT); digitalWrite(2, HIGH); // switch off } void loop() { if (Serial.available() > 0) { char val; val = Serial.read(); // read serial data if(val == 'r') { digitalWrite(2, LOW); // 將reset管腳的電平拉低50ms,起到復位的作用 delay(50); digitalWrite(2, HIGH); // } } }
注:arduino中必須有以上的這些代碼才能被遠程刷新。請將這些代碼嵌入到你的arduion中,然后用usb線刷新到arduino中。
5、在arduino編輯器中找到編譯好的固件(.hex文件)
默認情況下,arduino會在后台將源碼進行編譯成二進制文件,然后下載到arduino控制器中,這個過程不會有提示。
可以通過一些方法來顯示編譯燒錄的過程,並且提取hex文件,詳細方法見鏈接:http://see.sl088.com/wiki/Arduino_%E6%8F%90%E5%8F%96hex
這個步驟完成之后,我們手頭上就有了一個后綴名為hex的二進制文件。
附件中的bin文件夾下,有一個名為的Blink.cpp.hex文件,它是官方提供的例子編譯之后的二進制文件,可以拿這個來做測試。
6、手工燒錄
手工燒錄是直接使用avrdude來進行燒錄。avrdude是一個控制台程序,需要在命令行下進行操作。
(1)cd進附件中的bin文件夾下。
(2)使用TCP/UDP調試工具連接到TCP服務器,發送指令r,將arduino復位。
(3)馬上執行以下命令:avrdude.exe avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM256 -b115200 -D -Uflash:w:Blink.cpp.hex:i
至於為什么知道是這個命令,我是通過分析arduino編輯器的編譯及下載輸出得出的,以下是arduino的編譯下載時的輸出(過程),請注意第43行。

1 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.o 2 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\WInterrupts.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WInterrupts.c.o 3 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring.c.o 4 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_analog.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_analog.c.o 5 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_digital.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_digital.c.o 6 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_pulse.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_pulse.c.o 7 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\wiring_shift.c -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_shift.c.o 8 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\CDC.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\CDC.cpp.o 9 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\HardwareSerial.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HardwareSerial.cpp.o 10 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\HID.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HID.cpp.o 11 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\IPAddress.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\IPAddress.cpp.o 12 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\main.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\main.cpp.o 13 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\new.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\new.cpp.o 14 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\Print.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Print.cpp.o 15 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\Stream.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Stream.cpp.o 16 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\Tone.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Tone.cpp.o 17 E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\Tone.cpp:108: warning: only initialized variables can be placed into program memory area 18 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\USBCore.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\USBCore.cpp.o 19 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\WMath.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WMath.cpp.o 20 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -IE:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino -IE:\電子學\arduino\arduino-1.0\hardware\arduino\variants\standard E:\電子學\arduino\arduino-1.0\hardware\arduino\cores\arduino\WString.cpp -oC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WString.cpp.o 21 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WInterrupts.c.o 22 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring.c.o 23 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_analog.c.o 24 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_digital.c.o 25 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_pulse.c.o 26 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\wiring_shift.c.o 27 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\CDC.cpp.o 28 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HardwareSerial.cpp.o 29 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\HID.cpp.o 30 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\IPAddress.cpp.o 31 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\main.cpp.o 32 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\new.cpp.o 33 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Print.cpp.o 34 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Stream.cpp.o 35 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Tone.cpp.o 36 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\USBCore.cpp.o 37 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WMath.cpp.o 38 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-ar rcs C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\WString.cpp.o 39 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-gcc -Os -Wl,--gc-sections -mmcu=atmega328p -o C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.elf C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.o C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\core.a -LC:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp -lm 40 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.elf C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.eep 41 E:\電子學\arduino\arduino-1.0\hardware\tools\avr\bin\avr-objcopy -O ihex -R .eeprom C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.elf C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex 42 Binary sketch size: 1026 bytes (of a 32256 byte maximum) 43 E:\電子學\arduino\arduino-1.0\hardware/tools/avr/bin/avrdude -CE:\電子學\arduino\arduino-1.0\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM18 -b115200 -D -Uflash:w:C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex:i 44 45 avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36 46 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ 47 Copyright (c) 2007-2009 Joerg Wunsch 48 49 System wide configuration file is "E:\電子學\arduino\arduino-1.0\hardware/tools/avr/etc/avrdude.conf" 50 51 Using Port : \\.\COM18 52 Using Programmer : arduino 53 Overriding Baud Rate : 115200 54 avrdude: Send: 0 [30] [20] 55 avrdude: Send: 0 [30] [20] 56 avrdude: Send: 0 [30] [20] 57 avrdude: Recv: . [14] 58 avrdude: Recv: . [10] 59 AVR Part : ATMEGA328P 60 Chip Erase delay : 9000 us 61 PAGEL : PD7 62 BS2 : PC2 63 RESET disposition : dedicated 64 RETRY pulse : SCK 65 serial program mode : yes 66 parallel program mode : yes 67 Timeout : 200 68 StabDelay : 100 69 CmdexeDelay : 25 70 SyncLoops : 32 71 ByteDelay : 0 72 PollIndex : 3 73 PollValue : 0x53 74 Memory Detail : 75 76 Block Poll Page Polled 77 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 78 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 79 eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff 80 Block Poll Page Polled 81 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 82 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 83 flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff 84 Block Poll Page Polled 85 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 86 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 87 lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 88 Block Poll Page Polled 89 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 90 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 91 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 92 Block Poll Page Polled 93 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 94 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 95 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 96 Block Poll Page Polled 97 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 98 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 99 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 100 Block Poll Page Polled 101 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 102 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 103 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 104 Block Poll Page Polled 105 Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack 106 ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- 107 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 108 109 Programmer Type : Arduino 110 Description : Arduino 111 avrdude: Send: A [41] . [80] [20] 112 avrdude: Recv: . [14] 113 avrdude: Recv: . [03] 114 avrdude: Recv: . [10] 115 avrdude: Send: A [41] . [81] [20] 116 avrdude: Recv: . [14] 117 avrdude: Recv: . [04] 118 avrdude: Recv: . [10] 119 avrdude: Send: A [41] . [82] [20] 120 avrdude: Recv: . [14] 121 avrdude: Recv: . [04] 122 avrdude: Recv: . [10] 123 avrdude: Send: A [41] . [98] [20] 124 avrdude: Recv: . [14] 125 avrdude: Recv: . [03] 126 avrdude: Recv: . [10] 127 Hardware Version: 3 128 Firmware Version: 4.4 129 avrdude: Send: A [41] . [84] [20] 130 avrdude: Recv: . [14] 131 avrdude: Recv: . [03] 132 avrdude: Recv: . [10] 133 avrdude: Send: A [41] . [85] [20] 134 avrdude: Recv: . [14] 135 avrdude: Recv: . [03] 136 avrdude: Recv: . [10] 137 avrdude: Send: A [41] . [86] [20] 138 avrdude: Recv: . [14] 139 avrdude: Recv: . [03] 140 avrdude: Recv: . [10] 141 avrdude: Send: A [41] . [87] [20] 142 avrdude: Recv: . [14] 143 avrdude: Recv: . [03] 144 avrdude: Recv: . [10] 145 avrdude: Send: A [41] . [89] [20] 146 avrdude: Recv: . [14] 147 avrdude: Recv: . [03] 148 avrdude: Recv: . [10] 149 Vtarget : 0.3 V 150 Varef : 0.3 V 151 Oscillator : 28.800 kHz 152 SCK period : 3.3 us 153 154 avrdude: Send: A [41] . [81] [20] 155 avrdude: Recv: . [14] 156 avrdude: Recv: . [04] 157 avrdude: Recv: . [10] 158 avrdude: Send: A [41] . [82] [20] 159 avrdude: Recv: . [14] 160 avrdude: Recv: . [04] 161 avrdude: Recv: . [10] 162 avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00] [20] 163 avrdude: Recv: . [14] 164 avrdude: Recv: . [10] 165 avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00] [20] 166 avrdude: Recv: . [14] 167 avrdude: Recv: . [10] 168 avrdude: Send: P [50] [20] 169 avrdude: Recv: . [14] 170 avrdude: Recv: . [10] 171 avrdude: AVR device initialized and ready to accept instructions 172 173 Reading | avrdude: Send: u [75] [20] 174 avrdude: Recv: . [14] . [1e] . [95] . [0f] . [10] 175 ################################################## | 100% 0.00s 176 177 avrdude: Device signature = 0x1e950f 178 avrdude: Send: V [56] . [a0] . [03] . [fc] . [00] [20] 179 avrdude: Recv: . [14] 180 avrdude: Recv: . [00] 181 avrdude: Recv: . [10] 182 avrdude: Send: V [56] . [a0] . [03] . [fd] . [00] [20] 183 avrdude: Recv: . [14] 184 avrdude: Recv: . [00] 185 avrdude: Recv: . [10] 186 avrdude: Send: V [56] . [a0] . [03] . [fe] . [00] [20] 187 avrdude: Recv: . [14] 188 avrdude: Recv: . [00] 189 avrdude: Recv: . [10] 190 avrdude: Send: V [56] . [a0] . [03] . [ff] . [00] [20] 191 avrdude: Recv: . [14] 192 avrdude: Recv: . [00] 193 avrdude: Recv: . [10] 194 avrdude: reading input file "C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex" 195 avrdude: writing flash (1026 bytes): 196 197 Writing | avrdude: Send: U [55] . [00] . [00] [20] 198 avrdude: Recv: . [14] 199 avrdude: Recv: . [10] 200 avrdude: Send: d [64] . [00] . [80] F [46] . [0c] . [94] a [61] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] . [9a] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [00] . [00] . [00] . [00] $ [24] . [00] ' [27] . [00] * [2a] . [00] . [00] . [00] . [00] . [00] % [25] . [00] ( [28] . [00] + [2b] . [00] . [00] . [00] . [00] . [00] [20] 201 avrdude: Recv: . [14] 202 avrdude: Recv: . [10] 203 ######avrdude: Send: U [55] @ [40] . [00] [20] 204 avrdude: Recv: . [14] 205 avrdude: Recv: . [10] 206 avrdude: Send: d [64] . [00] . [80] F [46] # [23] . [00] & [26] . [00] ) [29] . [00] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [02] . [02] . [02] . [02] . [02] . [02] . [03] . [03] . [03] . [03] . [03] . [03] . [01] . [02] . [04] . [08] . [10] [20] @ [40] . [80] . [01] . [02] . [04] . [08] . [10] [20] . [01] . [02] . [04] . [08] . [10] [20] . [00] . [00] . [00] . [07] . [00] . [02] . [01] . [00] . [00] . [03] . [04] . [06] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [11] $ [24] . [1f] . [be] . [cf] . [ef] . [d8] . [e0] . [de] . [bf] . [cd] . [bf] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [e2] . [e0] . [f4] . [e0] . [02] . [c0] . [05] . [90] . [0d] . [92] . [a0] 0 [30] . [b1] . [07] . [d9] . [f7] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [01] . [c0] . [1d] . [92] . [a9] 0 [30] . [b1] . [07] . [e1] . [f7] . [0e] . [94] . [f0] . [01] . [0c] . [94] . [ff] . [01] . [0c] . [94] . [00] . [00] [20] 207 avrdude: Recv: . [14] 208 avrdude: Recv: . [10] 209 ######avrdude: Send: U [55] . [80] . [00] [20] 210 avrdude: Recv: . [14] 211 avrdude: Recv: . [10] 212 avrdude: Send: d [64] . [00] . [80] F [46] . [8d] . [e0] a [61] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [8d] . [e0] ` [60] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [08] . [95] . [8d] . [e0] a [61] . [e0] . [0e] . [94] v [76] . [01] . [08] . [95] . [1f] . [92] . [0f] . [92] . [0f] . [b6] . [0f] . [92] . [11] $ [24] / [2f] . [93] ? [3f] . [93] . [8f] . [93] . [9f] . [93] . [af] . [93] . [bf] . [93] . [80] . [91] . [04] . [01] . [90] . [91] . [05] . [01] . [a0] . [91] . [06] . [01] . [b0] . [91] . [07] . [01] 0 [30] . [91] . [08] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] # [23] / [2f] - [2d] _ [5f] - [2d] 7 [37] [20] . [f0] - [2d] W [57] . [01] . [96] . [a1] . [1d] . [b1] . [1d] [20] . [93] . [08] . [01] . [80] . [93] . [04] . [01] . [90] . [93] . [05] . [01] [20] 213 avrdude: Recv: . [14] 214 avrdude: Recv: . [10] 215 ######avrdude: Send: U [55] . [c0] . [00] [20] 216 avrdude: Recv: . [14] 217 avrdude: Recv: . [10] 218 avrdude: Send: d [64] . [00] . [80] F [46] . [a0] . [93] . [06] . [01] . [b0] . [93] . [07] . [01] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [80] . [93] . [00] . [01] . [90] . [93] . [01] . [01] . [a0] . [93] . [02] . [01] . [b0] . [93] . [03] . [01] . [bf] . [91] . [af] . [91] . [9f] . [91] . [8f] . [91] ? [3f] . [91] / [2f] . [91] . [0f] . [90] . [0f] . [be] . [0f] . [90] . [1f] . [90] . [18] . [95] . [9b] . [01] . [ac] . [01] . [7f] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] f [66] . [b5] . [a8] . [9b] . [05] . [c0] o [6f] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [7f] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [86] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] b [62] . [e0] [20] 219 avrdude: Recv: . [14] 220 avrdude: Recv: . [10] 221 ######avrdude: Send: U [55] . [00] . [01] [20] 222 avrdude: Recv: . [14] 223 avrdude: Recv: . [10] 224 avrdude: Send: d [64] . [00] . [80] F [46] . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] j [6a] . [95] . [d1] . [f7] . [bc] . [01] - [2d] . [c0] . [ff] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [e6] . [b5] . [a8] . [9b] . [05] . [c0] . [ef] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [ff] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [8e] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] . [e2] . [e0] . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] . [ea] . [95] . [d1] . [f7] . [86] . [1b] . [97] . [0b] . [88] ^ [5e] . [93] @ [40] . [c8] . [f2] ! [21] P [50] 0 [30] @ [40] @ [40] @ [40] P [50] @ [40] h [68] Q [51] | [7c] O [4f] ! [21] . [15] 1 [31] . [05] A [41] . [05] Q [51] . [05] q [71] . [f6] . [08] . [95] x [78] . [94] . [84] . [b5] . [82] ` [60] . [84] . [bd] . [84] . [b5] [20] 225 avrdude: Recv: . [14] 226 avrdude: Recv: . [10] 227 #######avrdude: Send: U [55] @ [40] . [01] [20] 228 avrdude: Recv: . [14] 229 avrdude: Recv: . [10] 230 avrdude: Send: d [64] . [00] . [80] F [46] . [81] ` [60] . [84] . [bd] . [85] . [b5] . [82] ` [60] . [85] . [bd] . [85] . [b5] . [81] ` [60] . [85] . [bd] . [ee] . [e6] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [e8] . [f0] . [e0] . [10] . [82] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [e0] . [e8] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [eb] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [e0] . [eb] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [ea] . [e7] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [80] . [81] . [80] h [68] . [80] . [83] . [10] . [92] . [c1] . [00] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] $ [24] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] [20] 231 avrdude: Recv: . [14] 232 avrdude: Recv: . [10] 233 ######avrdude: Send: U [55] . [80] . [01] [20] 234 avrdude: Recv: . [14] 235 avrdude: Recv: . [10] 236 avrdude: Send: d [64] . [00] . [80] F [46] . [84] . [91] . [88] # [23] . [c1] . [f0] . [e8] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [e8] Y [59] . [ff] O [4f] . [a5] . [91] . [b4] . [91] f [66] # [23] A [41] . [f4] . [9f] . [b7] . [f8] . [94] . [8c] . [91] [20] . [95] . [82] # [23] . [8c] . [93] . [9f] . [bf] . [08] . [95] . [9f] . [b7] . [f8] . [94] . [8c] . [91] . [82] + [2b] . [8c] . [93] . [9f] . [bf] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [82] U [55] . [9f] O [4f] . [fc] . [01] $ [24] . [91] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] . [94] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] 4 [34] . [91] 3 [33] # [23] . [09] . [f4] @ [40] . [c0] " [22] # [23] Q [51] . [f1] # [23] 0 [30] q [71] . [f0] $ [24] 0 [30] ( [28] . [f4] ! [21] 0 [30] . [a1] . [f0] " [22] 0 [30] . [11] . [f5] . [14] . [c0] & [26] 0 [30] . [b1] . [f0] ' [27] 0 [30] . [c1] . [f0] $ [24] 0 [30] . [d9] . [f4] [20] 237 avrdude: Recv: . [14] 238 avrdude: Recv: . [10] 239 ######avrdude: Send: U [55] . [c0] . [01] [20] 240 avrdude: Recv: . [14] 241 avrdude: Recv: . [10] 242 avrdude: Send: d [64] . [00] . [80] F [46] . [04] . [c0] . [80] . [91] . [80] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [80] . [00] . [8f] } [7d] . [80] . [93] . [80] . [00] . [10] . [c0] . [84] . [b5] . [8f] w [77] . [02] . [c0] . [84] . [b5] . [8f] } [7d] . [84] . [bd] . [09] . [c0] . [80] . [91] . [b0] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [b0] . [00] . [8f] } [7d] . [80] . [93] . [b0] . [00] . [e3] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [ee] X [58] . [ff] O [4f] . [a5] . [91] . [b4] . [91] / [2f] . [b7] . [f8] . [94] f [66] # [23] ! [21] . [f4] . [8c] . [91] . [90] . [95] . [89] # [23] . [02] . [c0] . [8c] . [91] . [89] + [2b] . [8c] . [93] / [2f] . [bf] . [08] . [95] . [cf] . [93] . [df] . [93] . [0e] . [94] ; [3b] . [01] . [0e] . [94] . [95] . [00] . [c0] . [e0] . [d0] . [e0] . [0e] . [94] . [80] . [00] [20] . [97] . [e1] . [f3] . [0e] . [94] . [00] . [00] . [f9] . [cf] . [f8] . [94] [20] 243 avrdude: Recv: . [14] 244 avrdude: Recv: . [10] 245 ######avrdude: Send: U [55] . [00] . [02] [20] 246 avrdude: Recv: . [14] 247 avrdude: Recv: . [10] 248 avrdude: Send: d [64] . [00] . [02] F [46] . [ff] . [cf] [20] 249 avrdude: Recv: . [14] 250 avrdude: Recv: . [10] 251 # | 100% 0.21s 252 253 avrdude: 1026 bytes of flash written 254 avrdude: verifying flash memory against C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex: 255 avrdude: load data flash data from input file C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex: 256 avrdude: input file C:\Users\leo\AppData\Local\Temp\build1450515865813525473.tmp\Blink.cpp.hex contains 1026 bytes 257 avrdude: reading on-chip flash data: 258 259 Reading | avrdude: Send: U [55] . [00] . [00] [20] 260 avrdude: Recv: . [14] 261 avrdude: Recv: . [10] 262 avrdude: Send: t [74] . [00] . [80] F [46] [20] 263 avrdude: Recv: . [14] 264 avrdude: Recv: . [0c] . [94] a [61] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] . [9a] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [0c] . [94] ~ [7e] . [00] . [00] . [00] . [00] . [00] $ [24] . [00] ' [27] . [00] * [2a] . [00] . [00] . [00] . [00] . [00] % [25] . [00] ( [28] . [00] + [2b] . [00] . [00] . [00] . [00] . [00] 265 avrdude: Recv: . [10] 266 ######avrdude: Send: U [55] @ [40] . [00] [20] 267 avrdude: Recv: . [14] 268 avrdude: Recv: . [10] 269 avrdude: Send: t [74] . [00] . [80] F [46] [20] 270 avrdude: Recv: . [14] 271 avrdude: Recv: # [23] . [00] & [26] . [00] ) [29] . [00] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [04] . [02] . [02] . [02] . [02] . [02] . [02] . [03] . [03] . [03] . [03] . [03] . [03] . [01] . [02] . [04] . [08] . [10] [20] @ [40] . [80] . [01] . [02] . [04] . [08] . [10] [20] . [01] . [02] . [04] . [08] . [10] [20] . [00] . [00] . [00] . [07] . [00] . [02] . [01] . [00] . [00] . [03] . [04] . [06] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [00] . [11] $ [24] . [1f] . [be] . [cf] . [ef] . [d8] . [e0] . [de] . [bf] . [cd] . [bf] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [e2] . [e0] . [f4] . [e0] . [02] . [c0] . [05] . [90] . [0d] . [92] . [a0] 0 [30] . [b1] . [07] . [d9] . [f7] . [11] . [e0] . [a0] . [e0] . [b1] . [e0] . [01] . [c0] . [1d] . [92] . [a9] 0 [30] . [b1] . [07] . [e1] . [f7] . [0e] . [94] . [f0] . [01] . [0c] . [94] . [ff] . [01] . [0c] . [94] . [00] . [00] 272 avrdude: Recv: . [10] 273 ######avrdude: Send: U [55] . [80] . [00] [20] 274 avrdude: Recv: . [14] 275 avrdude: Recv: . [10] 276 avrdude: Send: t [74] . [00] . [80] F [46] [20] 277 avrdude: Recv: . [14] 278 avrdude: Recv: . [8d] . [e0] a [61] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [8d] . [e0] ` [60] . [e0] . [0e] . [94] . [9c] . [01] h [68] . [ee] s [73] . [e0] . [80] . [e0] . [90] . [e0] . [0e] . [94] . [e2] . [00] . [08] . [95] . [8d] . [e0] a [61] . [e0] . [0e] . [94] v [76] . [01] . [08] . [95] . [1f] . [92] . [0f] . [92] . [0f] . [b6] . [0f] . [92] . [11] $ [24] / [2f] . [93] ? [3f] . [93] . [8f] . [93] . [9f] . [93] . [af] . [93] . [bf] . [93] . [80] . [91] . [04] . [01] . [90] . [91] . [05] . [01] . [a0] . [91] . [06] . [01] . [b0] . [91] . [07] . [01] 0 [30] . [91] . [08] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] # [23] / [2f] - [2d] _ [5f] - [2d] 7 [37] [20] . [f0] - [2d] W [57] . [01] . [96] . [a1] . [1d] . [b1] . [1d] [20] . [93] . [08] . [01] . [80] . [93] . [04] . [01] . [90] . [93] . [05] . [01] 279 avrdude: Recv: . [10] 280 ######avrdude: Send: U [55] . [c0] . [00] [20] 281 avrdude: Recv: . [14] 282 avrdude: Recv: . [10] 283 avrdude: Send: t [74] . [00] . [80] F [46] [20] 284 avrdude: Recv: . [14] 285 avrdude: Recv: . [a0] . [93] . [06] . [01] . [b0] . [93] . [07] . [01] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [80] . [93] . [00] . [01] . [90] . [93] . [01] . [01] . [a0] . [93] . [02] . [01] . [b0] . [93] . [03] . [01] . [bf] . [91] . [af] . [91] . [9f] . [91] . [8f] . [91] ? [3f] . [91] / [2f] . [91] . [0f] . [90] . [0f] . [be] . [0f] . [90] . [1f] . [90] . [18] . [95] . [9b] . [01] . [ac] . [01] . [7f] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] f [66] . [b5] . [a8] . [9b] . [05] . [c0] o [6f] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [7f] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [86] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] b [62] . [e0] 286 avrdude: Recv: . [10] 287 ######avrdude: Send: U [55] . [00] . [01] [20] 288 avrdude: Recv: . [14] 289 avrdude: Recv: . [10] 290 avrdude: Send: t [74] . [00] . [80] F [46] [20] 291 avrdude: Recv: . [14] 292 avrdude: Recv: . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] j [6a] . [95] . [d1] . [f7] . [bc] . [01] - [2d] . [c0] . [ff] . [b7] . [f8] . [94] . [80] . [91] . [00] . [01] . [90] . [91] . [01] . [01] . [a0] . [91] . [02] . [01] . [b0] . [91] . [03] . [01] . [e6] . [b5] . [a8] . [9b] . [05] . [c0] . [ef] ? [3f] . [19] . [f0] . [01] . [96] . [a1] . [1d] . [b1] . [1d] . [ff] . [bf] . [ba] / [2f] . [a9] / [2f] . [98] / [2f] . [88] ' [27] . [8e] . [0f] . [91] . [1d] . [a1] . [1d] . [b1] . [1d] . [e2] . [e0] . [88] . [0f] . [99] . [1f] . [aa] . [1f] . [bb] . [1f] . [ea] . [95] . [d1] . [f7] . [86] . [1b] . [97] . [0b] . [88] ^ [5e] . [93] @ [40] . [c8] . [f2] ! [21] P [50] 0 [30] @ [40] @ [40] @ [40] P [50] @ [40] h [68] Q [51] | [7c] O [4f] ! [21] . [15] 1 [31] . [05] A [41] . [05] Q [51] . [05] q [71] . [f6] . [08] . [95] x [78] . [94] . [84] . [b5] . [82] ` [60] . [84] . [bd] . [84] . [b5] 293 avrdude: Recv: . [10] 294 #######avrdude: Send: U [55] @ [40] . [01] [20] 295 avrdude: Recv: . [14] 296 avrdude: Recv: . [10] 297 avrdude: Send: t [74] . [00] . [80] F [46] [20] 298 avrdude: Recv: . [14] 299 avrdude: Recv: . [81] ` [60] . [84] . [bd] . [85] . [b5] . [82] ` [60] . [85] . [bd] . [85] . [b5] . [81] ` [60] . [85] . [bd] . [ee] . [e6] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [e8] . [f0] . [e0] . [10] . [82] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [e0] . [e8] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [e1] . [eb] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [e0] . [eb] . [f0] . [e0] . [80] . [81] . [81] ` [60] . [80] . [83] . [ea] . [e7] . [f0] . [e0] . [80] . [81] . [84] ` [60] . [80] . [83] . [80] . [81] . [82] ` [60] . [80] . [83] . [80] . [81] . [81] ` [60] . [80] . [83] . [80] . [81] . [80] h [68] . [80] . [83] . [10] . [92] . [c1] . [00] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] $ [24] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] 300 avrdude: Recv: . [10] 301 ######avrdude: Send: U [55] . [80] . [01] [20] 302 avrdude: Recv: . [14] 303 avrdude: Recv: . [10] 304 avrdude: Send: t [74] . [00] . [80] F [46] [20] 305 avrdude: Recv: . [14] 306 avrdude: Recv: . [84] . [91] . [88] # [23] . [c1] . [f0] . [e8] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [e8] Y [59] . [ff] O [4f] . [a5] . [91] . [b4] . [91] f [66] # [23] A [41] . [f4] . [9f] . [b7] . [f8] . [94] . [8c] . [91] [20] . [95] . [82] # [23] . [8c] . [93] . [9f] . [bf] . [08] . [95] . [9f] . [b7] . [f8] . [94] . [8c] . [91] . [82] + [2b] . [8c] . [93] . [9f] . [bf] . [08] . [95] H [48] / [2f] P [50] . [e0] . [ca] . [01] . [82] U [55] . [9f] O [4f] . [fc] . [01] $ [24] . [91] . [ca] . [01] . [86] V [56] . [9f] O [4f] . [fc] . [01] . [94] . [91] J [4a] W [57] _ [5f] O [4f] . [fa] . [01] 4 [34] . [91] 3 [33] # [23] . [09] . [f4] @ [40] . [c0] " [22] # [23] Q [51] . [f1] # [23] 0 [30] q [71] . [f0] $ [24] 0 [30] ( [28] . [f4] ! [21] 0 [30] . [a1] . [f0] " [22] 0 [30] . [11] . [f5] . [14] . [c0] & [26] 0 [30] . [b1] . [f0] ' [27] 0 [30] . [c1] . [f0] $ [24] 0 [30] . [d9] . [f4] 307 avrdude: Recv: . [10] 308 ######avrdude: Send: U [55] . [c0] . [01] [20] 309 avrdude: Recv: . [14] 310 avrdude: Recv: . [10] 311 avrdude: Send: t [74] . [00] . [80] F [46] [20] 312 avrdude: Recv: . [14] 313 avrdude: Recv: . [04] . [c0] . [80] . [91] . [80] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [80] . [00] . [8f] } [7d] . [80] . [93] . [80] . [00] . [10] . [c0] . [84] . [b5] . [8f] w [77] . [02] . [c0] . [84] . [b5] . [8f] } [7d] . [84] . [bd] . [09] . [c0] . [80] . [91] . [b0] . [00] . [8f] w [77] . [03] . [c0] . [80] . [91] . [b0] . [00] . [8f] } [7d] . [80] . [93] . [b0] . [00] . [e3] / [2f] . [f0] . [e0] . [ee] . [0f] . [ff] . [1f] . [ee] X [58] . [ff] O [4f] . [a5] . [91] . [b4] . [91] / [2f] . [b7] . [f8] . [94] f [66] # [23] ! [21] . [f4] . [8c] . [91] . [90] . [95] . [89] # [23] . [02] . [c0] . [8c] . [91] . [89] + [2b] . [8c] . [93] / [2f] . [bf] . [08] . [95] . [cf] . [93] . [df] . [93] . [0e] . [94] ; [3b] . [01] . [0e] . [94] . [95] . [00] . [c0] . [e0] . [d0] . [e0] . [0e] . [94] . [80] . [00] [20] . [97] . [e1] . [f3] . [0e] . [94] . [00] . [00] . [f9] . [cf] . [f8] . [94] 314 avrdude: Recv: . [10] 315 ######avrdude: Send: U [55] . [00] . [02] [20] 316 avrdude: Recv: . [14] 317 avrdude: Recv: . [10] 318 avrdude: Send: t [74] . [00] . [02] F [46] [20] 319 avrdude: Recv: . [14] 320 avrdude: Recv: . [ff] . [cf] 321 avrdude: Recv: . [10] 322 # | 100% 0.18s 323 324 avrdude: verifying ... 325 avrdude: 1026 bytes of flash verified 326 avrdude: Send: Q [51] [20] 327 avrdude: Recv: . [14] 328 avrdude: Recv: . [10] 329 330 avrdude done. Thank you.
7、自動燒錄
我用C#寫了一個工具,將上面的手工操作給封裝起來。功能包括啟動VSPM虛擬串口服務器,復位遠端的arduino uno,執行avrdude指令。詳見的代碼見附件。
8、附件下載