Flashing not working
#1
I am using OpenOCD with Raspberry Pi 4 to flash the PineTime dev kit. It worked for a day properly. I tested bluetooth and LCD example code using Zephyr RTOS. But all of the sudden it stopped working.
What I noticed when connecting SWD wires the LCD backlight turns on and also when putting the back cover (no SWD connection) the motor starts vibrating. Is it short-circuit? What should I check? Investing the OpenOCD debug log (below) it seems chip is not getting acknowledged.

Open On-Chip Debugger 0.10.0+dev-00985-g2dc88e14 (2019-12-25-21:43)
User : 13 9 options.c:63 configuration_output_handler(): debug_level: 4
User : 14 9 options.c:63 configuration_output_handler(): 
Debug: 15 9 options.c:187 add_default_dirs(): bindir=/usr/local/bin
Debug: 16 9 options.c:188 add_default_dirs(): pkgdatadir=/usr/local/share/openocd
Debug: 17 9 options.c:189 add_default_dirs(): exepath=/home/pi/openocd/src
Debug: 18 9 options.c:190 add_default_dirs(): bin2data=../share/openocd
Debug: 19 9 configuration.c:42 add_script_search_dir(): adding /root/.openocd
Debug: 20 9 configuration.c:42 add_script_search_dir(): adding /home/pi/openocd/src/../share/openocd/site
Debug: 21 9 configuration.c:42 add_script_search_dir(): adding /home/pi/openocd/src/../share/openocd/scripts
Debug: 22 10 configuration.c:97 find_file(): found /home/pi/swd-pi.ocd
Debug: 23 10 command.c:143 script_debug(): command - interface interface bcm2835gpio
Debug: 25 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_jtag_nums'...
Debug: 26 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_tck_num'...
Debug: 27 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_tms_num'...
Debug: 28 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_tdo_num'...
Debug: 29 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_tdi_num'...
Debug: 30 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_swd_nums'...
Debug: 31 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_swclk_num'...
Debug: 32 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_swdio_num'...
Debug: 33 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_srst_num'...
Debug: 34 10 command.c:354 register_command_handler(): registering 'bcm2835gpio_trst_num'...
Debug: 35 11 command.c:354 register_command_handler(): registering 'bcm2835gpio_speed_coeffs'...
Debug: 36 11 command.c:354 register_command_handler(): registering 'bcm2835gpio_peripheral_base'...
Debug: 37 11 command.c:143 script_debug(): command - bcm2835gpio_peripheral_base bcm2835gpio_peripheral_base 0x3F000000
Debug: 39 11 command.c:143 script_debug(): command - bcm2835gpio_speed_coeffs bcm2835gpio_speed_coeffs 194938 48
Debug: 41 11 command.c:143 script_debug(): command - bcm2835gpio_swd_nums bcm2835gpio_swd_nums 20 21
Debug: 43 11 command.c:143 script_debug(): command - bcm2835gpio_srst_num bcm2835gpio_srst_num 18
Debug: 45 11 command.c:143 script_debug(): command - transport transport select swd
Debug: 46 11 command.c:354 register_command_handler(): registering 'swd'...
Debug: 47 11 bitbang.c:402 bitbang_swd_init(): bitbang_swd_init
Debug: 48 11 configuration.c:97 find_file(): found /home/pi/openocd/tcl/target/nrf52.cfg
Debug: 49 12 configuration.c:97 find_file(): found /home/pi/openocd/tcl/target/swj-dp.tcl
Debug: 50 12 command.c:143 script_debug(): command - transport transport select
Debug: 51 12 command.c:143 script_debug(): command - transport transport select
Debug: 52 12 command.c:143 script_debug(): command - transport transport select
Debug: 53 13 command.c:143 script_debug(): command - transport transport select
Debug: 54 13 command.c:143 script_debug(): command - swd swd newdap nrf52 cpu -expected-id 0x2ba01477
Debug: 55 13 tcl.c:567 jim_newtap_cmd(): Creating New Tap, Chip: nrf52, Tap: cpu, Dotted: nrf52.cpu, 2 params
Debug: 56 13 core.c:1373 jtag_tap_init(): Created Tap: nrf52.cpu @ abs position 0, irlen 0, capture: 0x0 mask: 0x0
Debug: 57 13 command.c:143 script_debug(): command - dap dap create nrf52.dap -chain-position nrf52.cpu
Debug: 58 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 59 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 60 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 61 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 62 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 63 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 64 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 65 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 66 13 command.c:354 register_command_handler(): registering 'nrf52.dap'...
Debug: 67 13 command.c:143 script_debug(): command - target target create nrf52.cpu cortex_m -dap nrf52.dap
Debug: 68 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 69 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 70 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 71 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 72 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 73 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 74 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 75 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 76 14 command.c:354 register_command_handler(): registering 'arm'...
Debug: 77 14 command.c:354 register_command_handler(): registering 'tpiu'...
Debug: 78 14 command.c:354 register_command_handler(): registering 'itm'...
Debug: 79 14 command.c:354 register_command_handler(): registering 'itm'...
Debug: 80 14 command.c:354 register_command_handler(): registering 'cortex_m'...
Debug: 81 14 command.c:354 register_command_handler(): registering 'cortex_m'...
Debug: 82 14 command.c:354 register_command_handler(): registering 'cortex_m'...
Debug: 83 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 84 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 85 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 86 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 87 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 88 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 89 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 90 14 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 91 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 92 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 93 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 94 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 95 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 96 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 97 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 98 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 99 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 100 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 101 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 102 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 103 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 104 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 105 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 106 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 107 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 108 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 109 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 110 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 111 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 112 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 113 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 114 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 115 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 116 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 117 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 118 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 119 15 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 120 16 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 121 16 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 122 16 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 123 16 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 124 16 command.c:354 register_command_handler(): registering 'nrf52.cpu'...
Debug: 125 16 command.c:143 script_debug(): command - adapter_khz adapter_khz 1000
Debug: 127 16 core.c:1705 jtag_config_khz(): handle jtag khz
Debug: 128 16 core.c:1668 adapter_khz_to_speed(): convert khz to interface specific speed value
Debug: 129 16 core.c:1668 adapter_khz_to_speed(): convert khz to interface specific speed value
Debug: 130 16 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu configure -work-area-phys 0x20000000 -work-area-size 0x4000 -work-area-backup 0
Debug: 131 16 target.c:1961 target_free_all_working_areas_restore(): freeing all working areas
Debug: 132 16 target.c:1961 target_free_all_working_areas_restore(): freeing all working areas
Debug: 133 16 target.c:1961 target_free_all_working_areas_restore(): freeing all working areas
Debug: 134 16 command.c:143 script_debug(): command - transport transport select
Debug: 135 16 command.c:143 script_debug(): command - cortex_m cortex_m reset_config sysresetreq
Debug: 137 16 command.c:143 script_debug(): command - flash flash bank nrf52.flash nrf5 0x00000000 0 1 1 nrf52.cpu
Debug: 139 16 command.c:354 register_command_handler(): registering 'nrf5'...
Debug: 140 16 command.c:354 register_command_handler(): registering 'nrf5'...
Debug: 141 17 command.c:354 register_command_handler(): registering 'nrf51'...
Debug: 142 17 command.c:354 register_command_handler(): registering 'nrf51'...
Debug: 143 17 tcl.c:1156 handle_flash_bank_command(): 'nrf5' driver usage field missing
Debug: 144 17 command.c:143 script_debug(): command - flash flash bank nrf52.uicr nrf5 0x10001000 0 1 1 nrf52.cpu
Debug: 146 17 command.c:376 register_command(): command 'nrf5' is already registered in '<global>' context
Debug: 147 17 command.c:376 register_command(): command 'mass_erase' is already registered in 'nrf5' context
Debug: 148 17 command.c:376 register_command(): command 'info' is already registered in 'nrf5' context
Debug: 149 17 command.c:376 register_command(): command 'nrf51' is already registered in '<global>' context
Debug: 150 17 command.c:376 register_command(): command 'mass_erase' is already registered in 'nrf51' context
Debug: 151 17 command.c:376 register_command(): command 'info' is already registered in 'nrf51' context
Debug: 152 17 tcl.c:1156 handle_flash_bank_command(): 'nrf5' driver usage field missing
Debug: 153 17 command.c:143 script_debug(): command - reset_config reset_config srst_only srst_nogate
Debug: 155 17 command.c:143 script_debug(): command - adapter_nsrst_delay adapter_nsrst_delay 100
Debug: 157 17 command.c:143 script_debug(): command - adapter_nsrst_assert_width adapter_nsrst_assert_width 100
Debug: 159 17 command.c:143 script_debug(): command - init init
Debug: 161 17 command.c:143 script_debug(): command - target target init
Debug: 163 17 command.c:143 script_debug(): command - target target names
Debug: 164 18 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu cget -event gdb-flash-erase-start
Debug: 165 18 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu configure -event gdb-flash-erase-start reset init
Debug: 166 18 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu cget -event gdb-flash-write-end
Debug: 167 18 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu configure -event gdb-flash-write-end reset halt
Debug: 168 18 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu cget -event gdb-attach
Debug: 169 18 command.c:143 script_debug(): command - nrf52.cpu nrf52.cpu configure -event gdb-attach halt
Debug: 170 18 target.c:1423 handle_target_init_command(): Initializing targets...
Debug: 171 18 semihosting_common.c:97 semihosting_common_init():  
Debug: 172 18 command.c:354 register_command_handler(): registering 'target_request'...
Debug: 173 18 command.c:354 register_command_handler(): registering 'trace'...
Debug: 174 18 command.c:354 register_command_handler(): registering 'trace'...
Debug: 175 18 command.c:354 register_command_handler(): registering 'fast_load_image'...
Debug: 176 18 command.c:354 register_command_handler(): registering 'fast_load'...
Debug: 177 18 command.c:354 register_command_handler(): registering 'profile'...
Debug: 178 18 command.c:354 register_command_handler(): registering 'virt2phys'...
Debug: 179 19 command.c:354 register_command_handler(): registering 'reg'...
Debug: 180 19 command.c:354 register_command_handler(): registering 'poll'...
Debug: 181 19 command.c:354 register_command_handler(): registering 'wait_halt'...
Debug: 182 19 command.c:354 register_command_handler(): registering 'halt'...
Debug: 183 19 command.c:354 register_command_handler(): registering 'resume'...
Debug: 184 19 command.c:354 register_command_handler(): registering 'reset'...
Debug: 185 19 command.c:354 register_command_handler(): registering 'soft_reset_halt'...
Debug: 186 19 command.c:354 register_command_handler(): registering 'step'...
Debug: 187 19 command.c:354 register_command_handler(): registering 'mdd'...
Debug: 188 19 command.c:354 register_command_handler(): registering 'mdw'...
Debug: 189 19 command.c:354 register_command_handler(): registering 'mdh'...
Debug: 190 19 command.c:354 register_command_handler(): registering 'mdb'...
Debug: 191 19 command.c:354 register_command_handler(): registering 'mwd'...
Debug: 192 19 command.c:354 register_command_handler(): registering 'mww'...
Debug: 193 19 command.c:354 register_command_handler(): registering 'mwh'...
Debug: 194 19 command.c:354 register_command_handler(): registering 'mwb'...
Debug: 195 19 command.c:354 register_command_handler(): registering 'bp'...
Debug: 196 19 command.c:354 register_command_handler(): registering 'rbp'...
Debug: 197 19 command.c:354 register_command_handler(): registering 'wp'...
Debug: 198 19 command.c:354 register_command_handler(): registering 'rwp'...
Debug: 199 19 command.c:354 register_command_handler(): registering 'load_image'...
Debug: 200 19 command.c:354 register_command_handler(): registering 'dump_image'...
Debug: 201 19 command.c:354 register_command_handler(): registering 'verify_image_checksum'...
Debug: 202 19 command.c:354 register_command_handler(): registering 'verify_image'...
Debug: 203 20 command.c:354 register_command_handler(): registering 'test_image'...
Debug: 204 20 command.c:354 register_command_handler(): registering 'reset_nag'...
Debug: 205 20 command.c:354 register_command_handler(): registering 'ps'...
Debug: 206 20 command.c:354 register_command_handler(): registering 'test_mem_access'...
Info : 207 20 bcm2835gpio.c:450 bcm2835gpio_init(): BCM2835 GPIO JTAG/SWD bitbang driver
Info : 208 20 bcm2835gpio.c:458 bcm2835gpio_init(): SWD only mode enabled (specify tck, tms, tdi and tdo gpios to add JTAG mode)
Debug: 209 20 bcm2835gpio.c:525 bcm2835gpio_init(): saved pinmux settings: tck 0 tms 0 tdi 0 tdo 0 trst 0 srst 4
Debug: 210 20 bitbang.c:457 bitbang_switch_to_swd(): bitbang_switch_to_swd
Debug: 211 20 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 212 20 core.c:1668 adapter_khz_to_speed(): convert khz to interface specific speed value
Debug: 213 20 core.c:1672 adapter_khz_to_speed(): have interface set up
Debug: 214 20 core.c:1668 adapter_khz_to_speed(): convert khz to interface specific speed value
Debug: 215 20 core.c:1672 adapter_khz_to_speed(): have interface set up
Info : 216 20 core.c:1450 adapter_init(): clock speed 1004 kHz
Debug: 217 20 openocd.c:141 handle_init_command(): Debug Adapter init complete
Debug: 218 20 command.c:143 script_debug(): command - transport transport init
Debug: 220 20 transport.c:239 handle_transport_init(): handle_transport_init
Debug: 221 20 command.c:143 script_debug(): command - dap dap init
Debug: 223 20 arm_dap.c:106 dap_init_all(): Initializing all DAPs ...
Debug: 224 20 bitbang.c:432 bitbang_swd_switch_seq(): bitbang_swd_switch_seq
Debug: 225 20 bitbang.c:440 bitbang_swd_switch_seq(): JTAG-to-SWD
Debug: 226 20 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 227 21 bitbang.c:469 bitbang_swd_read_reg(): bitbang_swd_read_reg
Debug: 228 21 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 229 21 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 230 21 bitbang.c:496 bitbang_swd_read_reg(): JUNK DP read reg 0 = ffffffff
Debug: 231 21 bitbang.c:519 bitbang_swd_read_reg(): No valid acknowledge: ack=7
Debug: 232 21 bitbang.c:528 bitbang_swd_write_reg(): bitbang_swd_write_reg
Debug: 233 21 bitbang.c:532 bitbang_swd_write_reg(): Skip bitbang_swd_write_reg because queued_retval=7
Debug: 234 21 bitbang.c:580 bitbang_swd_run_queue(): bitbang_swd_run_queue
Debug: 235 21 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 236 21 bitbang.c:587 bitbang_swd_run_queue(): SWD queue return value: 07
Debug: 237 21 command.c:629 run_command(): Command 'dap init' failed with error code 7
User : 238 21 command.c:694 command_run_line(): 
Debug: 239 21 command.c:629 run_command(): Command 'init' failed with error code -4
User : 240 22 command.c:694 command_run_line(): 
Debug: 241 22 target.c:1961 target_free_all_working_areas_restore(): freeing all working areas
Debug: 242 22 bitbang.c:432 bitbang_swd_switch_seq(): bitbang_swd_switch_seq
Debug: 243 22 bitbang.c:444 bitbang_swd_switch_seq(): SWD-to-JTAG
Debug: 244 22 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 245 22 bitbang.c:580 bitbang_swd_run_queue(): bitbang_swd_run_queue
Debug: 246 22 bitbang.c:409 bitbang_exchange(): bitbang_exchange
Debug: 247 22 bitbang.c:587 bitbang_swd_run_queue(): SWD queue return value: 00
  Reply
