seemoo-lab/chirpotle

Support for Pycom Expansion board v3?

haruotsa opened this issue · 5 comments

Hi,

I'm looking forward to experiment with Chirpotle with LoPy4. Is it possible to use the associated Pycom Expansion Board instead of usb-to-serial converter?

Hi,
I'm meanwhile using LoPy4 and Expansion Board as well, so that should be possible in general.

However, it's a bit tricky since the expansion board has its on firmware which does not work well with esptool that is used for flashing the LoPy (since the framework is using custom C-based firmware and nothing like MicroPython), so you need to set jumpers correctly and probably cannot use remote flashing during chirpotle.sh deploy. I'll try setting up a LoPy from scratch and get back to you/update the docs.

And just to be sure that we're talking about the same thing: Which revision of the expansion board do you have (it's printed on the silk screen at the bottom)?

Hi & thanks for a quick reply!

My expansion board revision is V3.1.

I checked again, but I don't see an easy way to automate the reset of the LoPy4 into ESP32 bootloader mode on the expansion board, which is required for flashing it with esptool. The buttons on the Expansion Board only help you to get into the MicroPython bootloader/safe boot mode. As far as I understand the documentation by pycom, from there you can run a firmware update, but only of the application. For RIOT and ChirpOTLE, we also need a custom partition table etc.

On the other side, esptool most likely won't get support for the pycom firmware update mechanism either.

So sadly, I think the fully automated firmware flashing process will not work with the Expansion Board. However, you can flash your firmware manually once on the Expansion Board (but that needs adding a jumper wire and pressing a button) and then continue to use it without reflashing (if you don't modify the firmware's source, that is).

I documented the required steps and the differences between FTDI and Expansion Board here. Let me know if that works for you.

I understand. I'll try the manual flashing with the expansion board this week and let you know how it goes. Thank you btw for providing documentation too(!)

Meanwhile I have been able to flash the nodes manually using the expansion boards. For the record: I added KERNEL=="ttyACM[0-9]*", SYMLINK+="ttyUSB0"to map the ttyACM0 port of the expansion board to ttyUSB0.