Problem iitialising WiPy 3.0

Hi All,
Recently got a WiPy and a Pycom Expansion Board 3.1. When I plug it in (i.e. with the wiPy mounted on the expansion board and the expansion board plugged into the PC) and try to open it with Zerynth, it is not found. I tried creating a definition for it in advanced mode, based on the pycom_wipy_V3 board already defined, but it is also not recognised by Zerynth.
I tried to follow the instructions in the documentation, but as the board is not recognised I cannot open the serial monitor.
I also tried connecting ground to D0, but on my board the pins are marked as Pn, not Dn. The reset pin is marked as per the diagram, but then the pins are numbered P0, P1, P2 etc from the Reset pin, so on the pinout diagram displayed by Zerynth, D0 corresponds to P2 on my board. Is this the pin I should be connecting ground to to put the board into download mode?

All advice gratefully received.
I use Linux Mint 19.3, Zerynth is at 2.5.2.

Hi @mogplus8
Do you have the appropriate software drivers in the docs?

Can you open a serial terminal with the board with other applications such as minicom ?

Hi @karimhamdy1, thanks for the reply. I use Linux so no drivers to download.

I tried connecting with minicom, and it appeared to do it, although I couldn’t figure out how to send an AT command to the board with it. I also tried Kermit, but it is seriously old and I couldn’t understand how to get it to talk to my Pycom board. Neither of them issued any error messages to the effect that they couldn’t find the device or couldn’t connect to it. Not sure if that means anything.

In further searching I learned that an AT command can be sent to a device using the “echo” command, and the output from the command can be viewed in another terminal window running the “cat” command. seems to work pretty well. However the output told me that the “AT” command was not recognised, so it seems the device is receiving the command but is not recognising it.

So I tried connecting GND to P2 on my board as per the instructions in the Zerynth documentation, which is in the same position as D0 in the pinout diagram in the Zerynth documentation. Now I get nothing at all displayed by the “cat” command so it seemed it wasn’t even receiving the command. So I removed the jumper wire and tried again. Still nothing! Tried unplugging and plugging in again, pressing the “safe reset” button, user button, closing and reopening the terminal windows, redoing the commands, everything I could think of. I can’t get the response back, nothing is displayed, so it seems I’ve taken a giant step backwards.

Not sure what I’ve done, but I can’t write anything to the device. I hope I haven’t permanently damaged it. I also tried Micropython but I couldn’t get that to work either. (It says NodeJS is missing even though I have installed it).

I’m beginning to think this board might be a candidate for the WPB (waste paper basket). Don’t want to to do that as it’s by far the most expensive board I’ve bought. Well, the board was cheap but then I didn’t realise I had to buy the expansion board too, which basically tripled the price. I only found that out after I received the board and found it had no usb plug on it. Next time I’ll RTFM a bit more carefully.

:frowning: Ian

EDIT
Well I have confirmed that connecting the GND pin to P2 pin is the correct method to program this board. You have to press the reset button every time too. I’ve managed to program the board with the Arduino IDE with this method. Bit of a PITA imho, having to connect P2 (or D0 or G23, they are all the same pin) to ground every time you want to program the board, but maybe I’m missing something. Tried the same thing with Zerynth but a) Z did not automagically detect the board so I had to use the one I had defined myself with advanced options, and b) it still failed anyway with the following

and yes, I did press the reset button when requested.

I have reloaded the latest firmware on the expansion board with dfu-util, and updated the firmware on the board with the firmware update tool. So all of that stuff works. And I haven’t bricked it as far as I can tell, but Zerynth refuses to recognise it. Not sure what else I can try…

:frowning:

During uplinking, the device should respond back with a certain kind of messages, These things are done by the firmware installed during virtualization.
Are you sure you have registered and virtualized the board?

Hi @karimhamdy1, thanks for the reply.

In automatic mode the device does not appear on the device list dropdown, so no chance of virtualiising there.

