EEVblog Electronics Community Forum

Electronics => Repair => Topic started by: Ordinaryman1971 on August 11, 2019, 09:41:41 pm

Title: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on August 11, 2019, 09:41:41 pm
Hello, looking for somebody having copy or an access to archives at Keithley to pull out firmware and maybe some documentation for this Signal Generator. I have trouble loading firmware, wanted to upgrade to version 2 and there is no source.
All the RF Keithley projects were sold supposedly to Agilent but I can't find any info there either.
Or maybe somebody has this signal gen and can make me a copy?
Or any advice on how to reset the firmware to it's default condition... maybe that would help.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update
Post by: picburner on August 12, 2019, 06:02:42 am
You can find the firmware you are looking for on the Keysight website by searching for "V2920A firmware".
The file is fine for V2920A, 2920A, 2920 and 2910.
It's about 15MBytes so I can't attach it here.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update
Post by: PA0PBZ on August 12, 2019, 01:38:50 pm
It's about 15MBytes so I can't attach it here.

But you can include the link of course: (  :)

Title: Re: Keithley 2910 RF Signal Generator Firmware Update
Post by: Ordinaryman1971 on August 14, 2019, 04:25:09 pm
Thank you guys, lets see if that's going to solve the problem.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (Solved)
Post by: Ordinaryman1971 on August 16, 2019, 05:56:51 pm
I've had some time yesterday, did the upgrade, went through without any problem using USB stick and... it did work. Problem solved. The newest firmware is version 5.0. I've had version 1.0 on mine.
Not a big difference visually or no added functionality but now when I click help I actually get a new screen with all nice icons...
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (Solved)
Post by: Ordinaryman1971 on September 04, 2019, 11:18:00 pm
So, I’ve updated the firmware a week ago or so and it went through without any problem but now I don’t have any output and I get a message “No RF Hardware Acknowledge” every time I power it up.
Also, the serial number and all the versions for the boards inside are missing. Don’t have a frequency reference and it tells me oven is cold. I wonder if anybody has any experience with one of those?
Should I downgrade the firmware back to version 3.something?
Also the frequency is not limited to 2.4 but rather 6GHz... like 2920, but I don’t have output so it doesn’t really matter.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: kjk24 on September 07, 2019, 07:33:12 pm

do you tryed to flash a FW for the 2920 like i did with my one  |O.
now my 2910 boot up as an 2920 (6Ghz) but thr RF Board is nit recordnized anymore and simular behavior like yours.
in my unit the DSP/FPG from the DSP Board wars overwriten with the 2920 FW, the main board communicates through USB with the DSP Board but the DSP Board hase now a wrong VID/PID i guess.
i readout the DSP flash chip and tryed to reconfigure the FTDI USB VID/PID on the DSP Board whats also changed by the upgrade, there is a SW from FTDI to modify the ftdi content.
but  :palm: no results i think i have to reprogramm the DSP-flash with the jtag whats avail outside. for that the FW has to be extracted the part what has to go into the flash chip.
i have found the log from the upgarde in the a windows folder, if you find the log you can look into it maybe it help you .
you can bring the unit into windows when you try to upgarde during the start of the upgarde you see the windows start button to start something if you are quick, than you can remove the application from the autostart folder and the unit will boot windows only,  and you can start the app later if you whant.
if you need files etc. i have tryed a lot to fix it.
sorry its now more then 1 yeahr past and i dont remember all.

best regards
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 08, 2019, 11:00:04 pm
I think that's exactly the problem. It boots up as 6GHz signal generator...
So, did you solve the problem with yours?
I can see the windows coming up when it does the upgrade, if I break the installation and just start the application later it would work?
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 08, 2019, 11:04:40 pm
I am planning on calling Agilent tomorrow, maybe they have some way of downgrading the firmware and retrieving the previous firmware on the dsp board.
If I've had an access to the working unit, would I be able to somehow get the correct firmware for the dsp board?
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 09, 2019, 02:52:40 am
Is there any way of extracting the actual driver for the board, I’m getting message that the USB driver has to be loaded... so, maybe that’s it... windows ce is so convoluted. I was also wondering if I could install XP on it and then try to install the program...
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: kjk24 on September 09, 2019, 05:11:25 pm
You can boot windwos only thats no problem and startup the gen app later just delete the shortcut in the startup folder.

