Bricked my Expansion Board?...
I have been using my WiPy on an Expansion Board V3.1 fine for a few weeks, but now it is no longer working. I don't know what I've done. I use VS Code with Pymakr plugin (on Linux Mint 19.3), and one day the repl decided to not come up. I get a message saying "connecting to /dev/ttyACM0..." then nothing, it just hangs.
So I tried to update the firmware on the board using the Pycom firmware updater, but returns "Failed to connect to ESP32: Timed out waiting for packet header"
So I tried to reflash the firmware on the Expansion Board, but without success. I can see, using lsusb, the board is in dfu mode (address is 04d8:ef99) but the dfu-util command always fails with "Cannot open DFU device 04d8:ef99" and "no DFU capable USB device available". I have verified that after dfu-util fails with the above error, the device is still in dfu mode, i.e. with address 04d8:ef99 as shown in the screenshot below.
So what's going on? is it a hardware problem? Is there something else I can try? Or do I have to buy a new board?
All advice gratefully received.
@robert-hh it seems your analysis is correct. With 5v applied to Vin I get 38.4 mV at the 3.3v pin. I'm afraid that unsoldering and resoldering such tiny parts is way beyond my meagre skills and rheumy old eyesight... and frankly not really worth it. Much easier to just bite the bullet and order a new one. Got lots of other boards to play with until it arrives anyway.
Thank you very much for your help with this problem, much appreciated, and to @rcolistete and @Gijs as well for their advice.
robert-hh last edited by robert-hh
@mogplus8 It looks like the regulator on the WiPy broke. Before doing anything else, you could try to supply the WiPy without the expansion board with 5V between Vin and GND. If you then get 3.3v at the Vin pin, the regulator is fine and the trouble is somewhere else. If the regulator is gone and you want to continue using the Wipy you can either
a) just remove the regulator (see pitcure below: the chip in the red circle) and supply the WiPy at the 3v3 pin with 3.3 V or
b) additionally replace the regulator. Replacing the existing chip is hard. It is a damn small device. You may be able to do an external bypass with a regulator between the Vin pin and 3.3V pin.
Removing the chip is easy. Just heat it up with a soldering iron on the top until the lead below melts. The clean the pads with flux/desoldering wire.
@rcolistete yes that would be useful. Unfortunately I don't have the resources to double up on my investment in pycom products. If I was going to do that I think the parts I have now would be in the bin and I'd just use the new ones. I'm already basically resigned to replacing either the expansion board or the wipy, just not sure which one needs replacing. It's sounding like the wipy at the moment though, as the expansion board seems to be doing the right thing. :-(
rcolistete last edited by
It would be easier and faster to have 2x Expansion Board v3.1 and 2x WiPy3, so you could exchange them to see which piece is the problem.
Do you have other Expansion Board or other xxPy (WiPy, LoPy4, etc) ?
@Gijs The impedance between 3.3v and Gnd (measured with no power applied, i.e. not plugged in to the PC's usb port) is 2.8k with the wipy plugged in, 0.3M without.
@robert-hh the voltage at Vin is 4.87V with the wipy plugged in, 4.92V without. So I have a problem.
BTW I realised why "cu" worked the first time I tried it but not the second time, I had forgotten the part about connecting P0 to P1. <embarrassment> Blame it on Alzheimers...
The voltage being 0V without the Wipy plugged in is good, as the 3V3 pin is supplied by the Wipy. Now, the 3V3 pin (labelled 3V3AUX on the bottom) is only connected to the orange LED and SD card reader, so either there is low impedance on the expansionboard (measure ohms between 3V3 and GND), or the voltage regulator of the Wipy is not working correctly. There is a separate voltage regulator on the expansionboard powering the USB converter.
It seems the expansionboard is working fine (USB + DFU mode etc), making me believe the voltage regulator on the Wipy and or controller on the Wipy is malfunctioning, but please check the expansionboard for the impedance!
@mogplus8 If the Vin pin shows ~5V and the 3.3V pin shows 0.929V, then there is a problem. If the voltage at Vin is also low, then the expansion board does not supply the device.
@robert-hh I tried it again just now with "cu" and could not get it to echo this time. Not sure what i did differently yesterday, but I was definitely connecting at 115200. "screen" still worked (by "worked" I mean it connected, but nothing else exciting happened).
I can confirm that the 3.3v pin, with the wipy plugged in, shows 0.929V. Without the wipy plugged in it shows basically zero, a few mV randomly fluctuating.
Looking more like a dead board?...
@mogplus8 The echoing with pure expansion board shows, that the data path to the WiPy works. Strange that you do not see any response from the Wipy when forcing bootloader mode. Are you sure that the UART speed was set to 115200 for that test? If you have a voltmeter, can you check the voltage at the 3.3V pin with the WiPy inserted?
@rcolistete thanks for the reply. The instructions you linked to are the ones I've been following to try to flash the board. As I alluded to earlier however I've tried more than a few times. A few hundred maybe. ;-) but no luck.
@robert-hh thanks for the reply. Not entirely sure how to do what you suggest. I tried using the Linux "cu" command to connect to the board (without the wipy plugged in and with P0 connected to P1), and it looked like it might be echoing the characters I typed in. Characters I typed in appeared on the screen Enter just returned the cursor to the beginning of the line, and the characters that were there before just overtyped. I also tried the "screen" command, and it did basically the same thing, the characters I typed in appeared on the screen, Enter sent the cursor back to the start of the line.
With the wipy in the board and P2 connected to ground I connected to it with screen again, and pressed the reset button. The only thing that happened was the cursor stopped flashing. Same thing if I pressed the Safe Boot button on the expansion board. Pressing the S1 button didn't do anything.
Am I doing it right, or have I missed something?
rcolistete last edited by
See the topic "Guide/Tutorial/Reference about Expansion Board". I recommend section "3.1. Firmware installation on Expansion Board v3.x". Important points :
- remove the xxPy board from Expansion Board 3.x, it is safer and simpler;
- it is common to try using 'dfu-util' a few times until working, because of the time intervals.
@mogplus8 Just to check if the expansion board works you could remove the WiPy and connect the positions of P0 and P1 on the expansion board. Then all characters types in the terminal window should be echoed.
Similar, with Wipy inserted, if you are in that terminal window, connect P2 to GND and push reset on the WiPy, a message of the bootloader should come up. This bootloader is located in ROM and cannot be bypassed by any firmware trouble.
Hi @Gijs , thanks for replying. Yes, in all the mucking around that occurred over the last few days the port got changed a few times, I tried different USB cables, I even tried a different OS. I have Ubuntu installed on my PC as well, and I tried it there with the same result. Yes the green led is on, and yes if I just plug it in without holding down the S1 button it starts in normal mode (04d8:ef98). It also flips back there after a few seconds in dfu mode. I haven't changed any jumpers (they are all still there). I have an SD card in the slot but that is the only non-standard thing about it. if I remove the card the problem persists.
I assumed you already tried to reconnect the Expansionboard USB on a different port and restart your computer,
I have not seen this issue before, where it does show up on lsusb, but you cannot talk to the device. I imagine the green LED on the expansionboard is on and you changed nothing about the jumper configuration on the expansionboard? Can you also get the expansionboard to not boot in DFU mode?
Let me know!