S.H. QCX arrived!

Ham4CW

Administrator
As mentioned elsewhere on the forum, I have purchased a QCX transceiver second hand (but 'unused').

It had firmware version T1.05, but I have now updated it to version T1.07a

Rather than risk 'bricking' the radio, I copied the Atmel 328P first, then added the new firmware to the copied device.

73, Mark...
 

Attachments

  • qcx_g0kzz.JPG
    qcx_g0kzz.JPG
    96.7 KB · Views: 102
Nice Mark,
Same enclosure as i have. It's well made.

I did look at process for updating firmware about 6 months ago (I have never done it). It involved buying a programming kit from ebay to program the chip.

I didnt see a topic for this in the forums (might have missed it), is it worth making a topic for qcx firmware update process?

73
Craig
 
Hiya Craig.

The cases look OK. I thought it was screen printed when I first saw one, but when my purchase arrived and I had a closer look I could see that it is a printed vinyl wrap, so we need to make sure it doesn't get any hard knocks else it may rip or scuff.

I performed the firmware update with the chip out of the board. The programmer I used is one I bought for use at work, so because it was to hand it was my first choice. I think it is possible to use a USBASP programmer, or anything else that can program Atmels via the six pin header on the PCB. I do have some USBASP programmers, they only cost pennies to buy, which I purchased to reflash the bootloader in an Arduino I had killed by writing to the wrong area of memory.

I might have a go at updating the firmware of a chip using one of the USBASP leads, just to see how 'easy' it is. I also have a dedicated AVR programming interface made by Mikroelektronika, which I use with their AVR IDE.

Anyway, the programmer I used was a cheap Chinese made USB 'universal programmer', and this was controlled by the free software provided by the manufacturer. Using that it is possible to extract the Code memory information, the Data memory information, and the Config data.

Starting with a blank AVR (Atmega 328P-PU in my case, the original is a 328P-U, any 328P will do), you need all three sets of data to get the thing to work. So if say you had a blank chip and just programmed in the new firmware, it would do nothing. Apart from the 'code', if you then set the fuses/config info too you would start to see some life, but in the case of these radios you get a warning/error message that says, "Use Original IC!".

So you must have the Code, Data, and Config info all programmed in to get the item to work. After having a look at the firmware update file it seems that what is in there is just the Code for the IC, it is not a complete all in one package. After a little bit of experimentation (and after making sure I could successfully recreate working clones of the chips for the rig), I adopted the following route.

1) I erased the new Atmega 328P-PU IC
2) I opened up the firmware file (which was in hex format), this becomes loaded in to the programmers IDE buffer
3) I read the Data and Config info from the original IC

By this point I now had New-Code/Data/Config in the buffer. It was just a case of hitting the program button and it was done, a cloned Atmega IC loaded with the new firmware plus the data/config info from the original IC.

After the new IC was tested in the radio, I then removed it and read/saved the entire 'project' so that if I need to replace the IC at any point I can just open the file and send it to another new Atmel rther than having to mess around opening files and reading the old IC to get everything I need.

Like I said earlier, I haven't tried the on-board header method yet, but I will just to see what can be done with via that technique. The way I did things here seems to have worked fine, but when we get to the latest QCX-mini boards I'm not sure if you can remove the Atmel, or if it is surface mounted and pre-fitted on the PCB. If it is 'fixed' within the rig then the header method would be the only means available so it would be worth mastering the system just for that.

After I updated the firmware any calibration data would be the default set, so I next wired up the GPS board and calibrated the on-board references. Before calibration I had tuned around on air and it was quite noticeable that stations seemed to be operating on odd offsets and seemingly strange frequency steps. Once the calibration was done however it was a different world when tuning around! Everything made sense, stations heard were where you would expect to find them and so on. So calibration is well worth doing, if not indeed a must!

It is possible to calibrate the QCX without using the GPS module, but it is so much easier and quicker with that unit, it really is.

Some things I have found 'odd' with the QCX are:-

1) No on-off switch  :-*
2) No AGC :-*
3) Both the S-meter and the Decoder are connected AFTER the volume control :-*
4) The headphone socket is configured such that if you use a mono connecting plug it shorts out the audio :-*
5) The audio filter is said to be 200Hz BW, yet it sounds much wider in use :-X
6) No RF pre-amp on receive, incoming signals go directly in to the sampling detector :-*

The most annoying one of all of he above is the lack of AGC. While listening to a contest this weekend I was forever having to turn the volume up and down, and very often when listening to a weak station I was deafened by much stronger stations replying. Listening around again tonight there was some deep rapid QSB present on some signals, and the changes in audio level were really noticeable and very annoying.

Mind you, this is not the only QRP rig with 'quirks'. I have an LNR MTR-3 mountain topper rig, that one does have AGC but no volume control! What!

Anyway I've rambled on enough for now :-[

73, Mark...
 