dont forget to save your licence folders and ID (id.txt) from device !!!
we can share it i guess becorse you can export lics and import lics to another device

DspFirmware from 2910 is in "DspFirmware" folder on card or .. i dont remamber , i saved everthing of th card and wince.

I extract parts of the dsp flash from the fw upgrade,  i tryed a lot with it but wars not succsesfull.
I think the bootloader of the dsp is a regular bootloader of that chip, i have tryed to figure out how the bootloader works.
I have a dump of the dsp flash and the ftdi for the dsp board, i have also the update procedure from the upgrade in a log file, the ftdi use write functions to write into the chips on the dsp board.

I powerd The dsp board from external powersupplys and usb connectod to a pc i wars able to read and write to the ftdi configuration , there is a serial number and the vid/pid what wars different to the 2910 / 2920, i tryed to write all the step from the upgrade procedur true the ftdi api, but if i connect the usb only the dsp resets and the usb enumerates all view seconds.
i dont find out who generate the reset.

i think the easy way to get the fw on the dsp flash if we use the jtag connector. to extract the right parts from the upgrade is also possible with some time, the locations of the parts are in the dump and the upgarde procedur log i guess.

here some infos:
user: admin
password: admin

Intel XScale PXA255 , 400 Mhz
SM501G8 con 8MB VRAM
Sistema Operativo    

Microsoft Windows CE.NET 4.2
32MB Intel Strada Flash for Image

dump des flash auf dsp platine nach programmieriung mit 2920DSP Firmware

little endian
2Byte lenght
402940 byte 0x625eb

DSP begin 0x80000 - 0xe25eb
diverse Text in file 0x60000 - 0x7ffff

Lizenzen 0x1d0000 -

DSP Board:
JS28F160 B3BD70

RF Board:

