Cargar Bootloader y Firmware en USDR+ Red Corners

In English? Here!

Intentando actualizar el firmware de mi USDR+ Red Corners (¿a quíen se le habrá ocurrido primero identificarlo así?), desaparecí el bootloader y no volvió a arrancar.

Anteriormente había cambiado el encoder rotativo, pues este control se dañó al poco tiempo de recibido el transceptor, pero su reemplazo subía las frecuencias al girar en sentido antihorario y las bajaba al girar en sentido horario, al revés de lo deseable.

Otro error era que desde fábrica nunca apagó la pantalla aunque el parámetro 10.1 de la configuración se estableciera en OFF.

El apagado de la pantalla después de subir el nuevo firmware

Después de 3 horas intentando cargar el bootloader sin éxito, descubrí que la secuencia era bastante fácil, se necesita:

Los pasos que hice fueron estos:

  • Conectar el Arduino a la computadora mediante su cable USB.
  • En Arduino IDE:
    • Seleccionar Archivo – Ejemplos – Arduino ISP. Cargará un sketch de ejemplo.
    • En el menú Herramientas, seleccionar la placa «Arduino Uno» o «Arduino Nano» (con el procesador «ATmega328P»), el puerto y programador «Arduino como ISP».
    • Subir el sketch de ejemplo al Nano mediante Programa – Subir!
  • Desconectar el Arduino de la pc y conectarlo al USDR+ Red Corners, mediante sus 6 pines interiores (ver abajo) . Hay que retirar la pantalla para acceder al conector. El USDR+ permanece apagado.
  • Volver a conectar el Arduino Nano a la pc, los Leds del trasceptor se encenderán.
  • Seguimos en Arduino IDE:
    • Abrir el firmware 4.00d descargado usdxREDCORNERS.ino), IDE indicará que creará un directorio, aceptarlo.
    • Personalizar el firmware en las líneas del indicativo MY_CALLSIGN y MY_CALLSIGN_PADDED, están después de la línea 170.
    • Mi encoder incrementaba la frecuencia en sentido antihorario, en lugar de bajarla, la solución es comentar //#define SWAP_ROTARY (por la línea 192).
    • Probar la compilación desde el menú Programa – Verificar/Compilar
    • Ir al menú Programa – Exportar Binarios Compilados. Se guardará con extensión .hex en el mismo directorio que se creó automáticamente cuando se abrió el firmware.
  • Abrir Avrdudess y configurarlo así:
    • Programador: Atmel AVR ISP
    • Port: el mismo que funcionó al subir el ejemplo al Arduino desde Arduino IDE
    • Baud rate: 19200
    • MCU: ATmega328P
    • Flash: La ruta al archivo exportado por el Arduino IDE con extensión .hex, usar el que incluye el bootloader, lo indica en su nombre.
    • Marcar la casilla Borrar Flash y Eprom
    • Fuses: L es 0xFF, H es 0xD6 y E es 0xFD, no olvidar marcar la casilla Set fuses
    • Click en Programar!

Si todo fue bien, los Led del USDR+ Red Corners parpaderán entre rojo y verde unos segundos y luego quedarán en verde. Desconectar el USB del Arduino Nano y los cables del USDR+ Red Corners. Reponer la pantalla y encender.

Después de comprobar que el uSDR+ encendió, apagarlo y reiniciar con la configuración por default (manteniendo presionado el botón MENU mientras se enciende).

Identificación de los pines para programar el Arduino ATmega328P del USDR+ Red Corners

La conexión entre USDR+ y Arduino Nano es esta:

  • VCC -> 5V
  • MOSI -> D11
  • GND -> GND
  • MISO -> D12
  • SCK -> D13
  • RST -> D10

Si usas Arduino Uno, las conexiones son estas:

  • VCC -> 2
  • MOSI -> 4
  • GND -> 6
  • MISO -> 1
  • SCK -> 3
  • RST -> 5
Cables conectados en el Arduino Nano para transferir bootloader y firmware al USDR+ Red Corners
Cables conectados en el Arduino Nano para transferir bootloader y firmware al USDR+ Red Corners
Pines del Arduino Uno para conectar el uSDR+ Red Corners