If I use the device I created in Advanced Mode I can select it from the dropdown list and attempt to register it, and it writes 181759 bytes to address 0x0001000. Then it asks for the device to be reset, so I hit the reset button. A short time after that I get a message saying “Cant’ find chipid”. Here is the output

[info] Burning bootloader...
[info] Burning bin
[info] esptool.py v2.0
[info] Connecting....
[info] Chip is ESP32D0WDQ6 (revision (unknown 0xa))
[info] Uploading stub...
[info] Running stub...
[info] Stub running...
[info] Configuring flash size...
[info] Auto-detected Flash size: 8MB
[info] Compressed 19584 bytes to 12811...
[info] 
[info] Writing at 0x00001000... (100 %)
[info] Wrote 19584 bytes (12811 compressed) at 0x00001000 in 1.1 seconds (effective 138.2 kbit/s)...
[info] Hash of data verified.
[info] Compressed 305264 bytes to 181759...
[info] 
[info] Writing at 0x00010000... (8 %)
[info] Writing at 0x00014000... (16 %)
[info] Writing at 0x00018000... (25 %)
[info] Writing at 0x0001c000... (33 %)
[info] Writing at 0x00020000... (41 %)
[info] Writing at 0x00024000... (50 %)
[info] Writing at 0x00028000... (58 %)
[info] Writing at 0x0002c000... (66 %)
[info] Writing at 0x00030000... (75 %)
[info] Writing at 0x00034000... (83 %)
[info] Writing at 0x00038000... (91 %)
[info] Writing at 0x0003c000... (100 %)
[info] Wrote 305264 bytes (181759 compressed) at 0x00010000 in 16.1 seconds (effective 152.0 kbit/s)...
[info] Hash of data verified.
[info] Compressed 3072 bytes to 156...
[info] 
[info] Writing at 0x00008000... (100 %)
[info] Wrote 3072 bytes (156 compressed) at 0x00008000 in 0.0 seconds (effective 1069.6 kbit/s)...
[info] Hash of data verified.
[info] Compressed 1024 bytes to 32...
[info] 
[info] Writing at 0x00390000... (100 %)
[info] Wrote 1024 bytes (32 compressed) at 0x00390000 in 0.0 seconds (effective 688.0 kbit/s)...
[info] Hash of data verified.
[info] 
[info] Leaving...
[info] Staying in bootloader.
[info] Please reset the device!
[error] Can't find chipid

To be honest I can’t remember if I had successfully virtualised the board before, maybe I forgot that step. I am pretty old and a bit forgetful, so it’s possible. Just for fun I tried uploading again and got a different error message this time. Here is the output.

Searching for device pycom_wipy_v3
[info] Please reset the device!
[info] Checking layout...
[info] No active layout found
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: ets Jun  8 2016 00:22:57
[info] Got header: rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[info] Got header: configsip: 0, SPIWP:0xee
[info] Got header: clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[info] Got header: mode:DIO, clock div:2
[info] Got header: load:0x3fff0018,len:4
[info] Got header: load:0x3fff001c,len:3772
[info] Got header: load:0x40078000,len:9928
[info] Got header: load:0x40080400,len:5788
[info] Got header: entry 0x400806c0
[info] Got header: E (30) boot: OTA: -1/-1  -1/-1  -1/-4
[info] Got header: E (30) boot: Invalid ota, returning default vm 0
[info] Got header: E (31) boot: Starting vm 0
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[info] Got header: c317fb780f85
[error] No answer to probe

I don’t know if this is better or worse…

This is all with pin P2 connected to GND. If that connection is not there Zerynth does not connect to the device at all. Except for the attempted upload to the device, that was without the jumper between GND and P2.

Thanks for your help with this, much appreciated.

Actually, while I’m here, should I be putting anything into the three dropdowns; port, disk and probe, in the device definition for this board?
Thanks.