Display for Laser/CNC mode



  • edited February 4 Posts: 345
    please set ( in drivers.cpp  ) bool LaserDriver::firstMove = true;
    so we catch warmup also after homing.
    (needed if we home machine and start with G1)

    answered your last comments in previous 2 posts , what do you think about?

    may be youáre interested in that stuff https://sites.google.com/site/dtrlpf/home/flexdrives
    they now added data for startup delay , so i wasn´t wrong with my measurements ;-)
  • Posts: 0
    Ok have changed to true for next update.

    I also see your delay of 30ms in one of them. So bigger lasers have this. So now I'm wondering how to handle things like laser images work with such a high delay and if that delay is also valid for disabling. I'm a bit confused since laser are not my expertise. All I have is a fast blue 2w laser diode.
  • Posts: 345
    It´s quite simple it´s just during power up and depends on the driver electronics, not on laser itself.
    switch off delay goes ->0 as its maximum buffered by small capacitor.

    so laser images are often done adjusting brightness via moving speed.

    And TTL-modulated Lasers are "powered on " the complete time, so thats why need the delay just on first move.

    i also have only 3W laser which is not modulated so i think our solution with the Laser warmup catches both delays.
    the first one is the startup delay of laser driver (i´m shure youre laser driver also has some) and the second one
    which depends on material.

    so all my testing showed we´re on the right way ;-)
  • edited February 5 Posts: 345
    Just a question regarding Door:

    shouldn´t there be a message when door open?

    as far as i understand  GCode::keepAlive should send a message
    (GCodeSource::printAllFLN(PSTR("busy:door open"));)

    but i cannot see ??

    i use Repetier Host 1.6.2

    so that part should send message i think:

     else if(state == DoorOpen) {
                GCodeSource::printAllFLN(PSTR("busy:door open"));

    so if i add       Com::printWarningFLN(PSTR("door open"));
    i get warning message as expected in keep alive interval

    but GCodeSource::printAllFLN(PSTR("busy:door open"));
    seems to do nothing ???  
  • Posts: 0
    busy: tell hosts why communication is not possible so it does not time out. I guess I should make host show this on manual control info box, so you know what is going on. In log it is filted with ACK filter.
  • Posts: 345

    Ok, that explains why i couldnt see anything.

    So may be it would be useful to have it as you wrote  and additional on Display for the case of SD printing

  • Posts: 0
    The display is an idea. There are 2 ways - as complete info window blocking any action or we could just change status message at the bottom. Also communication is blocked you normally could move with display controls when open. At least I think it is possible. Have no printer with open door sensor.
  • Posts: 345

    Think Status message is enough , and as host is already blocking we could add this to gcode::keepAlive()

    may be as warning message as i added in my test.  so i think it´s clearly visible for everyone and also working with existing host software

  • Posts: 0
    I agree except I do not like to repeat warnings. Have just committed a patch that stores door state so it sends warning only once. It also sets status to door open, but that might get deleted after a while from the next status message. So maybe we need to move that to a test if enabled or in busy so it gets only updated every 2 seconds after first appeareance.
  • Posts: 345
    tried to merge the changes in ,
    get error message

    exit status 1
    'UI_STATUS_UPD_F' was not declared in this scope

  • Posts: 0
    Could not reproduce that error. DisplayList.h defines it
    #define UI_STATUS_UPD_F(status) {uid.setStatusP(status);uid.refreshPage();}

    Where do you get that error?
  • Posts: 345
    seems to be mismatch anywhere in my merging.
    I´ll start fresh one...can´t find what happened

  • edited February 7 Posts: 345
    OK, no mismatch from my side.

    downloaded development version and in configuration.h just set :

    #define SUPPORT_LASER 1 // set 1 to enable laser support
    #define LASER_PIN 67    // set to pin enabling laser
    #define LASER_ON_HIGH 1 // Set 0 if low signal enables laser
    #define LASER_WARMUP_TIME 0// wait x milliseconds to start material burning before move

    #define DOOR_PIN 68
    #define DOOR_PULLUP 1
    #define DOOR_INVERTING 1

    then you should be able to reproduce error message.
    if laser not activated it compiles fine .
    reason :
    door open message is coupled with Laser support.
    but message should be active in all modes if door is open as door is also active in all modes

    so line 888 in printer.h should be changed from:

    #if defined(DOOR_PIN) && DOOR_PIN > -1 && SUPPORT_LASER       


    #if defined(DOOR_PIN) && DOOR_PIN > -1

    so any idea about error message :

    exit status 1
    'UI_STATUS_UPD_F' was not declared in this scope

  • Posts: 0
    Ok, could reproduce. Have moved it to Printer.cpp so it is now using known macros. 
  • Posts: 345

    Thanks, compiles now also in my Setup, will check functions tonight.

  • Posts: 345
    did a short check, function has 2 problems :

    1. Message "door open" is shown after closing door

    2. executing gcode gets ugly slow. seems communication to host takes about 10 times more.
    have a short gcode file which takes  about 2 seconds to execute without door activated.
    time rises to 20 seconds when door is activated
  • Posts: 0
    Ok, I think i have seen the problem. Apart from having order swapped it always went into last condition updating screen which is slow. Hope new update fixes this correctly.
  • Posts: 345
    thanks ,saw update will check this evening and inform you the result
  • Posts: 345
    Well done :-)
    works as wanted without slowing down
  • Posts: 345
    Back to coordinates...

    I see now you have replaced the extruder/bed place with Xw/Yw/Zw (why w?) Might be an idea to have both on startscreen and G92 modded everywhere as this is more helpfull after calibration.

    so the reason for the"w" is "
    work"  coordinate.

    so in cnc and laser mode it´s useful to show both coordinates and as i saw in other post other users want the g92 coordinates
    in printer mode.
    so what do you think of showing  both in cnc and laser ,  so left side original machine coordinates indexed with "m" and right side
    the g92 modded coordinates without index.( in these two modi  temperatures are useless).

    and in printer mode left side temperatures as it is and right side g92 coords ?

  • Yes, that solution would be ok. So like what you did already. Just we would need to do it for all display types. Would be better then my last solution only showing one of both depending on mode.
  • Posts: 345
    ok, so can you take the part for the different display types? ( i just have the st7920 and ks0108 )
  • Yes, but when I have some more time. Need to fix host first so we can release that.
  • Posts: 345
    ok, thanks   i´ll  follow up
  • Posts: 345
    something new regarding an update ? hope youll find the time in near future
  • Posts: 0
    You mean switch for modes? No had no time. Concentrate on host release atm.
  • Posts: 345
    ok, so i´ll Keep waiting with my personal update
Sign In or Register to comment.