GPIB board for calibrating AM503B, or alternatives?


 

Hi Jared,

The new version of the document is uploaded.

https://groups.io/g/TekScopes/files/AM503B%20Calibration%20without%20GPIB/AM503B_AM5030%20Calibration_V01.pdf

Calibration of an AM503B with Bus Pirate and programming a serial number is added.

Please check the document and send me any information for missing descriptions, pictures etc.

Can you send me the "BATCH File" to add an example in the document?


 

Unfortunately, writing the serial number via GPIB does not work.
I have already tried all possible combinations, but nothing has helped.

This command is in the user manual: SERIAL [space] [space] B028948
to write this serial number. But it doesn't work :-(

Please do not forget to send the password -> PASS "ATG"

Serial number readout: 0x01 = SOH / 0x19 = ^Y / 0x80=PAD
Or in other words -> garbage
Such strange numbers are also set in the memory of my device., but not the same.


Jared Cabot
 

Cool, thanks for the addresses, I added it to my spreadsheet of the full default RAM address listing (I'll upload it soon).
Maybe that double space when programming the serial number by GPIB has something to do with the extra byte? We'll have to sniff it while programming via GPIB to be sure what's up.

Out of interest, here is the default values for the serial number. Not sure how much this tells us though:

0xE8 0x00
0xE9 0x19
0xEA 0x80
0xEB 0x01
0xEC 0x00
0xED 0x00
0xEE 0x00
0xEF 0x00


I'm still working on reading from the Bus Pirate with a batch script (not having much luck yet).... I might have to leverage Plink (command line version of Putty), or learn Python if I can't get it working natively in a batch script.


 

Hi Jared,

The serial number is stored between the addresses 0xE8 to 0xEF (8 digits!!).
Unfortunately I don't know exactly where the start address and the end address are, as the serial number only has 7 digits.
This "STRING" may be terminated with 0x00 (C style).
My bus pirate should arrive this week but is unfortunately not there yet. Let's see when he comes.

Many greetings
Rico


Jared Cabot
 

Oh, so a little more progress. I'm able to reliably write cal values into the AM503B RAM using a batch script via the Bus Pirate.
Next I just have to nail down the reading back of values.

I also need to find the addresses used for the serial number, Rico did you figure out what addresses the serial number is stored in by chance?


Jared Cabot
 

Alrighty, I have a batch file all written with a nice menu system etc, I just have to write the RAM Read/Write code and drop it in.

Hooo boy I'm in over my head here. :D
I'm kind of sending commands directly from the Bus Pirate using Putty and getting stuff back, but I'm not entirely at all sure what I'm looking at here....

I think I need an adult. haha.


Jared Cabot
 

I've had a look through the document and it makes sense so far, but I just have to figure out all this firmware business and sending the right commands in the right format... I tend to program with solder rather than a keyboard, so it's definitely a learning curve for me. :)

My script will be rather large once it's done (It's sprouting a command line UI) but it can certainly be distributed with the document.
I might look at making a github repository for it soon once I'm not completely embarrassed by the code. hahaha.


Regards,
Jared


 

Hi Jared,

Set the bus speed to 100kHz. That was the original definition by Philips Semiconductor for the I2C-Bus.
This value is also given in the datasheet of the PCF8570.

As I have already written, my "Bus Pirate" is on the way from China to Switzerland.
As soon as it arrives, I can send you the commands.

Have you been able to read through the document in the meantime?
I think after you've written a script, we should include it in the document as an example.

Best regards
Rico


Jared Cabot
 

I've been playing with batch scripts over the weekend, and am successfully initialising the Bus Pirate into I2C mode and have a menu system working in command line.
I hope to be able to read and write values next, then I can add that to the script for easy reprogramming.

A few questions:
What speed should I set the I2C bus to?
What commands did you use on the Bus Pirate to successfully write to the AM503B?


Thanks!


 

Hello Jared,

Please take Pin 4 (GND), Pin 5 (SDA) and Pin 6 (SCL) of the PCF8570.
It's easier and nothing breaks if you make a mistake.

In the meantime, I've redesigned the document. I replaced the old one.
https://groups.io/g/TekScopes/files/AM503B%20Calibration%20without%20GPIB/AM503B_AM5030%20Calibration.pdf

Best regards
Rico


Jared Cabot
 

Looks good so far!

So far I got the firmware updated on my Bus Pirate, and found the SCL and SDA pins on the 87C528 Philips chip in one of my AM503B modules (Pins 7 and 8 respectively).
I'll have to hook it all up next and see if I can poke the bear.


 

Hello Jared,

I uploaded a draft version of the "HOW-TO" calibrate a AM503B without GPIB.

https://groups.io/g/TekScopes/files/AM503B%20Calibration%20without%20GPIB/AM503B%20Calibration%20without%20GPIB.pdf

Please take a look and give me your changes or suggestions.

Best regards
Rico


Jared Cabot
 

I just picked up a Bus Pirate and clips etc today, so I'll start working on figuring out how to use it.

