This is an old revision of the document!
QRP Labs - QCX firmware upgrade with Raspberry Pi
2019-10-12 - Using a Raspberry Pi board as AVR programmer to update the QRP Labs QCX transceiver's firmware. The power draw from the QCX to the RPi seemed a bit too much, so I did not use the RPi 5v output.
Photo of older version firmware.
====Requirements====
* Raspberry Pi (I used a 3 model B+ board from 2017).
* Raspbian (based on Debian Buster). Using /boot/ssh
and /boot/wpa_supplicant.conf
for headless install.
* A built and working QCX tranceiver. Website: http://qrp-labs.com/qcx.html
* Jumper wires.
* QCX Firmware https://www.qrp-labs.com/qcx/qcxfirmware.html. Direct link (2019-10-12): http://qrp-labs.com/images/qcx/firmware/T1.01a.hex
* Connect a dummy load!
====Configure raspbian====
* Enable spi in /boot/config.txt
and reboot: <code>dtparam=spi=on</code>
* Install avrdude:<code>sudo apt install avrdude</code>
====Wiring====
<code>
Raspberry Pi
=========================================
(Right board edge)
|
1 oo|2
3 oo|4
5 oo|6
7 oo|8
9 oo|10
11 oo|12
13 oo|14
15 oo|16
17 oo|18
BCM 10 MOSI - 19 oo|20
BCM 9 MISO - 21 oo|22 BCM 25 RESET
BCM 11 SCLK - 23 oo|24
GND - 25 oo|26
<snip>
QCX
=========================================
(left board edge)
| V -
| V +
|
GND | o o RESET
MOSI | o o SCK
5V | o o MISO
</code>
====Programming====
* Check connection:<code>sudo avrdude -p atmega328p -c linuxspi -P /dev/spidev0.0 -v -b19200</code>
* Program latest firmware:<code>sudo avrdude -p atmega328p -c linuxspi -P /dev/spidev0.0 -v -b19200 -U flash:w:T1.04.hex</code>