Safeboot pin not working

Questions and discussion about The WiPy 1.0 board and CC3200 boards.
Target audience: Users with a WiPy 1.0 or CC3200 board.
Post Reply
vikebo
Posts: 15
Joined: Sun Mar 15, 2015 8:15 pm
Location: Norway

Safeboot pin not working

Post by vikebo » Tue Dec 08, 2015 8:30 pm

Hello,

I was trying the files from Dave in the rshell thread, but unfortunately I had a typo in the ip address in boot.py. To stop boot.py from being executed I connected the safeboot pin (GP28 on the extension board) to 3.3 V (also on the extension board) to enter safe mode. After that boot.py didn't want to run at all. After spending some time and trying different things (one of them to format the onboard flash to the original firmware) I checked GP28 as digital I/O. It works as an output, but only returns "1" as an input. A bit strange since I have always had the WiPy the correct way in the extension board and never connected anything to it before. Both the laptop and the board sits on an ESD mat, and I have no cats... Anyway, the input is obviously gone, and to be able to use the board for anything where boot.py and main.py are executed at startup I figure I have to recompile the firmware.

Started by downloading the project from here:
https://github.com/micropython/micropython
gcc from here:
https://launchpad.net/gcc-arm-embedded

Then modified line 40 in cc3200/boards/WIPY/mpconfigboard.h
from: #define MICROPY_SAFE_BOOT_PIN_NUM PIN_18 // GP28
to: #define MICROPY_SAFE_BOOT_PIN_NUM PIN_15 // GP22
with the goal of using GP22 for safe boot. Not sure what the line "safe boot port pin" in the same file is?

When running the next line in the cc3200 directory...
make BTARGET=application BTYPE=release BOARD=LAUNCHXL WIPY_IP=192.168.1.1 WIPY_USER=micro WIPY_PWD=python deploy

...I got the following error message:
Writing build/LAUNCHXL/release/mcuimg.bin to the board
Exception: FTP instance has no attribute '__exit__', on line 181
application.mk:228: recipe for target 'deploy' failed
make: *** [deploy] Error 1

From what I could figure out it is related to transfer_file in update-wipy.py, so I tried transfering the file
/cc3200/build/LAUNCHXL/release/mcuimg.bin
manually with ftp to flash/sys/ on the WiPy with no results.

My guess is that I should compile the bootloader instead of the application, and that safe mode probably stops anything from being updated?

Also tried compiling the bootloader from the cc3200 directory with:
make BTARGET=bootloader BTYPE=release BOARD=LAUNCHXL
and transfering
cc3200/bootmgr/build/LAUNCHXL/release/bootloader.bin
as well as mcuimg.bin (from compiling the application above) to flash/sys/ on the WiPy again. Still no results, it resets to safe mode with the original firmware.

Any obvious mistakes, or some other way I can update the firmware? Read about the Uniflash tool from TI, but didn't understand if it will need some additional hardware or tool for flashing.

Eivind

Sebastian
Posts: 18
Joined: Sat Oct 24, 2015 8:09 pm

Re: Safeboot pin not working

Post by Sebastian » Tue Dec 08, 2015 9:55 pm

Perhaps this is helpful for you:
http://forum.micropython.org/viewtopic.php?f=11&t=1054

I had the same problem and flashed my board with the TI tool. But you have to connect the SOP2 pin to 3.3V and use the Uniflash tool.

vikebo
Posts: 15
Joined: Sun Mar 15, 2015 8:15 pm
Location: Norway

Re: Safeboot pin not working

Post by vikebo » Sun Dec 13, 2015 6:49 pm

Thanks Sebastian, that thread helped.

Had to change SAFE_BOOT_PRCM and SAFE_BOOT_PORT in mpconfigboard.h as well, then SOP2 and Uniflash seems to have changed the Safeboot pin. At least it boots without safebooting, haven't tried using safeboot yet.

Post Reply