I am using a W01 module connected via P0, P1 (the standard Rx/Tx lines of the serial REPL) to a FT232R serial-USB-interface. The FT232R is powered from USB.
By defining P0 (i.e. Rx) as input with pull down activated, it is possible to dectect if REPL (i.e. the USB) is connected (P0=1=yes)
It may be interesting to note that UART operation is not affected by having Rx(P0) declared as digital input simultaneously.
By this method, the module detects a serial console during boot and continues in REPL mode. If there is no active serial connection detected, it autostarts its application.
I am not sure if this works with a Wipy since the serial-USB interface may be powered from the Wipy, possibly making the status of Rx independent of the USB cable connection.
I'm having a similar issue now. main.py will run after CTRL-D or machine.reset(). But, power cycling the Lopy (on expansion board) will connect REPL to pymakr, but main does not seem to run.
I've done an os flash, and rewritten all the files. Problem continues though.