[README] Update README.md instructions

This commit is contained in:
Kenn Sebesta 2022-03-06 10:32:02 -05:00
parent 06768d37a0
commit 3607f5fe03
1 changed files with 59 additions and 119 deletions

178
README.md
View File

@ -17,155 +17,94 @@ This is the source code for the VESC DC/BLDC/FOC controller. Read more at
All of them! All of them!
Make sure you select your board in [conf_general.h](conf_general.h) Check the supported boards by typing `make`
```c
//#define HW_SOURCE "hw_40.c"
//#define HW_HEADER "hw_40.h"
//#define HW_SOURCE "hw_45.c"
//#define HW_HEADER "hw_45.h"
//#define HW_SOURCE "hw_46.c" // Also for 4.7
//#define HW_HEADER "hw_46.h" // Also for 4.7
//#define HW_SOURCE "hw_48.c"
//#define HW_HEADER "hw_48.h"
//#define HW_SOURCE "hw_49.c"
//#define HW_HEADER "hw_49.h"
//#define HW_SOURCE "hw_410.c" // Also for 4.11 and 4.12
//#define HW_HEADER "hw_410.h" // Also for 4.11 and 4.12
#define HW_SOURCE "hw_60.c"
#define HW_HEADER "hw_60.h"
//#define HW_SOURCE "hw_r2.c"
//#define HW_HEADER "hw_r2.h"
//#define HW_SOURCE "hw_victor_r1a.c"
//#define HW_HEADER "hw_victor_r1a.h"
//#define HW_SOURCE "hw_das_rs.c"
//#define HW_HEADER "hw_das_rs.h"
//#define HW_SOURCE "hw_axiom.c"
//#define HW_HEADER "hw_axiom.h"
//#define HW_SOURCE "hw_rh.c"
//#define HW_HEADER "hw_rh.h"
//#define HW_SOURCE "hw_tp.c"
//#define HW_HEADER "hw_tp.h"
//#define HW_SOURCE "hw_75_300.c"
//#define HW_HEADER "hw_75_300.h"
//#define HW_SOURCE "hw_mini4.c"
//#define HW_HEADER "hw_mini4.h"
//#define HW_SOURCE "hw_das_mini.c"
//#define HW_HEADER "hw_das_mini.h"
//#define HW_SOURCE "hw_uavc_qcube.c"
//#define HW_HEADER "hw_uavc_qcube.h"
//#define HW_SOURCE "hw_uavc_basic.c"
//#define HW_HEADER "hw_uavc_basic.h"
``` ```
There are also many other options that can be changed in conf_general.h [Firmware]
fw - Build firmware for default target
supported boards are: 100_250 100_250_no_limits 100_500...
```
There are also many other options that can be changed in [conf_general.h](conf_general.h).
## Prerequisites ## Prerequisites
### On Ubuntu ### On Ubuntu (Linux)/macOS
- Tools: `git`, `wget, `make`, `python3`, and `pip`
Install the gcc-arm-embedded toolchain. Recommended version ```gcc-arm-none-eabi-7-2018-q2``` - Additional Linux requirements: `libgl-dev` and `libxcb-xinerama0`
- Helpful macOS tools:
**Method 1 - Through Official GNU Arm Embedded Toolchain Downloads**
1. Go to [GNU Arm Embedded Toolchain Downloads](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)
2. Locate and Download version **gcc-arm-none-eabi-7-2018-q2** for your machine
```GNU Arm Embedded Toolchain: 7-2018-q2-update June 27, 2018```
Linux 64-bit version can be downloaded from [here](https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2?revision=bc2c96c0-14b5-4bb4-9f18-bceb4050fee7?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,7-2018-q2-update)
3. Unpack the archive in the file manager by right-clicking on it and select "extract here"
4. Change directory to the unpacked folder, unpack it in /usr/local by execute the following command
```
cd gcc-arm-none-eabi-7-2018-q2-update-linux
sudo cp -RT gcc-arm-none-eabi-7-2018-q2-update/ /usr/local
```
**Method 2 - Through apt install**
```bash
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt update
sudo apt install gcc-arm-embedded
```
**Optional - Add udev rules to use the stlink v2 programmer without being root**
```bash
wget vedder.se/Temp/49-stlinkv2.rules
sudo mv 49-stlinkv2.rules /etc/udev/rules.d/
sudo udevadm trigger
```
### On MacOS
Go to the [GNU ARM embedded toolchain downloads Website](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) and select the mac version, download it and extract it to your user directory.
Append the bin directory to your **$PATH**. For example:
```bash
export PATH="$PATH:/Users/your-name/gcc-arm-none-eabi-8-2019-q3-update/bin/"
```
Install stlink and openocd
```bash ```bash
brew install stlink brew install stlink
brew install openocd brew install openocd
``` ```
## Build ### On Windows
Clone and build the firmware - MS Visual Compiler
- Chocolately: https://chocolatey.org/install
- Powershell: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows
- Git: https://git-scm.com/download/win. Make sure to click any boxes to add Git to your Environment (aka PATH)
- Python 3: https://www.python.org/downloads/. Make sure to click the box to add Python3 to your Environment.
## Install Dev environment and build
### On Ubuntu (Linux)/MacOS
Open up a terminal
1. `pip install aqtinstall`
5. `git clone http://github.com/vedderb/bldc.git`
6. `cd bldc`
6. Continue with [On all platforms](#on-all-platforms)
### On Windows
3. Open up a Powershell terminal (Resist the urger to run Powershell as administrator, that will break things)
4. Type `choco install make`
4. `pip install aqtinstall`
5. `git clone http://github.com/vedderb/vesc_tool`
6. `cd bldc`
6. Unzip the file at https://discordapp.com/channels/904830990319485030/910181652192448532/917451210791989248 into this directory
6. Continue with [On all platforms](#on-all-platforms)
### On all platforms
7. `git checkout origin/master`
8. `make arm_sdk_install`
9. `make qt_install`
10. `make` <-- Pick out the name of your target device from the supported boards list. For instance, I have a Trampa **VESC 100/250**, so my target is `100_250`
11. `make 100_250` <-- This will build the **VESC 100/250** firmware and place it into the `bldc/builds/100_250/` directory
## Other tools
**Linux Optional - Add udev rules to use the stlink v2 programmer without being root**
```bash ```bash
git clone https://github.com/vedderb/bldc.git vesc_firmware wget vedder.se/Temp/49-stlinkv2.rules
cd vesc_firmware sudo mv 49-stlinkv2.rules /etc/udev/rules.d/
make sudo udevadm trigger
``` ```
## Upload to VESC ## Upload to VESC
### Method 1 - Flash it using an STLink SWD debugger ### Method 1 - Flash it using an STLink SWD debugger
Build and flash the [bootloader](https://github.com/vedderb/bldc-bootloader) first 1. Build and flash the [bootloader](https://github.com/vedderb/bldc-bootloader) first
2. Then `_flash` to the target of your choice. So for instance, for the VESC 100/250:
```bash ```bash
make upload make 100_250_flash
``` ```
### Method 2 - Upload Firmware via VESC tool through USB ### Method 2 - Upload Firmware via VESC tool through USB
1. Clone and build the firmware in **.bin** format 1. Clone and build the firmware in **.bin** format as in the above Build instructions
Reminder : Remember to select your board in [**conf_general.h**]
```bash
git clone https://github.com/vedderb/bldc.git vesc_firmware
cd vesc_firmware
#make build/your_firmware_name_here.bin
make build/VESC_fw.bin
```
In VESC tool In VESC tool
2. Connect to the VESC 2. Connect to the VESC
3. Navigate to the Firmware tab on the left side menu 3. Navigate to the Firmware tab on the left side menu
4. Click on Custom file tab 4. Click on Custom file tab
5. Click on the folder icon to select the built firmware in .bin format (e.g. VESC_fw.bin) 5. Click on the folder icon to select the built firmware in .bin format (e.g. `build/100_250/100_250.bin`)
##### [ Reminder : It is normal to see VESC disconnects during the firmware upload process ] ##### [ Reminder : It is normal to see VESC disconnects during the firmware upload process ]
##### **[ Warning : DO NOT DISCONNECT POWER/USB to VESC during the upload process, or you will risk bricking your VESC ]** ##### **[ Warning : DO NOT DISCONNECT POWER/USB to VESC during the upload process, or you will risk bricking your VESC ]**
@ -183,6 +122,7 @@ However, to upload a firmware to a bricked VESC, you have to use a SWD Debugger.
## Contribute ## Contribute
Head to the [forums](https://vesc-project.com/forum) to get involved and improve this project. Head to the [forums](https://vesc-project.com/forum) to get involved and improve this project.
Join the [Discord](https://discord.gg/JgvV5NwYts) for real-time support and chat
## License ## License