Webinterface wurde herrgestellt mit: (

info aus 00000gsm.053 file aus CAB file von Agilent:
das gibt es für dma, edge, etc..
0x14   setting_changeFlag         INT_VARIABLE
0x15   setting_freq_kHz         INT_VARIABLE
0x16   setting_freq_mHz         INT_VARIABLE
0x17   setting_mode         INT_VARIABLE
0x18   setting_cal_user_startkHz         INT_VARIABLE
0x19   setting_cal_user_startmHz         INT_VARIABLE
0x1a   setting_cal_user_span         REAL_VARIABLE
0x1b   setting_cal_user_points         INT_VARIABLE
0x1c   setting_cal_user_dwell         REAL_VARIABLE
0x1d   setting_acqInterval         REAL_VARIABLE
0x1e   setting_trigConfig         INT_VARIABLE
0x1f   setting_trigDelay         REAL_VARIABLE
0x20   setting_trigLevel         REAL_VARIABLE
0x21   setting_trigHystTime         REAL_VARIABLE
0x22   setting_flatRFlength         INT_VARIABLE
0x23   setting_flatRFaddress   40   0x0001ffd8         REAL_POINTER
0x24   setting_sweepN         INT_VARIABLE
0x25   setting_trigTimeout         REAL_VARIABLE
0x26   setting_IQcachePtr         INT_VARIABLE
0x27   setting_IQcacheBmp         INT_VARIABLE
0x28   setting_triggerBW         REAL_VARIABLE
0x29   setting_spare1         INT_VARIABLE
0x2a   setting_contextSaveAddress         INT_VARIABLE
0x2b   setting_measSelect         INT_VARIABLE
0x2c   setting_slotConfig         INT_VARIABLE
0x2d   setting_triggerMode         INT_VARIABLE
0x2e   setting_triggerLevel         REAL_VARIABLE
0x2f   setting_preTriggerDwell         REAL_VARIABLE
0x30   setting_timeMaskAverages         INT_VARIABLE
0x31   setting_timeMaskOptions         INT_VARIABLE
0x32   setting_chanPowAverages         INT_VARIABLE
0x33   setting_chanPowOptions         INT_VARIABLE
0x34   setting_phaseErrAvgs         INT_VARIABLE
0x35   setting_phaseErrOpts         INT_VARIABLE
0x36   setting_ORFSModAverages         INT_VARIABLE
0x37   setting_ORFSModAvgMode         INT_VARIABLE
0x38   setting_ORFSModNumOffsets         INT_VARIABLE
0x39   setting_ORFSModListAddr   100   0x90CB8         REAL_POINTER
0x3a   setting_ORFSModOptions         INT_VARIABLE
0x3b   setting_ORFSSwiAverages         INT_VARIABLE
0x3c   setting_ORFSSwiAvgMode         INT_VARIABLE
0x3d   setting_ORFSSwiNumOffsets         INT_VARIABLE
0x3e   setting_ORFSSwiListAddr   100   0x90D1C         REAL_POINTER
0x3f   setting_ORFSSwiOptions         INT_VARIABLE
0x40   setting_custom*00         REAL_VARIABLE
0x41   setting_custom*01         REAL_VARIABLE
0x42   setting_custom*02         REAL_VARIABLE
0x43   setting_custom*03         REAL_VARIABLE
0x44   setting_custom*04         REAL_VARIABLE
0x45   setting_custom*05         REAL_VARIABLE
0x46   setting_custom*06         REAL_VARIABLE
0x47   setting_custom*07         REAL_VARIABLE
0x48   setting_custom*08         REAL_VARIABLE
0x49   setting_custom*09         REAL_VARIABLE
0x4a   setting_custom*10         REAL_VARIABLE
0x4b   setting_custom*11         REAL_VARIABLE
0x4c   setting_custom*12         REAL_VARIABLE
0x4d   setting_custom*13         REAL_VARIABLE
0x4e   setting_custom*14         REAL_VARIABLE
0x4f   setting_custom*15         REAL_VARIABLE
0x50   setting_custom*16         REAL_VARIABLE
0x51   setting_custom*17         REAL_VARIABLE
0x52   setting_custom*18         REAL_VARIABLE
0x53   setting_custom*19         REAL_VARIABLE
0x54   setting_custom*20         REAL_VARIABLE
0x55   setting_custom*21         REAL_VARIABLE
0x56   setting_custom*22         REAL_VARIABLE
0x57   setting_custom*23         REAL_VARIABLE
0x58   setting_custom*24         REAL_VARIABLE
0x59   contextSaveAddress         INT_VARIABLE
0x5a   contextLevel         INT_VARIABLE
0x5b   saveMemoryAddr         INT_POINTER
0x5c   saveYourVarsAddr         INT_POINTER
0x5d   mainSettingsCopyAddr         INT_POINTER
0x5e   appHandoffAddr         INT_POINTER
0x5f   changeFlagAddr         INT_POINTER
0x60   changeFlag         INT_VARIABLE
0x61   appMeisterState         INT_VARIABLE
0x62   freq_kHz         INT_VARIABLE
0x63   freq_mHz         INT_VARIABLE
0x64   mode         INT_VARIABLE
0x65   cal_user_startkHz         INT_VARIABLE
0x66   cal_user_startmHz         INT_VARIABLE
0x67   cal_user_span         REAL_VARIABLE
0x68   cal_user_points         INT_VARIABLE
0x69   cal_user_dwell         REAL_VARIABLE
0x6a   acqInterval         REAL_VARIABLE
0x6b   trigConfig         INT_VARIABLE
0x6c   trigDelay         REAL_VARIABLE
0x6d   trigLevel         REAL_VARIABLE
0x6e   trigHystTime         REAL_VARIABLE
0x6f   flatRFlength         INT_VARIABLE
0x70   flatRFaddress         REAL_POINTER
0x71   sweepN         INT_VARIABLE
0x72   trigTimeout         REAL_VARIABLE
0x73   IQcachePtr   1   0x1ffd7         INT_POINTER
0x74   IQcacheBmp         INT_VARIABLE
0x75   measSelect         INT_VARIABLE
0x76   triggerMode         INT_VARIABLE
0x77   triggerLevel         REAL_VARIABLE
0x78   preTriggerDwell         REAL_VARIABLE
0x79   timeMaskAverages         INT_VARIABLE
0x7a   timeMaskOptions         INT_VARIABLE
0x7b   chanPowAverages         INT_VARIABLE
0x7c   chanPowOptions         INT_VARIABLE
0x7d   phaseErrAvgs         INT_VARIABLE
0x7e   phaseErrOpts         INT_VARIABLE
0x7f   ORFSModAverages         INT_VARIABLE
0x80   ORFSModAvgMode         INT_VARIABLE
0x81   ORFSModNumOffsets         INT_VARIABLE
0x82   ORFSModListAddr         REAL_POINTER
0x83   ORFSModOptions         INT_VARIABLE
0x84   ORFSSwiAverages         INT_VARIABLE
0x85   ORFSSwiAvgMode         INT_VARIABLE
0x86   ORFSSwiNumOffsets         INT_VARIABLE
0x87   ORFSSwiListAddr         REAL_POINTER
0x88   ORFSSwiOptions         INT_VARIABLE
0x89   rmsPhaseErr         REAL_VARIABLE
0x8a   peakPhaseErr         REAL_VARIABLE
0x8b   bitWithPeakErr         REAL_VARIABLE
0x8c   carrierFreq_Hz         REAL_VARIABLE
0x8d   carrierFeedThru         REAL_VARIABLE
0x8e   iqImbalance         REAL_VARIABLE
0x8f   lastSymbols   160   0x4000037a         REAL_POINTER
0x90   lastPhaseErr   888   0x40000002         REAL_POINTER
0x91   lastPhaseMeas   888   0x4000041a         REAL_POINTER
0x92   evmFailCode         INT_VARIABLE
0x93   centerSample         INT_VARIABLE
0x94   timingOffset         REAL_VARIABLE
0x95   Ninput         INT_VARIABLE
0x96   trainingSeq         INT_VARIABLE
0x97   numActiveSlots         INT_VARIABLE
0x98   slotToMeasure         INT_VARIABLE
0x99   syncMode         INT_VARIABLE
0x9a   phaseErrInReal         REAL_POINTER
0x9b   phaseErrInImag         REAL_POINTER
0x9c   bitsToWordTaps   16   0x90D80         REAL_POINTER
0x9d   gsmPhaseErrAvgDetail   18830   0x40004000         REAL_POINTER
0x9e   slotConfig         INT_VARIABLE
0x9f   statusWord         INT_VARIABLE
0xa0   failCode         INT_VARIABLE
0xa1   numInvalidBurstRetries         INT_VARIABLE
0xa2   maxInvalidBurstRetries         INT_VARIABLE
0xa3   maxNumAvg         INT_VARIABLE
0xa4   timeMaskAvgsDone         INT_VARIABLE
0xa5   chanPowAvgsDone         INT_VARIABLE
0xa6   phaseErrAvgsDone         INT_VARIABLE
0xa7   ORFSModAvgsDone         INT_VARIABLE
0xa8   ORFSSwiAvgsDone         INT_VARIABLE
0xa9   timeMaskAverDetail         REAL_POINTER
0xaa   chanPowAverDetail         REAL_POINTER
0xab   phaseErrAverDetail         REAL_POINTER
0xac   ORFSModAverDetail         REAL_POINTER
0xad   ORFSSwiAverDetail         REAL_POINTER
0xae   symbolsAverDetail         INT_POINTER
0xaf   accumAcqTime         REAL_VARIABLE
0xb0   acqDoneFlag         INT_VARIABLE
0xb1   acqTimeTarget         REAL_VARIABLE
0xb2   useFastAveraging         INT_VARIABLE
0xb3   waitForAcqDone         INT_VARIABLE
0xb4   alignStartAddr         COMPLEXSHORT_POINTER
0xb5   alignLen         INT_VARIABLE
0xb6   tsRefIQ         COMPLEX_POINTER
0xb7   gsmFreqRef         REAL_POINTER
0xb8   centerSample5MHz         INT_VARIABLE
0xb9   centerSampleORFS         INT_VARIABLE
0xba   risingEdge         INT_VARIABLE
0xbb   fallingEdge         INT_VARIABLE
0xbc   doChannelPower         INT_VARIABLE
0xbd   avgCnt         INT_VARIABLE
0xbe   memHeap         COMPLEX_POINTER
0xbf   imagOffset         INT_VARIABLE
0xc0   doTSAlign         INT_VARIABLE
0xc1   timeMaskDataWritten         INT_VARIABLE
0xc2   chanPowerATaps         REAL_POINTER
0xc3   chanPowerBTaps         REAL_POINTER
0xc4   powerData         REAL_POINTER
0xc5   scratch         REAL_POINTER
0xc6   scalarData         REAL_POINTER
0xc7   bits2word         REAL_POINTER
0xc8   packedWordArray         REAL_POINTER
0xc9   avgDataMode         INT_VARIABLE
0xca   retVals         REAL_POINTER
0xcb   tapBuffer         REAL_POINTER
0xcc   offsetList         REAL_POINTER
0xcd   numOffsets         INT_VARIABLE
0xce   saved_ORFSModOptions         INT_VARIABLE
0xcf   saved_ORFSSwiOptions         INT_VARIABLE
0xd0   mainAppMemPtr         COMPLEX_POINTER
0xd1   timeMaskData         COMPLEX_POINTER
0xd2   ORFSModRetVals         REAL_POINTER
0xd3   ORFSSwiRetVals         REAL_POINTER
0xd4   channelPower         REAL_VARIABLE
0xd5   currentGain         REAL_VARIABLE
0xd6   dataStart         COMPLEXSHORT_POINTER
0xd7   dataLen         INT_VARIABLE
0xd8   userGainOffset_dB         REAL_VARIABLE
0xd9   iqCacheAddr         INT_VARIABLE
0xda   localIqCacheBump         INT_VARIABLE
0xdb   startTime         REAL_VARIABLE
0xdc   executionTime         REAL_VARIABLE
0xdd   acqTime         REAL_VARIABLE
0xde   cnt         INT_VARIABLE
0xdf   numIters         INT_VARIABLE
0xe0   success         INT_VARIABLE
0xe1   iqdata   26900   0x100000         COMPLEX_POINTER
0xe2   coarseAlignBase   47088   0x80000         COMPLEX_POINTER
0xe3   inputData         COMPLEX_POINTER
0xe4   callOutParmsPtr         REAL_POINTER
0xe5   callOutCodePtr         REAL_POINTER
0xe6   5.0e6         REAL_VARIABLE
0xe7   Fedge         REAL_VARIABLE
0xe8   resampleRatio         REAL_VARIABLE
0xe9   Nraw         INT_VARIABLE
0xea   doFilt         INT_VARIABLE
0xeb   tmpComplexPtr         COMPLEX_POINTER
0xec   tmpInt1         INT_VARIABLE
0xed   tmpInt2         INT_VARIABLE
0xee   tmpIntPtr1         INT_POINTER
0xef   tmpIntPtr2         INT_POINTER
0xf0   tmpReal1         REAL_VARIABLE
0xf1   tmpReal2         REAL_VARIABLE
0xf2   tmpRealPtr         REAL_POINTER
0xf3   tmpRealPtr2         REAL_POINTER
0xf4   numAcq         REAL_VARIABLE
0xf5   debugStartTime         REAL_VARIABLE
0xf6   debugElapsedTime         REAL_VARIABLE
0xf7   deepMemory   62146154   0x403FA200         COMPLEXSHORT_POINTER
0xf8   internalBuffer         COMPLEX_POINTER
0xf9   temp_changeFlag         INT_VARIABLE
0xfa   kHzCF         INT_VARIABLE
0xfb   mHzCF         INT_VARIABLE
0xfc   gain         REAL_VARIABLE
0xfd   overload         INT_VARIABLE
0xfe   sweepOverload         INT_VARIABLE
0xff   acqLength         INT_VARIABLE
0x100   acqDest         COMPLEXSHORT_POINTER
0x101   takeDone         INT_POINTER
0x102   takeDoneVar         INT_VARIABLE
0x103   xferLength         INT_VARIABLE
0x104   xferDest         COMPLEXSHORT_POINTER
0x105   xferDone         INT_POINTER
0x106   xferDoneVar         INT_VARIABLE
0x107   returnDone         INT_VARIABLE
0x108   testFlag         INT_VARIABLE
0x109   timeOfDay         REAL_VARIABLE
0x10a   settlingTime         REAL_VARIABLE
0x10b   elapsedTime         REAL_VARIABLE
0x10c   bandwidth         REAL_VARIABLE
0x10d   correctionBW         REAL_VARIABLE
0x10e   restartAverage         INT_VARIABLE
0x10f   overlappedTuning         INT_VARIABLE
0x110   flushUSBBuffer         INT_VARIABLE
0x111   temp_iPnt         INT_POINTER
0x112   temp_rPnt         REAL_POINTER
0x113   temp_csPnt1         COMPLEXSHORT_POINTER
0x114   temp_csPnt2         COMPLEXSHORT_POINTER
0x115   context_csPnt         COMPLEXSHORT_POINTER
0x116   temp_iVar         INT_VARIABLE
0x117   temp_iVar2         INT_VARIABLE
0x118   temp_iVar3         INT_VARIABLE
0x119   temp_iVar4         INT_VARIABLE
0x11a   temp_rVar         REAL_VARIABLE
0x11b   temp_rVar2         REAL_VARIABLE
0x11c   temp_rVar3         REAL_VARIABLE
0x11d   temp_rVar4         REAL_VARIABLE
0x11e   gainState         INT_VARIABLE
0x11f   timeStamp         INT_VARIABLE
0x120   skipTGupdate         INT_VARIABLE
0x121   hardwareVersion         INT_VARIABLE
0x122   IveToldYouAlready         INT_VARIABLE
0x123   initialAcquisition         INT_VARIABLE
0x124   lastAcqTime         REAL_VARIABLE
0x125   templateAcqTime         REAL_VARIABLE
0x126   sweepNcount         INT_VARIABLE
0x127   cal_user_state         INT_VARIABLE
0x128   cal_user_freqkHz         INT_VARIABLE
0x129   cal_user_freqmHz         INT_VARIABLE
0x12a   cal_user_point         INT_VARIABLE
0x12b   cal_user_stepkHz         INT_VARIABLE
0x12c   cal_user_stepmHz         INT_VARIABLE
0x12d   cal_settling_timeOfDay         REAL_VARIABLE
0x12e   cal_cal_state         INT_VARIABLE
0x12f   cal_cal_startkHz         INT_VARIABLE
0x130   cal_cal_step         INT_VARIABLE
0x131   cal_cal_points         INT_VARIABLE
0x132   cal_cal_point         INT_VARIABLE
0x133   syncOutConfig         INT_VARIABLE
0x134   trigModeParm         INT_VARIABLE
0x135   trigSource         INT_VARIABLE
0x136   trigDelayResidue         REAL_VARIABLE
0x137   tempTimeout         REAL_VARIABLE
0x138   thisTimeout         REAL_VARIABLE
0x139   unrollTriggers         INT_VARIABLE
0x13a   unrollBuffer         COMPLEXSHORT_POINTER
0x13b   trigDelayParm         INT_VARIABLE
0x13c   appDelay         INT_VARIABLE
0x13d   trigHystParm         INT_VARIABLE
0x13e   acqLengthParm         INT_VARIABLE
0x13f   flatRFthis         REAL_VARIABLE
0x140   flatFlower         REAL_VARIABLE
0x141   flatFupper         REAL_VARIABLE
0x142   flatAlower         REAL_VARIABLE
0x143   flatAupper         REAL_VARIABLE
0x144   flatPnt         REAL_POINTER
0x145   trigUnwrapBump         INT_VARIABLE
0x146   trigUnwrapTest         INT_VARIABLE
0x147   changeAllFlag         INT_VARIABLE
0x148   takeDataTime         REAL_VARIABLE
0x149   reserved1   131072   0x020000         COMPLEX_POINTER
0x14a   reserved2   131072   0x0a0000         COMPLEX_POINTER
0x14b   reserved3   131072   0x120000         COMPLEX_POINTER
0x14c   reserved4   1071775744   0x1e0000         REAL_POINTER
0x14d   reserved5   201326591   0x44000000         REAL_POINTER
0x14e   reserved6   805306367   0x50000000         REAL_POINTER

Total number of variables in program: 335
Conservative estimate of BasicSub heap: 601
Total number of tokens in program: 18358
Variable base address set to: 0x00048000
Token base address set to: 0x00040000
Tokenized task number set to: 0

<?xml version="1.0" encoding="utf-16"?>
    <bcdUSB>USB 2.0</bcdUSB>
    <Manufacturer>Keithley Inst.</Manufacturer>
    <Product_Description>RF Products DSP</Product_Description>
    <SerialNumber />

; Installation definitions
Signature = $Windows NT$
Provider = Keithley Instruments
CESignature = $Windows CE$
AppName = KI2910 Version 3.11 Build 8829
InstallDir = \Storage Card
FlashDir = \FlashFX Disk
SystemDir = \FlashFX Disk\System
StartupDir = \FlashFX Disk\Startup
CopyDir = \FlashFX Disk\Startup\KICopy
WebRoot = /KI2910
UserWaveform = /Storage Card/User
RefWaveform = /FlashFX Disk/Waveforms
WebDLL = \FlashFX Disk\System\isapi.dll
FontDir = \Windows
FontLink = "\Storage Card\Fonts\simsun.ttc,SimSun"
LanguageType = ZH
UnsupportedPlatforms = HPC,Jupiter,Palm PC
VersionMin = 4.0
VersionMax = 5.0
; Installation files
%FlashDir%\Waveforms\cdma2000\Forward Link\Reference\cdma2000 Forward 9 Channel.csv
%FlashDir%\Waveforms\cdma2000\Forward Link\Reference\cdma2000 Forward Pilot.csv
%FlashDir%\Waveforms\cdma2000\Forward Link\Reference\cdmaOne Forward 32 Channel.csv
%FlashDir%\Waveforms\cdma2000\Forward Link\Reference\cdmaOne Forward 64 Channel.csv
%FlashDir%\Waveforms\cdma2000\Forward Link\Reference\cdmaOne Forward 9 Channel.csv
%FlashDir%\Waveforms\cdma2000\Forward Link\Reference\cdmaOne Forward Pilot.csv
%FlashDir%\Waveforms\GSM EDGE\Reference\Control Superframe Timeslot 0.csv
%FlashDir%\Waveforms\GSM EDGE\Reference\Edge Data Timeslot 0.csv
%FlashDir%\Waveforms\GSM EDGE\Reference\Edge No Burst.csv
%FlashDir%\Waveforms\GSM EDGE\Reference\GSM Data Timeslot 0.csv
%FlashDir%\Waveforms\GSM EDGE\Reference\GSM No Burst.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\CPICH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 1 With 16 DPCH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 1 With 32 DPCH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 1 With 64 DPCH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 2.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 3 With 16 DPCH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 3 With 32 DPCH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 4 With CPICH.csv
%FlashDir%\Waveforms\W-CDMA\Down Link\Reference\Test Model 4 Without CPICH.csv
%FlashDir%\Waveforms\ASK\Reference\ASK Default.csv
%FlashDir%\Waveforms\FSK\Reference\FSK Default.csv
%FlashDir%\Waveforms\PSK\Reference\PSK Default.csv
%FlashDir%\Waveforms\QAM\Reference\QAM Default.csv

Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 09, 2019, 08:26:27 pm
I wonder if downgrading the firmware would be a way to go.. I've had 3.4 on mine originally.
Also, wanted to create a copy of the 256MB CF card that I've had in the generator but it looks like I can't create it.
I've tried to image it but no success. The files on the copied card are not visible...
Any trick to it?
I'm using commercial 256MB card when the one that was in the generator was San Disk branded..
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 09, 2019, 09:56:34 pm
I've called Agilent today and of course there is not previous versions of firmware available.... just the one they have on website.
I've asked them to dig around but... nothing turned up.
So, maybe somebody out there has a copy of older firmware for those machines, anybody with secret access to wast HP servers to pull it out of abyss?
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: kjk24 on September 20, 2019, 03:58:27 am
we need from a working unit(29110) the flashchip content data next to the DSP Chip on the DSP Board.
i read my but the data is from the ugrade (2920), and now the DSP works only with 2920 Hardware (2920 RF Board)
i will find out how to write the right contense from the upgrade firmware to the DSP Flash chip and let you know.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: tko on September 22, 2019, 04:30:25 pm
Inspired of this original post I decided to upgrade the firmware like a month ago on my Keithley 2910 with this newest one avaiable on Keysight website... and as some other members in this thread I do now also have a non-functional generator  :palm:

My unit does show message "DAC PLL NOT LOCKED" on startup. Then in the main screen "Internal Oven Cold" stays there. Output is not correct and after couple of clicks you do get "Internal communication error" message. I have also seen "No RF hardware, unable to access RF hardware" message. But otherwise the frequency is limited correctly to 2.5GHz, so in that sense it is not assuming to be 2920.

I do have old v2.0 version of the firmware and I have tried couple of times to downgrade the firmware back to v2.0, but this does not help. Update process goes normally, but I do get the same error messages also with the old software.

If someone wants to try this old Keithley 2910 v2.0 build 5946 firmware, I did put it here: (

As speculated here it must be the DSP firmware, which is having Keithley 2920 version in use. I am seeing on CF-card folders "Dsp2920" and "DspFirmware" with time stamps pointing to year 2010 and this latest update. So it seems that old versions of firmware package I do have does not overwrite these folders or the data is not included int the package. Also the device seems to have some flash memory on board with WinCE on it as it boots the same way with the CF-card completely removed.

It is also possible that this v2.0 package is having the correct DSP firmware included, but the update process does not update it as the version number in use is higher.

It would be really nice to work out some solution for this as the unit was completely functional before this update.
So then would need a source for correct DSP firmware as stated in the previous post...

Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 22, 2019, 09:26:17 pm
after  you do the update you have to enable the dsp programming.. it's hidden in advanced options.
So, maybe that's the reason yours didn't get downgraded..
I will try mine tonight and see. Thank you for posting the files, I really appreciate it.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 23, 2019, 03:08:35 pm
I've done the downgrade last night. Still no solution. My serial number was replaced with "00000000" but still there is no communication between RF hardware and the dsp board. The dsp programming button in advanced options is not present in this firmware. I've made sure I've clicked it before doing the downgrade.
So... I guess there is some way to relearn all of those settings through some kind of initialization process or just simply by overwriting the flash with known good version.

Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: tko on September 23, 2019, 06:42:17 pm
I was also just looking this "dsp programming" option from my unit... but as it is having now v2.0 installed, did not see it.

This serial number replacement with zeros might be related to that that my unit is quite likely R&D development unit or very early production unit and it does not have serial printed to the case. Lot of bodge wires visible inside and CF card was containing many different builds of v0.1 and two different builds v2.0 firmware. Hard to say what was the first firmware released for production. Despite this is was working pretty well before.

Maybe they have changed the structure of this firmware update as the process to v2.0 did not create any Dsp2920 or equivalent folders to the CF card as this latest Keysight one did. So hard to tell if this v2.0 is having the dsp firmware files in some format included or if they were separated on that point as the option is missing also. Would be nice to find a version from between these, like v3.x

Also flashing directly would be for sure a option, we are just missing the data what to flash  :-BROKE
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: Ordinaryman1971 on September 27, 2019, 03:15:31 pm
I went back to version 2.0 yesterday and I've tried stop the firmware update right at the start. I was able to stop the process but the WinCE stopped responding so I've powered it down and up again... and it was bricked.
So, now, I just get the splash screen, doesn't boot up at all.
So, I guess now I really have to find a way to flash the board....
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: kjk24 on September 28, 2019, 06:48:46 am

can anyone readout the content from the DSP-flash chip also if its already with the wrong fw programmed would be helpful.

my flash content attached, but its looks not ok i guess to compare it would be a good start.
Title: Re: Keithley 2910 RF Signal Generator Firmware Update (UnSolved)
Post by: kjk24 on September 28, 2019, 07:04:48 am
have you saved the license keys before ?
sounds like the wince boot will not work, compare the cf card content with your working unit.
make a copy of the card!

i guess the flashFX Disk is for booting the wince
this is a flash disk on the CPU Board

export the lic. with the menu if you can.
copy the complete CF card
FlashFX Disk
WinCE registry backup also good idear

wince regedit atached