Comgrow Micro Laser Engraver model XN001 MIA?

I have a Comgrow Micro Laser Engraver model XN001 and Lightburn can’t find it.

It almost works on windoz 10 but the quality of the rendering is awful, the text is mangled and the lines look like they are hand drawn. It looks like a very bad rasterization. And, the output is mirrored and drawn at a ~15 degree angle.

So, I thought I would upgrade to LightBurn to see if a software fix would work.

I added myself to tty and dialout groups, then installed the LB 4.14.01 .run file. I tried it on OpenSuse Leap 15.5/64bit and Ubuntu 22.04.3 Jammy and the laser can not be found.

When I plug it in, I get a dmesg:
[ 6587.194077] usb 2-1.6: new full-speed USB device number 7 using ehci-pci
[ 6587.304825] usb 2-1.6: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[ 6587.304834] usb 2-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6587.304837] usb 2-1.6: Product: STM32 Virtual COM Port
[ 6587.304840] usb 2-1.6: Manufacturer: STMicroelectronics
[ 6587.304842] usb 2-1.6: SerialNumber: 847CD6A80739
[6587.316638] cdc_acm 2-1.6:1.0: ttyACM0: USB ACM device
[ 6587.316660] usbcore: registered new interface driver cdc_acm
[ 6587.316661] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

TTY is found:
brianp@ubu:~/download/mini-laser$ ll /dev/ttyA*
crw-rw---- 1 root dialout 166, 0 Aug 24 11:50 /dev/ttyACM0
And, it has RW permissions for group “dialout”

I have RW access to the TTY
root@ubu:/mnt# grep brianp /etc/group | egrep “dial|tty”
tty:x:5:syslog,brianp << My UID
dialout:x:20:brianp

The .run installs fine:
brianp@ubu:~/download/mini-laser$ bash ./LightBurn-Linux64-v1.4.01.run
Verifying archive integrity… 100% MD5 checksums are OK. All good.
Uncompressing LightBurn - Better Software For Laser Cutters 100%
Removing old LightBurn…
Installing to /home/brianp/.local/share/LightBurn
Creating /home/brianp/.local/share/applications/lightburn.desktop
LightBurn Install Complete!
brianp@ubu:~/download/mini-laser$ cat /home/brianp/.local/share/applications/lightburn.desktop
[Desktop Entry]
Type=Application
Name=LightBurn
Comment=Better Software For Laser Cutters
Exec=/home/brianp/.local/share/LightBurn/LightBurn
Icon=/home/brianp/.local/share/LightBurn/LightBurn.png
Categories=Graphics;

Running LightBurn “EXEC” in a terminal to catch the stdout/stderr:
No preferences file found
QObject::killTimer(): Error: timer id 22 is not valid for object 0x7ffdc0ddabb0 (LicenseDialog, LicenseDialog), timer has not been killed
QMetaObject::connectSlotsByName: No matching signal for on_lvDevices_rowsMoved()
Found port: PID 22336 VID 1155
Manufacturer: “STMicroelectronics”
Product: “STM32 Virtual COM Port” on “ttyACM0”
STM32: Probably Gerbil-STM
attempting connection… 230400, “Gerbil” DTR setting: true
Found port: PID 0 VID 0
Manufacturer: “”
Product: “” on “ttyS0”
attempting connection… 115200, DTR setting: false
attempting connection… 115200, DTR setting: true
Vend: 2821 Prod: 6044
Vend: 1155 Prod: 22336
Vend: 1133 Prod: 50455
Vend: 2316 Prod: 4096
Vend: 32903 Prod: 36
Vend: 7531 Prod: 2
Vend: 1921 Prod: 21891
Vend: 7531 Prod: 3
Vend: 7531 Prod: 2
Vend: 7531 Prod: 3
Vend: 7531 Prod: 2
Vend: 32903 Prod: 36
Vend: 7531 Prod: 2

It finds a cromulent device but moves on to find “PID 0 VID 0”:
Found port: PID 22336 VID 1155
Manufacturer: “STMicroelectronics”
Product: “STM32 Virtual COM Port” on “ttyACM0”
STM32: Probably Gerbil-STM
attempting connection… 230400, “Gerbil” DTR setting: true
Found port: PID 0 VID 0

I tried the minicom trick:
minicom -b 115200 -D /dev/ttyACM0
and ctr-x does nothing.

I have both the 12VDC power cord and the USB-C cord plugged in to the port labeled with the USB symbol (the second USB-C appears to be dead).

I tried to manually assign the “Gerbil-STM” driver, XY axis (80, 80), origin left-rear, auto-home. The console says “waiting for connection”. There is no machine movement, sound or homing.

When I change the device from “auto” to ttyACM0, the console says “Port failed to open - already in use” and minicom was exited with ^A, Z, X, yes.

I am ready to RMA this lemon. Are there any tricks I have overlooked?

========================================
root@ubu:/mnt# chmod 777 /dev/ttyACM0
root@ubu:/mnt# ls -l /dev/ttyACM0
crwxrwxrwx 1 root dialout 166, 0 Aug 25 10:57 /dev/ttyACM0

