From f6b5f6db7665512cece0223ce4d19c5b17455ef4 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 15 Nov 2019 14:27:46 -0800 Subject: [PATCH] Improvements to Solenoid feature (#7369) * Error out when Solenid pin is not defined Instead of defaulting to a (literally) random pin, error out instead. Because this pin may be used, or because that pin may not be exposed, or may not exist. * Remove 'SOLENOID_ACTIVE' setting since it's not used * Update documentation --- docs/feature_haptic_feedback.md | 14 +++++++++----- drivers/haptic/solenoid.h | 6 +----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md index d9e445de86..2273633227 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/feature_haptic_feedback.md @@ -41,11 +41,15 @@ First you will need a build a circuit to drive the solenoid through a mosfet as [Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf) -Select a pin that has PWM for the signal pin -``` -#define SOLENOID_PIN *pin* -``` +| Settings | Default | Description | +|--------------------------|---------------|-------------------------------------------------------| +|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. | +|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. | +|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. | +|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. | + +?> Dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds. Beware that some pins may be powered during bootloader (ie. A13 on the STM32F303 chip) and will result in the solenoid kept in the on state through the whole flashing process. This may overheat and damage the solenoid. If you find that the pin the solenoid is connected to is triggering the solenoid during bootloader/DFU, select another pin. @@ -151,4 +155,4 @@ This will set what sequence HPT_RST will set as the active mode. If not defined, ### DRV2605L Continuous Haptic Mode -This mode sets continuous haptic feedback with the option to increase or decrease strength. \ No newline at end of file +This mode sets continuous haptic feedback with the option to increase or decrease strength. diff --git a/drivers/haptic/solenoid.h b/drivers/haptic/solenoid.h index 53dc626e33..dd6ececa68 100644 --- a/drivers/haptic/solenoid.h +++ b/drivers/haptic/solenoid.h @@ -29,12 +29,8 @@ # define SOLENOID_MIN_DWELL 4 #endif -#ifndef SOLENOID_ACTIVE -# define SOLENOID_ACTIVE false -#endif - #ifndef SOLENOID_PIN -# define SOLENOID_PIN F6 +# error SOLENOID_PIN not defined #endif void solenoid_buzz_on(void);