I designed a circuit for a portable infinity mirror tetrahedron. It includes a battery to power it while it isn't docked, a pi pico W to run the 6 APA102 based LED strips, some contacts on the outside for docking, and a whole bunch of small buck converters to power the LED strips.


All the buck converters except the one that charges the battery are a 'mini360' board bought off ebay that use an MP2307 IC. Output voltage is set via a small pot on the board that I manually adjusted to get 5V output. Link to the ebay page for this module.
The buck converter for charging the LiPo battery had to include a current limit function. Found another module on ebay that says it uses an "XMLSEMI XL4015 DC-DC buck converter IC with a TI LM358 Op-Amp for stable current regulation". Link to ebay page. My understanding is that this module detects current via the ground connection so I deliberately didn't tie the grounds together.
The BMS is an HX-2S-D01 from ebay. I notice now that it includes some overcurrent protection of its own. Didn't notice that when I designed this circuit.
Not shown in the schematic are the connectors I used to put it all together. I foolishly chose to put the buck converters close to the LED strips they drive and so the connector carries +18V right next to lines from Pi Pico GPIO. I killed one Pi Pico by accidentally shorting the pins. But I killed a couple more pi picos and I'm pretty sure I didn't short the pins on those. Did I do something wrong in my circuit that would cause extra power to feed through the Pico's GPIO pins?
Update
It doesn't look like low-load power spikes. This is what the power looks like on startup 
Update 2
Well, another microcontroller died. Definitely while I had it hooked up to both my crazy circuit and a computer via USB simultaneously. It was connected through a USB hub, which has switches that turn off power to each port (but apparently leave the data connections alone). noticed that the microcontroller got very hot so I disconnected it and now any time that controller runs it gets much much hotter than other microcontrollers running the same code. Could it be that power is flowing through the ground channels into the USB port because the 'ground' in my circuit is actually 0.6V higher than the USB ground due to the diode?
Update 3
I measure a 0.25V differential between the USB connector's ground and the ground of BC6. Seems like a very likely candidate for my microcontroller deaths. I've had a microcontroller running in a modified version of this circuit (replaced BC4, BC5, and BC6 with a single larger module that can power all the LED strips and the microcontroller) all weekend no problem (no USB connection).
To answer some other questions:
- the +19V and GND connected to the 6 diode bridge is provided by an old laptop power brick. My multimeter indicates continuity between that GND and the redundant ground of the AC connector.
- The computer that I foolishly connected to the Pico in this circuit is a desktop plugged into the same power strip as the 19V power brick
- I'm in the US, so the AC power connected to both computer and 19V power brick is 120V, 60Hz with redundant ground (3 prong)
- Not quite asked, but I'll make sure it's clear. The 6 diode bridge is a deliberate feature so that I can have this device dock in any orientation. The dock has 3 legs: 1 with +19V, 1 with GND, 1 without any power. The orientation the device is set into the dock determines which leg of the bridge gets power, etc. I didn't want to fuss with having to flip the thing around several times to get the right orientation.
- I double checked and it turns out my diagram was wrong, all the diodes in my circuit are actually 1N5822 Schottky diodes (3A, 40V). Sorry!
New question: Would it be logical to replace the 6 diodes in the bridge with 'ideal diode's like this one from ebay?

