=====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]}}