Hopefully with a few minds at it, we can work it out. It would be great if we can figure out a working procedure for future refererence and calibration.


 

Hi Rico,
I think screen shots would be great. A picture is worth 1K words.
Dennis

-----Original Message-----
From: TekScopes@groups.io [mailto:TekScopes@groups.io] On Behalf Of Rico Sonderegger
Sent: Monday, May 10, 2021 4:01 AM
To: TekScopes@groups.io
Subject: Re: [TekScopes] GPIB board for calibrating AM503B, or alternatives?

Hello Dennis,

With the AM503B, without a GPIB interface, no write processes (except for everything that concerns the operation of the device) can be triggered on the SRAM (PCF8570).
I started by recording the data when "booting" the device and then looking for the value "25000".
This is the "default" value for the calibration data. This is how I found the addresses for these values.
The serial number is in a different area of the SRAM.
In addition, each time a button is pressed on the front panel, this information is saved in the SRAM.
After a "power-up" this information is read back again.

If you want, I can add some screenshots of the data transfer and the connection with the logic analyzer to the "PHOTOS" folder.

Best regards
Rico







--
Dennis Tillman W7pF
TekScopes Moderator


 

Hello Dennis,

With the AM503B, without a GPIB interface, no write processes (except for everything that concerns the operation of the device) can be triggered on the SRAM (PCF8570).
I started by recording the data when "booting" the device and then looking for the value "25000".
This is the "default" value for the calibration data. This is how I found the addresses for these values.
The serial number is in a different area of the SRAM.
In addition, each time a button is pressed on the front panel, this information is saved in the SRAM.
After a "power-up" this information is read back again.

If you want, I can add some screenshots of the data transfer and the connection with the logic analyzer to the "PHOTOS" folder.

Best regards
Rico


 

Hello Jared,

The "Bus Pirate V4" is connected to the PCF8570 via the signal lines MOSI and CLK.
These "clips" of the logic analyzer can be used for this purpose.
I can not provide any information about the commands at the moment, as my "Bus Pirate" is still on the way from China to me in Switzerland.
As soon as the device arrives, I will send you the necessary commands.

But now to another question.
Do you know why the command to set the serial number in AM5030 = "SERIAL [space] [space] B12345" does not work?
That with the calibration data "CALC 00,25000" works.
That's why I started to measure the data stream with the logic analyzer in order to change this serial number.

Best regards
Rico


 

Hi Rico,
Since Tek did not provide any support information in the manual for the AM503B I was hoping you found out even more about the internals than this little bit of information.
I am also very interested in knowing exactly how you did this so I can replicate the procedure.
Dennis

-----Original Message-----
From: TekScopes@groups.io [mailto:TekScopes@groups.io] On Behalf Of Rico Sonderegger
Sent: Sunday, May 09, 2021 6:47 AM
To: TekScopes@groups.io
Subject: Re: [TekScopes] GPIB board for calibrating AM503B, or alternatives?

Hi Jared,

I have 3 of these GPIB adapters (have 3 x AM5030B).
I wanted to program the serial number and it didn't work. So I connected a logic analyzer to see what was going on.
If you only want to update the calibration data, you can use the addresses 0xE0-00xE1 (CALC 00 or RinX1 value), 0x0B-0X0C (CALC 01 or RinX10 value) and 0xCA-0xCB (CALC 02 or RinX100 value) on the I2C bus to program the new values in the PCF8570 (base address 0XA0) using a "Bus Pirate".
The calibration data are stored there. After changing the battery, there is 0x61A8 (= 25000).

Best regards
Rico







--
Dennis Tillman W7pF
TekScopes Moderator


Jared Cabot
 

Oh, cool. Thanks for that. I guess I'll have to get onto learning how to use a Bus Pirate now, unless you want to sell one of your 5030B's (or swap for a 503B :D haha )

Can you provide any more specific info to help me out? I'm not much of a firmware guy.... Even just where to hook the Bus Pirate up and a basic idea how to send commands would be greatly appreciated.


Thanks for the info!


 

Hi Jared,

I have 3 of these GPIB adapters (have 3 x AM5030B).
I wanted to program the serial number and it didn't work. So I connected a logic analyzer to see what was going on.
If you only want to update the calibration data, you can program the addresses 0xE0-00xE1 (CALC 00 or RinX1 value), 0x0B-0X0C (CALC 01 or RinX10 value) and 0xCA-0xCB (CALC 02 or RinX100 value) in the PCF8570 (Base address= 0xA0) on the I2C bus with "Bus Pirate".
The calibration data are stored there. After changing the battery, 0x61A8 (= 25000) remains there.

Best regards
Rico


Jared Cabot
 

I have a bunch of AM503B modules here, all with dead and leaking batteries that I am in the process of replacing.

It seems that according to the service manual, the only way to set calibration constants in these units is with a GPIB board that is installed during the calibration process.

Does anyone happen to have a GPIB board to suit the AM503B, or one pulled from an AM5030 that they are willing to sell, or is there any known workaround to do the calibration a different way?