@@ -22,14 +22,15 @@ loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AX
22
22
23
23
24
24
# load low-level drivers
25
- loadrt hal_bb_gpio output_pins=103,105,107,120,121,127,128,129,130,136, 139,140,141,142,143,144,145,146
25
+ loadrt hal_bb_gpio output_pins=103,105,107,120,121,127,128,129,130,139,140,141,142,143,144,145,146
26
26
loadrt [PRUCONF](DRIVER) [PRUCONF](CONFIG)
27
- loadrt pid num_chan=1
28
- loadrt limit1
27
+ loadrt pid num_chan=2
28
+ loadrt limit1 count=2
29
29
30
30
31
31
# Python user-mode HAL module to read ADC value and generate a thermostat output for PWM
32
32
loadusr -Wn Therm0 /home/linuxcnc/linuxcnc/configs/BeagleBone/BeBoPr/ReadTemp.py -n Therm0 -t epcos_B57560G1104 -a AIN1
33
+ #loadusr -Wn Therm1 /home/linuxcnc/linuxcnc/configs/BeagleBone/BeBoPr/ReadTemp.py -n Therm1 -t epcos_B57560G1104 -a AIN3
33
34
34
35
# ################################################
35
36
# THREADS
@@ -40,7 +41,9 @@ addf bb_gpio.read servo-thread
40
41
addf motion-command-handler servo-thread
41
42
addf motion-controller servo-thread
42
43
addf pid.0.do-pid-calcs servo-thread
44
+ addf pid.1.do-pid-calcs servo-thread
43
45
addf limit1.0 servo-thread
46
+ addf limit1.1 servo-thread
44
47
addf [PRUCONF](DRIVER).update servo-thread
45
48
addf bb_gpio.write servo-thread
46
49
@@ -243,31 +246,35 @@ setp bb_gpio.p8.out-07.invert 1
243
246
# PWM and Temperature Signals
244
247
# ##################################################
245
248
249
+ # Define signals to use elsewhere (ie: M1xx codes)
250
+ # If you change any names here, lots of things will break!
251
+ newsig e0.temp.set float
252
+ newsig e0.temp.meas float
253
+ newsig bed.temp.set float
254
+ newsig bed.temp.meas float
255
+
256
+
246
257
setp hal_pru_generic.pwmgen.00.pwm_period 10000000
247
258
248
- # J2 PRU1.out1
259
+ # J2 E0 Heater PRU1.out1
249
260
setp hal_pru_generic.pwmgen.00.out.00.pin 0xA1
250
261
setp hal_pru_generic.pwmgen.00.out.00.enable 1
251
- setp hal_pru_generic.pwmgen.00.out.00.value 0.2
262
+ setp hal_pru_generic.pwmgen.00.out.00.value 0.0
252
263
253
- # J3 PRU1.out0
264
+ # J3 E1 Heater PRU1.out0
254
265
setp hal_pru_generic.pwmgen.00.out.01.pin 0xA0
255
266
setp hal_pru_generic.pwmgen.00.out.01.enable 1
256
- setp hal_pru_generic.pwmgen.00.out.01.value 0.2
267
+ setp hal_pru_generic.pwmgen.00.out.01.value 0.0
257
268
258
- # J4 GPIO2.16
259
- setp hal_pru_generic.pwmgen.00.out.02.pin 0x50
269
+ # J4 Bed Heater GPIO2.16
270
+ setp hal_pru_generic.pwmgen.00.out.02.pin 0x70
260
271
setp hal_pru_generic.pwmgen.00.out.02.enable 1
261
- setp hal_pru_generic.pwmgen.00.out.02.value 0.2
262
-
263
- #setp temp.set 0x480 # Setting for 0-4096 scale (Raw ADC values)
264
- #setp temp.set 0x1FA # Setting for 0-1800 scale (mV scale)
272
+ setp hal_pru_generic.pwmgen.00.out.02.value 0.0
265
273
266
274
# PID for Extruder 0 temperature control
267
275
net e0.temp.meas <= Therm0.temp
268
276
net e0.temp.meas => pid.0.feedback
269
277
270
- newsig e0.temp.set float
271
278
sets e0.temp.set 0
272
279
net e0.temp.set => pid.0.command
273
280
@@ -280,12 +287,41 @@ net e0.heaterl => hal_pru_generic.pwmgen.00.out.00.value
280
287
# PWM mimics hm2 implementation, which generates output for negative values
281
288
setp limit1.0.min 0
282
289
290
+ # PID for Bed temperature control
291
+ net bed.temp.meas <= Therm1.temp
292
+ net bed.temp.meas => pid.1.feedback
293
+
294
+ sets bed.temp.set 0
295
+ net bed.temp.set => pid.1.command
296
+
297
+ net bed.heater <= pid.1.output
298
+ net bed.heater => limit1.1.in
299
+ net bed.heaterl <= limit1.1.out
300
+ net bed.heaterl => hal_pru_generic.pwmgen.00.out.02.value
301
+
302
+ # Limit heater PWM to positive values
303
+ # PWM mimics hm2 implementation, which generates output for negative values
304
+ setp limit1.1.min 0
305
+
283
306
# PID Parameters for adjusting temperature control
307
+ # Extruder
284
308
#setp pid.0.FF0 0
285
309
#setp pid.0.FF1 0
286
310
#setp pid.0.FF2 0
287
- setp pid.0.Dgain 114.0
288
- setp pid.0.Igain 1.08
289
- setp pid.0.Pgain 22.2
311
+ setp pid.0.Pgain 0.30
312
+ setp pid.0.Igain 0.00001
313
+ setp pid.0.Dgain 0.9375
314
+ setp pid.0.maxerrorI 1.0
290
315
setp pid.0.bias 0.5
291
316
setp pid.0.enable 1
317
+
318
+ # Bed
319
+ #setp pid.1.FF0 0
320
+ #setp pid.1.FF1 0
321
+ #setp pid.1.FF2 0
322
+ setp pid.1.Pgain 1
323
+ setp pid.1.Igain 0.0
324
+ setp pid.1.Dgain 0.0
325
+ setp pid.1.maxerrorI 1.0
326
+ setp pid.1.bias 0.5
327
+ setp pid.1.enable 1
0 commit comments