Arch with Linux 5.12 up, does not seem to communicate properly at 250000 baud

Running 5.12.4-arch1-2 from 15.5, Repetier-Host 2.2.2 does not seem to communicate properly at 250000 baud with my 3D printer. It connects with "No start signal detected - forcing start" and "1 Command waiting" and does not show any temperatures as it normally would.

Other USB-serial devices such as Arduinos work fine at 9600 baud. Both CDC_ACM as the printer (/dev/ttyACMx) and ch341 (/dev/ttyUSBx). But, tried to make an Arduino sketch with 250000 baud serial communication and I get this:

Error while setting serial port parameters: 250,000 N 8 1


Tested 3D printer with a LUbuntu 18.04 laptop and that works fine so there is nothing wrong with the printer.


Comments

  • Linux serial for mono only supports ANSI baud rates and 250000 is none of this. To overcome this we have put a small C++ software SetBaudrate in the same folder as the host. Please check if you can call it manually or if it is missing a library on your linux. Would explain that it fails. If it fails there is also the sourcecode SetBaudrate.cpp contained, so compile it:
    g++ SetBaudrate.cpp -o SetBaudrate

    configureFirst would do so already but only if g++ is installed.
  • That seems to resolve the issue for now, I set the baudrate after connecting in RepetierHost but it does take some ten seconds before it gains communication.
  • Actually host will call SetBaudrate on it's own when it sees a non ansi baud rate. When you start from console do you see a error message when it tries this?
  • Nope, I do remember seeing it before.

    [jskata@Samsung ~]$ repetierHost  
    [jskata@Samsung ~]$  
    (mono:697): Gtk-WARNING **: 11:37:31.302: Unable to locate theme engine in modul
    e_path: "adwaita",
    libpng warning: iCCP: known incorrect sRGB profile

    [jskata@Samsung ~]$ RepetierHost/SetBaudrate /dev/ttyACM0 250000
    actual baud: 250000

  • Yes, that is how we do it. Just connect to same serial and switch baud rate. And call seems to work. So might be a timing issue being called too quickly maybe so it does not work. After all if I understand you when you call it a bit later it starts working, right? In that case you might want to rename SetBaudrate and replace it with a script that does sleep 1 and then calls the correct command.
Sign In or Register to comment.