Author Topic: 1697 - Incorrect stick range after hall effect replacement, calibration needed?  (Read 208 times)

Offline gwerky

  • Guppy
  • *
  • Posts: 3
  • Post quality +0/-0
  • Acidmods User
Hi, newcomer here. Glad I found this awesome board.

Because of stick drift in my 1697 controller model I replaced the stick pots with hall effect replacements. https://www.ebay.com/itm/355351310821
I noticed that new sticks are now slightly off-center. But what's even worse: The controller reports full axis value when the stick is only deflected about 50% of max travel. I guess this is due to factory calibration of previous pot values which are stored in the microcontroller (MKL26Z256VMC4).
I measured in-circuit range of the hall effect "wiper pin": 0.2V - 1.7V. According to my measurements the stick range should be somewhere at 0.4V - 1.4V. for -100% .. 100%. 0.9V for center position.

I wanted to do a new calibration, but I don't know how. I cannot use the XBOX Accessories App, neither upgrade the firmware because the upgrade always fails, but the app says "upgrade required". The launch option with firmware downgrade also doesn't work. I guess the controller still has its original firmware. I never updated it.

Can you confirm this wiper pin voltage range (0.4V .. 1.4V) for the standard pots?
Do you know any possibility to calibrate the new range (0.2V .. 1.7V)?
Do you have the test point designators for the JTAG interface of the MKL26? I would give it a try to reverse engineer the firmware and see where calibration values are stored in memory. Maybe the chip is not protected.

If the MKL26 is protected the only possibility I see is adjusting the wiper range using an opamp voltage translation mod. Or maybe there is a possibility for a side-channel JTAG attack.
« Last Edit: February 20, 2024, 01:31:00 PM by gwerky »

Offline RDC

  • Administrator
  • Around the block
  • *
  • Posts: 2581
  • Post quality +90/-2
  • Gender: Male
  • The CGnome Project
Theoretical range is 0v to 1.8v, but the actual will depend on the shell opening, stick diameter and and whatever offset the thing was at when it was calibrated after it was made. That 0.4v to 1.4v is in the ballpark though.

Nope, though there has to be some method of doing it, as they do it once the controller is made.

No JTAG, only SWDIO

SWD_CLK - TP15
SWD_DIO - TP17
Screwing up is one of the best learning tools, so long as the only thing you're not learning is how to screw up.

Offline gwerky

  • Guppy
  • *
  • Posts: 3
  • Post quality +0/-0
  • Acidmods User
Thanks for your amazing PCB reverse engineering work. The test points are correct.
Good news, it seems the SWD interface is not locked and flash is also not read protected.

Here is my firmware dump in case any one is interested: 1697-il_mkl26z256_original_firmware.bin
I will try to reverse engineer some parts and see what it will reveal.


By the way, I have the 1697-IL model here in Germany. I don't know how it is different from the FCC model. Maybe only the radio part is different.

« Last Edit: February 22, 2024, 10:38:06 AM by gwerky »

Offline bahramjon

  • Guppy
  • *
  • Posts: 3
  • Post quality +0/-0
  • Gender: Male
  • Acidmods User
I have an xbox controller elite
It turned off during the update
And it didn't turn on anymore
With what tool can I reprogram it?
Sources of work you have done

Offline gwerky

  • Guppy
  • *
  • Posts: 3
  • Post quality +0/-0
  • Acidmods User
elite (1698) is a different model and most likely my firmware file won't work on it. I used this V9 hardware: https://www.aliexpress.us/item/3256805787737034.html

 

SMF spam blocked by CleanTalk
SimplePortal 2.3.5 © 2008-2012, SimplePortal