This plugin utilizes Plotly js library to render a 3D surface of the bed's reported mesh on a tab within OctoPrint. It converts this
Send: G29 T Recv: echo:Home XYZ first Recv: Recv: Bed Topography Report: Recv: Recv: (0,9) (9,9) Recv: (30,270) (270,270) Recv: -0.452 -0.319 -0.237 0.287 0.140 0.139 0.136 0.317 0.247 0.247 Recv: Recv: -0.195 -0.273 -0.180 -0.178 0.014 0.018 0.111 0.214 0.210 0.210 Recv: Recv: -0.270 -0.252 -0.151 -0.119 0.009 0.016 0.072 0.249 0.224 0.224 Recv: Recv: -0.307 -0.205 -0.163 -0.124 -0.094 -0.002 0.036 0.151 0.174 0.196 Recv: Recv: -0.186 -0.130 -0.152 -0.105 -0.144 -0.007 0.044 0.093 0.181 0.270 Recv: Recv: -0.010 -0.077 -0.073 0.155 -0.006 -0.133 0.110 0.046 0.109 0.173 Recv: Recv: 0.059 -0.094 -0.072 -0.002 -0.006 0.037 0.050 0.065 0.124 0.184 Recv: Recv: -0.057 -0.028 0.039 0.028 0.024 0.005 0.102 0.165 0.176 0.187 Recv: Recv: 0.067 0.015 0.096 0.117 0.001 0.079 0.138 0.346 0.185 0.185 Recv: Recv: [ 0.071] 0.014 0.061 -0.127 0.167 0.040 0.098 0.195 0.194 0.194 Recv: (30,30) (270,30) Recv: (0,0) (9,0) Recv: ok P15 B3
- Since version 0.1.3 there is a python dependency on numpy. As a result; if you don't already have numpy the install can take in excess of 30 minutes to complete on a pi. Just be patient and let it run and eventually the plugin install will finish.
- If you have Marlin's Auto Temperature Reporting Feature enabled you will want to have M155 S30 and M155 S3 surrounding your G29 command, see settings screenshot, otherwise the collected data will be tainted.
Currently there is a conflict with the TempsGraph plugin. If you have this plugin installed you will receive an error that Plotyle.react is not a function. There is a version update pending on that plugin to resolve this issue, just waiting on the author to release.Resolved with TempsGraph release 0.3.3.
If your leveling method requires homing first make sure to enter that as well in the GCODE Commands setting.
If you have Marlin's Auto Temperature Reporting feature enabled you will want to have M155 S30 and M155 S3 surrounding your reporting GCODE command, otherwise the collected data will be tainted with temperature information.
If you end up requiring multiple commands it is recommended to enter
@BEDLEVELVISUALIZERjust prior to the reporting command.
G28 M155 S30 @BEDLEVELVISUALIZER G29 T M155 S3
Use the following command for Klipper (per https://github.com/jneilliii/OctoPrint-BedLevelVisualizer/issues/92):
Install via the bundled Plugin Manager or manually using this URL:
- Option for ignoring Bed Level Correction Matrix.
- Issue where ABL_BILINEAR_SUBDIVISION in Marlin was not graphing correctly. Now the mesh will be reset to an empty set if the phrase
Subdivided with CATMULL ROM Leveling Grid:is received and continue mesh collection of points.
- Add grid boundary detection and auto flipping for UBL reports, possibly others, for more accurately defined probing points and bed orientation.
- Fix minor bug where lines w/
1 |[+0.019] -0.137are not matched.
- Thanks to @gandy92 for the above changes.
- New timeout setting that will unlock
processingUI after given seconds. If processing takes longer to complete due to full probing requirements or some other reason set this to a higher value.
- Toggle button in toolbar to enable click events on surface to move the hot end to that position.
- Repetier firmware support thanks to @gztproject.
- Option to make center of bed the origin point per request. Helpful when using a fixed center leveling system as described here.
- Option to make measured offsets relative to origin position, related to above addition but could be useful elsewhere.
- X/Y axis calculations to resolve bug discovered during above changes where if your leveling grid was based on an odd number of probe points the maximum perimeters were getting dropped due to rounding errors.
- Issue introduced with previous update that was causing some leveling reports to not be identified correctly.
- Recognition of older bed reports to work for some users. Should now work with reports that return lines like
Bed x: 40.00 y: 20.00 z: 7.31.
- Display of last mesh timestamp above Update button.
- Mobile detection in plotly js library to also detect iPad as webgl device.
- Flip X/Y settings added to allow changing the orientation of the surface displayed.
- Added Remove Row Labels in order to shift the mesh data to account for some reports that return an index at the beginning of the line.
- Added bootstrap tooltips to info icons.
- Wizard added on install to explain/enter the GCODE commands and demonstrate how to use the
- Improved graph display by reading build volume from printer profile settings.
- Fixed Z range on graph between -2mm and 2mm.
- Updated settings dialog for new options and moved stored data to it's own tab.
- Simiplified data extraction regular expression.
- Data collection now triggered based on sending the GCODE command
- Prusa Firmware mode no longer necessary due to added options listed above.
- Pop-up notification on error.
- Removed placeholder attribute on Data Collector Flag to make it more obvious there's nothing typed in it.
- Delta printers not collecting mesh data points.
- Description in Plugin Manager.
- Timestamp stored with saved mesh data. Displays on mouse hover of info graphic on update button.
- Screenshots updated to make settings a little clearer.
- Visibility bindings fixed for issues related to new installs and no stored data.
- Prusa Firmware Mode setting, to handle G81 responses correctly
- Graph is now always visible in OctoPrint as long as you have saving enabled, there is a mesh stored, and the user is logged in.
- Remove duplicated tabs from Prusa firmware's G81 response.
- "Data Collector Flag" is now a text field in lieu of select list to allow full customization of the text that flags for mesh data collection to handle the numerous available options that apparently seem to be out there.
- Capture data option for identifying correct response to start storing mesh data
- Stored data displayed in settings
- Non-UBL support
- Settings dialog to update the GCODE command used to report bed topology.
- Improved performance with option for storing the mesh in config.yaml (default).
- Reversed point order to fix graphing misorientation.
- Pause standard OctoPrint temperature polling or squash the responses until processing is completed.
Orientation testing to verify axes are in correct direction.added settings to allow controlling the orientation.
Calculate bed dimensions and apply to probe points for display on graph, #28.
Support My Efforts
I, jneilliii, programmed this plugin for fun and do my best effort to support those that have issues with it, please return the favor and leave me a tip if you find this plugin helpful.
No paypal.me? Send funds via PayPal to email@example.com