Reply by dcfrenchgmail May 1, 20092009-05-01
This is a great PIC programmer (http://www.embedinc.com/products/usbprog/index.htm) and served me well for about a year and a half, but then it stopped working. Olin Lathrop of Embed assures me that from the diagnostics that the problem can be easily located. He didn't say that it could be easily fixed but I guess that was implied. However, I needed a replacement right away so I bought another one. I will sell it for $10 including the shipping.

Here is the exchange between me and Olin:

I have been using USBProg very happily for some time now. But now I am getting an error and I don't seem to be able to get around it. Here is the message:
C:\>pic_prog -HEX "PanTiltLoader.hex"
Firmware is type USBProg version 17 by Embed Inc.
Programmer name is "USBProg0174".
Unable to read the device ID from the target chip. This is probably because
the target chip is not a supported type, does not contain a unique device ID
(12 bit core devices), nothing is plugged into the programming socket (if
present), or the programmer is not connected to a target circuit.
*** Program aborted on error. ***

=====Olin========
You can use the TEST_PICPRG program to maybe narrow down on the failure.
The computer can talk to the programmer, so the control PIC's power is
apparently OK. Here is a example session:

C:\olin\picprg>test_picprg
: fwinfo
Organization ID: 1
Organization name: Embed Inc
Web page: http://www.embedinc.com/picprg/sw.htm
Implements protocol spec versions 19 - 24
Firmware type: 2, name: "USBProg"
Version 19
Private data: 00000000000000000000000000000000b 00000000h 0
Variable Vdd: YES
Vpp range: 0.0 - 13.9
Tick period: 83.3uS
Reset algorithms: 0 1 2 3 4 6
Write algorithms: 0 1 2 3 4 5 6 7 8 9 10 11
Read algorithms: 0 1 2 3 4 5
Private commands:
: vddnorm
: vppon
: getv
Target Vdd = 4.948 V
Target Vpp = 12.826 V
: quit

If you type the same commands at the ":" prompt as above, GETV should report
about 5V for Vdd and 13V for Vpp.

If that works, watch the PGC line on a scope and enter the commands CLKH and
CLKL. That should make PGC wiggle. DATH and DATL should similarly make PGD
wiggle.

If that works, look at the schematic and make sure all the power supplies
are right.

=== me ==
Here is the results of the test. I didn't bother with the scope since the Vdd was obviously wrong.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Don>cd\

C:\>test_picprg

: fwinfo
Organization ID: 1
Organization name: Embed Inc
Web page: http://www.embedinc.com/picprg/sw.htm
Implements protocol spec versions 19 - 23

Firmware type: 2, name: "USBProg"
Version 17

Private data: 00000000000000000000000000000000b 00000000h 0
Variable Vdd: YES
Vpp range: 0.0 - 13.9
Tick period: 83.3uS
Reset algorithms: 0 1 2 3 4
Write algorithms: 0 1 2 3 4 5 6 7 8 9 10 11
Read algorithms: 0 1 2 3 4 5
Private commands:
: vddnorm
Vdd still too low after maximum wait time.
WAITCHK = 00000001
: vppon
: getv
Target Vdd = 0.004 V
Target Vpp = 12.867 V
: quit

C:\>

== Olin ==
That shouldn't be too hard to track down. Take a look at page 4 of the
schematic. Try to turn on Vdd as you did above, then probe around with a
scope or even a voltmeter. First make sure the 8.2V supply is about right.
If it is then look at R25 and Q11 to see where the voltage is not coming
thru. Also make sure there is a reasonable voltage going into pin 3 of IC5.
That should be the filtered PWM output of the controller PIC.

-- Don French