TiLDA MK3/build: Difference between revisions
No edit summary |
|||
Line 50: | Line 50: | ||
make -C stmhal BOARD=STM32L475_EMFBADGE deploy | make -C stmhal BOARD=STM32L475_EMFBADGE deploy | ||
</pre> | </pre> | ||
== What to do when the firmware update.py script fails == | |||
When attempting an update from linux, some users have hit timeouts during hte mass_erase step. This leaves the badge in an ususable state. | |||
<pre> | |||
$ python update.py | |||
Hello - Welcome to the automated TiLDA firmware updater | |||
We found your badge. So far, so good... | |||
Traceback (most recent call last): | |||
File "update.py", line 556, in <module> | |||
main() | |||
File "update.py", line 530, in main | |||
mass_erase() | |||
File "update.py", line 114, in mass_erase | |||
"\x41", __TIMEOUT) | |||
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 1043, in ctrl_transfer | |||
self.__get_timeout(timeout)) | |||
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 883, in ctrl_transfer | |||
timeout)) | |||
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check | |||
raise USBError(_strerror(ret), ret, _libusb_errno[ret]) | |||
usb.core.USBError: [Errno 110] Operation timed out | |||
</pre> | |||
If you have access to a Windows PC, you can download the STMicroelectronics DfuSe USB device firmware updater software http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html and use the 'Upgrade or Verify Action' part of the GUI to update the firmware instead. | |||
* Install the STMMicroelectronics util from the link above. | |||
* Download the firmware.dfu file from https://update.badge.emfcamp.org/firmware.dfu and save it off. | |||
* Start up DfuSeDemo.exe, and click the 'Choose' button - select the firmware.dfu file and then hit 'Upgrade' | |||
* Your badge should now be un-bricked |
Revision as of 11:31, 10 August 2016
Dependencies
You can use either windows or linux, although windows will not have most things installed by default
git, make, python, etc
I will just assume you have this
arm-none-eabi-gcc
https://launchpad.net/gcc-arm-embedded/+download You will have to make the arm-none-eabi-gcc from the bin directory available to your system (add to PATH, symlink or copy)
On Ubuntu you can follow these instructions: https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa
pyusb
sudo pip install pyusb
USB Permissioning on Linux
On some Linux distributions it may be necessary to add additional udev rules in order to allow the REPL to work:
copy the following text to /etc/udev/rules.d/49-tilda-mk3.rules
# 0483:df11 - Tila Mk3 based on Mircropython board ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ENV{ID_MM_DEVICE_IGNORE}="1" ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ENV{MTP_NO_PROBE}="1" SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666" KERNEL=="ttyACM*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
And then restart the udev service:
sudo udevadm control --reload-rules
Flashing
# Clone this repo git clone --recursive git@github.com:emfcamp/micropython.git # Switch to our work branch cd micropython git checkout tilda-master # Now we can build the firmware and flash it to the badge # You have to boot the badge into dfu mode by pressing down the center # joystick button while pressing the reset button to trigger a reboot make -C stmhal BOARD=STM32L475_EMFBADGE deploy
What to do when the firmware update.py script fails
When attempting an update from linux, some users have hit timeouts during hte mass_erase step. This leaves the badge in an ususable state.
$ python update.py Hello - Welcome to the automated TiLDA firmware updater We found your badge. So far, so good... Traceback (most recent call last): File "update.py", line 556, in <module> main() File "update.py", line 530, in main mass_erase() File "update.py", line 114, in mass_erase "\x41", __TIMEOUT) File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 1043, in ctrl_transfer self.__get_timeout(timeout)) File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 883, in ctrl_transfer timeout)) File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 110] Operation timed out
If you have access to a Windows PC, you can download the STMicroelectronics DfuSe USB device firmware updater software http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html and use the 'Upgrade or Verify Action' part of the GUI to update the firmware instead.
- Install the STMMicroelectronics util from the link above.
- Download the firmware.dfu file from https://update.badge.emfcamp.org/firmware.dfu and save it off.
- Start up DfuSeDemo.exe, and click the 'Choose' button - select the firmware.dfu file and then hit 'Upgrade'
- Your badge should now be un-bricked