=====QRP Labs - QCX firmware upgrade with Raspberry Pi=====
**I now use the: [[qcx_firmware_usbtinyisp|USBTinyISP]] method.**
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.
{{::img_2158.jpg?nolink&600|}} \\
//Photo of older version firmware, i'm now at v1.05.//
{{::img_2155.jpg?nolink&600|}}
====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]].
* **Connect a dummy load! I did see a unit going into transmit when connected to the RPi, during flashing transmit was off. I haven't investigated how and why this happens.**
====Configure raspbian====
* Enable spi in ''/boot/config.txt'' and reboot: dtparam=spi=on
* Install avrdude:sudo apt install avrdude
====Wiring====
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
QCX
=========================================
(left board edge)
| V -
| V +
|
GND | o o RESET
MOSI | o o SCK
5V | o o MISO
====Programming====
* Check connection:sudo avrdude -p atmega328p -c linuxspi -P /dev/spidev0.0 -v -b19200
* Program latest firmware:sudo avrdude -p atmega328p -c linuxspi -P /dev/spidev0.0 -v -b19200 -U flash:w:T1.04.hex
{{tag>[hardware qrp labs qcx avr avrdude]}}