miércoles, 7 de marzo de 2018
viernes, 2 de marzo de 2018
Usar una Raspberry Pi como programador AVR
En esta entrada veremos el proceso de creación de un Programador Remoto de AVR.
Componentes
Se utilizarán los siguientes componentes:
- Una Raspberry Pi 3 Model B con Raspbian 9 como SO
(También se probó en una Orange Pi con Ubuntu server 16.04)
- Un Arduino Uno o un Mega 2560
Proceso
El proceso sería el siguiente:
1- Un usuario carga el código compilado (hex) a firebase
2- Firebase envía la notificación de cambio a la raspberry (Utilizando la base de datos en tiempo real)
3- La raspberry descarga el código
4- La raspberry sube el código al Arduino
Conexiones
Puedes alimentar el Arduino por USB o por los pines GND y VCC del ICSP.
Puedes cambiar los pines a utilizar, pero no puedes usar el BCM 4 (PIN 7) que por alguna razón da problemas (Ver más info aquí)
Note que las conexiones en la Raspberry son a los pines BCM.
Arduino ICSP | Raspberry BCM
reset | 12; # Pin 32
sck | 11; # Pin 23
mosi | 10; # Pin 19
miso | 9; # Pin 21
Componentes
Se utilizarán los siguientes componentes:
- Una Raspberry Pi 3 Model B con Raspbian 9 como SO
(También se probó en una Orange Pi con Ubuntu server 16.04)
- Un Arduino Uno o un Mega 2560
Proceso
El proceso sería el siguiente:
1- Un usuario carga el código compilado (hex) a firebase
2- Firebase envía la notificación de cambio a la raspberry (Utilizando la base de datos en tiempo real)
3- La raspberry descarga el código
4- La raspberry sube el código al Arduino
Conexiones
Puedes alimentar el Arduino por USB o por los pines GND y VCC del ICSP.
Puedes cambiar los pines a utilizar, pero no puedes usar el BCM 4 (PIN 7) que por alguna razón da problemas (Ver más info aquí)
Note que las conexiones en la Raspberry son a los pines BCM.
Arduino ICSP | Raspberry BCM
reset | 12; # Pin 32
sck | 11; # Pin 23
mosi | 10; # Pin 19
miso | 9; # Pin 21
Conexiones Arduino -> Raspberry ICSP |
Así quedó |
Instalando avrdude
La versión 6.2 y 6.3 de avrdude por alguna razón muy rara no está habilitada para usar los GPIO para cargar código (linuxgpio) y no funciona bien. Pude hacerlo funcionar con la versión 6.1
Debes ejecutar lo siguiente:
sudo apt-get install bison flex libusb-dev gcc gcc-avr avr-libc libelf-dev libusb-1.0-0-dev libusb-1.0-0-dev libftdi1-dev libftdi-dev libhidapi-libusb libevent-pthreads-2.0-5 libpthread-workqueue0 -y
wget http://ftp.nchc.org.tw/Unix/NonGNU/avrdude/avrdude-6.1.tar.gz
tar xfv avrdude-6.1.tar.gz
cd avrdude-6.1
./configure --enable-linuxgpio
make -j4
sudo make install
Probando la instalación de avrdude
Copias el fichero avrdude.conf al home del usuario
cp /usr/local/etc/avrdude.conf ~/avrdude_gpio.conf
Luego abres el fichero que acabas de copiar
nano ~/avrdude_gpio.conf
y le agregas esto al final
programmer
id = "pi_1";
desc = "Use the Linux sysfs interface to bitbang GPIO lines";
type = "linuxgpio";
reset = 12;
sck = 11;
mosi = 10;
miso = 9;
;
Luego probamos la conexión con el Arduino ejecutando lo siguiente:
sudo avrdude -p atmega2560 -C avrdude_gpio.conf -c pi_1 -v
Deberías ver algo así en la consola:
Y el arduino debe parpadear como en el siguiente video:
Probando la carga del código
Primero debemos generar el codigo compilado con extensión .hex.
Para ello abrimos Arduino IDE en cualquier PC (no necesariamente en la raspberry) y entramos en Preferencias y marcamos lo siguiente:
Para ello abrimos Arduino IDE en cualquier PC (no necesariamente en la raspberry) y entramos en Preferencias y marcamos lo siguiente:
Luego compilamos (Estoy usando el ejemplo de Blink) y buscamos el archivo .hex y lo copiamos y pegamos en el home de la raspberry al lado del fichero avrdude_gpio.conf
Para subir el codigo al Arduino debes ejecutar el siguiente comando:
sudo avrdude -p atmega2560 -C ~/avrdude_gpio.conf -c pi_1 -v -U flash:w:NOMBRE_DEL_HEX:i
En nuestro caso como el fichero se llama Blink.ino.hex:
sudo avrdude -p atmega2560 -C ~/avrdude_gpio.conf -c pi_1 -v -U flash:w:Blink.ino.hex:i
NOTA: Debes tener MUCHO cuidado con ese comando y el parámetro "p". He cargado por error un codigo compilado para atmega2561 en mi atmega2560 y se ha brickeado.
Referencias:
https://learn.adafruit.com/program-an-avr-or-arduino-using-raspberry-pi-gpio-pins
http://ozzmaker.com/program-avr-using-raspberry-pi-gpio/
http://blog.stevemarple.co.uk/2012/07/avrarduino-isp-programmer-using.html
FIX: ImportError: cannot import name 'opentype'
Fix this problem:
File "/usr/local/lib/python3.5/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
from pyasn1_modules.rfc2459 import Certificate
File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
from pyasn1.type import opentype
ImportError: cannot import name 'opentype'
SOLUTION:
pip3 install --upgrade pyasn1-modules
File "/usr/local/lib/python3.5/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
from pyasn1_modules.rfc2459 import Certificate
File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
from pyasn1.type import opentype
ImportError: cannot import name 'opentype'
SOLUTION:
pip3 install --upgrade pyasn1-modules
Saber si el código se esta ejecutando en una Raspberry Pi
Estoy haciendo un código y deseo saber si se está ejecutando en una Orange Pi o en una Raspberry Pi
Para poder determinarlo se debe usar os.uname()
import os
os.uname()
Para la raspberry retorna:
posix.uname_result(sysname='Linux', nodename='raspberrypi', release='4.9.59-v7+', version='#1047 SMP Sun Oct 29 12:19:23 GMT 2017', machine='armv7l')
Para la orange:
posix.uname_result(sysname='Linux', nodename='OrangePI', release='3.4.39', version='#46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016', machine='armv7l')os.uname()
Para poder determinarlo se debe usar os.uname()
import os
os.uname()
Para la raspberry retorna:
posix.uname_result(sysname='Linux', nodename='raspberrypi', release='4.9.59-v7+', version='#1047 SMP Sun Oct 29 12:19:23 GMT 2017', machine='armv7l')
Para la orange:
posix.uname_result(sysname='Linux', nodename='OrangePI', release='3.4.39', version='#46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016', machine='armv7l')os.uname()
posix.uname_result(sysname='Linux', nodename='OrangePI', release='3.4.39', version='#46 SMP PREEMPT Wed Nov 9 09:50:08 CST 2016', machine='armv7l')
Best way to generate requeriments.txt
La mejor forma de generar un fichero requirements.txt
es con pipreqs
$ pip install pipreqs
http://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/
es con pipreqs
$ pip install pipreqs
$ pipreqs /path/to/project
Más info:http://www.idiotinside.com/2015/05/10/python-auto-generate-requirements-txt/
jueves, 1 de marzo de 2018
Valid AVRDUDE Part model list
Valid parts are:
uc3a0512 = AT32UC3A0512 [/home/pi/avrdude_gpio.conf:14158]
c128 = AT90CAN128 [/home/pi/avrdude_gpio.conf:3255]
c32 = AT90CAN32 [/home/pi/avrdude_gpio.conf:3639]
c64 = AT90CAN64 [/home/pi/avrdude_gpio.conf:3447]
pwm2 = AT90PWM2 [/home/pi/avrdude_gpio.conf:8684]
pwm2b = AT90PWM2B [/home/pi/avrdude_gpio.conf:8877]
pwm3 = AT90PWM3 [/home/pi/avrdude_gpio.conf:8867]
pwm316 = AT90PWM316 [/home/pi/avrdude_gpio.conf:8904]
pwm3b = AT90PWM3B [/home/pi/avrdude_gpio.conf:8891]
1200 = AT90S1200 [/home/pi/avrdude_gpio.conf:1716]
2313 = AT90S2313 [/home/pi/avrdude_gpio.conf:1945]
2333 = AT90S2333 [/home/pi/avrdude_gpio.conf:2058]
2343 = AT90S2343 [/home/pi/avrdude_gpio.conf:2186]
4414 = AT90S4414 [/home/pi/avrdude_gpio.conf:1832]
4433 = AT90S4433 [/home/pi/avrdude_gpio.conf:2310]
4434 = AT90S4434 [/home/pi/avrdude_gpio.conf:2434]
8515 = AT90S8515 [/home/pi/avrdude_gpio.conf:2517]
8535 = AT90S8535 [/home/pi/avrdude_gpio.conf:2631]
usb1286 = AT90USB1286 [/home/pi/avrdude_gpio.conf:11466]
usb1287 = AT90USB1287 [/home/pi/avrdude_gpio.conf:11657]
usb162 = AT90USB162 [/home/pi/avrdude_gpio.conf:11670]
usb646 = AT90USB646 [/home/pi/avrdude_gpio.conf:11262]
usb647 = AT90USB647 [/home/pi/avrdude_gpio.conf:11453]
usb82 = AT90USB82 [/home/pi/avrdude_gpio.conf:11857]
m103 = ATmega103 [/home/pi/avrdude_gpio.conf:2752]
m128 = ATmega128 [/home/pi/avrdude_gpio.conf:3075]
m1280 = ATmega1280 [/home/pi/avrdude_gpio.conf:9693]
m1281 = ATmega1281 [/home/pi/avrdude_gpio.conf:9883]
m1284 = ATmega1284 [/home/pi/avrdude_gpio.conf:4451]
m1284p = ATmega1284P [/home/pi/avrdude_gpio.conf:4645]
m1284rfr2 = ATmega1284RFR2 [/home/pi/avrdude_gpio.conf:10318]
m128rfa1 = ATmega128RFA1 [/home/pi/avrdude_gpio.conf:10103]
m128rfr2 = ATmega128RFR2 [/home/pi/avrdude_gpio.conf:10206]
m16 = ATmega16 [/home/pi/avrdude_gpio.conf:3832]
m161 = ATmega161 [/home/pi/avrdude_gpio.conf:5977]
m162 = ATmega162 [/home/pi/avrdude_gpio.conf:4837]
m163 = ATmega163 [/home/pi/avrdude_gpio.conf:5035]
m164p = ATmega164P [/home/pi/avrdude_gpio.conf:4011]
m168 = ATmega168 [/home/pi/avrdude_gpio.conf:7723]
m168p = ATmega168P [/home/pi/avrdude_gpio.conf:7912]
m169 = ATmega169 [/home/pi/avrdude_gpio.conf:5193]
m16u2 = ATmega16U2 [/home/pi/avrdude_gpio.conf:12234]
m2560 = ATmega2560 [/home/pi/avrdude_gpio.conf:9896]
m2561 = ATmega2561 [/home/pi/avrdude_gpio.conf:10090]
m2564rfr2 = ATmega2564RFR2 [/home/pi/avrdude_gpio.conf:10308]
m256rfr2 = ATmega256RFR2 [/home/pi/avrdude_gpio.conf:10157]
m32 = ATmega32 [/home/pi/avrdude_gpio.conf:5800]
m324p = ATmega324P [/home/pi/avrdude_gpio.conf:4035]
m324pa = ATmega324PA [/home/pi/avrdude_gpio.conf:4227]
m325 = ATmega325 [/home/pi/avrdude_gpio.conf:12604]
m3250 = ATmega3250 [/home/pi/avrdude_gpio.conf:12985]
m328 = ATmega328 [/home/pi/avrdude_gpio.conf:8113]
m328p = ATmega328P [/home/pi/avrdude_gpio.conf:8298]
m329 = ATmega329 [/home/pi/avrdude_gpio.conf:5375]
m3290 = ATmega3290 [/home/pi/avrdude_gpio.conf:5574]
m3290p = ATmega3290P [/home/pi/avrdude_gpio.conf:5588]
m329p = ATmega329P [/home/pi/avrdude_gpio.conf:5560]
m32u2 = ATmega32U2 [/home/pi/avrdude_gpio.conf:12046]
m32u4 = ATmega32U4 [/home/pi/avrdude_gpio.conf:11071]
m406 = ATMEGA406 [/home/pi/avrdude_gpio.conf:14496]
m48 = ATmega48 [/home/pi/avrdude_gpio.conf:7323]
m48p = ATmega48P [/home/pi/avrdude_gpio.conf:7510]
m64 = ATmega64 [/home/pi/avrdude_gpio.conf:2892]
m640 = ATmega640 [/home/pi/avrdude_gpio.conf:9503]
m644 = ATmega644 [/home/pi/avrdude_gpio.conf:4243]
m644p = ATmega644P [/home/pi/avrdude_gpio.conf:4434]
m644rfr2 = ATmega644RFR2 [/home/pi/avrdude_gpio.conf:10328]
m645 = ATmega645 [/home/pi/avrdude_gpio.conf:12795]
m6450 = ATmega6450 [/home/pi/avrdude_gpio.conf:12997]
m649 = ATmega649 [/home/pi/avrdude_gpio.conf:5601]
m6490 = ATmega6490 [/home/pi/avrdude_gpio.conf:5787]
m64rfr2 = ATmega64RFR2 [/home/pi/avrdude_gpio.conf:10219]
m8 = ATmega8 [/home/pi/avrdude_gpio.conf:6117]
m8515 = ATmega8515 [/home/pi/avrdude_gpio.conf:6278]
m8535 = ATmega8535 [/home/pi/avrdude_gpio.conf:6436]
m88 = ATmega88 [/home/pi/avrdude_gpio.conf:7523]
m88p = ATmega88P [/home/pi/avrdude_gpio.conf:7710]
m8u2 = ATmega8U2 [/home/pi/avrdude_gpio.conf:12422]
t10 = ATtiny10 [/home/pi/avrdude_gpio.conf:14451]
t11 = ATtiny11 [/home/pi/avrdude_gpio.conf:1211]
t12 = ATtiny12 [/home/pi/avrdude_gpio.conf:1275]
t13 = ATtiny13 [/home/pi/avrdude_gpio.conf:1408]
t15 = ATtiny15 [/home/pi/avrdude_gpio.conf:1583]
t1634 = ATtiny1634 [/home/pi/avrdude_gpio.conf:14184]
t20 = ATtiny20 [/home/pi/avrdude_gpio.conf:14461]
t2313 = ATtiny2313 [/home/pi/avrdude_gpio.conf:8311]
t24 = ATtiny24 [/home/pi/avrdude_gpio.conf:10339]
t25 = ATtiny25 [/home/pi/avrdude_gpio.conf:8957]
t26 = ATtiny26 [/home/pi/avrdude_gpio.conf:6594]
t261 = ATtiny261 [/home/pi/avrdude_gpio.conf:6751]
t4 = ATtiny4 [/home/pi/avrdude_gpio.conf:14407]
t40 = ATtiny40 [/home/pi/avrdude_gpio.conf:14478]
t4313 = ATtiny4313 [/home/pi/avrdude_gpio.conf:8500]
t43u = ATtiny43u [/home/pi/avrdude_gpio.conf:10892]
t44 = ATtiny44 [/home/pi/avrdude_gpio.conf:10523]
t45 = ATtiny45 [/home/pi/avrdude_gpio.conf:9139]
t461 = ATtiny461 [/home/pi/avrdude_gpio.conf:6942]
t5 = ATtiny5 [/home/pi/avrdude_gpio.conf:14424]
t84 = ATtiny84 [/home/pi/avrdude_gpio.conf:10707]
t85 = ATtiny85 [/home/pi/avrdude_gpio.conf:9320]
t861 = ATtiny861 [/home/pi/avrdude_gpio.conf:7133]
t88 = ATtiny88 [/home/pi/avrdude_gpio.conf:7925]
t9 = ATtiny9 [/home/pi/avrdude_gpio.conf:14434]
x128a1 = ATxmega128A1 [/home/pi/avrdude_gpio.conf:13478]
x128a1d = ATxmega128A1revD [/home/pi/avrdude_gpio.conf:13494]
x128a1u = ATxmega128A1U [/home/pi/avrdude_gpio.conf:13504]
x128a3 = ATxmega128A3 [/home/pi/avrdude_gpio.conf:13515]
x128a3u = ATxmega128A3U [/home/pi/avrdude_gpio.conf:13525]
x128a4 = ATxmega128A4 [/home/pi/avrdude_gpio.conf:13536]
x128a4u = ATxmega128A4U [/home/pi/avrdude_gpio.conf:13594]
x128b1 = ATxmega128B1 [/home/pi/avrdude_gpio.conf:13647]
x128b3 = ATxmega128B3 [/home/pi/avrdude_gpio.conf:13706]
x128c3 = ATxmega128C3 [/home/pi/avrdude_gpio.conf:13405]
x128d3 = ATxmega128D3 [/home/pi/avrdude_gpio.conf:13458]
x128d4 = ATxmega128D4 [/home/pi/avrdude_gpio.conf:13468]
x16a4 = ATxmega16A4 [/home/pi/avrdude_gpio.conf:13136]
x16a4u = ATxmega16A4U [/home/pi/avrdude_gpio.conf:13063]
x16c4 = ATxmega16C4 [/home/pi/avrdude_gpio.conf:13116]
x16d4 = ATxmega16D4 [/home/pi/avrdude_gpio.conf:13126]
x16e5 = ATxmega16E5 [/home/pi/avrdude_gpio.conf:14053]
x192a1 = ATxmega192A1 [/home/pi/avrdude_gpio.conf:13780]
x192a3 = ATxmega192A3 [/home/pi/avrdude_gpio.conf:13796]
x192a3u = ATxmega192A3U [/home/pi/avrdude_gpio.conf:13806]
x192c3 = ATxmega192C3 [/home/pi/avrdude_gpio.conf:13717]
x192d3 = ATxmega192D3 [/home/pi/avrdude_gpio.conf:13770]
x256a1 = ATxmega256A1 [/home/pi/avrdude_gpio.conf:13880]
x256a3 = ATxmega256A3 [/home/pi/avrdude_gpio.conf:13896]
x256a3b = ATxmega256A3B [/home/pi/avrdude_gpio.conf:13917]
x256a3bu = ATxmega256A3BU [/home/pi/avrdude_gpio.conf:13927]
x256a3u = ATxmega256A3U [/home/pi/avrdude_gpio.conf:13906]
x256c3 = ATxmega256C3 [/home/pi/avrdude_gpio.conf:13817]
x256d3 = ATxmega256D3 [/home/pi/avrdude_gpio.conf:13870]
x32a4 = ATxmega32A4 [/home/pi/avrdude_gpio.conf:13225]
x32a4u = ATxmega32A4U [/home/pi/avrdude_gpio.conf:13152]
x32c4 = ATxmega32C4 [/home/pi/avrdude_gpio.conf:13205]
x32d4 = ATxmega32D4 [/home/pi/avrdude_gpio.conf:13215]
x32e5 = ATxmega32E5 [/home/pi/avrdude_gpio.conf:14105]
x384c3 = ATxmega384C3 [/home/pi/avrdude_gpio.conf:13938]
x384d3 = ATxmega384D3 [/home/pi/avrdude_gpio.conf:13991]
x64a1 = ATxmega64A1 [/home/pi/avrdude_gpio.conf:13325]
x64a1u = ATxmega64A1U [/home/pi/avrdude_gpio.conf:13341]
x64a3 = ATxmega64A3 [/home/pi/avrdude_gpio.conf:13352]
x64a3u = ATxmega64A3U [/home/pi/avrdude_gpio.conf:13362]
x64a4 = ATxmega64A4 [/home/pi/avrdude_gpio.conf:13373]
x64a4u = ATxmega64A4U [/home/pi/avrdude_gpio.conf:13241]
x64b1 = ATxmega64B1 [/home/pi/avrdude_gpio.conf:13383]
x64b3 = ATxmega64B3 [/home/pi/avrdude_gpio.conf:13394]
x64c3 = ATxmega64C3 [/home/pi/avrdude_gpio.conf:13294]
x64d3 = ATxmega64D3 [/home/pi/avrdude_gpio.conf:13305]
x64d4 = ATxmega64D4 [/home/pi/avrdude_gpio.conf:13315]
x8e5 = ATxmega8E5 [/home/pi/avrdude_gpio.conf:14001]
ucr2 = deprecated, use 'uc3a0512' [/home/pi/avrdude_gpio.conf:14174]
uc3a0512 = AT32UC3A0512 [/home/pi/avrdude_gpio.conf:14158]
c128 = AT90CAN128 [/home/pi/avrdude_gpio.conf:3255]
c32 = AT90CAN32 [/home/pi/avrdude_gpio.conf:3639]
c64 = AT90CAN64 [/home/pi/avrdude_gpio.conf:3447]
pwm2 = AT90PWM2 [/home/pi/avrdude_gpio.conf:8684]
pwm2b = AT90PWM2B [/home/pi/avrdude_gpio.conf:8877]
pwm3 = AT90PWM3 [/home/pi/avrdude_gpio.conf:8867]
pwm316 = AT90PWM316 [/home/pi/avrdude_gpio.conf:8904]
pwm3b = AT90PWM3B [/home/pi/avrdude_gpio.conf:8891]
1200 = AT90S1200 [/home/pi/avrdude_gpio.conf:1716]
2313 = AT90S2313 [/home/pi/avrdude_gpio.conf:1945]
2333 = AT90S2333 [/home/pi/avrdude_gpio.conf:2058]
2343 = AT90S2343 [/home/pi/avrdude_gpio.conf:2186]
4414 = AT90S4414 [/home/pi/avrdude_gpio.conf:1832]
4433 = AT90S4433 [/home/pi/avrdude_gpio.conf:2310]
4434 = AT90S4434 [/home/pi/avrdude_gpio.conf:2434]
8515 = AT90S8515 [/home/pi/avrdude_gpio.conf:2517]
8535 = AT90S8535 [/home/pi/avrdude_gpio.conf:2631]
usb1286 = AT90USB1286 [/home/pi/avrdude_gpio.conf:11466]
usb1287 = AT90USB1287 [/home/pi/avrdude_gpio.conf:11657]
usb162 = AT90USB162 [/home/pi/avrdude_gpio.conf:11670]
usb646 = AT90USB646 [/home/pi/avrdude_gpio.conf:11262]
usb647 = AT90USB647 [/home/pi/avrdude_gpio.conf:11453]
usb82 = AT90USB82 [/home/pi/avrdude_gpio.conf:11857]
m103 = ATmega103 [/home/pi/avrdude_gpio.conf:2752]
m128 = ATmega128 [/home/pi/avrdude_gpio.conf:3075]
m1280 = ATmega1280 [/home/pi/avrdude_gpio.conf:9693]
m1281 = ATmega1281 [/home/pi/avrdude_gpio.conf:9883]
m1284 = ATmega1284 [/home/pi/avrdude_gpio.conf:4451]
m1284p = ATmega1284P [/home/pi/avrdude_gpio.conf:4645]
m1284rfr2 = ATmega1284RFR2 [/home/pi/avrdude_gpio.conf:10318]
m128rfa1 = ATmega128RFA1 [/home/pi/avrdude_gpio.conf:10103]
m128rfr2 = ATmega128RFR2 [/home/pi/avrdude_gpio.conf:10206]
m16 = ATmega16 [/home/pi/avrdude_gpio.conf:3832]
m161 = ATmega161 [/home/pi/avrdude_gpio.conf:5977]
m162 = ATmega162 [/home/pi/avrdude_gpio.conf:4837]
m163 = ATmega163 [/home/pi/avrdude_gpio.conf:5035]
m164p = ATmega164P [/home/pi/avrdude_gpio.conf:4011]
m168 = ATmega168 [/home/pi/avrdude_gpio.conf:7723]
m168p = ATmega168P [/home/pi/avrdude_gpio.conf:7912]
m169 = ATmega169 [/home/pi/avrdude_gpio.conf:5193]
m16u2 = ATmega16U2 [/home/pi/avrdude_gpio.conf:12234]
m2560 = ATmega2560 [/home/pi/avrdude_gpio.conf:9896]
m2561 = ATmega2561 [/home/pi/avrdude_gpio.conf:10090]
m2564rfr2 = ATmega2564RFR2 [/home/pi/avrdude_gpio.conf:10308]
m256rfr2 = ATmega256RFR2 [/home/pi/avrdude_gpio.conf:10157]
m32 = ATmega32 [/home/pi/avrdude_gpio.conf:5800]
m324p = ATmega324P [/home/pi/avrdude_gpio.conf:4035]
m324pa = ATmega324PA [/home/pi/avrdude_gpio.conf:4227]
m325 = ATmega325 [/home/pi/avrdude_gpio.conf:12604]
m3250 = ATmega3250 [/home/pi/avrdude_gpio.conf:12985]
m328 = ATmega328 [/home/pi/avrdude_gpio.conf:8113]
m328p = ATmega328P [/home/pi/avrdude_gpio.conf:8298]
m329 = ATmega329 [/home/pi/avrdude_gpio.conf:5375]
m3290 = ATmega3290 [/home/pi/avrdude_gpio.conf:5574]
m3290p = ATmega3290P [/home/pi/avrdude_gpio.conf:5588]
m329p = ATmega329P [/home/pi/avrdude_gpio.conf:5560]
m32u2 = ATmega32U2 [/home/pi/avrdude_gpio.conf:12046]
m32u4 = ATmega32U4 [/home/pi/avrdude_gpio.conf:11071]
m406 = ATMEGA406 [/home/pi/avrdude_gpio.conf:14496]
m48 = ATmega48 [/home/pi/avrdude_gpio.conf:7323]
m48p = ATmega48P [/home/pi/avrdude_gpio.conf:7510]
m64 = ATmega64 [/home/pi/avrdude_gpio.conf:2892]
m640 = ATmega640 [/home/pi/avrdude_gpio.conf:9503]
m644 = ATmega644 [/home/pi/avrdude_gpio.conf:4243]
m644p = ATmega644P [/home/pi/avrdude_gpio.conf:4434]
m644rfr2 = ATmega644RFR2 [/home/pi/avrdude_gpio.conf:10328]
m645 = ATmega645 [/home/pi/avrdude_gpio.conf:12795]
m6450 = ATmega6450 [/home/pi/avrdude_gpio.conf:12997]
m649 = ATmega649 [/home/pi/avrdude_gpio.conf:5601]
m6490 = ATmega6490 [/home/pi/avrdude_gpio.conf:5787]
m64rfr2 = ATmega64RFR2 [/home/pi/avrdude_gpio.conf:10219]
m8 = ATmega8 [/home/pi/avrdude_gpio.conf:6117]
m8515 = ATmega8515 [/home/pi/avrdude_gpio.conf:6278]
m8535 = ATmega8535 [/home/pi/avrdude_gpio.conf:6436]
m88 = ATmega88 [/home/pi/avrdude_gpio.conf:7523]
m88p = ATmega88P [/home/pi/avrdude_gpio.conf:7710]
m8u2 = ATmega8U2 [/home/pi/avrdude_gpio.conf:12422]
t10 = ATtiny10 [/home/pi/avrdude_gpio.conf:14451]
t11 = ATtiny11 [/home/pi/avrdude_gpio.conf:1211]
t12 = ATtiny12 [/home/pi/avrdude_gpio.conf:1275]
t13 = ATtiny13 [/home/pi/avrdude_gpio.conf:1408]
t15 = ATtiny15 [/home/pi/avrdude_gpio.conf:1583]
t1634 = ATtiny1634 [/home/pi/avrdude_gpio.conf:14184]
t20 = ATtiny20 [/home/pi/avrdude_gpio.conf:14461]
t2313 = ATtiny2313 [/home/pi/avrdude_gpio.conf:8311]
t24 = ATtiny24 [/home/pi/avrdude_gpio.conf:10339]
t25 = ATtiny25 [/home/pi/avrdude_gpio.conf:8957]
t26 = ATtiny26 [/home/pi/avrdude_gpio.conf:6594]
t261 = ATtiny261 [/home/pi/avrdude_gpio.conf:6751]
t4 = ATtiny4 [/home/pi/avrdude_gpio.conf:14407]
t40 = ATtiny40 [/home/pi/avrdude_gpio.conf:14478]
t4313 = ATtiny4313 [/home/pi/avrdude_gpio.conf:8500]
t43u = ATtiny43u [/home/pi/avrdude_gpio.conf:10892]
t44 = ATtiny44 [/home/pi/avrdude_gpio.conf:10523]
t45 = ATtiny45 [/home/pi/avrdude_gpio.conf:9139]
t461 = ATtiny461 [/home/pi/avrdude_gpio.conf:6942]
t5 = ATtiny5 [/home/pi/avrdude_gpio.conf:14424]
t84 = ATtiny84 [/home/pi/avrdude_gpio.conf:10707]
t85 = ATtiny85 [/home/pi/avrdude_gpio.conf:9320]
t861 = ATtiny861 [/home/pi/avrdude_gpio.conf:7133]
t88 = ATtiny88 [/home/pi/avrdude_gpio.conf:7925]
t9 = ATtiny9 [/home/pi/avrdude_gpio.conf:14434]
x128a1 = ATxmega128A1 [/home/pi/avrdude_gpio.conf:13478]
x128a1d = ATxmega128A1revD [/home/pi/avrdude_gpio.conf:13494]
x128a1u = ATxmega128A1U [/home/pi/avrdude_gpio.conf:13504]
x128a3 = ATxmega128A3 [/home/pi/avrdude_gpio.conf:13515]
x128a3u = ATxmega128A3U [/home/pi/avrdude_gpio.conf:13525]
x128a4 = ATxmega128A4 [/home/pi/avrdude_gpio.conf:13536]
x128a4u = ATxmega128A4U [/home/pi/avrdude_gpio.conf:13594]
x128b1 = ATxmega128B1 [/home/pi/avrdude_gpio.conf:13647]
x128b3 = ATxmega128B3 [/home/pi/avrdude_gpio.conf:13706]
x128c3 = ATxmega128C3 [/home/pi/avrdude_gpio.conf:13405]
x128d3 = ATxmega128D3 [/home/pi/avrdude_gpio.conf:13458]
x128d4 = ATxmega128D4 [/home/pi/avrdude_gpio.conf:13468]
x16a4 = ATxmega16A4 [/home/pi/avrdude_gpio.conf:13136]
x16a4u = ATxmega16A4U [/home/pi/avrdude_gpio.conf:13063]
x16c4 = ATxmega16C4 [/home/pi/avrdude_gpio.conf:13116]
x16d4 = ATxmega16D4 [/home/pi/avrdude_gpio.conf:13126]
x16e5 = ATxmega16E5 [/home/pi/avrdude_gpio.conf:14053]
x192a1 = ATxmega192A1 [/home/pi/avrdude_gpio.conf:13780]
x192a3 = ATxmega192A3 [/home/pi/avrdude_gpio.conf:13796]
x192a3u = ATxmega192A3U [/home/pi/avrdude_gpio.conf:13806]
x192c3 = ATxmega192C3 [/home/pi/avrdude_gpio.conf:13717]
x192d3 = ATxmega192D3 [/home/pi/avrdude_gpio.conf:13770]
x256a1 = ATxmega256A1 [/home/pi/avrdude_gpio.conf:13880]
x256a3 = ATxmega256A3 [/home/pi/avrdude_gpio.conf:13896]
x256a3b = ATxmega256A3B [/home/pi/avrdude_gpio.conf:13917]
x256a3bu = ATxmega256A3BU [/home/pi/avrdude_gpio.conf:13927]
x256a3u = ATxmega256A3U [/home/pi/avrdude_gpio.conf:13906]
x256c3 = ATxmega256C3 [/home/pi/avrdude_gpio.conf:13817]
x256d3 = ATxmega256D3 [/home/pi/avrdude_gpio.conf:13870]
x32a4 = ATxmega32A4 [/home/pi/avrdude_gpio.conf:13225]
x32a4u = ATxmega32A4U [/home/pi/avrdude_gpio.conf:13152]
x32c4 = ATxmega32C4 [/home/pi/avrdude_gpio.conf:13205]
x32d4 = ATxmega32D4 [/home/pi/avrdude_gpio.conf:13215]
x32e5 = ATxmega32E5 [/home/pi/avrdude_gpio.conf:14105]
x384c3 = ATxmega384C3 [/home/pi/avrdude_gpio.conf:13938]
x384d3 = ATxmega384D3 [/home/pi/avrdude_gpio.conf:13991]
x64a1 = ATxmega64A1 [/home/pi/avrdude_gpio.conf:13325]
x64a1u = ATxmega64A1U [/home/pi/avrdude_gpio.conf:13341]
x64a3 = ATxmega64A3 [/home/pi/avrdude_gpio.conf:13352]
x64a3u = ATxmega64A3U [/home/pi/avrdude_gpio.conf:13362]
x64a4 = ATxmega64A4 [/home/pi/avrdude_gpio.conf:13373]
x64a4u = ATxmega64A4U [/home/pi/avrdude_gpio.conf:13241]
x64b1 = ATxmega64B1 [/home/pi/avrdude_gpio.conf:13383]
x64b3 = ATxmega64B3 [/home/pi/avrdude_gpio.conf:13394]
x64c3 = ATxmega64C3 [/home/pi/avrdude_gpio.conf:13294]
x64d3 = ATxmega64D3 [/home/pi/avrdude_gpio.conf:13305]
x64d4 = ATxmega64D4 [/home/pi/avrdude_gpio.conf:13315]
x8e5 = ATxmega8E5 [/home/pi/avrdude_gpio.conf:14001]
ucr2 = deprecated, use 'uc3a0512' [/home/pi/avrdude_gpio.conf:14174]
FIX: Can't export GPIO 4 (AVRDUDE Raspberry)
Y muestra el siguiente error:
Can't export GPIO 4, already exported/busy?: Device or resource busy
avrdude done. Thank you.
Para solucionarlo puedes usar otro puerto. Yo he usado el GPIO 12 y me fue de maravillas.
Suscribirse a:
Entradas (Atom)