#2
@lupyuen  since you have been recently working with RPI 4 with SWD/OpenOCD, can you please look into the problem? Any hints/suggestions will be appreciated.
  Reply
#3
Did you ever resolve this error? I am just starting to develop with rpi 3B/openOCD/pinetime and am facing the same errors using bcm2835spi with openocd-spi from @lupyuen
  Reply
#4
Are you sure it's the same error? You say you're using the bcm2835spi driver, but the debug output above is for the bitbanging bcm2835gpio driver.
  Reply
#5
(02-24-2020, 06:36 AM)wibble Wrote: Are you sure it's the same error? You say you're using the bcm2835spi driver, but the debug output above is for the bitbanging bcm2835gpio driver.

Yes, different driver, same error. Particularly this section:

Code:
Debug: 236 21 bitbang.c:587 bitbang_swd_run_queue(): SWD queue return value: 07
Debug: 237 21 command.c:629 run_command(): Command 'dap init' failed with error code 7
User : 238 21 command.c:694 command_run_line():
Debug: 239 21 command.c:629 run_command(): Command 'init' failed with error code -4
User : 240 22 command.c:694 command_run_line():
  Reply
#6
I was using an Adafruit Feather nRF52 to develop our custom firmware for the PINETIME (as it has the exact same chip, but also serial, LEDs and so on). I also had the same behaviour with this board and the bcm2835spi driver. It worked for a day and a half (continuously connected) and after I power resetted it it stopped working. I'm getting the same error as @cjmakes . The firmware I flashed on the chip as when it worked the last time is still working so I don't think the chip itself is broken. But I think it could have to do something with the nRF52832. If anyone here has a solution I'd really like to know it.
  Reply
