new cat toy!

it's alive and talking to me!

as usual, the SPI peripheral implementation in it is kinda finicky, and it actually doesn't work with the default #GlasgowInterfaceExplorer SPI controller (because it's not fully compliant with SPI, oops)

i'll fix the SPI controller in a bit

this is definitely not an ADIS16488 and if it's a clone of it, then they have taken some remarkable liberties with the idea of a "functionally identical" replacement
the delta-angle and delta-velocity functionality appears to simply not exist, which excludes this being a faithful clone of either adis16488 or adis16375
oh, i just realized that it has a "product ID" register that clearly says 0x4068 (16488). so it's supposed to be a clone of ADIS16488 then. it's just a very bad one

this thing doesn't seem to have a magnetometer or a barometer, it's just an accelerometer and a gyroscope. not even very good ones, they're probably on par with what your cellphone has, if not worse

i think some enterprising company (possibly Shenznen Firepower Control Co. Ltd. based on @poppyhaze's research) has realized they can make a lot of money selling ADIS16488-style devices that only barely work at a half of their sticker price from AD

oh... it has a GD32F103 inside. there are even, conveniently, pads with SWD routed to them

firmware dumping time? firmware dumping time.

we have SWD!
the source code is not protected (i am reading out valid values), but for some reason my dump memory command is encountering errors; most likely a misunderstanding of ADIv5.2

it looks like sometimes it works and sometimes it doesn't

very bold of a vendor to call it a "good device" when in fact it seems to be bad

nevermind, it works fully once i attach a logic analyzer. for one reason or the other, adding a few pF of capacitance to the pins is what it needed
here's a firmware name: WM_KT-EX9-10_2.12_GD103.bin

did someone build the firmware with -funroll-loops or what

this is a part the code that copies static mutable data into RAM from Flash. it goes on for kilobytes

there's actually a few loops in the middle doing the same memcopy operation. i think the compiler smokes crack
although, a horrifying thought is that this is just what the original code looked like

OH I GOT IT

i finally tracked down the source of this device, and also the gyroscope vendor

the WM_KT-EX9-10_2.12_GD103.bin in the firmware name most likely refers to the gyro:
https://en.ktjmyq.com/html/2024/MEMS_0526/141.html

KT-EX9-1 - MEMS GYROSCOPE - KaiTuo Precise Instrument Co., Ltd-accelerometer,Gyro,MEMS,MEMS Gyro,MEMS Accelerometer,KTJB1,KTFG,KTEX

FEATURESTriaxial, digital gyroscope, ±450° sec dynamic range ±0 05° orthogonal alignment error,0 3&

i'm wrong. the KT-EX9-1 device has a public datasheet and some key values don't match

this could be a custom one-off or something?

@whitequark.. Or just a shady copy of a copy, due to usage? Returns probably happen rarely, and the buyer might be a bit desperate.
@SDRHoernchen it's possible, but I think it's somewhat unlikely