Attachments

  • cloned_atmel_in_situ.JPG
    cloned_atmel_in_situ.JPG
    89.5 KB · Views: 84
  • original_ic_warning.JPG
    original_ic_warning.JPG
    8.7 KB · Views: 89
  • sys_osc_gps_cal.JPG
    sys_osc_gps_cal.JPG
    9.3 KB · Views: 98
  • ref_osc_gps_cal.JPG
    ref_osc_gps_cal.JPG
    9.4 KB · Views: 89
My old Small Wonder Labs SW40 had no AGC and I know the feeling when a loud station appears and headphones scream. The QCX has so many bells and whistles I'm  a wee bit surprised it wasn't engineered in. But you do get a lot of radio for your money!
 
Totally agree with you both AGC is definitely required.

Mind you you, I had a listen to the uk/ei contest at the weekend, bands were very busy. I tuner in to a station who I could understand speed wise, only for a much louder station to come over the top. That was on the  Hack green SDR.

I cannot remember what version firmware I'm running, purchased qcx over a year back. So prob 1.04.
Have extract some text from qrp website, pretty much as you say Mark hex file only. There's also a pdf instruction sheet available.  If it all goes Pete tong you can buy a new IC for ?6 :P.

Upgrading your firmware

The QCX kit includes a 2 x 3-pin standard AVR header for In-Circuit-Programming on the board. Many suitable AVR programmers are available inexpensively on eBay and elsewhere. They have a USB cable to connect to a PC. On the PC you need software such as avrdude (very popular command line driven tool), or Windows programs with graphical user interfaces to avrdude.exe, for example Extreme Burner, Bit Burner, or AVRDudess. All are free. When upgrading the firmware, ensure:

1) Only use an original QRP Labs QCX firmware chip
2) Program only the provided .hex file (see above); do not change the Fuse settings, or other memories (e.g. EEPROM). 

CLICK HERE for a tutorial written by Simon VK3ELH on how to use an Arduino UNO and the AVRDudess program to update your QCX firmware. 

73
Craig
 
G4MNX said:
1) Only use an original QRP Labs QCX firmware chip
2) Program only the provided .hex file (see above); do not change the Fuse settings, or other memories (e.g. EEPROM).

That confirms what I'd said earlier. Without an original chip the data area would be blank, so you get the "Use Original IC!" message on the screen (see my previous photo).

Also, even if you did have an original IC, if you write to the EEPROM area (my programmer calls it "Data"), then you would again get the "Use Original IC!" message. Without a backup, once the EEPROM area has been erased or over-written with incorrect info then the IC is essentially 'bricked' as far as the radio is concerned!

This is why I made sure I could create perfect clones if I managed to brick an IC while experimenting. At the moment I can create T1.05 or T1.07a firmware version ICs. :*:

I did some checking on the QCX-mini, and it appears they are still going to use the 28 pin DIL package for the Atmega chip, so another plugable IC that is easy to tinker with! bd

If nothing else the transceiver is something to experiment with for five minutes ^-^

73, Mark...
 
G4MNX said:
Upgrading your firmware

The QCX kit includes a 2 x 3-pin standard AVR header for In-Circuit-Programming on the board. Many suitable AVR programmers are available inexpensively on eBay and elsewhere. They have a USB cable to connect to a PC. On the PC you need software such as avrdude (very popular command line driven tool), or Windows programs with graphical user interfaces to avrdude.exe, for example Extreme Burner, Bit Burner, or AVRDudess. All are free. When upgrading the firmware, ensure:

1) Only use an original QRP Labs QCX firmware chip
2) Program only the provided .hex file (see above); do not change the Fuse settings, or other memories (e.g. EEPROM).

CLICK HERE for a tutorial written by Simon VK3ELH on how to use an Arduino UNO and the AVRDudess program to update your QCX firmware.

73
Craig

Came across this one as well, uses a USBASP lead I mentioned...

https://www.ta1lsx.com/qcx-5w-cw-transceiver-kit-firmware-upgrade-guide/

Haven't tried it yet, looks OK though.

73, Mark...
 
That's good, will probably go down this route once he has a procedure for Windows 10 written up. Currently only shown on Mac os.
Craig
 
G4MNX said:
That's good, will probably go down this route once he has a procedure for Windows 10 written up. Currently only shown on Mac os.
Craig
Arghhh, sorry! bh

Never noticed it was for Mac computers. Must try harder next time! ;D

Most of my laptops have Linux on them, but I do have one with Win10 64bit. Many sites seem to mention using AVRDude for programming AVR ICs, but I'm sure I used some other program in the past to achieve the same results. Can't for the life of me think what it was though.

I'll keep looking though since it doesn't matter if I 'brick' this one, if I do I'll just create a 'new' IC for it and try again. The biggest problem with command line programmers is knowing whether or not you have all of the settings correct BEFORE you tell it carry on. That's why I used a USB programmer with a fairly helpful GUI.

The two main issues are making sure we don't write to the EEPROM area, or mess up the settings/fuses. With the programmer I used there is a nice obvious tick box for each item so it is more difficult to make a mistake.

Oh well, lunchtime over...

73 for now, Mark...
 
Back
Top