From 6d5791245b3241578b65ce5f679168e1f5810b73 Mon Sep 17 00:00:00 2001 From: Danilo Bargen Date: Mon, 19 May 2014 11:01:03 -0700 Subject: [PATCH] Created Pyboard Firmware Update (markdown) --- Pyboard-Firmware-Update.md | 100 +++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Pyboard-Firmware-Update.md diff --git a/Pyboard-Firmware-Update.md b/Pyboard-Firmware-Update.md new file mode 100644 index 0000000..4ed950d --- /dev/null +++ b/Pyboard-Firmware-Update.md @@ -0,0 +1,100 @@ +## Download + +You can download the latest firmware from http://micropython.org/download/. + +## Preparation + +First, disconnect everything from your pyboard. Then connect the DFU pin with the 3.3V pin (they're right next to each other) to put the board into DFU (*Device Firmware Update*) mode. Now connect the pyboard to your computer via USB. + +## Flashing + +# dfu-util + +First, install dfu-util via your package manager. + +You can list all DFU-capable devices using the `-l` argument: + +``` +$ sudo dfu-util -l +dfu-util 0.5 + +(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. +(C) 2010-2011 Tormod Volden (DfuSe support) +This program is Free Software and has ABSOLUTELY NO WARRANTY + +dfu-util does currently only support DFU version 1.0 + +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg" +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=1, name="@Option Bytes /0x1FFFC000/01*016 e" +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e" +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=3, name="@Device Feature/0xFFFF0000/01*004 e" +``` + +First, backup the original firmware: + +``` +$ sudo dfu-util --alt 0 -U pyboard-original.dfu +dfu-util 0.5 + +(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. +(C) 2010-2011 Tormod Volden (DfuSe support) +This program is Free Software and has ABSOLUTELY NO WARRANTY + +dfu-util does currently only support DFU version 1.0 + +Opening DFU USB device... ID 0483:df11 +Run-time device DFU version 011a +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg" +Claiming USB DFU Interface... +Setting Alternate Setting #0 ... +Determining device status: state = dfuERROR, status = 10 +dfuERROR, clearing status +Determining device status: state = dfuIDLE, status = 0 +dfuIDLE, continuing +DFU mode device DFU version 011a +Device returned transfer size 2048 +Limiting default upload to 16384 bytes +bytes_per_hash=2048 +Starting upload: [#######] finished! +``` + +Then write the downloaded firmware to the pyboard: + +``` +$ sudo dfu-util --alt 0 -D pybv10-2014-05-19-v1.0.1-24-g5cdff5f.dfu +dfu-util 0.5 + +(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc. +(C) 2010-2011 Tormod Volden (DfuSe support) +This program is Free Software and has ABSOLUTELY NO WARRANTY + +dfu-util does currently only support DFU version 1.0 + +Opening DFU USB device... ID 0483:df11 +Run-time device DFU version 011a +Found DFU: [0483:df11] devnum=0, cfg=1, intf=0, alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg" +Claiming USB DFU Interface... +Setting Alternate Setting #0 ... +Determining device status: state = dfuUPLOAD-IDLE, status = 0 +aborting previous incomplete transfer +Determining device status: state = dfuIDLE, status = 0 +dfuIDLE, continuing +DFU mode device DFU version 011a +Device returned transfer size 2048 +Dfu suffix version 11a +DfuSe interface name: "Internal Flash " +file contains 1 DFU images +parsing DFU image 1 +image for alternate setting 0, (2 elements, total size = 245928) +parsing element 1, address = 0x08000000, size = 392 +parsing element 2, address = 0x08020000, size = 245520 +done parsing DfuSe file +``` + +# dfu-programmer + +Some other DFU programmer. TODO: Document. + +# On Windows + +TODO: Document \ No newline at end of file