Progrock Update


What I did following Hans instructions for updating the QRP Labs Progrock.
The U3 and VFO and CQX may be updated using the same method preferably using the ISP header. The notes here should be read, http://www.qrp-labs.com/qcx/qcxfirmware.html my method is just one of many. Group posts get the methods all mixed up, beginners get confused because of this. I think the method below is relatively simple for the absolute beginner.

My suggestion:- Use KHAZAMA http://khazama.com/project/programmer/ (simple but comes in RAR package to load the HEX file. http://www.unziprar.com/ basic utility to unpack.)
Get the USBasp AVR programmer as recommended on that page, from  http://www.fischl.de/usbasp/ This is the updated version, no warnings as I describe below should be shown. Ebay offers many alternatives but not all have the later firmware.
There are several software programs to load the firmware, I also show AVRDUDESS below. http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/
Note:- There are many settings in programming software, do not change anything except when necessary. Other default settings are usually best left alone.

In fact I use a USBasp like this from Ebay I have since realised this is a Chinese copy of the genuine one at fischl.de
Note:- many of these use old firmware and repeatedly give warning messages with programming software.

NOTE:- Another similar device like this https://www.dipmicro.com/store/USBASP2 is available. "Atmel AVR Programmer USBISP/USBASP" This ONLY works with ProgISP software and is best avoided.
There are ways of updating firmware but it is perfectly safe to ignore this warning, just tick "OK" I have programmed several different chips and all have worked correctly.  Updating USBasp:- My note near the bottom of this page.
An updated USBasp may give a message that looks like a "Libusb0" error. This requires the ISP speed to be set to "Auto" in Khazama, probably something similar in other software.


Get one with a 6 pin header if you wish to program other QRP Labs devices in situ. For other QRPLabs devices, U3S for example the instructions are the same, just connect the 6 pin header the correct way. This requires a driver:- (Driver:- Use Zadig choose libusb-win32) Note there are instructions on the Zadig site.

Installing the USBasp

Insert your USBasp.
Download, extract and run Zadig as Administrator.
On Zadig:- Tick Options - List All Devices. Select the USBasp in the drop-down box. "Driver" will be blank, select "libusb-win32" using the arrows.
Only if you are certain all is correct click "Install WCID Driver" (Below it says "Reinstall" because I have already used Zadig.)
Be careful, Zadig does not have an "Undo" function, setting a Restore Point before installing might rescue you if you make a mistake in the Device selection.

Note the USB ID is shared by some other hobby USB devices, for example SDRs like the Softrock. Sometimes the USBasp may be identified wrongly. If this should happen then as a check remove all USB devices then the USBasp should be the only device with the 16C0 05DC address. If identified as another device it will probably have the libusb-win32 driver assigned and will work correctly.
Device Manager shows the USBasp as below.



Connect the USBasp and apply power to your circuit board. The later U3, VFO and QCX have 6 pin headers into which the 6 pin plug of the USBasp is inserted. Refer to the QRPLabs documents to ensure it is the correct orientation.


The U3S header, silk screen markings show connections. My method would be to follow the wires to the USBasp 6 pin plug to identify them. Five connections are used, block off the unused one. Remove this unused pin on the U3S (Top left here.) then in future it will only fit one way.
 

