blob: 05b9cb427f7fd24520f67f116811c2c7b82e35f2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
|
# Main Kconfig settings
mainmenu "Klipper Firmware Configuration"
config LOW_LEVEL_OPTIONS
bool "Enable extra low-level configuration options"
help
Enable low-level configuration options that (if modified) may
result in a build that does not function correctly.
choice
prompt "Micro-controller Architecture"
config MACH_AVR
bool "Atmega AVR"
config MACH_ATSAM
bool "SAM3/SAM4/SAM E70"
config MACH_ATSAMD
bool "SAMC21/SAMD21/SAMD51/SAME5x"
config MACH_LPC176X
bool "LPC176x"
config MACH_STM32
bool "STMicroelectronics STM32"
config MACH_HC32F460
bool "Huada Semiconductor HC32F460"
config MACH_RPXXXX
bool "Raspberry Pi RP2040/RP235x"
config MACH_PRU
bool "Beaglebone PRU"
config MACH_AR100
bool "Allwinner A64 AR100"
config MACH_LINUX
bool "Linux process"
config MACH_SIMU
bool "Host simulator"
endchoice
source "src/avr/Kconfig"
source "src/atsam/Kconfig"
source "src/atsamd/Kconfig"
source "src/lpc176x/Kconfig"
source "src/stm32/Kconfig"
source "src/hc32f460/Kconfig"
source "src/rp2040/Kconfig"
source "src/pru/Kconfig"
source "src/ar100/Kconfig"
source "src/linux/Kconfig"
source "src/simulator/Kconfig"
# Generic configuration options for serial ports
config SERIAL
bool
config SERIAL_BAUD
depends on SERIAL
int "Baud rate for serial port" if LOW_LEVEL_OPTIONS
default 250000
help
Specify the baud rate of the serial port. This should be set
to 250000. Read the FAQ before changing this value.
# Generic configuration options for USB
config USBSERIAL
bool
config USBCANBUS
bool
config USB
bool
default y if USBSERIAL || USBCANBUS
config USB_VENDOR_ID
default 0x1d50
config USB_DEVICE_ID
default 0x614e
config USB_SERIAL_NUMBER_CHIPID
depends on USB && HAVE_CHIPID
default y
config USB_SERIAL_NUMBER
default "12345"
menu "USB ids"
depends on USB && LOW_LEVEL_OPTIONS
config USB_VENDOR_ID
hex "USB vendor ID" if USBSERIAL
config USB_DEVICE_ID
hex "USB device ID" if USBSERIAL
config USB_SERIAL_NUMBER_CHIPID
bool "USB serial number from CHIPID" if HAVE_CHIPID
config USB_SERIAL_NUMBER
string "USB serial number" if !USB_SERIAL_NUMBER_CHIPID
endmenu
# Optional features that can be disabled (for devices with small flash sizes)
config WANT_ADC
bool
depends on HAVE_GPIO_ADC
default y
config WANT_SPI
bool
depends on HAVE_GPIO && HAVE_GPIO_SPI
default y
config WANT_SOFTWARE_SPI
bool
depends on WANT_SPI
default y
config WANT_I2C
bool
depends on HAVE_GPIO && HAVE_GPIO_I2C
default y
config WANT_SOFTWARE_I2C
bool
depends on WANT_I2C
default y
config WANT_HARD_PWM
bool
depends on HAVE_GPIO_HARD_PWM
default y
config WANT_BUTTONS
bool
depends on HAVE_GPIO
default y
config WANT_TMCUART
bool
depends on HAVE_GPIO
default y
config WANT_NEOPIXEL
bool
depends on HAVE_GPIO
default y
config WANT_PULSE_COUNTER
bool
depends on HAVE_GPIO
default y
config WANT_ST7920
bool
depends on HAVE_GPIO
default y
config WANT_HD44780
bool
depends on HAVE_GPIO
default y
config WANT_ADXL345
bool
depends on WANT_SPI
default y
config WANT_LIS2DW
bool
depends on WANT_SPI || WANT_I2C
default y
config WANT_MPU9250
bool
depends on WANT_I2C
default y
config WANT_ICM20948
bool
depends on WANT_I2C
default y
config WANT_THERMOCOUPLE
bool
depends on WANT_SPI
default y
config WANT_HX71X
bool
depends on HAVE_GPIO
default y
config WANT_ADS1220
bool
depends on WANT_SPI
default y
config WANT_LDC1612
bool
depends on WANT_I2C
default y
config WANT_SENSOR_ANGLE
bool
depends on WANT_SPI
default y
config NEED_SENSOR_BULK
bool
depends on WANT_ADXL345 || WANT_LIS2DW || WANT_MPU9250 || WANT_ICM20948 \
|| WANT_HX71X || WANT_ADS1220 || WANT_LDC1612 || WANT_SENSOR_ANGLE
default y
menu "Optional features (to reduce code size)"
depends on HAVE_LIMITED_CODE_SIZE
config WANT_ADC
bool "Support micro-controller based ADC (analog to digital)"
depends on HAVE_GPIO_ADC
config WANT_SPI
bool "Support communicating with external chips via SPI bus"
depends on HAVE_GPIO && HAVE_GPIO_SPI
config WANT_SOFTWARE_SPI
bool "Support software based SPI \"bit-banging\""
depends on WANT_SPI
config WANT_I2C
bool "Support communicating with external chips via I2C bus"
depends on HAVE_GPIO && HAVE_GPIO_I2C
config WANT_SOFTWARE_I2C
bool "Support software based I2C \"bit-banging\""
depends on WANT_I2C
config WANT_HARD_PWM
bool "Support hardware PWM (pulse width modulation)"
depends on HAVE_GPIO_HARD_PWM
config WANT_BUTTONS
bool "Support GPIO based button reading"
depends on HAVE_GPIO
config WANT_TMCUART
bool "Support Trinamic stepper motor driver UART communication"
depends on HAVE_GPIO
config WANT_NEOPIXEL
bool "Support 'neopixel' type LED control"
depends on HAVE_GPIO
config WANT_PULSE_COUNTER
bool "Support measuring fan tachometer GPIO pins"
depends on HAVE_GPIO
comment "LCD chips"
config WANT_ST7920
bool "Support ST7920 LCD display"
depends on HAVE_GPIO
config WANT_HD44780
bool "Support HD44780 LCD display"
depends on HAVE_GPIO
comment "Accelerometer chips"
depends on WANT_SPI || WANT_I2C
config WANT_ADXL345
bool "Support adxl accelerometers"
depends on WANT_SPI
config WANT_LIS2DW
bool "Support lis2dw and lis3dh 3-axis accelerometers"
depends on WANT_SPI || WANT_I2C
config WANT_MPU9250
bool "Support MPU accelerometers"
depends on WANT_I2C
config WANT_ICM20948
bool "Support ICM20948 accelerometer"
depends on WANT_I2C
comment "External ADC type chips"
config WANT_THERMOCOUPLE
bool "Support thermocouple MAX sensors"
depends on WANT_SPI
config WANT_HX71X
bool "Support HX711 and HX717 ADC chips"
depends on HAVE_GPIO
config WANT_ADS1220
bool "Support ADS 1220 ADC chip"
depends on WANT_SPI
comment "Other external sensor chips"
depends on WANT_SPI || WANT_I2C
config WANT_LDC1612
bool "Support ldc1612 eddy current sensor"
depends on WANT_I2C
config WANT_SENSOR_ANGLE
bool "Support angle sensors"
depends on WANT_SPI
endmenu
# Generic configuration options for CANbus
config CANSERIAL
bool
config CANBUS
bool
default y if CANSERIAL || USBCANBUS
config CANBUS_FREQUENCY
int "CAN bus speed" if LOW_LEVEL_OPTIONS && CANBUS
default 1000000
config CANBUS_FILTER
bool
default y if CANSERIAL
# Stepper optimizations
config INLINE_STEPPER_HACK
# Enables gcc to inline stepper_event() into the main timer irq handler
bool
depends on HAVE_GPIO
default y
config HAVE_STEPPER_OPTIMIZED_BOTH_EDGE
bool
config WANT_STEPPER_OPTIMIZED_BOTH_EDGE
bool "Optimize stepper code for 'step on both edges'" if LOW_LEVEL_OPTIONS
depends on INLINE_STEPPER_HACK && HAVE_STEPPER_OPTIMIZED_BOTH_EDGE
default y
help
Optimize the stepper code for Trinamic stepper motor drivers
that are configured in UART or SPI mode (and thus can perform
a step on both "edges" of the step pin). Enabling this option
typically improves the stepper cpu performance by about 20%
when using these drivers. If this option is disabled the code
will instead deploy optimizations that improve the cpu
performance by about 20% for traditional drivers (those that
take a step only on the "rising" or "falling" level of the
step pin).
# Support setting gpio state at startup
config INITIAL_PINS
string "GPIO pins to set at micro-controller startup"
depends on LOW_LEVEL_OPTIONS
help
One may specify a comma separated list of gpio pins to set
during the micro-controller startup sequence. By default the
pins will be set to output high - preface a pin with a '!'
character to set that pin to output low.
# The HAVE_x options allow boards to disable support for some commands
# if the hardware does not support the feature.
config HAVE_GPIO
bool
config HAVE_GPIO_ADC
bool
config HAVE_GPIO_SPI
bool
config HAVE_GPIO_SDIO
bool
config HAVE_GPIO_I2C
bool
config HAVE_GPIO_HARD_PWM
bool
config HAVE_STRICT_TIMING
bool
config HAVE_CHIPID
bool
config HAVE_BOOTLOADER_REQUEST
bool
config HAVE_LIMITED_CODE_SIZE
bool
config HAVE_SOFTWARE_DIVIDE_REQUIRED
bool
|