scottmudge / OctoPrint-MeatPack

Easy, fast, effective, and automatic g-code compression!
https://github.com/scottmudge/OctoPrint-MeatPack
BSD 4-Clause "Original" or "Old" License
122 stars 6 forks source link

can't connect to ender 3 v2 with meatpack plugin installed #10

Closed swheettaos closed 3 years ago

swheettaos commented 3 years ago

I'm running octoprint Version 1.5.3 on octopi Version 0.17.0, running on Raspberry Pi 4 Model B Rev 1.2. When I install meatpack 1.5.14 I can't connect to the printer via USB anymore. I have tried disabling the gcode compression and whitespace options. I've also tried with a marlin firmware version from https://marlin.crc.id.au/firmware/Ender%203%20V2%20-%20v4.2.7%20Board%20-%20BLTouch/ .. If I use the previous version without meatpack or the new version with meatpack both have the same problem. If the plugin is installed for meatpack I can't connect to the printer. If I remove the plugin I can connect to the printer just fine. I'm connecting to /ttyUSB0 @ 115200 with no problem. RIght now I removed the plugin and using the EEPROM editor plugin for octoprint I can see the meatpack option is set to true (and was false on the previous version) .. I'll submit this and make sure I clean up the plugin (I had tried installing 1.5.9 earlier and it wasn't working.. I tried again and it installed 1.5.14 but I didn't do a fresh install.. I'll try that.)

swheettaos commented 3 years ago

nope .. with fresh install of the plugin (removal and cleanup) still just can't connect .. it's timing out when trying to connect to the serial port. If I go in and disable the plugin and restart octoprint it then works just fine. What do you need from me to debug?

swheettaos commented 3 years ago

I'm upgrading to python 3 to see if that fixes it.

scottmudge commented 3 years ago

Marlin builds from marlin.crc.id.au do not have the MEATPACK mode enabled, so the firmware does not have it enabled.

You will need to enable this preprocessor directive yourself and compile the firmware. Unfortunately it is still a nascent feature, and CI/CD servers haven't yet been updated to enable this feature.

Without the feature enabled in the firmware configuration at build time, it will not work and you will not be able to connect.

swheettaos commented 3 years ago

The latest nightly build has it enabled and I can see it in the firmware options set to true. He just posted about it being enabled on on the firmware builds..

scottmudge commented 3 years ago

That's good it's been enabled as of the 27th, What does your octoprint.log file look like?

swheettaos commented 3 years ago

env.python.pip: 21.0 env.python.version: 3.7.3

still not working ..

2021-01-27 02:51:20,566 - octoprint.startup - INFO - ** 2021-01-27 02:51:20,568 - octoprint.startup - INFO - Starting OctoPrint 1.5.3 2021-01-27 02:51:20,568 - octoprint.startup - INFO - ** 2021-01-27 02:51:21,035 - octoprint.util.connectivity.connectivity_checker - INFO - Connectivity changed from offline to online 2021-01-27 02:51:21,199 - octoprint.util.connectivity.connectivity_checker - INFO - Connectivity state is currently: online 2021-01-27 02:51:21,199 - octoprint.util.connectivity.connectivity_checker - INFO - Connecting to 8.8.8.8:53 is working 2021-01-27 02:51:21,199 - octoprint.util.connectivity.connectivity_checker - INFO - Resolving octoprint.org is working 2021-01-27 02:51:21,209 - octoprint.startup - INFO - Blacklist processing done, adding 12 blacklisted plugin versions: roomtemp (any), GcodeEditor (0.1.1), GcodeEditor (0.2.0), GcodeEditor (0.2.1), GcodeEditor (0.2.2), GcodeEditor (0.2.3), GcodeEditor (0.2.4), GcodeEditor (0.2.5), GcodeEditor (0.2.6), GcodeEditor (0.2.8), gcodeleveling (0.1.0), gcodeleveling (0.1.1) 2021-01-27 02:51:21,237 - octoprint.plugin.core - INFO - Loading plugins from /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins, /home/pi/.octoprint/plugins and installed plugin packages... 2021-01-27 02:51:22,223 - octoprint.plugin.core - ERROR - Error loading plugin bedlevelvisualizer Traceback (most recent call last): File "/home/pi/oprint/lib/python3.7/site-packages/numpy/core/init.py", line 22, in from . import multiarray File "/home/pi/oprint/lib/python3.7/site-packages/numpy/core/multiarray.py", line 12, in from . import overrides File "/home/pi/oprint/lib/python3.7/site-packages/numpy/core/overrides.py", line 7, in from numpy.core._multiarray_umath import ( ImportError: libf77blas.so.3: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/plugin/core.py", line 1298, in _import_plugin module = _load_module(module_name, spec) File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/plugin/core.py", line 69, in _load_module return imp.load_module(name, f, filename, details) File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/vendor/imp.py", line 238, in load_module return load_package(name, filename) File "/home/pi/oprint/lib/python3.7/site-packages/octoprint/vendor/imp.py", line 212, in load_package return _load(spec) File "", line 696, in _load File "", line 677, in _load_unlocked File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "/home/pi/oprint/lib/python3.7/site-packages/octoprint_bedlevelvisualizer/init.py", line 9, in import numpy as np File "/home/pi/oprint/lib/python3.7/site-packages/numpy/init.py", line 140, in from . import core File "/home/pi/oprint/lib/python3.7/site-packages/numpy/core/init.py", line 48, in raise ImportError(msg) ImportError:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for many reasons, often due to issues with your setup or how NumPy was installed.

We have compiled some common reasons and troubleshooting tips at:

https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

and make sure that they are the versions you expect. Please carefully study the documentation linked above for further help.

Original error was: libf77blas.so.3: cannot open shared object file: No such file or directory

2021-01-27 02:51:22,303 - octoprint.plugins.errortracking - INFO - Initialized error tracking 2021-01-27 02:51:22,323 - octoprint.plugin.core - INFO - Found 24 plugin(s) providing 24 mixin implementations, 56 hook handlers 2021-01-27 02:51:22,495 - octoprint.server.heartbeat - INFO - Starting server heartbeat, 900.0s interval 2021-01-27 02:51:22,501 - octoprint.server - INFO - Intermediary server started 2021-01-27 02:51:22,516 - octoprint.filemanager.storage - INFO - Initializing the file metadata for /home/pi/.octoprint/uploads... 2021-01-27 02:51:22,702 - octoprint.filemanager.storage - INFO - ... file metadata for /home/pi/.octoprint/uploads initialized successfully. 2021-01-27 02:51:22,704 - octoprint.server - INFO - Added new permission from plugin action_command_notification: PLUGIN_ACTION_COMMAND_NOTIFICATION_SHOW (needs: "Need(method='role', value='plugin_action_command_notification_show')") 2021-01-27 02:51:22,704 - octoprint.server - INFO - Added new permission from plugin action_command_notification: PLUGIN_ACTION_COMMAND_NOTIFICATION_CLEAR (needs: "Need(method='role', value='plugin_action_command_notification_clear')") 2021-01-27 02:51:22,705 - octoprint.server - INFO - Added new permission from plugin action_command_prompt: PLUGIN_ACTION_COMMAND_PROMPT_INTERACT (needs: "Need(method='role', value='plugin_action_command_prompt_interact')") 2021-01-27 02:51:22,705 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_READ (needs: "Need(method='role', value='plugin_announcements_read')") 2021-01-27 02:51:22,705 - octoprint.server - INFO - Added new permission from plugin announcements: PLUGIN_ANNOUNCEMENTS_MANAGE (needs: "Need(method='role', value='plugin_announcements_manage'), Need(method='role', value='plugin_announcements_read')") 2021-01-27 02:51:22,706 - octoprint.server - INFO - Added new permission from plugin appkeys: PLUGIN_APPKEYS_ADMIN (needs: "Need(method='role', value='plugin_appkeys_admin')") 2021-01-27 02:51:22,706 - octoprint.server - INFO - Added new permission from plugin backup: PLUGIN_BACKUP_ACCESS (needs: "Need(method='role', value='plugin_backup_access')") 2021-01-27 02:51:22,707 - octoprint.server - INFO - Added new permission from plugin firmware_check: PLUGIN_FIRMWARE_CHECK_DISPLAY (needs: "Need(method='role', value='plugin_firmware_check_display')") 2021-01-27 02:51:22,707 - octoprint.server - INFO - Added new permission from plugin logging: PLUGIN_LOGGING_MANAGE (needs: "Need(method='role', value='plugin_logging_manage')") 2021-01-27 02:51:22,707 - octoprint.server - INFO - Added new permission from plugin pi_support: PLUGIN_PI_SUPPORT_STATUS (needs: "Need(method='role', value='plugin_pi_support_check')") 2021-01-27 02:51:22,708 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_MANAGE (needs: "Need(method='role', value='plugin_pluginmanager_manage')") 2021-01-27 02:51:22,709 - octoprint.server - INFO - Added new permission from plugin pluginmanager: PLUGIN_PLUGINMANAGER_INSTALL (needs: "Need(method='role', value='plugin_pluginmanager_manage'), Need(method='role', value='plugin_pluginmanager_install')") 2021-01-27 02:51:22,710 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CHECK (needs: "Need(method='role', value='plugin_softwareupdate_check')") 2021-01-27 02:51:22,710 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_UPDATE (needs: "Need(method='role', value='plugin_softwareupdate_update')") 2021-01-27 02:51:22,711 - octoprint.server - INFO - Added new permission from plugin softwareupdate: PLUGIN_SOFTWAREUPDATE_CONFIGURE (needs: "Need(method='role', value='plugin_softwareupdate_configure')") 2021-01-27 02:51:23,345 - octoprint.util.pip - INFO - Using "/home/pi/oprint/bin/python -m pip" as command to invoke pip 2021-01-27 02:51:23,867 - octoprint.util.pip - INFO - Version of pip is 21.0 2021-01-27 02:51:23,869 - octoprint.util.pip - INFO - pip installs to /home/pi/oprint/lib/python3.7/site-packages (writable -> yes), --user flag needed -> no, virtual env -> yes 2021-01-27 02:51:23,869 - octoprint.util.pip - INFO - ==> pip ok -> yes 2021-01-27 02:51:23,973 - octoprint.plugins.softwareupdate - INFO - Loaded version cache from disk 2021-01-27 02:51:24,000 - octoprint.plugins.eeprom_marlin - INFO - EEPROM Data initialised 2021-01-27 02:51:24,002 - octoprint.plugins.eeprom_marlin - INFO - Backup metadata initialised 2021-01-27 02:51:24,002 - octoprint.plugins.eeprom_marlin - INFO - All EEPROM editor modules loaded 2021-01-27 02:51:24,004 - octoprint.plugin.core - INFO - Initialized 24 plugin implementation(s) 2021-01-27 02:51:24,017 - octoprint.plugin.core - INFO - 24 plugin(s) registered with the system: | Action Command Notification Support (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/action_command_notification | Action Command Prompt Support (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/action_command_prompt | Announcement Plugin (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/announcements | Anonymous Usage Tracking (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/tracking | Application Keys Plugin (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/appkeys | Backup & Restore (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/backup | Core Wizard (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/corewizard | Creality Temperature (1.2.4) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_CrealityTemperature | Creality-2x-temperature-reporting-fix (0.0.4) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_ender3v2tempfix | Discovery (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/discovery | Error Tracking (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/errortracking | File Check (2020.8.7) (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_file_check | Firmware Check (2020.9.23) (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_firmware_check | GCode Viewer (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/gcodeviewer | Logging (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/logging | Marlin EEPROM Editor (3.0.1) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_eeprom_marlin | MeatPack (1.5.14) = /home/pi/oprint/lib/python3.7/site-packages/OctoPrint_MeatPack | MultiCam (0.2.8) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_multicam | Octolapse (0.4.1) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_octolapse | Pi Support Plugin (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/pi_support | Plugin Manager (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/pluginmanager | Software Update (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/softwareupdate | Virtual Printer (bundled) = /home/pi/oprint/lib/python3.7/site-packages/octoprint/plugins/virtual_printer | WebcamStreamer Plugin (0.1.1) = /home/pi/oprint/lib/python3.7/site-packages/octoprint_webcamstreamer Prefix legend: ! = disabled, # = blacklisted, * = incompatible 2021-01-27 02:51:24,043 - octoprint.environment - INFO - Detected environment is Python 3.7.3 under Linux (linux). Details: | hardware: | cores: 4 | freq: 1500.0 | ram: 3959308288 | os: | bits: 32 | id: linux | platform: linux | plugins: | pi_support: | model: Raspberry Pi 4 Model B Rev 1.2 | octopi_version: 0.17.0 | throttle_state: '0x0' | python: | pip: '21.0' | version: 3.7.3 | virtualenv: /home/pi/oprint 2021-01-27 02:51:24,055 - octoprint.server - INFO - Reset webasset folder /home/pi/.octoprint/generated/webassets... 2021-01-27 02:51:24,078 - octoprint.server - INFO - Reset webasset folder /home/pi/.octoprint/generated/.webassets-cache... 2021-01-27 02:51:24,655 - octoprint.server - INFO - Shutting down intermediary server... 2021-01-27 02:51:24,969 - octoprint.server - INFO - Intermediary server shut down 2021-01-27 02:51:24,971 - octoprint.events - INFO - Processing startup event, this is our first event 2021-01-27 02:51:24,971 - octoprint.events - INFO - Adding 2 events to queue that were held back before startup event 2021-01-27 02:51:24,972 - octoprint.filemanager - INFO - Adding backlog items from all storage types to analysis queue... 2021-01-27 02:51:24,973 - octoprint.server - INFO - Autoconnect on startup is configured, trying to connect to the printer... 2021-01-27 02:51:24,982 - octoprint.plugins.softwareupdate - INFO - Fetching check overlays from https://plugins.octoprint.org/update_check_overlay.json 2021-01-27 02:51:24,999 - octoprint.filemanager - INFO - Added 0 items from storage type "local" to analysis queue 2021-01-27 02:51:25,015 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid 2021-01-27 02:51:25,839 - octoprint.plugins.tracking - INFO - Sent tracking event system_unthrottled, payload: {'throttled_now': False, 'throttled_past': False, 'throttled_mask': 0, 'throttled_voltage_now': False, 'throttled_voltage_past': False, 'throttled_overheat_now': False, 'throttled_overheat_past': False} 2021-01-27 02:51:25,845 - octoprint.server - INFO - Trying to connect to configured serial port /dev/ttyUSB0 2021-01-27 02:51:25,917 - octoprint.util.comm - INFO - Changing monitoring state from "Offline" to "Detecting serial connection" 2021-01-27 02:51:25,918 - octoprint.util.comm - INFO - Serial detection: Performing autodetection with 7 port/baudrate candidates: /dev/ttyUSB0@115200, /dev/ttyUSB0@250000, /dev/ttyUSB0@230400, /dev/ttyUSB0@57600, /dev/ttyUSB0@38400, /dev/ttyUSB0@19200, /dev/ttyUSB0@9600 2021-01-27 02:51:25,918 - octoprint.util.comm - INFO - Serial detection: Trying port /dev/ttyUSB0, baudrate 115200 2021-01-27 02:51:25,919 - octoprint.plugins.meatpack - INFO - [Serial]: Cannot query packing state -- port not open. 2021-01-27 02:51:25,920 - octoprint.plugins.meatpack - INFO - [Serial]: Cannot query packing state -- port not open. 2021-01-27 02:51:25,954 - octoprint.server.util.watchdog - INFO - Running initial scan on watched folder... 2021-01-27 02:51:25,960 - octoprint.server.util.watchdog - INFO - ... initial scan done. 2021-01-27 02:51:25,986 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #1 with timeout 2.0s 2021-01-27 02:51:26,004 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0 2021-01-27 02:51:26,099 - octoprint.plugins.softwareupdate - WARNING - Unknown update check type for target bedlevelvisualizer: <n/a> 2021-01-27 02:51:26,120 - octoprint.plugins.meatpack - INFO - [Serial]: Detected MeatPack protocol version V1 2021-01-27 02:51:26,120 - octoprint.plugins.meatpack - INFO - [Serial]: Config var [NoSpaces] synchronized (=disabled). 2021-01-27 02:51:26,167 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #2 with timeout 2.0s 2021-01-27 02:51:26,179 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid 2021-01-27 02:51:26,180 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0 2021-01-27 02:51:27,489 - octoprint.plugins.discovery - INFO - Registered 'OctoPrint instance "Wheet 3D"._http._tcp.local.' for _http._tcp.local. 2021-01-27 02:51:28,308 - octoprint.plugins.discovery - INFO - Registered 'OctoPrint instance "Wheet 3D"._octoprint._tcp.local.' for _octoprint._tcp.local. 2021-01-27 02:51:28,337 - octoprint.plugins.discovery - INFO - Registered OctoPrint instance "Wheet 3D" for SSDP 2021-01-27 02:51:28,369 - octoprint.server - INFO - Listening on http://127.0.0.1:5000 2021-01-27 02:51:28,445 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 56.45ms 2021-01-27 02:51:28,510 - octoprint.plugins.pluginmanager - INFO - Loaded plugin repository data from disk, was still valid 2021-01-27 02:51:28,586 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 41.61ms 2021-01-27 02:51:28,678 - octoprint.server.util.sockjs - INFO - New connection from client: ::ffff:10.0.0.60 2021-01-27 02:51:28,886 - octoprint.server.util.flask - INFO - Passively logging in user wheetocto from ::ffff:10.0.0.60 2021-01-27 02:51:28,887 - octoprint.access.users - INFO - Logged in user: wheetocto 2021-01-27 02:51:29,151 - octoprint.util.pip - INFO - Using "/home/pi/oprint/bin/python -m pip" as command to invoke pip 2021-01-27 02:51:29,157 - octoprint.util.pip - INFO - pip installs to /home/pi/oprint/lib/python3.7/site-packages (writable -> yes), --user flag needed -> no, virtual env -> yes 2021-01-27 02:51:29,158 - octoprint.util.pip - INFO - ==> pip ok -> yes 2021-01-27 02:51:29,222 - octoprint.plugins.softwareupdate - INFO - Minimum free storage across all update relevant locations is 51.0GB. That is considered sufficient for updating. 2021-01-27 02:51:29,536 - octoprint.plugins.softwareupdate - WARNING - Unknown update check type for target bedlevelvisualizer: <n/a> 2021-01-27 02:51:29,641 - octoprint.plugins.pluginmanager - INFO - Loaded notice data from disk, was still valid 2021-01-27 02:51:29,650 - octoprint.plugins.meatpack - INFO - MeatPack version 1.5.14 loaded... current state is Enabled 2021-01-27 02:51:29,650 - octoprint.plugins.multicam - INFO - MultiCam Loaded! (more: [{'URL': '/webcam/?action=stream', 'flipH': True, 'flipV': True, 'isButtonEnabled': False, 'name': 'PiCam', 'rotate90': False, 'snapshot': 'http://127.0.0.1:8080/?action=snapshot', 'streamRatio': '16:9'}]) 2021-01-27 02:51:29,652 - octoprint.plugins.webcamstreamer - INFO - OctoPrint-WebcamStreamer loaded! | embed_url = https://www.youtube.com/embed/live_stream?channel=UCIPXIWg627H34v_rPgsQMCw | stream_url = rtmp://a.rtmp.youtube.com/live2/t4t6-8erp-ubvd-yf0y-4evt | webcam_url = http://10.0.0.250:8080/?action=stream | docker_image = kolisko/rpi-ffmpeg | docker_container = WebStreamer | frame_rate = 5 | ffmpeg_cmd = ffmpeg -re -f mjpeg -framerate 5 -i {webcam_url} -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -acodec aac -ab 128k -vcodec h264 -pix_fmt yuv420p -framerate {frame_rate} -g {gop_size} -strict experimental -filter:v {filter} -f flv {stream_url} 2021-01-27 02:51:29,675 - octoprint.plugins.meatpack - INFO - [Serial]: Config var [NoSpaces] synchronized (=disabled). 2021-01-27 02:51:29,677 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #3 with timeout 2.0s 2021-01-27 02:51:29,680 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0 2021-01-27 02:51:29,681 - octoprint.plugins.webcamstreamer - INFO - stream is inactive 2021-01-27 02:51:29,903 - octoprint.server.preemptive_cache - INFO - Preemptively caching / (ui _default) for {'base_url': 'http://10.0.0.250/', 'path': '/', 'query_string': 'l10n=en'} 2021-01-27 02:51:30,290 - octoprint.plugins.tracking - INFO - Sent tracking event ping, payload: {'octoprint_uptime': 7} 2021-01-27 02:51:30,330 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 32.74ms 2021-01-27 02:51:30,937 - octoprint.plugins.tracking - INFO - Sent tracking event pong, payload: {'version': '1.5.3', 'os': 'linux', 'bits': 32, 'python': '3.7.3', 'pip': '21.0', 'cores': 4, 'freq': 1500.0, 'ram': 3959308288, 'pi_model': 'Raspberry Pi 4 Model B Rev 1.2', 'octopi_version': '0.17.0', 'plugins': 'webcamstreamer:0.1.1,multicam:0.2.8,meatpack:1.5.14,crealitytemperature:1.2.4,octolapse:0.4.1,eeprom_marlin:3.0.1,ender3v2tempfix:0.0.4'} 2021-01-27 02:51:31,051 - octoprint.plugins.softwareupdate - WARNING - Unknown update check type for target bedlevelvisualizer: <n/a> 2021-01-27 02:51:31,164 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 8.55ms 2021-01-27 02:51:31,243 - octoprint.server.util.sockjs - INFO - User wheetocto logged in on the socket from client ::ffff:10.0.0.60 2021-01-27 02:51:31,660 - octoprint.plugins.tracking - INFO - Sent tracking event startup, payload: {'version': '1.5.3', 'os': 'linux', 'bits': 32, 'python': '3.7.3', 'pip': '21.0', 'cores': 4, 'freq': 1500.0, 'ram': 3959308288, 'pi_model': 'Raspberry Pi 4 Model B Rev 1.2', 'octopi_version': '0.17.0'} 2021-01-27 02:51:31,988 - octoprint.util.comm - INFO - Serial detection: Trying port /dev/ttyUSB0, baudrate 250000 2021-01-27 02:51:31,998 - octoprint.util.comm - INFO - Serial detection: Handshake attempt #1 with timeout 2.0s 2021-01-27 02:51:31,999 - octoprint.util.comm - INFO - M110 detected, setting current line number to 0 2021-01-27 02:51:32,989 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 15.67ms 2021-01-27 02:51:34,990 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 15.74ms 2021-01-27 02:51:36,995 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 5.69ms 2021-01-27 02:51:37,143 - octoprint.server.preemptive_cache - INFO - ... done in 7.24s 2021-01-27 02:51:37,470 - octoprint.server.util.flask - INFO - Passively logging in user wheetocto from ::ffff:10.0.0.60 2021-01-27 02:51:37,471 - octoprint.access.users - INFO - Logged in user: wheetocto 2021-01-27 02:51:37,644 - octoprint.server.util.sockjs - INFO - Client connection closed: ::ffff:10.0.0.60 2021-01-27 02:51:39,031 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 9.71ms 2021-01-27 02:51:39,506 - octoprint.server.util.sockjs - INFO - New connection from client: ::ffff:10.0.0.60 2021-01-27 02:51:39,597 - octoprint.server.util.flask - INFO - Passively logging in user wheetocto from ::ffff:10.0.0.60 2021-01-27 02:51:39,597 - octoprint.access.users - INFO - Logged in user: wheetocto 2021-01-27 02:51:40,341 - octoprint.plugins.webcamstreamer - INFO - Checking stream status. 2021-01-27 02:51:40,359 - octoprint.plugins.webcamstreamer - INFO - stream is inactive 2021-01-27 02:51:41,038 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 5.91ms 2021-01-27 02:51:41,091 - octoprint.server.util.sockjs - INFO - User wheetocto logged in on the socket from client ::ffff:10.0.0.60 2021-01-27 02:51:43,058 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 13.79ms 2021-01-27 02:51:45,051 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 9.98ms 2021-01-27 02:51:47,005 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 13.95ms 2021-01-27 02:51:48,994 - tornado.access - WARNING - 409 GET /api/printer (::ffff:10.0.0.60) 7.50ms

swheettaos commented 3 years ago

looks like the upgrade to python 3 broke the bed visualizer

scottmudge commented 3 years ago

By the log it looks like the Marlin integration of MeatPack is not sending back the appropriate confirmation message to the OctoPrint plugin, so it is not enabling communication.

Another developer integrated MeatPack into Marlin, but I will look at their code to ensure it is working correctly.

swheettaos commented 3 years ago

ok .. disabling plugin for now

scottmudge commented 3 years ago

Okay I found the issue... they need to emit a space character after

SERIAL_ECHOPGM(MeatPack_ProtocolVersion);

inside of

void MeatPack::report_state().

If you want, you can add the following line after line 207 in meatpack.cpp:

SERIAL_ECHOPGM(MeatPack_ProtocolVersion);

after that line, add:

SERIAL_CHAR(' ');

And it should work, after recompiling. I will create a pull request to fix the issue.

scottmudge commented 3 years ago

Okay I created a PR: https://github.com/MarlinFirmware/Marlin/pull/20896

I will update the readme with a notice.

FunkeCoder23 commented 3 years ago

I'm still running into this issue, brand new FW build with meatpack enabled, with your fix in report_state. octoprint.log serial.log

scottmudge commented 3 years ago

Strange, it the firmware doesn't look like it's responding to the MP query commands, so the plugin assumes it's not properly connected.

Is that the entirety of the octoprint.log contents? In @swheettaos log, it was at least receiving the protocol version and whitespace removal flags. The issue there was there wasn't a space between "ON" and the protocol version, and the plugin is looking for that space.

But I don't see any query responses in your log. Which to me would indicate that it's not actually enabled in the firmware, for some reason.

To confirm, you definitely have #define MEATPACK uncommented in Configuration_adv.h, and you did a clean rebuild?

FunkeCoder23 commented 3 years ago

#define MEATPACK is definitely uncommented. Here's the process I just did: booted new firmware, (re)enable meatpack plugin, reboot pi, here's the totality of the octoprint and serial logs serial.log octoprint.log

scottmudge commented 3 years ago

Still looks like MeatPack isn't responding at all in the firmware. At the very least it should emit a protocol version. Can you attach a .elf file of the firmware you compiled? Should be in the output directory. The hex will be harder to disassemble, but the .elf should be a lot easier.

FunkeCoder23 commented 3 years ago

I had to change the extension for github to allow it: firmware.elf.txt

ETA: This is Ender 3 (V1) with BTT_SKR_MINI_V3 board built with _USB firmware

scottmudge commented 3 years ago

Well the binary indicates it's definitely got MP methods linked into the serial parser, but for whatever reason the MP module is not receiving any of the incoming data.

You should be seeing a line like

octoprint.plugins.meatpack - INFO - [Serial]: Config var [NoSpaces] synchronized (=disabled).

soon after the MeatPack module loads and emits its version number to the log.

Can you try adding:

#define MEATPACK_LOOKUP_TABLE

to Configuration_adv.h and recompiling?

CRCinAU commented 3 years ago

I run the site marlin.crc.id.au. I'm just experimenting with this now and came across this - and trying to get the hotfix going.

The custom builder has had the hotfix https://github.com/MarlinFirmware/Marlin/pull/20896 applied, so I've created one via the builder to test with.

The Terminal window logs:

Changing monitoring state from "Offline" to "Opening serial connection"
Changing monitoring state from "Opening serial connection" to "Connecting"
Connected to: PackingSerial<id=0x7f7839acf8, open=True>(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Send: N0 M110 N0*125
No answer from the printer within the connection timeout, trying another hello

What specifics do you want to know?

CRCinAU commented 3 years ago

Building again with #define MEATPACK_LOOKUP_TABLE enabled, and I can establish two way connectivity with the printer.

I do note that the N0 M110 N0*125 seems to be repeated a couple of times - which seems strange?

Changing monitoring state from "Offline" to "Opening serial connection"
Changing monitoring state from "Opening serial connection" to "Connecting"
Connected to: PackingSerial<id=0x7f84077fd0, open=True>(port='/dev/ttyUSB0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
Send: N0 M110 N0*125
Recv: ok N0 P15 B3
Send: N0 M110 N0*125
Changing monitoring state from "Connecting" to "Operational"
Recv: ok N0 P15 B3
Send: N0 M110 N0*125
Recv: ok N0 P15 B3
Send: N1 M115*39
Recv: FIRMWARE_NAME:Marlin bugfix-2.0.x (Jan 27 2021 21:22:57) SOURCE_CODE_URL:github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:Ender-3 V2 EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
Recv: Cap:SERIAL_XON_XOFF:0
Recv: Cap:BINARY_FILE_TRANSFER:0
Recv: Cap:EEPROM:1
Recv: Cap:VOLUMETRIC:1
Recv: Cap:AUTOREPORT_TEMP:1
Recv: Cap:PROGRESS:0
Recv: Cap:PRINT_JOB:1
Recv: Cap:AUTOLEVEL:1
Recv: Cap:RUNOUT:0
Recv: Cap:Z_PROBE:1
Recv: Cap:LEVELING_DATA:1
Recv: Cap:BUILD_PERCENT:0
Recv: Cap:SOFTWARE_POWER:0
Recv: Cap:TOGGLE_LIGHTS:0
Recv: Cap:CASE_LIGHT_BRIGHTNESS:0
Recv: Cap:EMERGENCY_PARSER:0
Recv: Cap:PROMPT_SUPPORT:0
Recv: Cap:SDCARD:1
Recv: Cap:REPEAT:0
Recv: Cap:AUTOREPORT_SD_STATUS:0
Recv: Cap:LONG_FILENAME:0
Recv: Cap:THERMAL_PROTECTION:1
Recv: Cap:MOTION_MODES:0
Recv: Cap:ARCS:1
Recv: Cap:BABYSTEPPING:1
Recv: Cap:CHAMBER_TEMPERATURE:0
Recv: Cap:MEATPACK:1
ellensp commented 3 years ago

after updateing to latest octoprint meatpack plugin I see this in octoprint.log 2021-01-27 10:55:25,344 - octoprint.plugins.meatpack - INFO - [Serial]: Detected MeatPack protocol version V1 2021-01-27 10:55:25,356 - octoprint.plugins.meatpack - INFO - [Serial]: Config var [NoSpaces] synchronized (=disabled). 2021-01-27 10:55:25,386 - octoprint.plugins.meatpack - INFO - [Serial]: Config var [Enabled] synchronized (=enabled). 2021-01-27 10:55:25,397 - octoprint.plugins.meatpack - INFO - [Serial]: Config var [NoSpaces] synchronized (=disabled). 2021-01-27 10:55:25,409 - octoprint.plugins.meatpack - INFO - [Serial]: MeatPack configuration successfully synchronized and confirmed between host/device. 2021-01-27 10:55:25,423 - octoprint.util.comm - ERROR - Unexpected error while reading from serial port Traceback (most recent call last): File "/home/pi/oprint/local/lib/python2.7/site-packages/octoprint/util/comm.py", line 3831, in _readline ret = self._serial.readline() File "/home/pi/oprint/local/lib/python2.7/site-packages/OctoPrint_MeatPack/packing_serial.py", line 285, in readline self._flush_buffer() File "/home/pi/oprint/local/lib/python2.7/site-packages/OctoPrint_MeatPack/packing_serial.py", line 343, in _flush_buffer self._buffer.clear() AttributeError: 'list' object has no attribute 'clear'

The internet tells me list.clear was added in Python 3.3.

CRCinAU commented 3 years ago

AttributeError: 'list' object has no attribute 'clear'

Which python version? I'm running OctoPi 0.18.0 RC1 which is 64 bit - but also Python 3.7...

scottmudge commented 3 years ago

@ellensp Thanks, I'll remove "clear()" for Python 2.7 support (@CRCinAU - I'm guessing 2.7).

ellensp commented 3 years ago

yes Python 2.7.16

scottmudge commented 3 years ago

@ellensp I've pushed a compatibility fix for 2.7 (v1.5.17), can you confirm it works?

And @CRCinAU - the N0 M110 N0*125 line is what I think is OctoPrint's way of "handshaking" with the firmware, so it does it a few times until an expected response is established (which is after MeatPack synchronizes the configuration state, which takes a second). Shouldn't hurt anything so long as it receives a response.

Also, has the build configuration changed for the available firmware builds to reflect #define MEATPACK_LOOKUP_TABLE? For the time being it looks like it might be a requirement for functionality.

CRCinAU commented 3 years ago

Also, has the build configuration changed for the available firmware builds to reflect #define MEATPACK_LOOKUP_TABLE? For the time being it looks like it might be a requirement for functionality.

Yeah - I've added both right now and rebuilt the 20210127 firmware (which the user will have to rename to a unique filename to flash - or wait until 20210128).

Also, the M84 easter egg just does a whole heap of single tone beeps.... Is that dependent on something else?

CRCinAU commented 3 years ago

With the two defines - I got the following on my normal 20mm calibration cube print: image

ellensp commented 3 years ago

I've pushed a compatibility fix for 2.7 (v1.5.17), can you confirm it works?

Yes this now get past this point. but getting errors about to enable MEATPACK_LOOKUP_TABLE and re try

scottmudge commented 3 years ago

If the lookup table is the only functional mode, we may want to make that the default (without a define? or with the define pre-established in the configuration header) in the Marlin implementation.

ellensp commented 3 years ago

with #define MEATPACK_LOOKUP_TABLE seems to be working Comp. TX: 1.744 kB Effective TX: 2.693 kB Comp. Ratio: 0.648 Effective TX Rate: 64 Bytes/sec Packing State: Enabled

CRCinAU commented 3 years ago

If the lookup table is the only functional mode, we may want to make that the default (without a define? or with the define pre-established in the configuration header) in the Marlin implementation.

Pretend I'm an idiot..... I'm not quite sure of the difference between using what I assume is a predefined lookup table for ASCII -> binary packing and not having it set via the MEATPACK_LOOKUP_TABLE... What operational difference is there?

scottmudge commented 3 years ago

I had tested to see if a switch/case statement would perform faster than a lookup table in returning the packed character based on it's 4-bit representation.

However, when I looked at the disassembly in Ghidra, it was byte-for-byte identical. So the compiler seemed to optimize both implementations in the same way.

Unfortunately it looks like the switch/case method may not have been translated exactly correctly to Marlin (or perhaps it just wasn't updated on my end), so it does not work.

I always ended up using the table, as it allowed mutability for changing the library of packed characters, if ever I wanted to add that feature for compressing other types of data beyond 3D printing g-code.

@ellensp - We can probably remove the swith/case approach entirely and make the lookup table the default, and remove the preprocessor switch.

ellensp commented 3 years ago

@scottmudge with MEATPACK_LOOKUP_TABLE it has a static table

  static const uint8_t meatPackLookupTable[16] = {
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
    '.', ' ', '\n', 'G', 'X',
    '\0' // Unused. 0b1111 indicates a literal character
  };

If you enable space removal... this is going to cause an issue ie space isn't swapped with E so any encoded E's are going to be decoded as a space aren't they?

scottmudge commented 3 years ago

@ellensp - yes, in my Prusa code the table is mutable and the space character is swapped with an "E" (the replacement character define) when whitespace removal is enabled.

When I disassembled making it a static const and making it a mutable array, the disassembly was identical. There shouldn't be a performance benefit to making it static.

Also, (I don't think it is, but just in case) do not make it PROGMEM, since it is referenced so frequently. Those extra cycles for accessing PROGMEM will add up.

CRCinAU commented 3 years ago

Ok, this is all fixed in the new builds of firmware for 20210127 (or use 20210128 to avoid confusion) and MeatPack plugin v1.5.21 which is now available.

Thanks to @ellensp and @scottmudge for the collaboration over the last several hours to iron out every issue we could find and have something much more stable as a general release.

scottmudge commented 3 years ago

Thanks @CRCinAU!

swheettaos commented 3 years ago

ty everyone.. it's working now!