Thanks for your feedback and sorry for the trouble caused, will check what could have gone wrong.
Edit:
Crap! I made a stupid mistake...
I missed adjusting a jump address in the oled init sequence, had the U1273AX value (It's different in U1253A/B) so it'll be jumping to go-figure-where and crashing...
.
FIXED
De-bricking should be pretty easy following the previous posts, please try the updated version!
I've triple-checked everything, everything seems fine now.
Compared to U1273A, the button layout seems different in U1253A, please trace the [Dual/Exit] button in the board so I can make a failsafe mode!
Wow. Thank you for such a quick fix.
I'll be tearing into the meter tomorrow to try to recover and re-flash and at the same time I'll trace out the button.
Thanks again!!
The app initialization sets P7-4 as inputs and P3-0 as outputs, so I'll assume P7.7 (pin 30) is reading the button.
This should work. If wrong, in the worst case it'll ignore the button, or always enter update mode.
The mod ended up cycling through the booting. Pressing the button does enter the boot mode which is so good, no need to direct connect again
Sorry didn't get it (What's the reason of showing the DMM off?), do your mean it's working as expected?
Power-on behaves normally?
Turning power on while holding Exit button sets Update mode?
Sorry this file is a .gif file, regular videos I cannot upload here. So if you download it and open it - it will be animated and will show you the result
Ah! You can't upload gifs here, the forum breaks them, won't work even after downloading it.
Try
https://gifyu.com/ .
Reduced timing unfortunately produced the same result. Meter is cycling through until button is pressed to get into programming mode
Hmmm ok, then it's other problem.
Maybe that flash area is not actually empty and I'm breaking something, will try placing the code elsewhere.
>>> Updated 1/24/2024 In the first post Reset and FLDM0 were wrong, the pins are now correctly assigned.
<<<
Quick update on for the U1253A.
The Dual/Exit button (SW1) goes to Pin 33 P74/KR4.
The "Common" for the switch is shared with SW1-SW4 goes to Pin 34 P73/KR3.
Also for anyone that needs it here is the pinout of the programming header.
Pin1 -> FLDM0 (Pin 13)
Pin2 -> Reset (Pin 10)
Pin3 -> AVRef (Pin 59
Pin4 -> GND
Pin5 -> P13/TXD6 (Pin 51)
Pin6 -> P14/RXD6 (Pin 50)
I'll attempt to reprogram tomorrow.
Quick question?
Is the recovery process the same for the U1253A (D78F0547)?
Should the same block (127) be erased with command "python flash-util.py -e -b 127 -p COMx"?
Sorry I'm a bit out of my area with the MCU stuff.
Thanks!
Yes!
And the other side of the button? In the 1273 they seem to be multiplexed with diodes, no idea here.
Another U1273AX failsafe test!
The jump test should do nothing, it's just adding a jump between bootloader, custom place ands back to app, no failsafe of any kind.
Completely missed that.
The "common" side which is shared with SW1-SW4 goes to Pin 34 P73/KR3.
Yes!
And the other side of the button? In the 1273 they seem to be multiplexed with diodes, no idea here.
Another U1273AX failsafe test!
The jump test should do nothing, it's just adding a jump between bootloader, custom place ands back to app, no failsafe of any kind.
Ok so this is the best failsafe version so far. Meter operates as expected when I turn it on. If I go to [Setup], I can do whatever adjustment I need to do, but then when I exit the setup mode by pressing the same button again, it goes to boot mode. To exit boot mode I just need to turn meter off and on again using the main selector lever.
Hmm? How possible? It should only go into update if you hold Exit and turn the meter on.
Hmm? How possible? It should only go into update if you hold Exit and turn the meter on.
Because this meter performs "reboot" as in off/on sequence autamatically every time user tries to exit Setup menu - to exit Setup menu user presses and holds Setup button.
If I press and hold Dual/Exit button while turning on the meter, nothing happens. If I press and hold Setup button while turning meter on then it enters the boot mode.
Understood!
But better we find a more suitable button, entering update mode every time you exit the setup screen will be very annoying!
Please try the attached tests. I'm now testing the other 3 pins (P7.6, 7.5, 7.4). Try to find which butttons trigger update mode now.
Understood!
But better we find a more suitable button, entering update mode every time you exit the setup screen will be very annoying!
Please try the attached tests. I'm now testing the other 3 pins (P7.6, 7.5, 7.4). Try to find which butttons trigger update mode now.
Somehow this update is problematic. After loading first firmware meter goes into loading screen but it is not detected by uploader. Do you think if I delete the same block as before it will resurrect it? I loaded "U1273AX_V301_failsafe_p74.ag" and this problem started.
Yes, that will always work. So with p74 it's not booting normally?
Doesnt make sense, it's the exactly the same code as the previously working test, except it's just reading a different pin!
sub_7f00: ; From bootloader
br !llab_7fdb ;7f00 9b db 7f ; Go to failsafe check
lab_7fdb: ; Failsafe check
mov pm7,#0xf0 ;7fdb 13 27 f0 ; Set P7.7-4 as input, P7.3-0 as output
mov pu7,#0xf0 ;7fde 13 37 f0 ; Enable P7.7-4 pullups
mov p7,#0x00 ;7fe1 11 07 00 ; P7.3-0 outputs low
movw ax,#0x0100 ;7fe4 10 00 01 ; Much smaller delay
lab_7fe7:
subw ax,#0x0001 ;7fe7 da 01 00
bnz lab_7fe7 ;7fea bd fb
bt p7.4,lab_7ff0 ;7fec cc 07 01 ; If P7.4 reads 1, button is not pressed
ret ;7fef af ; Button pressed, return to bootloader (Enter update mode)
lab_7ff0: ; Button not pressed
mov p7,#0x0f ;7ff0 11 07 0f ; All outputs high (Same as the app init)
br !lab_3015 ;7ff3 9b 15 30 ; Jump to main app
So now resetting the ports before jumping:
sub_7f00: ; From bootloader
br !llab_7fdb ;7f00 9b db 7f ; Go to failsafe check
lab_7fdb: ; Failsafe check
mov pm7,#0xf0 ;7fdb 13 27 f0 ; Set P7.7-4 as input, P7.3-0 as output
mov pu7,#0xf0 ;7fde 13 37 f0 ; Enable P7.7-4 pullups
mov p7,#0x00 ;7fe1 11 07 00 ; P7.3-0 outputs low
movw ax,#0x0100 ;7fe4 10 00 01 ; Much smaller delay
lab_7fe7:
subw ax,#0x0001 ;7fe7 da 01 00
bnz lab_7fe7 ;7fea bd fb
mov a,p7 ;7fec f0 07 ; Move P7 value into A
mov pm7,#0xff ;7fee 13 27 ff ; Clear port config
mov pu7,#0x00 ;7ff1 13 37 00
bt a.7,lab_7ff8 ;7ff4 31 7e 01 ; test A, bit 7
ret ;7ff7 af ; Return (Button pressed)
lab_7ff8:
br !lab_3015 ;7ff8 9b 15 30 ; Enter app (Not pressed)
Agilent / Keysight U1273A / U1273AX
- If your device has firmware version v4.xx, it will work straight away, no firmware modification is required!
So why would you not just update your U1273A or U1273AX to Keysight V4.xx firmware?
Does that firmware only run on newer DMMs due to hardware changes?
Because you can't. The important functions are in the bootloader and it's never updated.
Ah, OK. So newer meters come with a newer bootloader (and associated functions). Whereas older meters are stuck with the bootloader they have and the outdated display drivers stored with the bootloader.
Yes. Theorically you could attach the programmer and load the entire v4 fw.
Yes. Theorically you could attach the programmer and load the entire v4 fw.
Since with regular firmware udpdates meter calibration is unaffected I only can presume that flashing firmware with programmer would affect the calibration parameters unless you copy them from that meter's firmware - something to keep in mind.
It's probably in the external EEPROM.