tl;dr
glasgow run swd-openocd --port A --pin-swclk 1 --pin-swdio 0 -V 3.3 tcp:localhost:2222
I: g.device.hardware: generating bitstream ID 98da97a3ebd449ef3ef7991939c4b823
I: g.cli: running handler for applet 'swd-openocd'
I: g.applet.interface.swd_openocd: port(s) A voltage set to 3.3 V
I: g.applet.interface.swd_openocd: socket: listening at tcp:localhost:2222
openocd -c 'adapter driver remote_bitbang; transport select swd; remote_bitbang port 2222' -f /opt/homebrew/share/openocd/scripts/target/nrf52.cfg -c 'gdb flash_program enable' -c 'gdb breakpoint_override hard' -c '$_TARGETNAME configure -event reset-init { arm semihosting enable }' -c init -c 'reset halt' -c 'program bootloader.bin verify 0x00000000' -c reset -c exit
Open On-Chip Debugger 0.12.0+dev-01805-g133dd9d66 (2024-12-03-21:22)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
force hard breakpoints
Info : Initializing remote_bitbang driver
Info : Connecting to localhost:2222
Info : remote_bitbang driver initialized
Info : Note: The adapter "remote_bitbang" doesn't support configurable speed
Info : SWD DPIDR 0x2ba01477
Info : [nrf52.cpu] Cortex-M4 r0p1 processor detected
Info : [nrf52.cpu] target has 6 breakpoints, 4 watchpoints
Info : [nrf52.cpu] Examination succeed
Info : [nrf52.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
[nrf52.cpu] halted due to breakpoint, current mode: Thread
xPSR: 0x01000000 pc: 0x000000d8 msp: 0x20010000
** Programming Started **
Info : nRF52832-QFAA(build code: E0) 512kB Flash, 64kB RAM
Warn : Adding extra erase range, 0x000054e8 .. 0x00005fff
** Programming Finished **
** Verify Started **
** Verified OK **
Congratulations, your bits have been banged.
Return glasgow to a safe state (E-STOP in a pinch) and disconnect your precariously balanced debug wires.
Your pinetime is now either booted up, or at least ready to receive the next soft brick payload ota 👍