Restart LightBurn:
brianp@ubu:~$ /home/brianp/.local/share/LightBurn/LightBurn&
[1] 68478
brianp@ubu:~$ Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Using the core prefs dir
QMetaObject::connectSlotsByName: Connecting slot on_sbNumberOfPasses_valueChanged() with the first of the following compatible signals: (“valueChanged(int)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: Connecting slot on_sbFrequency_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: Connecting slot on_sbQPulseWidth_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: No matching signal for on_sbInterval_valueChanged()
QMetaObject::connectSlotsByName: Connecting slot on_sbMaterialHeight_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: Connecting slot on_sbSupportHeight_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: No matching signal for on_actionEdit_Text_closed(int)
connected
Port open succeeded
QObject::killTimer(): Error: timer id 27 is not valid for object 0x7fffa2614db0 (LicenseDialog, LicenseDialog), timer has not been killed
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: Incompatible version of OpenSSL
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
We got a connection error when networkLayerState is Unknown
CFU: A network error occurred: QNetworkReply::NetworkError(UnknownNetworkError) ( “Error creating SSL context ()” )
CFU: downloaded 0 of 0
QCoreApplication::postEvent: Unexpected null receiver
QCoreApplication::postEvent: Unexpected null receiver
CFU failed due to error: “illegal value”

Do you have any reason to believe this laser is compatible with LightBurn?

A web search doesn’t bring up anything matching the exact description. This machine came up under similar searches. Is it this one?

If so, the machine is almost certainly not compatible with LightBurn.

What software are you using on the Windows side to control the laser? Have you tried running LightBurn on Windows to connect?

The website says “mini” but the label on the unit says “micro”.
This is the device:

Do you have any reason to believe this laser is compatible with LightBurn?
They sell a licence key for LaserBurn on the website. Perhaps it is for one of their larger lasers. There is a Comgrow Z1 discussed here.

I was hoping that there would be a way to write a config file to have LaserBurn attach to /dev/ttyACM0 and use a “standard” driver. I would bet that every component is off-the-shelf and generic.

What software are you using on the Windows
There is a Mini.Laser.Engraver.for.windows.zip pointed to in the manual. The s/w is horrible and the output looks hand-drawn with mangled text and jagged lines. Extremely amateurish and without any documentation other than a few marketing videos.

I was hoping that LaserBurn could find and control it. After chmod on the TTY, there is a successful port open (at least), but then SSL errors. There was never a “LicenseDialog” prompt and I doubt whether it has encrypted communications requiring SSL.

RMA time!

Comgrow sell a number of lasers that use GRBL for firmware which is compatible with LightBurn. There’s nothing that leads me to believe that this is one of them.

I suspect this is the core of the problem.

This isn’t about the driver or proprietary components. If the controller doesn’t run a control firmware that can be controlled by LightBurn it simply won’t work.

Can you take a screenshot of this?

Were you able to connect via minicom at that point? If so, did you get a welcome message or any output from the controller?

After root> chmod 777 /dev/ttyACM0
rianp@ubu:~$ /home/brianp/.local/share/LightBurn/LightBurn&
[1] 68478
brianp@ubu:~$ Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Using the core prefs dir
QMetaObject::connectSlotsByName: Connecting slot on_sbNumberOfPasses_valueChanged() with the first of the following compatible signals: (“valueChanged(int)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: Connecting slot on_sbFrequency_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: Connecting slot on_sbQPulseWidth_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: No matching signal for on_sbInterval_valueChanged()
QMetaObject::connectSlotsByName: Connecting slot on_sbMaterialHeight_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: Connecting slot on_sbSupportHeight_valueChanged() with the first of the following compatible signals: (“valueChanged(double)”, “valueChanged(QString)”)
QMetaObject::connectSlotsByName: No matching signal for on_actionEdit_Text_closed(int)
connected
Port open succeeded
QObject::killTimer(): Error: timer id 27 is not valid for object 0x7fffa2614db0 (LicenseDialog, LicenseDialog), timer has not been killed
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_id_callback
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_set_locking_callback
qt.network.ssl: QSslSocket: cannot resolve ERR_free_strings
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_init
qt.network.ssl: QSslSocket: cannot resolve sk_new_null
qt.network.ssl: QSslSocket: cannot resolve sk_push
qt.network.ssl: QSslSocket: cannot resolve sk_free
qt.network.ssl: QSslSocket: cannot resolve sk_num
qt.network.ssl: QSslSocket: cannot resolve sk_pop_free
qt.network.ssl: QSslSocket: cannot resolve sk_value
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
qt.network.ssl: QSslSocket: cannot resolve SSL_load_error_strings
qt.network.ssl: QSslSocket: cannot resolve SSL_get_ex_new_index
qt.network.ssl: QSslSocket: cannot resolve SSLv3_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_client_method
qt.network.ssl: QSslSocket: cannot resolve SSLv3_server_method
qt.network.ssl: QSslSocket: cannot resolve SSLv23_server_method
qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get_chain
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
qt.network.ssl: QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
qt.network.ssl: QSslSocket: cannot resolve SSLeay
qt.network.ssl: Incompatible version of OpenSSL
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
We got a connection error when networkLayerState is Unknown
CFU: A network error occurred: QNetworkReply::NetworkError(UnknownNetworkError) ( “Error creating SSL context ()” )
CFU: downloaded 0 of 0
QCoreApplication::postEvent: Unexpected null receiver
QCoreApplication::postEvent: Unexpected null receiver
CFU failed due to error: “illegal value”

=========================

Were you able to connect via minicom

It is completely unresponsive to ^x and hangup. There is a ^A, Z, run_script option that looks promising. ^A-Z-H → hangup does nothing. ^A-z-m to initialize_modem does nothing.

P → comm parameters:
OPTIONS: I18n ±--------[Comm Parameters]----------+
Port /dev/ttyACM0, 10:| |
| Current: 115200 8N1 |
Press CTRL-A Z for hel| Speed Parity Data |
| A: L: None S: 5 |
| B: M: Even T: 6 |
| C: 9600 N: Odd U: 7 |
| D: 38400 O: Mark V: 8 |
| E: 115200 P: Space |
| |
| Stopbits |
| W: 1 Q: 8-N-1 |
| X: 2 R: 7-E-1 |
And, LightBurn is not running for the minicom test.

And brianp@ubu:~$ ll /dev/ttyACM0
crwxrwxrwx 1 root dialout 166, 0 Aug 26 10:37 /dev/ttyACM0

Killing minicom and restarting LB, setting device from (Auto) to ttyACM0 →
“Waiting for connection
Port failed to open - already in use?”


Trying to find laser
devices (select *Gerbil-STM), find_my_laser →
<stdout/stderr on console>
brianp@ubu:~$ Found port: PID 22336 VID 1155
Manufacturer: “STMicroelectronics”
Product: “STM32 Virtual COM Port” on “ttyACM0”
STM32: Probably Gerbil-STM
attempting connection… 230400, “Gerbil” DTR setting: true
Found port: PID 0 VID 0
Manufacturer: “”
Product: “” on “ttyS0”
attempting connection… 115200, DTR setting: false
attempting connection… 115200, DTR setting: true
Vend: 2821 Prod: 6044
Vend: 1155 Prod: 22336
Vend: 1133 Prod: 50455
Vend: 32903 Prod: 36
Vend: 7531 Prod: 2
Vend: 1921 Prod: 21891
Vend: 7531 Prod: 3
Vend: 7531 Prod: 2
Vend: 7531 Prod: 3
Vend: 7531 Prod: 2
Vend: 32903 Prod: 36
Vend: 7531 Prod: 2
QMetaObject::connectSlotsByName: No matching signal for on_lvDevices_rowsMoved()

If the GUI still comes up I think this is only an issue with checking for updates. It should not affect other functionality.

Were you able to enter your trial key?

Can you try connecting to the laser via serial terminal in Windows? You know it can at least connect from the proprietary software.

But if you’re not getting a standard welcome message it’s almost certain the machine is not compatible.

I think this is only an issue with checking for updates.

When I do HELP ->check_for_updates, I get an error dialog “a network error occurred: Error creating SSL context()”

I don’t have a trial key. It just tells me how many days I have left in the trial.
Relaunching Lightburn&, it does not even ask for a key.

===================

Can you try connecting to the laser via serial terminal in Windows?

windoz 10 → device mangler com3 vid_0483&pic_5740 … requires further installation
And, second event driver manager concluded to add service, status 0
9600 baud,8 datta, no parit, 1 stop, no flow, high rec and trans buffers

Putty, serial, com3, 9600, telnet: Opens black dialog. ^x does nothing. Completely dead. Nothing written to screen, no machine sound/movement. LightBurn not running, usb-c and 12VDC plugged in


run “mini laser engrave.exe” from icon:
file ->open(charlie.jpg), it actually homes and loads the image to burn.
Preview (show outline at 20% power) looks OK
burning at 50% power and 100% speed is making smoke
It is actually burning…
Miraculously, the 4th attempt is solid black, not ragged and choppy.
I can’t attach an image?

I wonder if WireShark could be run under windoz on com3 to dump the raw dialog…
Or, run the .exe on Wine under Linux and then capture the I/O.

Been following this and I think you are making this too complicated…


It is showing up as ttyACM0 so it’s being detected by the OS and it gives you the vendor and id information that is correctly read by the OS… You should be able to use lsusb and see most of that information in a much more human readable format.


I agree with @berainlb that it is not a supported device… this response from Oz, seems to agree … from February of 2021…

Good luck

:smile_cat:

The trial key likely started when you first launched. In any case, if the software is running that means it’s currently activated.

Are you certain it’s a USB serial device?

In any case, sounds like this is a dead-end.

You can drag and drop images to the form editor or push the upload icon.

If you’re familiar with these then I’d say worth a shot. But every indication is that this is not going to be compatible.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.