This is based on the tutorial by Simon, VK3ELH found here.
1. Hardware requirements
a. QCX built and operational
b. Arduino Uno
c. Computer capable of running the Arduino IDE and AVRDUDE
d. USB cable to connect Uno to computer
e. Jumper leads to connect the Arduino Uno to the ISP header in the QCX – female one end, male other end.
2. Software requirements
a. Arduino IDE – Arduino IDE Link.
b. AVRDUDESS – Go to Zak Kembles blog and download avrdudess - A GUI for avrdude
c. Download the version of the QCX firmware you want to install.
To get the version of firmware you need you will have to be a subscriber to the QRP Labs email list on groups.io. You can join groups.io here.
This is what you'll see at the top of their main groups.io page. Click on the 'SignUp' link to join.
If you're already on groups.io (or just joined and logged in), search for the QRP Labs group. You should find this page where you can subscribe to the list:
After you subscribe and are allowed in ( may take a day for approval), click the files link on the left. Find the 'Firmware for QCX kits' folder and look inside. Here is where you will find the hex files (or links to them) for each release.
Important: Once downloaded, be sure to unzip the file if it is zipped.
3. Preparations
a. Prepare the Arduino Uno
The Arduino needs to be programmed to act as an In System Programmer (“ISP”).
There is a sketch(program) that comes with the Arduino IDE called “ArduinoISP”.
In the Arduino IDE program menus click File>Examples>ArduinoISP>ArduinoISP.
Connect your Arduino to your computer and select the correct board and port from the Select Board Drop-Down Menu (or the Tools menu).
Upload the ArduinoISP sketch.
b. Connect the Arduino to the QCX’s ISP pins as follows:
Arduino Pin Number QCX ISP Pin 10 RESET 11 MOSI 12 MISO 13 SCK GND GND
Power the QCX normally via the 13.8V supply rather than powering it from the Arduino to ensure it gets enough power.
Note: The 5V pin on the QCX is not connected to the Arduino.
4. Flash the new firmware to the QCX
a. Start AVRDUDESS
b. Select “Arduino” as the programmer
c. Select the COM port the Arduino is connected to
d. Enter BAUD rate 19200
e. Select ATmega328P as the MCU
f. Select the path where the new firmware is located
g. Press the Program button.
As shown in the picture, you'll know when it is done programming the chip.
This 'modified' procedure worked for me when programming a circa 2017 QCX radio. Your mileage may vary.
Thanks!
Mike Dooley
N5BGZ
Mike Dooley
N5BGZ
Can this procedure be used to program a blank/new ATMega328P into a QCX+ capable chip, or does it assume there's a base layer of memory that never changes and layers new firmware on top of that?
ReplyDeleteWe burned out our 328P during debug of a newly constructed QCX+, but have 328Ps laying around that I'd like to substitute in to avoid the shipping wait from overseas for the new QRP Labs 328Ps I ordered yesterday.
Hamilton, The programming I did was on a couple of ATMega328P chips that came in the radios. I've never tried this on a blank one. However, if you have everything you need to do the programming I'd suggest giving it a try. Worst case, it won't work. Best case it will and you'll be back on the air sooner! Let me know how it goes.... and thanks! Mike
DeleteYou make a really good point! The kids and I will try it out tonight. Thank you!
ReplyDelete