#7
(03-05-2020, 07:50 AM)jkl Wrote: I was using an Adafruit Feather nRF52 to develop our custom firmware for the PINETIME (as it has the exact same chip, but also serial, LEDs and so on). I also had the same behaviour with this board and the bcm2835spi driver. It worked for a day and a half (continuously connected) and after I power resetted it it stopped working. I'm getting the same error as @cjmakes . The firmware I flashed on the chip as when it worked the last time is still working so I don't think the chip itself is broken. But I think it could have to do something with the nRF52832. If anyone here has a solution I'd really like to know it.

I thought a bit more about the circumstances when the issue happened first. And if I remember correctly I had a small electrostatic discharge shortly before the problem arose. I didn't think much about it because the firmware continued working as intended. Did anyone of you had something similar happen? I think it would be unusual for a discharge to result in such a specific problem (I would have expected the device to be just broken and not turning on again). But I just want to make sure this wasn't the reason.
  Reply
#8
Exact same issue here. Really hoping someone can find a solution since getting another device is not an option for me personally.
  Reply
#9
I have that issue on my second board now. I was very careful and always disconnected the board from the Pi before doing anything. From what I remember I forgot it once last time before I rebooted it and now I have the same error on a second board. I can't tell exactly how it happens. However I HIGHLY RECOMMEND to DISCONNECT THE NRF52 from the Pi BEFORE REBOOT or POWEROFF. From what I can tell it seems that this triggers the error.
  Reply
