My mistake... I'm sorry for mixing up the firmware numbers. I thought I had the latest firmware on both boards but I don't. I updated the firmware on the 6HC and it's now working.
Thanks so much for your help!
My mistake... I'm sorry for mixing up the firmware numbers. I thought I had the latest firmware on both boards but I don't. I updated the firmware on the 6HC and it's now working.
Thanks so much for your help!
The immediate response is
m98 P"config.g"
HTTP is enabled on port 80
TELNET is enabled on port 23
But a few seconds later this is the response
Error: Response timeout: CAN addr 1, req type 6036, RID=18
Error: Response timeout: CAN addr 1, req type 6036, RID=19
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.6 (2023-07-21 14:11:38) running on Duet 3 MB6HC v1.02 or later (standalone mode)
Board ID: 0JD2M-9P9DA-F0PS4-6JTDJ-3S46K-T6WM2
Used output buffers: 3 of 40 (20 max)
=== RTOS ===
Static ram: 153252
Dynamic ram: 96792 of which 0 recycled
Never used RAM 100628, free system stack 190 words
Tasks: NETWORK(ready,39.3%,169) ETHERNET(notifyWait,0.5%,108) HEAT(notifyWait,0.0%,373) Move(notifyWait,0.0%,344) CanReceiv(notifyWait,0.0%,798) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,349) TMC(notifyWait,7.7%,90) MAIN(running,52.3%,925) IDLE(ready,0.2%,30), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 00:30:06 ago, cause: software
Last software reset at 2024-12-19 13:18, reason: User, GCodes spinning, available RAM 100628, slot 0
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00432000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Step timer max interval 1409
MCU temperature: min 41.5, current 41.6, max 42.7
Supply voltage: min 24.2, current 24.3, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.2, max 12.3, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0, mspos 8, reads 49865, writes 13 timeouts 0
Driver 1: standstill, SG min 0, mspos 8, reads 49866, writes 12 timeouts 0
Driver 2: standstill, SG min 0, mspos 8, reads 49866, writes 12 timeouts 0
Driver 3: standstill, SG min 0, mspos 8, reads 49867, writes 11 timeouts 0
Driver 4: standstill, SG min 0, mspos 8, reads 49867, writes 11 timeouts 0
Driver 5: standstill, SG min 0, mspos 8, reads 49868, writes 11 timeouts 0
Date/time: 2024-12-19 13:48:39
Slowest loop: 999.97ms; fastest: 0.05ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 2.3ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Segments left: 0
Movement lock held by 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
Code queue is empty
=== CAN ===
Messages queued 9043, received 14459, lost 0, boc 0
Longest wait 1ms for reply type 6018, peak Tx sync delay 286, free buffers 50 (min 49), ts 9032/9031/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 899.24ms; fastest: 0.03ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
HTTP sessions: 2 of 8
= Ethernet =
State: active
Error counts: 0 0 0 1 0 0
Socket states: 5 2 2 2 2 0 0 2
= WiFi =
Interface state: disabled
Module is disabled
Failed messages: pending 0, notready 0, noresp 0
Socket states: 0 0 0 0 0 0 0 0
=== Multicast handler ===
Responder is inactive, messages received 0, responses 0
config.g
M575 P1 S1 B57600 ; enable support for PanelDue
G90
M550 P"cp"
M575 P1 S0 B57600
M552 S1 P0.0.0.0
M586 P0 S1 ; enable HTTP
M586 P2 S1 ; enable Telnet
G4 S2 ; wait for expansion boards to start
M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Y axis)
M569 P0.2 S1 D2 ; driver 0.2 goes forwards (Z axis)
M569 P1.0 S0 D2 ; drive
M569 P1.1 S0 D2
M906 X400 A400 I30 ; motor currents and motor idle factor in per cent
M84 S30 ; idle timeout
M584 X1.0 Y0.1 Z0.2 A1.1 ; set axis mapping
M350 X16 A16 I1 ; microstepping with interpolation
M92 X{200*16} A{(66*200*16)/360} ; steps per unit
M208 X0:50 A0:{100*360} ; axis limits
M566 X900.00 A900.00 ; maximum instantaneous speed changes (u/min)
M203 X{50*60} A{45*60} ; maximum speeds (u/min)
M201 X50.00 A10.00 ; set accelerations (u/s^2)
M669 K0 ; configure Cartesian kinematics
M574 X1 P"1.io1.in" S1 ; configure X axis endstop
M574 Y0 ; configure Y axis endstop
M574 Z0 ; configure Z axis endstop
M574 A1 P"1.io2.in" S1 ; configure A axis endstop
M950 P0 C"out4" ; gas
M950 P1 C"out5" ; laser shot
M501 ; load saved parms from nv memory
M453
I cannot post my config.g because it complains I need a reputation 2 to post links even though it's just text.
Hi,
I've got a 6HC mainboard connected to EB3HC expansion board address 1.
The LEDs are blinking in sync. Both boards are at 3.4.6 firmware.
When I try to map the endstop on the expansion board, it does not seem to work and I get a CAN response timeout error.
Does anyone know what I'm doing wrong, or how to fix this? Thanks so much!
@dc42 I'm adding some photos for posterity in case this works out and someone else wants to try it.
Diode from Digi-Key... Vishay V3P6L-M3/H
The "L2in" node is only available on the top side of the PCB. I lifted the plastic bar off the "OUT_0 Select V" connector to get access to VB_FUSED and wired up the diode. Then replaced the plastic bar.
@dc42 Thank you, that sounds great. I placed an order for a bunch of diodes and we'll see how the mod goes.
@dc42 Thank you for the quick response.
Oh no, I just bought 10 of the 1HCL and they are version 1.0a.
I guess I'm stuck with 1.0a for now... does it seem reasonable what I'm doing? i.e. two power supplies is parallel, 12V 0.1A with diode for constant power, and 24V 6A when motors can move?
Or is there some 1.0a board modification to get the similar V_AUX as 2.0? I'm looking at removing L3 or L4 (the inductors in series at the output of the buck) and putting 12V there, but if the above 12V 0.1A and 24V 6A works, then that is much easier.
I'm designing a CNC-like piece of equipment. The main board is the 6HC and will have several 1HCLs.
One requirement is that during an unsafe situation determined by dedicated safety controllers, for example door open, that motors on the 1HCLs are de-energized or not able to move. This cannot rely on software or firmware. I would like to keep communication at least with the main board.
If there was a dedicated power supply input for the motors that would have solved my requirement. The safety system would just supply power when it was ok to do so.
How can I implement this with what I have?
I was thinking of supplying constant board communication power (say 12 V, 100mA through a diode) to each 1HCL. If the safety system allows movement, it will switch on a 24 V 6A power supply that is wired in series to the power on the 1HCL allowing enough current for the motors to move. The reasoning is that the constant 12V 0.1A is enough to keep canbus communication happening, but not enough current to move the motor. Does this seem like a good idea? Are there any potential issues with this?
I also read, but cannot find it anymore, on the Duet website that the canbus boards are meant to be always available (i.e. always on), but that in some cases this can be managed. Does anyone know what this means? Is there a way to reliably power down and power up 1HCLs while the main board is running?
Thanks.
@droftarts Thank you very much.
I will not attempt to write to the register and risk damaging the board. I try to see if I can find other solutions.
Hi,
I'm wondering if there are any options when stopping the motor? I'm using a 6HC and also a 1HCL.
According to the documentation, M18 puts the motors into "freewheeling" mode, but there doesn't seem to be any options.
I'm looking for a way to short the motor coils to brake the motor without applying current.
I see that the Trinamic driver supports "coiling shorting" either on highside or lowside drivers when using the "standstill" (idle?) feature. This would work for me. Is there any way to access this feature?
Thanks.
@OwenD Thank you so much! That's exactly what I was looking for.
What is the best way to retain the value 16 arrays that will be restored after power cycling?
I have sixteen X & Y values I use for calibration for a project I'm working on. I declare the global variable in a macro and the value gets written and read from various other macros.
if !exists(global.xy_offsets)
global xy_offsets = { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} }
All is working ok, except when I power down, the values are gone. What's the best way to keep these values?
Thanks.