From c15dba8c4707e01db8b07f0dca968bec8eb16202 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Tue, 25 Sep 2018 23:39:11 -0700 Subject: [PATCH 01/13] try fixing the odd div behaviour --- docs/getting-started.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/getting-started.md b/docs/getting-started.md index f4035948..c0e0dc7d 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -162,7 +162,6 @@ You can read more about `odrivetool` [here](odrivetool.md). ### 1. Set the limits:
Wait, how do I set these?
- In the previous step we started `odrivetool`. In there, you can assign variables directly by name. For instance, to set the current limit of M0 to 10A you would type: `odrv0.axis0.motor.config.current_lim = 10` Enter @@ -173,12 +172,12 @@ For instance, to set the current limit of M0 to 10A you would type: `odrv0.axis0 The default current limit, for safety reasons, is set to 10A. This is quite weak, but good for making sure the drive is stable. Once you have tuned the oDrive, you can increase this to 75A to increase performance. Note that above 75A, you must change the current amplifier gains. You do this by requesting a different current range. i.e. for 90A on M0: `odrv0.axis0.motor.config.requested_current_range = 90` [A], then save the configuration and reboot as the gains are written out to the DRV (MOSFET driver) only during startup. *Note: The motor current and the current drawn from the power supply is not the same in general. You should not look at the power supply current to see what is going on with the motor current.* -
Ok, so tell me how it actually works then...
The current in the motor is only connected to the current in the power supply _sometimes_ and other times it just cycles out of one phase and back in the other. This is what the modulation magnitude is (sometimes people call this duty cycle, but that's a bit confusing because we use SVM not straight PWM). When the modulation magnitude is 0, the average voltage seen across the motor phases is 0, and the motor current is never connected to the power supply. When the magnitude is 100%, it is always connected, and at 50% it's connected half the time, and cycled in just the motor half the time. The largest effect on modulation magnitude is speed. There are other smaller factors, but in general: if the motor is still it's not unreasonable to have 50A in the motor from 5A on the power supply. When the motor is spinning close to top speed, the power supply current and the motor current will be somewhat close to each other. -
+
+ #### Velocity limit `odrv0.axis0.controller.config.vel_limit` [counts/s]. The motor will be limited to this speed. Again the default value is quite slow. @@ -194,7 +193,6 @@ This is the number of **magnet poles** in the rotor, **divided by two**. To find If you can't see them, try sliding a magnet around the rotor, and counting how many times it stops. This will be the number of **pole pairs**. If you use a magnetic piece of metal instead of a magnet, you will get the number of **magnet poles**. `odrv0.axis0.motor.config.motor_type` This is the type of motor being used. Currently two types of motors are supported: High-current motors (`MOTOR_TYPE_HIGH_CURRENT`) and gimbal motors (`MOTOR_TYPE_GIMBAL`). -
Which motor_type to choose?
If you're using a regular hobby brushless motor like [this](https://hobbyking.com/en_us/turnigy-aerodrive-sk3-5065-236kv-brushless-outrunner-motor.html) one, you should set `motor_mode` to `MOTOR_TYPE_HIGH_CURRENT`. For low-current gimbal motors like [this](https://hobbyking.com/en_us/turnigy-hd-5208-brushless-gimbal-motor-bldc.html) one, you should choose `MOTOR_TYPE_GIMBAL`. Do not use `MOTOR_TYPE_GIMBAL` on a motor that is not a gimbal motor, as it may overheat the motor or the ODrive. @@ -203,7 +201,6 @@ If you're using a regular hobby brushless motor like [this](https://hobbyking.co If 100's of mA of current noise is "small" for you, you can choose `MOTOR_TYPE_HIGH_CURRENT`. If 100's of mA of current noise is "large" for you, and you do not intend to spin the motor very fast (Ω * L << R), and the motor is fairly large resistance (1 ohm or larger), you can chose `MOTOR_TYPE_GIMBAL`. If 100's of mA current noise is "large" for you, _and_ you intend to spin the motor fast, then you need to replace the shunt resistors on the ODrive. -

*Note: When using gimbal motors,* `current_lim` *and* `calibration_current` *actually mean "voltage limit" and "calibration voltage", since we don't use current feedback. This means that if you set it to 10, it means 10V, despite the name of the parameter.* From 71160b5c937f0bd71499357a6d263b072a7cd3c9 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Tue, 25 Sep 2018 23:58:37 -0700 Subject: [PATCH 02/13] chagne style of 4th lvl header --- docs/getting-started.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/getting-started.md b/docs/getting-started.md index c0e0dc7d..65182418 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -132,10 +132,10 @@ Try step 5 again ``` ## Firmware -#### ODrive v3.5 and later +**ODrive v3.5 and later** Your board should come preflashed with firmware. If you run into problems, follow the instructions [here](odrivetool.md#device-firmware-update) on the DFU procedure before you continue. -#### ODrive v3.4 and earlier +**ODrive v3.4 and earlier** Your board does **not** come preflashed with any firmware. Follow the instructions [here](odrivetool.md#device-firmware-update) on the STP Link procedure before you continue. ## Start `odrivetool` @@ -167,7 +167,7 @@ In the previous step we started `odrivetool`. In there, you can assign variables For instance, to set the current limit of M0 to 10A you would type: `odrv0.axis0.motor.config.current_lim = 10` Enter -#### Current limit +**Current limit** `odrv0.axis0.motor.config.current_lim` [A]. The default current limit, for safety reasons, is set to 10A. This is quite weak, but good for making sure the drive is stable. Once you have tuned the oDrive, you can increase this to 75A to increase performance. Note that above 75A, you must change the current amplifier gains. You do this by requesting a different current range. i.e. for 90A on M0: `odrv0.axis0.motor.config.requested_current_range = 90` [A], then save the configuration and reboot as the gains are written out to the DRV (MOSFET driver) only during startup. @@ -178,10 +178,10 @@ The current in the motor is only connected to the current in the power supply _s The largest effect on modulation magnitude is speed. There are other smaller factors, but in general: if the motor is still it's not unreasonable to have 50A in the motor from 5A on the power supply. When the motor is spinning close to top speed, the power supply current and the motor current will be somewhat close to each other. -#### Velocity limit +**Velocity limit** `odrv0.axis0.controller.config.vel_limit` [counts/s]. The motor will be limited to this speed. Again the default value is quite slow. -#### Calibration current +**Calibration current** You can change `odrv0.axis0.motor.config.calibration_current` [A] to the largest value you feel comfortable leaving running through the motor continuously when the motor is stationary. If you are using a small motor (i.e. 15A current rated) you may need to reduce `calibration_current` to a value smaller than the default. ### 2. Set other hardware parameters @@ -205,10 +205,10 @@ If 100's of mA current noise is "large" for you, _and_ you intend to spin the mo *Note: When using gimbal motors,* `current_lim` *and* `calibration_current` *actually mean "voltage limit" and "calibration voltage", since we don't use current feedback. This means that if you set it to 10, it means 10V, despite the name of the parameter.* -#### If using encoder +**If using encoder** `odrv0.axis0.encoder.config.cpr`: Encoder Count Per Revolution [CPR] This is 4x the Pulse Per Revolution (PPR) value. Usually this is indicated in the datasheet of your encoder. -#### If not using encoder +**If not using encoder** * If you wish to run in sensorless mode, please see [Setting up sensorless](commands.md#setting-up-sensorless). * If you are using hall sensor feedback, please see the [hoverboard motor example](hoverboard.md). @@ -245,10 +245,10 @@ Let's get motor 0 up and running. The procedure for motor 1 is exactly the same, ### Other control modes The ODrive also supports velocity control and current (torque) control. -#### Velocity control +**Velocity control** Set `odrv0.axis0.controller.config.control_mode = CTRL_MODE_VELOCITY_CONTROL`. You can now control the velocity with `odrv0.axis0.controller.vel_setpoint = 5000` [count/s]. -#### Current control +**Current control** Set `odrv0.axis0.controller.config.control_mode = CTRL_MODE_CURRENT_CONTROL`. You can now control the current with `odrv0.axis0.controller.current_setpoint = 3` [A]. From 0c7724cdbd2373a65a3ab8cd83522d5f1f5bf5df Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Wed, 26 Sep 2018 00:04:18 -0700 Subject: [PATCH 03/13] chagne style of 4th lvl header --- docs/getting-started.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/getting-started.md b/docs/getting-started.md index 65182418..f175fb43 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -132,10 +132,10 @@ Try step 5 again ``` ## Firmware -**ODrive v3.5 and later** +**ODrive v3.5 and later**
Your board should come preflashed with firmware. If you run into problems, follow the instructions [here](odrivetool.md#device-firmware-update) on the DFU procedure before you continue. -**ODrive v3.4 and earlier** +**ODrive v3.4 and earlier**
Your board does **not** come preflashed with any firmware. Follow the instructions [here](odrivetool.md#device-firmware-update) on the STP Link procedure before you continue. ## Start `odrivetool` @@ -167,7 +167,7 @@ In the previous step we started `odrivetool`. In there, you can assign variables For instance, to set the current limit of M0 to 10A you would type: `odrv0.axis0.motor.config.current_lim = 10` Enter -**Current limit** +**Current limit**
`odrv0.axis0.motor.config.current_lim` [A]. The default current limit, for safety reasons, is set to 10A. This is quite weak, but good for making sure the drive is stable. Once you have tuned the oDrive, you can increase this to 75A to increase performance. Note that above 75A, you must change the current amplifier gains. You do this by requesting a different current range. i.e. for 90A on M0: `odrv0.axis0.motor.config.requested_current_range = 90` [A], then save the configuration and reboot as the gains are written out to the DRV (MOSFET driver) only during startup. @@ -178,10 +178,10 @@ The current in the motor is only connected to the current in the power supply _s The largest effect on modulation magnitude is speed. There are other smaller factors, but in general: if the motor is still it's not unreasonable to have 50A in the motor from 5A on the power supply. When the motor is spinning close to top speed, the power supply current and the motor current will be somewhat close to each other. -**Velocity limit** +**Velocity limit**
`odrv0.axis0.controller.config.vel_limit` [counts/s]. The motor will be limited to this speed. Again the default value is quite slow. -**Calibration current** +**Calibration current**
You can change `odrv0.axis0.motor.config.calibration_current` [A] to the largest value you feel comfortable leaving running through the motor continuously when the motor is stationary. If you are using a small motor (i.e. 15A current rated) you may need to reduce `calibration_current` to a value smaller than the default. ### 2. Set other hardware parameters @@ -205,10 +205,10 @@ If 100's of mA current noise is "large" for you, _and_ you intend to spin the mo *Note: When using gimbal motors,* `current_lim` *and* `calibration_current` *actually mean "voltage limit" and "calibration voltage", since we don't use current feedback. This means that if you set it to 10, it means 10V, despite the name of the parameter.* -**If using encoder** +**If using encoder**
`odrv0.axis0.encoder.config.cpr`: Encoder Count Per Revolution [CPR] This is 4x the Pulse Per Revolution (PPR) value. Usually this is indicated in the datasheet of your encoder. -**If not using encoder** +**If not using encoder**
* If you wish to run in sensorless mode, please see [Setting up sensorless](commands.md#setting-up-sensorless). * If you are using hall sensor feedback, please see the [hoverboard motor example](hoverboard.md). @@ -245,10 +245,10 @@ Let's get motor 0 up and running. The procedure for motor 1 is exactly the same, ### Other control modes The ODrive also supports velocity control and current (torque) control. -**Velocity control** +**Velocity control**
Set `odrv0.axis0.controller.config.control_mode = CTRL_MODE_VELOCITY_CONTROL`. You can now control the velocity with `odrv0.axis0.controller.vel_setpoint = 5000` [count/s]. -**Current control** +**Current control**
Set `odrv0.axis0.controller.config.control_mode = CTRL_MODE_CURRENT_CONTROL`. You can now control the current with `odrv0.axis0.controller.current_setpoint = 3` [A]. From 3f7637b5677b3c372799b810913e0651b34689b0 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Wed, 26 Sep 2018 15:12:01 -0700 Subject: [PATCH 04/13] chagne style of 4th lvl header --- docs/getting-started.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/getting-started.md b/docs/getting-started.md index f175fb43..dd5362ff 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -181,6 +181,7 @@ The largest effect on modulation magnitude is speed. There are other smaller fac **Velocity limit**
`odrv0.axis0.controller.config.vel_limit` [counts/s]. The motor will be limited to this speed. Again the default value is quite slow. + **Calibration current**
You can change `odrv0.axis0.motor.config.calibration_current` [A] to the largest value you feel comfortable leaving running through the motor continuously when the motor is stationary. If you are using a small motor (i.e. 15A current rated) you may need to reduce `calibration_current` to a value smaller than the default. @@ -208,6 +209,7 @@ If 100's of mA current noise is "large" for you, _and_ you intend to spin the mo **If using encoder**
`odrv0.axis0.encoder.config.cpr`: Encoder Count Per Revolution [CPR] This is 4x the Pulse Per Revolution (PPR) value. Usually this is indicated in the datasheet of your encoder. + **If not using encoder**
* If you wish to run in sensorless mode, please see [Setting up sensorless](commands.md#setting-up-sensorless). * If you are using hall sensor feedback, please see the [hoverboard motor example](hoverboard.md). @@ -245,9 +247,11 @@ Let's get motor 0 up and running. The procedure for motor 1 is exactly the same, ### Other control modes The ODrive also supports velocity control and current (torque) control. + **Velocity control**
Set `odrv0.axis0.controller.config.control_mode = CTRL_MODE_VELOCITY_CONTROL`. You can now control the velocity with `odrv0.axis0.controller.vel_setpoint = 5000` [count/s]. + **Current control**
Set `odrv0.axis0.controller.config.control_mode = CTRL_MODE_CURRENT_CONTROL`. You can now control the current with `odrv0.axis0.controller.current_setpoint = 3` [A]. From 68ddd5f07fa1e3cb9521209fd654a539183c26f2 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Wed, 26 Sep 2018 16:59:33 -0700 Subject: [PATCH 05/13] Update troubleshooting.md --- docs/troubleshooting.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index b6d36720..756f2b62 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -66,7 +66,12 @@ Out[2]: 1.408751450071577e-05 In [3]: odrv0.axis0.motor.config.phase_resistance Out[3]: 0.029788672924041748 ``` -Some motors will have a considerably different phase resistance and inductance than this. For example, gimbal motors, some small motors (e.g. < 10A peak current). If you think this applies to you try increasing `odrv0.axis0.motor.config.resistance_calib_max_voltage` from its default value of 1 using odrive tool and repeat the motor calibration process. If your motor has a small peak current draw (e.g. < 20A) you can also try decreasing `odrv0.axis0.motor.config.calibration_current` from its default value of 10A. +Some motors will have a considerably different phase resistance and inductance than this. For example, gimbal motors, some small motors (e.g. < 10A peak current). If you think this applies to you try increasing `odrv0.axis0.motor.config.resistance_calib_max_voltage` from its default value of 1 using odrivetool and repeat the motor calibration process. If your motor has a small peak current draw (e.g. < 20A) you can also try decreasing `odrv0.axis0.motor.config.calibration_current` from its default value of 10A. + +In general, you need +```text +resistance_calib_max_voltage > calibration_current * phase_resistance`. +``` * `ERROR_DRV_FAULT = 0x0008` From 671d2cced247f452afaa42acc0ad7aa5f7391c35 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Sat, 29 Sep 2018 14:07:09 -0700 Subject: [PATCH 06/13] Update hoverboard.md --- docs/hoverboard.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/hoverboard.md b/docs/hoverboard.md index 5cf64332..5ad40184 100644 --- a/docs/hoverboard.md +++ b/docs/hoverboard.md @@ -5,6 +5,20 @@ Each step is acompanied by some explanation so hopefully you can carry over some [![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/ponx_U4xhoM/0.jpg)](https://www.youtube.com/watch?v=ponx_U4xhoM)
Click above to play video. +### Hoverboard motor wiring +Hoverboard motors come with three motor phases (usually colored yellow, blue, green) which are thicker, and a set of 5 thinner wires for the hall sensor feedback (usually colored red, yellow, blue, green, black). + +You may wire the motor phases in any order into a motor connector on the ODrive, as we will calibrate the phase alignment later anyway. Wire the hall feedback into the ODrive J2 conenctor (make sure that the motor channel number matches) as follows: + +| Hall wire | J2 signal | +|-----------|-----------| +| Red | 5V | +| Yellow | A | +| Blue | B | +| Green | Z | +| Black | GND | + + ### Hoverboard motor configuration Standard 6.5 inch hoverboard hub motors have 30 permanent magnet poles, and thus 15 pole pairs. If you have a different motor you need to count the magnets or have a reliable datasheet for this information. ```txt From b8e449b138ec5f439e5168cf078ddf7328ee5089 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Sat, 29 Sep 2018 23:59:26 -0700 Subject: [PATCH 07/13] Update encoders.md --- docs/encoders.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/docs/encoders.md b/docs/encoders.md index 8735575f..04cf9663 100644 --- a/docs/encoders.md +++ b/docs/encoders.md @@ -1,15 +1,7 @@ # Encoders ## Known and Supported Encoders -Contributions to this table highly encouraged! - -Encoder|Manufacturer|Output|Index|Max CPR|Max RPM|Voltage|Supported|Price|Link|Datasheet -:--|:--|:--|:-:|:-:|:-:|:-:|:--|:--|:--|:-- -AMT102|CUI|Quadrature|Yes|8192 (2048 * 4)|-|5V|Yes|-|-|- -AMT203|CUI|Quadrature + Absolute|Yes|4096 (1024 * 4)|-|5V|Quadrature Only|-|-|- -AS5047P|AMS|Quadrature + Absolute|Yes|4096 (1024 * 4)|28k|3.3V or 5V|Quadrature Only|-|-|- -E6B2-CWZ6C|Omron|Quadrature|Yes|8000 (2000 * 4)|-|5-24V|Yes|-|-|[Datasheet](http://www.ia.omron.com/products/family/487/) -J733|-|Quadrature|No|2400 (600 * 4)|-|5-24V|Yes|-|-|- +Check out the [ODrive Encoder Guide](https://docs.google.com/spreadsheets/d/1OBDwYrBb5zUPZLrhL98ezZbg94tUsZcdTuwiVNgVqpU). ## Encoder Calibration From 73b8521827080750ea3c7e984877a6a3d85ed05c Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Sun, 30 Sep 2018 12:54:40 -0700 Subject: [PATCH 08/13] Update Gemfile.lock --- docs/Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index feb6c6f6..20e81d61 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -25,13 +25,13 @@ GEM execjs (2.7.0) faraday (0.14.0) multipart-post (>= 1.2, < 3) - ffi (1.9.23) + ffi (1.9.24) forwardable-extended (2.6.0) gemoji (3.0.0) github-pages (181) activesupport (= 4.2.9) github-pages-health-check (= 1.4.0) - jekyll (= 3.7.3) + jekyll (= 3.7.4) jekyll-avatar (= 0.5.0) jekyll-coffeescript (= 1.1.1) jekyll-commonmark-ghpages (= 0.1.5) @@ -85,7 +85,7 @@ GEM http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.7.3) + jekyll (3.7.4) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -134,7 +134,7 @@ GEM jekyll (~> 3.3) jekyll-remote-theme (0.2.3) jekyll (~> 3.5) - rubyzip (>= 1.2.1, < 3.0) + rubyzip (>= 1.2.2, < 3.0) typhoeus (>= 0.7, < 2.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) From 8e8b7787ea46ae7158b946a87700b7ed7cfec246 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Sun, 30 Sep 2018 20:31:50 -0700 Subject: [PATCH 09/13] Update getting-started.md --- docs/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started.md b/docs/getting-started.md index dd5362ff..ad0c7956 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -24,7 +24,7 @@ permalink: / ### You will need: * One or two [brushless motors](https://docs.google.com/spreadsheets/d/12vzz7XVEK6YNIOqH0jAz51F5VUpc-lJEs3mmkWP1H4Y). It is fine, even recommended, to start testing with just a single motor and encoder. -* One or two [quadrature incremental encoder(s)](encoders) +* One or two [encoder(s)](https://docs.google.com/spreadsheets/d/1OBDwYrBb5zUPZLrhL98ezZbg94tUsZcdTuwiVNgVqpU) * A power resistor. A good starting point would be the 50W resistor included with your ODrive.
Do I really need a power resistor? What values to choose?
From 1c39a6078defdf4e5b5805fa21339d9b780f1e4b Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Thu, 4 Oct 2018 18:57:31 -0700 Subject: [PATCH 10/13] Update troubleshooting.md --- docs/troubleshooting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 756f2b62..c05c7f92 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -38,7 +38,7 @@ The axis error may say that some other component has failed. Say it reports `ERR * `ERROR_INVALID_STATE = 0x01` -Typically returned along with another error. Resolve that error and then reboot using `odrv0.reboot()` or remoivng power, waiting 5 seconds and restoring power to return to normal operating. +You tried to run a state before you are allowed to. Typically you tried to run encoder calibration or closed loop control before the motor was calibrated, or you tried to run closed loop control before the encoder was calibrated. * `ERROR_DC_BUS_UNDER_VOLTAGE = 0x02` From 2c5b4f93a15b6a31359245202c166fc1d4848f74 Mon Sep 17 00:00:00 2001 From: je310 Date: Fri, 5 Oct 2018 12:43:43 +0100 Subject: [PATCH 11/13] Update axis.hpp Added direction in the comments for the error codes to go look at the relevant hpp. When skimming the help documentation one assumes you arrive at an unhelpful error, such as ERROR_MOTOR_FAILED, when there is more information to be had. --- Firmware/MotorControl/axis.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/MotorControl/axis.hpp b/Firmware/MotorControl/axis.hpp index 111f9e26..d78cb54f 100644 --- a/Firmware/MotorControl/axis.hpp +++ b/Firmware/MotorControl/axis.hpp @@ -49,9 +49,9 @@ public: ERROR_CURRENT_MEASUREMENT_TIMEOUT = 0x08, ERROR_BRAKE_RESISTOR_DISARMED = 0x10, // Date: Fri, 5 Oct 2018 20:28:55 -0700 Subject: [PATCH 12/13] add component guide links to sidebar --- docs/_data/index.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/_data/index.yaml b/docs/_data/index.yaml index 786c5559..fabd32ee 100644 --- a/docs/_data/index.yaml +++ b/docs/_data/index.yaml @@ -27,3 +27,9 @@ sections: url: configuring-vscode - title: Configuring Eclipse url: configuring-eclipse + - title: Component Guides + docs: + - title: Motor Guide + url: https://docs.google.com/spreadsheets/d/12vzz7XVEK6YNIOqH0jAz51F5VUpc-lJEs3mmkWP1H4Y + - title: Encoder Guide + url: https://docs.google.com/spreadsheets/d/1OBDwYrBb5zUPZLrhL98ezZbg94tUsZcdTuwiVNgVqpU \ No newline at end of file From 5a22821bcdca05d417299532f30ceee207d8f5d7 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Sat, 6 Oct 2018 19:33:33 -0700 Subject: [PATCH 13/13] release firmware v0.4.5 --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efa2966c..fda2aca8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ # Unreleased Features Please add a note of your changes below this heading if you make a Pull Request. -# Unreleased +# Releases +## [0.4.5] - 2018-10-06 ### Added * **Trapezoidal Trajectory Planner** * Hook to execute protocol property written callback @@ -24,7 +25,6 @@ Please add a note of your changes below this heading if you make a Pull Request. * An issue where the axis state machine would jump in and out of idle when there is an error * There is a [bug](https://github.com/ARM-software/CMSIS_5/issues/267) in the arm fast math library, which gives spikes in the output of arm_cos_f32 for input values close to -pi/2. We fixed the bug locally, and hence are using "our_arm_cos_f32". -# Releases ## [0.4.4] - 2018-09-18 ### Fixed * Serious reliability issue with USB communication where packets on Native and the CDC interface would collide with each other.