#10
(02-28-2020, 10:15 PM)cjmakes Wrote:
(02-24-2020, 06:36 AM)wibble Wrote: Are you sure it's the same error? You say you're using the bcm2835spi driver, but the debug output above is for the bitbanging bcm2835gpio driver.

Yes, different driver, same error.

Had you *previously* been using the bcm2835spi driver?

AFAICT bcm2835spi contains a sneaky trick where both the RPi and the nRF52 will be outputting data on the SWDIO pin at the same time (e.g. the RPi pushes 0v whilst the nRF52 pushes 3v3 for some cycles). Without some kind of current limiting resistor inline on the SWDIO line then this sounds a bit risky to me
PineTime: wasp-os and MicroPython, Pinebook Pro:  Debian Bullseye
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  No Luck flashing WaspOS MadHatter 0 717 12-11-2023, 01:19 AM
Last Post: MadHatter
  Accelerometer stopped working victor9 15 13,214 02-13-2023, 05:05 PM
Last Post: Luri
  Screen stopped working properly pcfreak9000 3 2,477 01-18-2023, 04:28 PM
Last Post: tllim
  PineTime Touch Screen Stopped Working BlunderingBushcraft 3 3,532 07-30-2022, 04:19 PM
Last Post: headgr
  can anyone suggest their working Linux bluetooth USB dongles to connect to Pinetime? jahway603 4 3,600 07-27-2022, 07:38 PM
Last Post: jahway603
  Flashing with RF Connect ronaldheld 12 9,518 04-28-2022, 04:27 AM
Last Post: ITCactus
Question [question] how to restore PineTime to a factory state after flashing non-OTA/directly ITCactus 2 3,114 04-11-2022, 05:03 AM
Last Post: ITCactus
Question Which companion apps work best for flashing firmware and pairing/syncing w/ Pinetime? danimations 0 1,835 03-28-2022, 08:22 PM
Last Post: danimations
Sad Account not working - missing permissions? Droidian 0 1,501 09-24-2021, 05:30 AM
Last Post: Droidian
  Working with Fito Track Glockdoc 2 2,762 09-04-2021, 10:23 AM
Last Post: barray

Forum Jump:


Users browsing this thread: 1 Guest(s)