phm07 / marlinraker

Moonraker API Emulator for Marlin 3D Printers
https://marlinraker.readthedocs.io/
GNU General Public License v3.0
9 stars 0 forks source link

Can't connect with fluidd/mainsail to marlinraker (using docker) #3

Open AlmightyFrog opened 11 months ago

AlmightyFrog commented 11 months ago

Hi,

before coming to topic itself here a side note. Autodect seems to have some issues

marlinraker_1  |
marlinraker_1  | > marlinraker@v0.2.4-alpha start
marlinraker_1  | > node index.js
marlinraker_1  |
marlinraker_1  | [INFO]  13:43:48 Config loaded
marlinraker_1  | [WARN]  13:43:48 No CORS domains found. Disabling CORS.
marlinraker_1  | [INFO]  13:43:48 App listening on port 7125
marlinraker_1  | [INFO]  13:43:48 Registered macro "start_print"
marlinraker_1  | [INFO]  13:43:48 Registered macro "pause"
marlinraker_1  | [INFO]  13:43:48 Registered macro "resume"
marlinraker_1  | [INFO]  13:43:48 Registered macro "cancel_print"
marlinraker_1  | [INFO]  13:43:48 Registered macro "sdcard_reset_file"
marlinraker_1  | /bin/sh: systemctl: not found
marlinraker_1  | [WARN]  13:43:48 Cannot get active system services, service manager disabled
marlinraker_1  | [INFO]  13:43:48 Searching for serial port
marlinraker_1  | [WARN]  13:43:48 'sudo apt update' exited with error code 1
marlinraker_1  | [INFO]  13:43:49 Trying /dev/ttyAMA0 with baud rate 250000
marlinraker_1  | [INFO]  13:43:49 Cannot connect
marlinraker_1  | [INFO]  13:43:49 Trying /dev/ttyAMA0 with baud rate 115200
marlinraker_1  | [INFO]  13:43:49 Cannot connect
marlinraker_1  | [INFO]  13:43:49 Trying /dev/ttyAMA0 with baud rate 19200
marlinraker_1  | [INFO]  13:43:49 Cannot connect
marlinraker_1  | [INFO]  13:43:49 Trying /dev/ttyUSB0 with baud rate 250000
marlinraker_1  | [INFO]  13:43:51 Cannot connect
marlinraker_1  | [INFO]  13:43:51 Trying /dev/ttyUSB0 with baud rate 115200
marlinraker_1  | [INFO]  13:43:53 Cannot connect
marlinraker_1  | [INFO]  13:43:53 Trying /dev/ttyUSB0 with baud rate 19200
marlinraker_1  | [INFO]  13:43:55 Cannot connect
marlinraker_1  | [ERROR] 13:43:55 Could not determine serial port to connect to.

If i configure port and baudrate manual it works:

marlinraker_1  |
marlinraker_1  | > marlinraker@v0.2.4-alpha start
marlinraker_1  | > node index.js
marlinraker_1  |
marlinraker_1  | [INFO]  13:53:37 Config loaded
marlinraker_1  | [WARN]  13:53:37 No CORS domains found. Disabling CORS.
marlinraker_1  | [INFO]  13:53:37 App listening on port 7125
marlinraker_1  | [INFO]  13:53:37 Registered macro "start_print"
marlinraker_1  | [INFO]  13:53:37 Registered macro "pause"
marlinraker_1  | [INFO]  13:53:37 Registered macro "resume"
marlinraker_1  | [INFO]  13:53:37 Registered macro "cancel_print"
marlinraker_1  | [INFO]  13:53:37 Registered macro "sdcard_reset_file"
marlinraker_1  | /bin/sh: systemctl: not found
marlinraker_1  | [WARN]  13:53:37 Cannot get active system services, service manager disabled
marlinraker_1  | [INFO]  13:53:37 Using serial port /dev/ttyUSB0 with baud rate 250000
marlinraker_1  | [WARN]  13:53:38 'sudo apt update' exited with error code 1
marlinraker_1  | [WARN]  13:53:38 Unknown command: "��"
marlinraker_1  | [INFO]  13:53:38 Identified Ender3V2-422-BLTUBL-MPC on Marlin 2.1.3 MRiscoC Ender3V2-422-BLTUBL-MPC, based on bugfix-2.1.x (Sep  4 2023 09:57:22) with 37 capabilities

