I've been sent a Valve SteamDeck, unfortunately, someone has managed to flash the wrong bootloader onto the microcontroller that is in charge of the joypad.
The joypad usually connects over USB, and the SteamDeck runs Archlinux, it has scripts that program the bootloader over USB/I2C (I'm not sure which).
There are two ATSAMD21J18's in use, one for each side of the controller, left and right, and one side then connects to the main motherboard of the device. The joypad when working identifies itself as a USB device.
Because it has been flashed with the wrong bootloader, it doesn't identify itself to the operating system, so I can no longer program it via the scripts.
It is also a somewhat unique unit, it's an 'EV2' which is basically an engineering sample, so it needs a particular older firmware/bootloader and is out of support from Valve.
This file contains the firmware:
Situated in /usr/share/jupiter_controller_fw_updater are the firmware files, along with update python scripts in there, and /usr/bin/jupiter-controller-update being the main script to command the updates.
Without being able to update it via the operating system that means I need to update it via a chip programmer. Here's a look at one of the boards:
It appears that there's a footprint for attaching a programmer, about 6 'test pads'. I've seen cable assemblies for mounting/latching onto the board like this before.
I own an Atmel SAM ICE, but I haven't really used it in earnest before, and I don't have the type of cable assembly for mounting to this test/programming pad.
Does anyone have any tips/advice/links on what software/setup I would use to code the chips with the firmware files, and what I should actually use to program these chips? Further where I might acquire an appropriate cable assembly for the programming pads, ideally affordably, I could jimmy rig something together with wires I suppose, but I want to explore all options.
I have access to Windows and Linux to be able to do this.
Thanks for reading.