Loading bootloader and firmware in uSDR+ Red Corners

En español? Aquí está!

Doing experiments, I damaged the boot of my uSDR+ Red Corners and from that moment on the screen stopped showing text and the equipment was unusable.
This is the procedure to recover the bootloader and at the same time write a new version of firmware to it. (Thank you very much Rob GW8RDI for such a good job!: Modulation will improve significantly, the screen backlight can be turned off and you will have CAT to control the frequency and ptt from a program for digitals as FT8, VarAC, etc.)

Required hardware:

  • Arduino Nano or Arduino Uno.
  • 6 wires with connectors to connect the uSDR+ to the Arduino.

Required software:

Procedure:

  • Connect arduino to computer with its USB cable.
  • In Arduino IDE:
    • Select File ExamplesArduino ISP. It will load an example sketch.
    • In the Tools menu, select your “Arduino…” board, the “ATmega328P” processor, port, and the programmer “Arduino as ISP.
    • Upload the example sketch to the Arduino using ProgramUpload!
  • Disconnect the Arduino from the PC and connect it to the uSDR+ Red Corners, via 6 interior pins (see below). You have to remove the screen to access the connector. USDR+ remains off.
  • Reconnect the Arduino to the PC, the LEDs on the transceiver will light up.
  • We continue in Arduino IDE:
    • Open the downloaded 4.00d firmware, IDE will prompt to create a directory, accept it.
    • If you want, customize the firmware in the MY_CALLSIGN and MY_CALLSIGN_PADDED callsign lines, they are after line 170.
    • In my case it was necessary to exchange the rotary encoder information on lines 372 and 373 so that the clockwise direction of rotation increases the data on the screen and counterclockwise decreases it, ROT_A is now 6 and ROT_B is now 7.
    • Test the compilation from the Program menu – Verify/Compile.
    • Go to the Program menu – Export Compiled Binaries. It will be saved with a .hex extension in the same directory that was automatically created when the firmware was opened.
  • Open Avrudess and configure it like this:
    • Programmer: Atmel AVR ISP
    • Port: the same one that worked when uploading the example to the Arduino from Arduino IDE
    • Baud rate: 19200
    • MCU: ATmega328P
    • Flash: The path to the file exported by the Arduino IDE with a .hex extension, use the one included in the bootloader, which indicates it in its name.
    • Check the Erase Flash and Eprom box
    • Fuses: L is 0xFF, H is 0xD6 and E is 0xFD, don’t forget to check the Set fuses box
    • Click on Program!

If everything went well, the USDR+ Red Corners LEDs will flash between red and green for a few seconds and then turn green. Disconnect the USB from your Arduino and the cables from your USDR+ Red Corners. Mount the screen and turn on.

After checking that the uSDR+ turned on, turn it off and restart with the default configuration (holding the MENU button while turning on).

Identification of the pins to program the Arduino ATmega328P of the uSDR+ Red Corners (view is from the opposite side to which the cables are connected)

The connection between uSDR+ and Arduino (Nano in my case) is this:

  • VCC -> 5V
  • MOSI -> D11
  • GND -> GND
  • MISO -> D12
  • SCK -> D13
  • RST -> D10
Wires connected to an Arduino Nano to transfer bootloader and firmware to the uSDR+ Red Corners
With Rob’s 4.00d firmware the screen backlight can be turned off!