Now to the real topic: It seems marlinraker is running correctly and connected to the printer is detected properly. Turning on extended_logs shows e.g.

marlinraker_1  | [DEBUG] 14:27:09 got    T:23.35 /0.00 B:22.71 /0.00 @:0 B@:0
marlinraker_1  | [DEBUG] 14:27:09 got    T:23.39 /0.00 B:22.73 /0.FIRMWARE_NAME:Marlin 2.1.3 MRiscoC Ender3V2-422-BLTUBL-MPC, based on bugfix-2.1.x (Sep  4 2023 09:57:22) SOURCE_CODE_URL:github.com/mriscoc/Ender3V2S1 PROTOCOL_VERSION:1.0 MACHINE_TYPE:Ender3V2-422-BLTUBL-MPC EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:SERIAL_XON_XOFF:0
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:BINARY_FILE_TRANSFER:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:EEPROM:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:VOLUMETRIC:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:AUTOREPORT_POS:0
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:AUTOREPORT_TEMP:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:PROGRESS:0
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:PRINT_JOB:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:AUTOLEVEL:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:RUNOUT:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:Z_PROBE:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:LEVELING_DATA:1
marlinraker_1  | [DEBUG] 14:27:09 got   Cap:BUILD_PERCENT:1

But i can't connect using fluidd hosted on same host. i am not using it anymore, just curious. it is in allowed_services but still: marlinraker_1 | [ERROR] 13:55:31 Error in server.database.get_item: fluidd doesn't exist

Also mainsail is not working either:

marlinraker_1  | [DEBUG] 14:27:54 {"gcode":"M114 R","log":false,"response":["ok P15 B15"],"queued":1696861674299,"sent":1696861674299,"completed":1696861674311,"timeInQueue":12}
marlinraker_1  | [DEBUG] 14:27:55 got    T:23.36 /0.00 B:22.71 /0.00 @:0 B@:0
marlinraker_1  | [DEBUG] 14:27:55 sent  M114 R
marlinraker_1  | [DEBUG] 14:27:55 got   X:0.00 Y:0.00 Z:0.00 E:0.00 Count X:0 Y:0 Z:0
marlinraker_1  | [DEBUG] 14:27:55 got   ok P15 B15
marlinraker_1  | [DEBUG] 14:27:55 {"gcode":"M114 R","log":false,"response":["ok P15 B15"],"queued":1696861675300,"sent":1696861675300,"completed":1696861675312,"timeInQueue":12}
mainsail       | 1.2.3.4 - - [09/Oct/2023:14:27:55 +0000] "GET /websocket HTTP/1.1" 200 1731 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0" "-"
marlinraker_1  | [DEBUG] 14:27:56 got    T:23.37 /0.00 B:22.70 /0.00 @:0 B@:0
marlinraker_1  | [DEBUG] 14:27:56 sent  M114 R
marlinraker_1  | [DEBUG] 14:27:56 got   X:0.00 Y:0.00 Z:0.00 E:0.00 Count X:0 Y:0 Z:0
marlinraker_1  | [DEBUG] 14:27:56 got   ok P15 B15
marlinraker_1  | [DEBUG] 14:27:56 {"gcode":"M114 R","log":false,"response":["ok P15 B15"],"queued":1696861676300,"sent":1696861676300,"completed":1696861676311,"timeInQueue":11}
marlinraker_1  | [DEBUG] 14:27:57 got    T:23.34 /0.00 B:22.71 /0.00 @:0 B@:0
marlinraker_1  | [DEBUG] 14:27:57 sent  M114 R
marlinraker_1  | [DEBUG] 14:27:57 got   X:0.00 Y:0.00 Z:0.00 E:0.00 Count X:0 Y:0 Z:0
marlinraker_1  | [DEBUG] 14:27:57 got   ok P15 B15
marlinraker_1  | [DEBUG] 14:27:57 {"gcode":"M114 R","log":false,"response":["ok P15 B15"],"queued":1696861677300,"sent":1696861677300,"completed":1696861677312,"timeInQueue":12}
marlinraker_1  | [DEBUG] 14:27:58 got    T:23.38 /0.00 B:22.72 /0.00 @:0 B@:0
marlinraker_1  | [DEBUG] 14:27:58 sent  M114 R
marlinraker_1  | [DEBUG] 14:27:58 got   X:0.00 Y:0.00 Z:0.00 E:0.00 Count X:0 Y:0 Z:0
marlinraker_1  | [DEBUG] 14:27:58 got   ok P15 B15

