Feature bed mesh viewer - #28507
Conversation
Introduced the core implementation file for BED_MESH_VIEWER. It provides a pixel-optimized 2D stationary-barycentric visual layout and real-time numeric scale feedback (with automatic font downscaling and background inversion for negative values) tailored for standard 12864 U8glib monochrome LCDs.
Integrated the sub-menu activation button for the 2D mesh map visualizer inside menu_probe_level.cpp. The conditional call is placed right under the mesh edit option and is protected using native preprocessor guards to maintain cross-platform safety.
Updated default Configuration.h and Configuration_adv.h with reference definitions to enable BED_MESH_VIEWER. Added structural macro anchors and specified MESH_EDIT_Z_STEP boundaries to provide a fully functional testbed for automated validation runners and simulators.
Registered the official `MSG_BED_MESH_VIEWER` localization labels using the native `LSTR` variable structure. Added explicit translations for both English and Italian dictionaries to ensure clean cross-compilation across core display modules.
|
Hi maintainers, My code implementation for the bed mesh viewer is complete and isolated. Local compilation on my machine passes successfully with a green SUCCESS. Please note that the current GitHub Actions failures on the I will leave the branch as is for your review. Thank you! |
|
That is not the CI test issue in rambo. It has this error Due to permanently enabling MESH_EDIT_MENU in Configuration.h You currently have these two lines in Configuration.h. //#define MESH_EDIT_MENU // Add a menu to edit mesh points
#define MESH_EDIT_MENU // Add a menu to edit mesh pointsAre you sure this wasn't meant to be? //#define MESH_EDIT_MENU // Add a menu to edit mesh points
//#define BED_MESH_VIEWER // Activate the stable center graphic and numerical plate map |
|
Hi @ellensp, Thank you so much for catching that! You were absolutely right. I accidentally pasted two identical lines for I have just pushed a clean fix to correct the typo and restore the proper definitions. Thanks again for your time and review! |
Upgraded the bottom scale legend inside menu_bed_mesh.cpp to use the official u8g_font_6x12 typeface for enhanced legibility. Replaced the manual pixel-by-pixel micro-drawing block of the 'µ' symbol with a clean string interpolation using the native '\xB5' hex escape sequence, preventing duplicate byte UTF-8 rendering artifacts.
|
Hi everyone, Following some offline user feedback, it was pointed out that the scale legend text at the bottom was a bit too small to read comfortably, and the manual pixel-drawn rendering of the measurement unit (µm) was somewhat hard to decipher on standard screens. To address this, I have just pushed an update upgrading the scale typography to the official |
… compromise Upgraded the bottom mathematical scale display inside menu_bed_mesh.cpp to u8g_font_7x14 to maximize text size and character sharpness. This specific typeface was selected as the optimal engineering compromise: it provides the highest possible visual legibility on 12864 screens while guaranteeing a strict hardware clearance zone, preventing any potential lateral collision or overlapping with the adjacent exit icon.
Description
This Pull Request introduces
BED_MESH_VIEWER, a highly optimized 2D grid viewer designed specifically for standard 12864 monochrome LCDs. It is universally compatible with Mesh Bed Leveling, Bilinear Bed Leveling, and Unified Bed Leveling (UBL).Key architectural and UI implementations include:
MESH_EDIT_Z_STEP(e.g., 25 microns per pixel). This approach keeps each coordinate anchor centered on its grid cell without any geometric drift.VIS), negative micron values are printed as dark text over an automatically calculated white solid bounding box. This avoids the visual clutter of multiple minus signs (-) on dense screens and eliminates overlaps by downscaling the font tou8g_font_4x6for 6x6/7x7 meshes and usingu8g_font_5x7for configurations up to 5x5.INFbutton triggers a full-screen, textless layout displaying a smooth section view of a warped bed, direct mathematical scale matching (1 Px = [MESH_EDIT_Z_STEP] µm), and an embedded international vertical icon structure (Knob -> Arrow -> Click text -> Open Door) for exit instructions. This design makes the help page completely international and free from string translation requirements.Requirements
MINI12864_2X_HALor similar monochrome screens).MESH_BED_LEVELING,AUTO_BED_LEVELING_BILINEAR, orAUTO_BED_LEVELING_UBL).Benefits
Configurations
Configuration.zip
Related Issues