[3.6.0-rc.1] EXP1HCL V1.0a io1.out PWM Issues
-
EXP1HCL V1.0a - purchased January 2024, but unused until now. I found this thread that may be similar: https://forum.duet3d.com/topic/36048/exp1hcl-50-io1-out-pwm-control-issue?_=1741220546477
Given - docs state both io0.out and io1.out are PWM capable. Note that the configuration for a fan is only for testing via the fan slider, and no fans are actually connected to these outputs.
M950 F8 C"123.io0.out" M106 P8 C"Dir1" M950 F9 C"123.io1.out" M106 P9 C"Dir2"
io0.out outputs PWM as expected, however io1.out gives a bizarre waveform at 1-99% or so 'fan speed', until at 100% you get 3.3v. Note that graphs below are with no load on the outputs. Issue is also present for the intended use case (w/ a L298), though it seems I only get a blip on io1.out. Percentages represent the fan slider percent.
io1.out - zoomed in some
io0.out - zoomed in some
M122
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-rc.1 (2025-02-28 15:00:13) running on Duet 3 MB6HC v1.02 or 1.02a (standalone mode) Board ID: 08DJM-9P63L-DJ3S0-7J1DD-3SN6L-9VMMA Used output buffers: 7 of 40 (37 max) === RTOS === Static ram: 137420 Dynamic ram: 130932 of which 0 recycled Never used RAM 75704, free system stack 186 words Tasks: NETWORK(1,ready,30.4%,135) ETHERNET(5,nWait 7,0.1%,400) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,333) TMC(4,nWait 6,3.1%,375) CanReceiv(6,nWait 1,0.0%,796) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,350) MAIN(1,running,66.1%,103) IDLE(0,ready,0.2%,29) USBD(3,blocked,0.0%,144), total 100.0% Owned mutexes: LwipCore(NETWORK) === Platform === Last reset 00:11:53 ago, cause: software Last software reset at 2025-03-05 19:08, reason: User, Gcodes spinning, available RAM 75656, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a === Storage === Free file entries: 20 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 3.2ms, write time 59.1ms, max retries 0 === Move === Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00 No step interrupt scheduled Driver 0: standstill, SG min n/a, mspos 8, reads 50341, writes 17 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 50341, writes 17 timeouts 0 Driver 2: standstill, SG min n/a, mspos 8, reads 50341, writes 17 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 50341, writes 17 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 50341, writes 17 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 50341, writes 17 timeouts 0 Phase step loop runtime (us): min=0, max=86, frequency (Hz): min=1467, max=3125 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 === Filament sensors === Driver 31: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 6243, received 8566, lost 0, ignored 0, errs 0, boc 0 Longest wait 1ms for reply type 6062, peak Tx sync delay 379, free buffers 50 (min 49), ts 3382/3381/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 115.45ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(2) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 === Multicast handler === Responder is inactive, messages received 0, responses 0 = Ethernet = Interface state: active Error counts: 0 0 0 0 0 0 Socket states: 6 4 2 2 2 0 0 0 0 === WiFi === Interface state: disabled Module is disabled Failed messages: pending 0, notrdy 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0
M122 B123
M122 B123 Diagnostics for board 123: Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-rc.1 (2025-02-28 15:01:26) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 81372, free system stack 178 words Tasks: Move(3,nWait 7,0.0%,178) CLSend(3,nWait 6,0.0%,149) TMC(2,nWait 6,26.0%,349) HEAT(2,nWait 6,0.0%,130) CanAsync(5,nWait 4,0.0%,70) CanRecv(3,nWait 1,0.0%,74) CanClock(5,nWait 1,0.0%,64) MAIN(1,running,73.2%,409) IDLE(0,ready,0.0%,29) AIN(2,nWait 2,0.8%,255), total 100.0% Owned mutexes: Last reset 00:12:32 ago, cause: software Last software reset data not available Moves scheduled 0, hiccups 0 (0.00/0.00ms), segs 0, step errors 0 (types 0x0), maxLate 0 maxPrep 0, ebfmin 0.00 max 0.00 Phase step loop runtime (us): min=0, max=104, frequency (Hz): min=0, max=39473 Peak sync jitter -6/8, peak Rx sync delay 184, resyncs 0/0, next timer interrupt due in 23 ticks, enabled, next step interrupt due in 3730453500 ticks, disabled VIN voltage: min 24.2, current 24.2, max 24.3 V12 voltage: min 12.0, current 12.1, max 12.1 MCU temperature: min 33.5C, current 34.3C, max Driver 0: pos 0, 80.0 steps/mm, standstill, SG min n/a, mspos 8, reads 36573, writes 11 timeouts 0 Last sensors broadcast 0x00000000 found 0 177 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 9060, send timeouts 0, received 6593, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0 dup 0, oos 0/0/0/0, rxMotionDelay 0 Closed loop driver 0 mode: open loop, pre-error threshold: 2.00, error threshold: 4.00, encoder type none Accelerometer: none I2C bus errors 12, naks 0, contentions 0, other errors 0
-
Wanted to show the chart with the L298N connected, showing how io1.out cuts out. I recognize that, by default, the 'fan' blip time is set to B0.1. Can test later without that.
-
Tested with
B0
with the results as expected (same issues as above). I also tested an EXP1HCL I've been using for a few years (albeit, have not used io0 or io1 out), and I see the same thing where io1.out doesn't seem to be working correctly.I don't see anything wrong in the schematic, and I won't pretend to be an expert regarding the code, but EXP1HCl.h seems to look ok. @dc42 any ideas?
-
@sebkritikel to confirm: are you seeing this issue on two different EX1HCL boards? Are they both version 1.01a?
-
@dc42 Not physically with the printer/boards currently, but yes, both boards do exhibit the same issue with io1.out.
Board #1 (subject of initial two posts) - V1.0a, purchased January 12th 2024 from FilastruderBoard #2 - it is indeed a V1.0a,
but unsure on if itβs rev βaβ or not. Purchased April 6th 2023 from Filastruder. -
undefined sebkritikel marked this topic as a question
-
@sebkritikel I'm currently testing a version 1.0 board. I find that PWM doesn't work at all. M42 S1 sets the pin high, M42 with any S value below 1.0 sets it low. I will investigate this.
-
@sebkritikel there was a firmware bug. Please try the 3.6.0-rc.1+1 version at https://www.dropbox.com/scl/fo/0xdvvzgqfrs5abyk75ss8/AL3i6s7z9UacEGYsxiR7pXw?rlkey=xpm61w2jlyqlawwjzy4zsq2lt&dl=0 which is compatible with 3.6.0-rc.1 or rc.1+1 firmware on the main board. This EXP1HCL build contains an experimental feature but that should not affect you unless you are using a linear composite encoder.
-
@dc42 said in [3.6.0-rc.1] EXP1HCL V1.0a io1.out PWM Issues:
@sebkritikel there was a firmware bug. Please try the 3.6.0-rc.1+1 version at https://www.dropbox.com/scl/fo/0xdvvzgqfrs5abyk75ss8/AL3i6s7z9UacEGYsxiR7pXw?rlkey=xpm61w2jlyqlawwjzy4zsq2lt&dl=0 which is compatible with 3.6.0-rc.1 or rc.1+1 firmware on the main board. This EXP1HCL build contains an experimental feature but that should not affect you unless you are using a linear composite encoder.
Thanks! Just tested both boards with rc.1+1 (mainboard and 1HCLs) and io1.out works as expected.
-
undefined sebkritikel has marked this topic as solved