diff --git a/Firmware/README.md b/Firmware/README.md index bd9602bd..cc15177d 100644 --- a/Firmware/README.md +++ b/Firmware/README.md @@ -112,6 +112,9 @@ If you want a different mode, you can change `.control_mode`. To disable a motor

## Compiling and downloading firmware ### Getting a programmer +__Note:__ If you don't plan to make major firmware modifications you can use the built-in DFU feature. +In this case you don't need an SWD programmer and you can skip OpenOCD related instructions. + Get a programmer that supports SWD (Serial Wire Debugging) and is ST-link v2 compatible. You can get them really cheap on [eBay](http://www.ebay.co.uk/itm/ST-Link-V2-Emulator-Downloader-Programming-Mini-Unit-STM8-STM32-with-20CM-Line-/391173940927?hash=item5b13c8a6bf:g:3g8AAOSw~OdVf-Tu) or many other places. ### Installing prerequisites @@ -151,13 +154,21 @@ After installing all of the above, open a Git Bash shell. Continue at section [B ### Building the firmware * Make sure you have cloned the repository. * Navigate your terminal (bash/cygwin) to the ODrive/Firmware dir. -* Run `make` in the root of this repository. +* Run `make` in the `Firmware` directory. -### Flashing the firmware +### Flashing the firmware (standalone device) +* Run `make dfu` in the `Firmware` directory. + +__Warning:__ Currently it is advised that you only do this to flash +official unmodified firmware. Also make sure you don't switch off +the device during upgrade. If something goes wrong you need an external +programmer to recover the device. This will be fixed in the future. + +### Flashing the firmware (external Programmer) * **Make sure you have [configured the parameters first](#configuring-parameters)** * Connect `GND`, `SWD`, and `SWC` on connector J2 to the programmer. Note: Always plug in `GND` first! * You need to power the board by only **ONE** of the following: VCC(3.3v), 5V, or the main power connection (the DC bus). The USB port (J1) does not power the board. -* Run `make flash` in the root of this repository. +* Run `make flash` in the `Firmware` directory. If the flashing worked, you can start sending commands. If you want to do that now, you can go to [Communicating over USB or UART](#communicating-over-usb-or-uart).