It says

Connection failed
(...)
Cannot connect to Moonraker (1.2.3.4).

If this message appears repeatedly, please have a look in the log file located at:

    ~/klipper_logs/moonraker.log
    /tmp/moonraker.log

Do you have any clues? This is my current docker-compose.yaml file:

version: '3'

services:
  marlinraker:
    image: ghcr.io/pauhull/marlinraker:edge
    hostname: marlinraker
    ports:
      - 7125:7125
    devices:
      #- /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/ttyUSB0:rwm
      - /dev:/dev
      - /run/udev:/run/udev:ro
    volumes:
      - ./data/:/marlinraker_files/
    privileged: true

  fluidd:
    image: cadriel/fluidd
    container_name: fluidd
    ports:
      - 9988:80

  mainsail:
    image: ghcr.io/mainsail-crew/mainsail
    container_name: mainsail
    ports:
      - 80:80
    volumes:
      - ./data/mainsail.json:/usr/share/nginx/html/config.json
AlmightyFrog commented 11 months ago

Btw this is http://1.2.3.4/server/info output, so that host is reachable over network:

{
  "result": {
    "klippy_connected": true,
    "klippy_state": "ready",
    "components": [
      "server",
      "file_manager",
      "machine",
      "database",
      "data_store",
      "proc_stats",
      "history",
      "update_manager"
    ],
    "failed_components": [],
    "registered_directories": [
      "gcodes",
      "config"
    ],
    "warnings": [
      "\"extended_logs\" is enabled. Only use this option for debugging purposes. This option can affect print performance."
    ],
    "websocket_count": 0,
    "moonraker_version": "v0.2.4-alpha",
    "api_version": [
      0,
      2,
      4
    ],
    "api_version_string": "v0.2.4-alpha",
    "type": "marlinraker"
  }
}
phm07 commented 11 months ago

Hi,

it has been quite some time since I last updated this project. Maybe some breaking API changes were introduced. Could you try opening the inspector and watching for errors in the console on the Mainsail page? Maybe that could help.

AlmightyFrog commented 11 months ago

Strange, I started docker-compose, opened webbrowser and loaded mainsail page. Switched to Developer Console and saw there websocket connection failed. Did a complete page refresh and now mainsail seems to work.

But fluidd still throws error on console

marlinraker_1  | [HTTP]  23:50:21 GET /server/database/item?namespace=fluidd
marlinraker_1  | [ERROR] 23:50:21 Error in server.database.get_item: fluidd doesn't exist

in firefox developer console it says for GET /server/database/item?namespace=fluidd HTTP/1.1:

HTTP/1.1 304 Not Modified
X-Powered-By: Express
Access-Control-Allow-Origin: *
ETag: W/"4c-nFRwDy39odOHdRB63GeQSOrgl2Y"
Date: Mon, 09 Oct 2023 23:52:52 GMT
Connection: keep-alive
Keep-Alive: timeout=5

So the response didn't change and everything is cached?

{"error":{"code":500,"message":"Method error: Error: fluidd doesn't exist"}}