Haptic Controller
Loading...
Searching...
No Matches
odrive_errors.hpp
Go to the documentation of this file.
1#ifndef ODRIVE_ERRORS_INCLUDE_GUARD
2#define ODRIVE_ERRORS_INCLUDE_GUARD
3#include "ODriveCAN.h"
4#include <wiring.h>
5#include <iostream>
6#include <Arduino.h>
7
9bool clear_safe_errors(ODriveCAN odrv, uint32_t error)
10{
11 if (error == ODRIVE_ERROR_NONE || error == ODRIVE_ERROR_ESTOP_REQUESTED) {
12 odrv.clearErrors();
13 return true;
14 }
15
16 return false;
17}
18
21void odrive_print_error(uint32_t error)
22{
23 switch (error) {
24 case ODRIVE_ERROR_NONE:
25 Serial.println("ODRIVE_ERROR_NONE");
26 break;
27
28 case ODRIVE_ERROR_INITIALIZING:
29 Serial.println("ODRIVE_ERROR_INITIALIZING");
30 break;
31
32 case ODRIVE_ERROR_SYSTEM_LEVEL:
33 Serial.println("ODRIVE_ERROR_SYSTEM_LEVEL");
34 break;
35
36 case ODRIVE_ERROR_TIMING_ERROR:
37 Serial.println("ODRIVE_ERROR_TIMING_ERROR");
38 break;
39
40 case ODRIVE_ERROR_MISSING_ESTIMATE:
41 Serial.println("ODRIVE_ERROR_MISSING_ESTIMATE");
42 break;
43
44 case ODRIVE_ERROR_BAD_CONFIG:
45 Serial.println("ODRIVE_ERROR_BAD_CONFIG");
46 break;
47
48 case ODRIVE_ERROR_DRV_FAULT:
49 Serial.println("ODRIVE_ERROR_DRV_FAULT ");
50 break;
51
52 case ODRIVE_ERROR_MISSING_INPUT:
53 Serial.println("ODRIVE_ERROR_MISSING_INPUT");
54 break;
55
56 case ODRIVE_ERROR_DC_BUS_OVER_VOLTAGE:
57 Serial.println("ODRIVE_ERROR_DC_BUS_OVER_VOLTAGE");
58 break;
59
60 case ODRIVE_ERROR_DC_BUS_UNDER_VOLTAGE:
61 Serial.println("ODRIVE_ERROR_DC_BUS_UNDER_VOLTAGE");
62 break;
63
64 case ODRIVE_ERROR_DC_BUS_OVER_CURRENT:
65 Serial.println("ODRIVE_ERROR_DC_BUS_OVER_CURRENT");
66 break;
67
68 case ODRIVE_ERROR_DC_BUS_OVER_REGEN_CURRENT:
69 Serial.println("ODRIVE_ERROR_DC_BUS_OVER_REGEN_CURRENT");
70 break;
71
72 case ODRIVE_ERROR_CURRENT_LIMIT_VIOLATION:
73 Serial.println("ODRIVE_ERROR_CURRENT_LIMIT_VIOLATION");
74 break;
75
76 case ODRIVE_ERROR_MOTOR_OVER_TEMP:
77 Serial.println("ODRIVE_ERROR_MOTOR_OVER_TEMP");
78 break;
79
80 case ODRIVE_ERROR_INVERTER_OVER_TEMP:
81 Serial.println("ODRIVE_ERROR_INVERTER_OVER_TEMP");
82 break;
83
84 case ODRIVE_ERROR_VELOCITY_LIMIT_VIOLATION:
85 Serial.println("ODRIVE_ERROR_VELOCITY_LIMIT_VIOLATION");
86 break;
87
88 case ODRIVE_ERROR_POSITION_LIMIT_VIOLATION:
89 Serial.println("ODRIVE_ERROR_POSITION_LIMIT_VIOLATION");
90 break;
91
92 case ODRIVE_ERROR_WATCHDOG_TIMER_EXPIRED:
93 Serial.println("ODRIVE_ERROR_WATCHDOG_TIMER_EXPIRED");
94 break;
95
96 case ODRIVE_ERROR_ESTOP_REQUESTED:
97 Serial.println("ODRIVE_ERROR_ESTOP_REQUESTED");
98 break;
99
100 case ODRIVE_ERROR_SPINOUT_DETECTED:
101 Serial.println("ODRIVE_ERROR_SPINOUT_DETECTED");
102 break;
103
104 case ODRIVE_ERROR_BRAKE_RESISTOR_DISARMED:
105 Serial.println("ODRIVE_ERROR_BRAKE_RESISTOR_DISARMED");
106 break;
107
108 case ODRIVE_ERROR_THERMISTOR_DISCONNECTED:
109 Serial.println("ODRIVE_ERROR_THERMISTOR_DISCONNECTED");
110 break;
111
112 case ODRIVE_ERROR_CALIBRATION_ERROR:
113 Serial.println("ODRIVE_ERROR_CALIBRATION_ERROR");
114 break;
115
116 }
117
118}
119
120#endif
bool clear_safe_errors(ODriveCAN odrv, uint32_t error)
: Clear errors deemed as "Safe to Clean Automatically"
void odrive_print_error(uint32_t error)
Print Odrive Error Code.