Playdate crashes when using the wrong USB cable

Steps to reproduce

  1. Open any app on the Playdate
  2. Connect my USB cable (not the original, hard to reproduce, I know)
  3. Playdate doesn’t show up in simulator
  4. Switch from the app to the main menu (via home in system menu)
  5. Playdate crashes (crashlog below)
  6. Playdate immediately shows up in simulator after the crash (no restart needed)

More context

  • I’m using macOS Ventura 13.5.2.
  • Playdate and SDK are up to date.
  • Multiple other USB cables work fine on this Mac.
  • The cable is USB-C to USB-C and directly connected to both devices.
  • After the crash everything works as expected but if I disconnect I have to crash the Playdate again to use it. I’m calling the cable Crash Override now.
--- crash at 2023/09/14 05:36:33---
   r0:00000001    r1:00000001     r2:00045400    r3: 40012c00
  r12:00003fe0    lr:080356a7     pc:0803565c   psr: 21000000
 cfsr:00020000  hfsr:40000000  mmfar:00000000  bfar: 00000000
heap allocated: 0
Lua totalbytes=0 GCdebt=0 GCestimate=0 stacksize=0

Do you happen to know the exact model of cable you're using?

It says "RC15H" and "VIETNAM" on it but that’s it and I don’t remember how I got it.

It's definitely picky about cables (or chargers?). When I initially received it, it wouldn't wake up from dead when I tried charging it with the same cable that I charge everything else with (cable and charger both came with the Google Pixel, so it wasn't some cheap crap). But as soon as I used the yellow cable, it woke up fine.

And afterwards, charging with my regular equipment suddenly worked fine as well.

Curious, I used my pixel 4a cable and it took a while to wake up, but I thought that was expected since the battery needed initial charging.

@RDK not sure if a fix is worth pursuing, your cable might just not be up to standards?

Another approach would be adding some warning to the device manual

If the device could sense a cable was inserted but not performing correctly then it could report the situation or incompatible cable on screen.

The main reason I did report this is that the cable works perfectly fine after the crash. It looks to me like the issue is more on the Playdate side (though maybe not exclusively).