This shows a plug, (lifted from http://www.avrfreaks.net/) The one labelled (8) is the unused VCC and is the one I suggest blocking. But note the Progrock below, I DO use the 5V if you only have the one connector and might want to program something else you might leave it and just be careful.
Note other programmers may be able to power QRP Labs units from their 5V output. The USBasp I have reports 50mA to the computer which should then limit the available current. When using the USBasp power the rigs in the normal manner.

The Progrock does not have an ISP programming facility. I removed the chip and put it in my makeshift socket, actually a 16 pin but only 14 are required.
Make up something to connect the necessary pins to the USBasp. The 5V from the USBasp may be used to power the chip.



 Function ATT84 pin
 +5 volts
 1
 MOSI  7
 Ground  14
 MISO  8
 SCK  9
 RST  4


AVRDUDESS
Many use AVRDUDESS set as below.
Select programmer, processor, and latest .hex (and, only if required .eep)
Only an early .hex on this computer!
Make sure that you enable a chip erase before programming the Flash memory with the .hex file. Avrdude will allow you to program the Flash without a chip erase, but this does NOT work.


KHAZAMA 

I think KHAZAMA is simpler, just made for the USBasp, but it comes in a RAR package,http://khazama.com/project/programmer/ It is a GUI  that works using Averdude "behind the scenes." Note the link to the USBasp, you may prefer to get it from there. To extract from the RAR package http://www.unziprar.com/ a dedicated RAR extractor, Winrar or  www.7zip.org is a program that will be useful at other times.
Unrar install and start KHAZAMA.

KHAZAMA


Select the chip.
Command - Read Chip Signature will show an error if you select the wrong one.


Load the .hex file. Ignore warnings from non-updated USBasps.
March 29 2017 Note progrock v 1.01 has a bug, 1.01a released.
Select the hex file you have downloaded (in this case pr1.01.hex) then write:-

 [With not-updated ASPs ignore all Khazama's warnings and there are a lot!]


If you are using a new chip at the bottom of this page I show the Fuse setting tab.






The Progrock must be connected to a serial port but ensure it is 5V TTL like almost all of the USB adaptors. A cheap USB UART from Ebay like this, good because the pins are labelled. 
if you computer has a 9 pin socket DO NOT USE IT! The progrock requires 5V TTL, not +/-12V from a real port. But a simple resistor/zener may be used to convert the RS 232 TXD to 5V TTL as shown below.

A COMPUTER RS232 SERIAL (COM) PORT TXD (Pin 3) MUST HAVE A RESISTOR/ZENER TO CONVERT IT TO TTL. THE PROGROCK RXD INPUT IS NOT COMPATIBLE WITH COM PORT SIGNALS AND WILL BE DAMAGED.
 The simple way to convert. A computer RS232 serial port RXD, pin 2, will receive TTL data. All I've ever used have been compatible.

 
The USB UART, Pins are connected directly.

COM port pin 2 RXD to ATTiny pin 13 (TX) S1-1.   COM port pin 3 TXD to ATTiny pin 12 (RX) S1-2.  ATTiny pin 11 to ground enables COM port mode at startup. (S1-3 ON)

I think most commercial USB/Serial adaptors are 5V TTL but maybe not all... Check! Shown is a Silicon Labs CP2102 USB to UART Bridge, very cheap on Ebay.


Then use a suitable terminal program, I'm not sure what is best, Windows Hyper Terminal is one but I'm sure there is something more friendly... Like Termite below, But maybe not for Windows 10 although it does work on my 32 bit version.
Configuration, 1 Stop Bit  Tick "Append CR"
? Lists all - 2=27.000.000 Xtal freq. - 3=1 GPS Range Hz. - 4=10.000.000 Load register 4 10MHz (Default Startup). - see Manual Section 4.2-4.6



After I'd damaged my USBasp (First attempt to update firmware, eventually I got it right, no damage!) I used my serial adaptor like here and Averdudess to update again. Note my ATTiny84 was not recognised, option "F" had to be used. Then it said "Probably t84" and worked.







Fuses.
Any pre-programmed chip does not require these to be set. They are not changed when the flash is erased.
I include this only to show the feature. You need to determine the correct settings if using a new chip.         Note the QCX fuses must never be touched. The chip is copy protected you may update but not duplicate.

Khazama:- , Command - Fuses and....
First set the fuses as required. They may be set by the mouse in the boxes at the bottom, the drop-downs show what is actually selected.
 "Write All"


This is where you may "brick" the chip, make sure your settings are correct! http://eleccelerator.com/fusecalc/ is a guide.
The picture above was read from the Progrock ATT84 chip so should be correct but I must say check!

The values in the tick boxes above are hex.
So H fuse is DC
L fuse E2
E fuse 01
L fuse 03

Someone else read the chip and got a slightly different result, saying "L fuse E2" is the only critical setting.

QRPLab VFO L=F7 H=D9 E=04 Lock=3F


Not for beginners:- IF you use an Arduino Uno then http://qrp-labs.com/images/qcx/HowToUpdateTheFirmwareOnTheQCXusingAnArduinoUNOandAVRDUDESS.pdf

Progrock frequency accuracy when used with GPS:- Read Hans' post https://groups.io/g/QRPLabs/message/17866 and maybe other posts in the thread.


















Comments