2689 Commits (4def8b3b5e01498d0a4358898784b08b886c3202)

Author SHA1 Message Date
Scott Lahteine 19f49db96f Tweak / reduce menu items 6 years ago
Scott Lahteine e4cf175163
Synchronize on M204, M205 (#12302)
* Add parser.seen for multiple parameters
* Fix M666, use !seen for report
* Synchronize on M204, M205
6 years ago
Ludy 5ba6607181 Fix keypad-related compile error (#12306) 6 years ago
Scott Lahteine 2fb2e286ee Followup to #12256 6 years ago
Scott Lahteine 3eb9838dca Simplify TMC sanity-checks 6 years ago
Scott Lahteine f5b31e218d Followup to #12082 6 years ago
Scott Lahteine 31c28d0dd2
Drop pgm_read_*_near and let headers choose (#12301)
- Drop `pgm_read_*_near` and let headers choose.
- Define `USE_EXECUTE_COMMANDS_IMMEDIATE` as a conditional.
- Add `process_subcommands_now` for SRAM-based commands.
6 years ago
Scott Lahteine fce150f094 inline static => static inline 6 years ago
Giuliano Zaro 323c088356 Restore LED light color after pid tuning (#12082) 6 years ago
Ludy 9f77df2590 Followup to menu refactor. TMC warnings, sanity. (#12288)
- Followup fixes for menu refactor
- Fix TMC sanity checks, unused var warnings
6 years ago
Nils Hasenbanck cafabf2055 Implement DELAY_NS with CYCCNT on Cortex-M7 (#12283) 6 years ago
Scott Lahteine f5498168ae Ensure PENDING/ELAPSED use a 32-bit integer 6 years ago
MasterPIC 6e041b9c61 Use blink to show more info on LCD (#12256) 6 years ago
Scott Lahteine eb5600acd2 Add parentheses to LCD_CLICKED 6 years ago
Scott Lahteine 42f8b6c530
Make M125 work with SDSUPPORT (#12289) 6 years ago
Scott Lahteine f319087372 Followup to #12293 6 years ago
AnHardt 74bbb13008 Fix Mixer calculations for 32-bit processors (#12293) 6 years ago
Scott Lahteine 549d11225a Add to description of Z_STEPPER_AUTO_ALIGN
In response to #12272
6 years ago
Scott Lahteine 2cff0d1f39 Move menu_level_bed_corners to its own file 6 years ago
Scott Lahteine 44f2a82a56 Move axis_homed, axis_known_position to motion.* 6 years ago
Scott Lahteine 946cf8b453 EEPROM read code grouping 6 years ago
Ludy f2adb4b9cc Update German language (#12280) 6 years ago
Karl Andersson 484ca68228 Fix misplaced parentheses (#12284) 6 years ago
Scott Lahteine 1d366db764 Tweaks to CR-10S configuration 6 years ago
Scott Lahteine b5d7f69b51 Followup to #12249 6 years ago
N95JPL b780b69c62 Use font ascent and descent for line positioning (#12224) 6 years ago
Scott Lahteine 9cd3529108 Organize language data, fix Korean and Danish 6 years ago
Chris Pepper 66d44c72c3 Add fast binary file transfer to SD card option (#12249) 6 years ago
Marcio Teixeira 72d8adfd1e Cleanup and refactor EXTENSIBLE_UI (#12227)
- Add `axis_t`, `extruder_t`, `heater_t`, and `fan_t` to eliminate ambiguity, improve type safety.
- Regularized getter/setter argument order and naming.
- `setAxisPosition` no longer stacks moves in the buffer, allowing it to be called repeatedly on each touch ui tap.
- Implement better manual moves for `EXTENSIBLE_UI` (#12205)
- Calling `setAxisPosition_mm` no longer buffers the entire move to the new position, but instead causes small moves towards it to be made during the idle loop. This allows the user to adjust the destination even after the move has started and makes the UI feel much more responsive.
- As suggested by @ejtagle, the new code keeps the planner buffer full to ensure smooth motion without stops and starts.
- Change `En`, `Hn` and `FANn` to zero-based indices.
- Labels consistent with the rest of Marlin code.
6 years ago
Karl Andersson 1946f729fd STM32 FastIO using register access (#12276) 6 years ago
Scott Lahteine 56057bcecd Fix lcd_impl_status_screen_1 6 years ago
Scott Lahteine 4ed579cafc Americanized English spelling 6 years ago
Scott Lahteine 9e663a624b Apply #pragma once to configuration files 6 years ago
Scott Lahteine 98c32d8df1 Fix a config endif label 6 years ago
Scott Lahteine 3583e2b449
Followup to Menu Refactor (#12275) 6 years ago
TheLongAndOnly 5536228359 G34 Auto-align multi-stepper Z axis (#11302) 6 years ago
Scott Lahteine f9b80e7217 Make getfilename_sorted standard for listings 6 years ago
Scott Lahteine 5ead026967 Fix menu_temp_xx_filament_change menu items 6 years ago
Scott Lahteine d632e44c8c
[Merge] Refactor LCD menus / screens (#12199) 6 years ago
Ludy 1f9806875c Update German language (#12261) 6 years ago
mholeys 63ce8baa55 Fix Teensy 3.5/3.6 ADC access for ADC1 (#12258) 6 years ago
Scott Lahteine 3a935fd72b Reduce repetition in menu edit items 6 years ago
Scott Lahteine b063b1b722 Reorganize includes and declarations 6 years ago
Scott Lahteine 43cf913048 Move SD Card Menu to its own file 6 years ago
Scott Lahteine 0161d3f733 Move Custom User Menu to its own file 6 years ago
Scott Lahteine 3b0d2330b6 Move Delta Calibrate Menu to its own file 6 years ago
Scott Lahteine 6896847210 Move LED Menu to its own file 6 years ago
Scott Lahteine 9cd5471202 Move Job Recovery Menu to its own file 6 years ago
Scott Lahteine 9f11e0284c Move Filament Change Menu to its own file 6 years ago
Scott Lahteine d87ab3ed20 Move Advanced Settings Menu to its own file 6 years ago
Scott Lahteine 587a64d80c Move Bed Leveling Menu to its own file 6 years ago
Scott Lahteine 96f313fb41 Move Info Menu to its own file 6 years ago
Scott Lahteine 423ab029b2 Move Temperature Menu to its own file 6 years ago
Scott Lahteine 489017995e Move UBL Menu to its own file 6 years ago
Scott Lahteine a489c9fa52 Move Motion Menu to its own file 6 years ago
Scott Lahteine 3a9ad9f2b1 Move Configuration Menu to its own file 6 years ago
Scott Lahteine 143d4ec043 Move Tune Menu to its own file 6 years ago
Scott Lahteine 829effc1fe Move Main Menu to its own file 6 years ago
Scott Lahteine 37ff663b02 Convert LIGHTWEIGHT_UI to CPP 6 years ago
Scott Lahteine a964f098b3 Make dogm status screen a CPP 6 years ago
Scott Lahteine 8055ed24ff Move font data to a subfolder 6 years ago
Scott Lahteine 774a6e8199 Drop TALL_FONT_CORRECTION 6 years ago
Scott Lahteine c825c419d4 Convert DOGM / HD44780 impl to CPP files 6 years ago
Scott Lahteine 182b1405d9 LCD conditionals in configurations 6 years ago
Scott Lahteine 2bf18950ab Refactor LCD menus 6 years ago
Scott Lahteine ac5f2762b7 Use E_AXIS_N where possible 6 years ago
MasterPIC 6fbc87301f 'G29 H' to set a centered square probe area (linear, bilinear) (#12242) 6 years ago
Karl Andersson c1e8bd6add Remove STM32 board-specific delays (#12243)
...and replace with delays for all HAL_STM32 boards.
6 years ago
Scott Lahteine 3c9daf322a MSG_CNG_SDCARD => MSG_CHANGE_SDCARD 6 years ago
Scott Lahteine 4b7a0a5b39 Require TMCStepper 0.2.2 or newer
In reference to #12175
6 years ago
Scott Lahteine ab8425f1b5
Clean up PROBE_TRIGGERED_WHEN_STOWED_TEST (#12232) 6 years ago
Chris Rigter 3028a620af Add RACK_AND_PINION_PROBE (#12218) 6 years ago
InsanityAutomation ad60f0691c Add Creality3D RAMPS pins definitions (#12229) 6 years ago
Scott Lahteine 5580773191
Use FastIO, sanity-check LPC SD options, apply formatting (#12231) 6 years ago
Scott Lahteine d015f746cc
Fix some compile warnings (#12220) 6 years ago
Scott Lahteine dacb5324e8 Fix display of Y on Graphical LCD 6 years ago
Scott Lahteine bf9dd4f4cf
Add helpers for custom text in menu items (#12214)
For some features it can be useful to write custom text in a menu item. This commit provides helpers to make this easier.
6 years ago
Scott Lahteine e8031b1152 Add Custom Microstepping options 6 years ago
Scott Lahteine fbfb48cce0 Indent a block 6 years ago
Marcio Teixeira 1a00d1bdaf Add pullup to USB interrupt line
- A pullup on the INT pin is required when the pin is level-active
6 years ago
TheSFReader a07ac6312f G0 feedrate may be fixed or variable (#12172) 6 years ago
Scott Lahteine 53c535a0c1 Remove trailing whitespace 6 years ago
Roman Moravčík 55dec02ca1 Allow X, Y, Z manual move when cold. (#12209) 6 years ago
Luc Van Daele 7243101135 z_offset fix for deltas (#12210) 6 years ago
Scott Lahteine 9613f00877 Fix getProgress_seconds_elapsed to return seconds 6 years ago
gjdodd 5d487ef40e Fix null exception due to duration_t of zero (#12207) 6 years ago
Giuliano Zaro a9061714f2 Update Italian language (#12196) 6 years ago
InsanityAutomation aebbb2359d Fix IDEX homing X0 wrong direction (#12200) 6 years ago
gjdodd 0a549fd1f2 Fix EXTENSIBLE_UI compile errors (#12206) 6 years ago
Roman Moravčík a80ba8fc6e Slovak translation update (#12202) 6 years ago
Roman Moravčík e48cbff10d Fixed redefinition warnings of MSG_HOTEND_TOO_COLD. (#12203) 6 years ago
Scott Lahteine 7a04eb3a8b Fix some comment formatting 6 years ago
Scott Lahteine 2f873a119f Revert some UBL strings 6 years ago
Ludy a93e9e6e9b Use preheat labels in place of PLA/ABS (#12194) 6 years ago
Karl Andersson aa72884a6e Enable use of SERIAL_PORT_2 on HAL_STM32 (#12197) 6 years ago
Scott Lahteine 46360f18b4 Bring thermistor_75.h up to speed 6 years ago
Scott Lahteine e229b831fa Customizable preheat labels 6 years ago
Scott Lahteine a553ab82e0 Add e index to _lcd_move_distance_menu 6 years ago
Scott Lahteine 3a46212dd8
Better cold extrusion prevention in LCD menu (#12189) 6 years ago
Marcio Teixeira fc31da1114 Implement custom delay/millis for EXTENSIBLE_UI (#12188) 6 years ago
forkoz 3a3ab3391f Return set_directions() to stepper.cpp (#12182)
Initial manual Z move can be negative if your stepper is inverted. Leads to bad situations for crashed or initially booted printers.
6 years ago
Scott Lahteine e5ae7a07d1 Suppress compiler warning 6 years ago
Hannes Brandstätter-Müller 6ee2af5e2d Simplify pins_TRIGORILLA_14.h (#12162) 6 years ago
Roman Moravčík d801f85963 Correct EEPROM read/write disparities. (#12169) 6 years ago
Scott Lahteine 8d3a92fc4a Followup to millis_t patch 6 years ago
Ludy 44369d536a Use millis_t where needed (#12152) 6 years ago
Scott Lahteine b641571098 Replace types.h with millis_t.h 6 years ago
Scott Lahteine eeef4e630a Fix compile error in leds.h 6 years ago
Scott Lahteine 9969c06cb5 Fix compiler warning 6 years ago
Farkas Péter 427c80119a Hide some menu items when busy: fix typo (#12164) 6 years ago
InsanityAutomation 55ac2f4c23 Fix filament runout for idex duplication modes (#12168) 6 years ago
Karl Andersson b640b3b0d6 Define ST7920 delays for board ARMED (#12161) 6 years ago
Marcio Teixeira 2e5e689a7f Fix kill() and ExtensibleUI (#12160)
* Fix to isPrintingFromMedia()

  - isPrintingFromMedia() will now return true even if SD print is paused.
  - isPrintingFromMediaPaused() allows UI to determine if the print is paused.

* Don't use _delay_us in minkill (#12145)

  - In HAL_DUE, _delay_us is simply an alias for delay, which causes the board to hang and subsequently reboot due to the watchdog timer.

* Shorten code with IFSD macro
6 years ago
Scott Lahteine b381cad399 Clean up trailing whitespace 6 years ago
Scott Lahteine 9090065e9f Move EXTRA_FAN_SPEED above FWRETRACT 6 years ago
Karl Andersson 4eb798dbdc Add support for Arm'ed (STM32F4) board (#12147) 6 years ago
TheSFReader 1fb9b299d4 Add M524 to abort SD printing (#12155) 6 years ago
Scott Lahteine d26d9d5b81 Tweak IS_SD_INSERTED 6 years ago
Scott Lahteine c6a5c74208 Add parentheses to SD macros 6 years ago
Giuliano Zaro aa9202260d Fix endstop when no interrupt (#12158) 6 years ago
Scott Lahteine 8c02dd971b Move disable_all_steppers to minkill 6 years ago
Scott Lahteine 3847c08f7e Disable heaters/steppers before message 6 years ago
Marcio Teixeira 71e19baf69 Fix kill => disable_all_heaters => print_job_timer.stop (#12146)
- Remove `print_job_timer.stop()` from `disable_all_heaters`
- Call `print_job_timer.stop()` for relevant `disable_all_heaters()`.
- Split up `kill()` for watchdog interrupt safety
6 years ago
Ludy 4cc1c2627e Update German language (#12143) 6 years ago
Ludy 75a0d46edf Fix compile warning re: LCD_INFO_SCREEN_STYLE 6 years ago
Scott Lahteine a81763c237 Pins E sanity check tweak 6 years ago
Giuliano Zaro bc22641002 [2.0.x] Updated Italian Language (#12148) 6 years ago
Michael Triffon eded90bf87 Updated Azteeg X5 Mini Wifi pins for onboard SD (#12133) 6 years ago
nhchiu 27a84fd021 Remove unused option in Anycubic Kossel config (#12138) 6 years ago
Scott Lahteine 67a3c5a16a
Alternative info screen (Prusa-style) (#12132)
* Fix Z value display
* Add HAS_PRINT_PROGRESS
* Alternative Info Screen option
* Add LCD_INFO_SCREEN_STYLE to example configs
6 years ago
Marcio Teixeira 5b7dd553d3 Fix sd_mmc_spi_mem capacity; clean up USB code (#12134)
- Fix an error in the return value of `sd_mmc_spi_read_capacity` which was causing the host OS to read beyond the last sector in the card.
- Clean up the USB flashdrive code and add better debugging.
6 years ago
Scott Lahteine df768e7d8f Followup to #12129 6 years ago
Chris Pepper 3c13c9e3e9 [LPC176x] Fix USEABLE_HARDWARE_PWM macro, cleanup multiple LED support (#12129) 6 years ago
InsanityAutomation a768df83cb Remove stale variable (#12136) 6 years ago
Hannes Brandstätter-Müller c36773bffb Update the Ender-4 example config (#12131)
- Enable filament change menu
- Enable bed-PID
- Enable s-curve acceleration
- Enable some menu items
- Update from Skorpi's new version
- Fix extruder steps, deactivate nozzle clean feature
6 years ago
Ludy 9c71bff5e8 Update German language (#12115) 6 years ago
Nils Hasenbanck 9deb23aa47 Add missing SerialUSB definition for STM32 HAL (#12124) 6 years ago
Nils Hasenbanck 0519ef0802 Update pins for final RemRam v1.3 board (#12125) 6 years ago
InsanityAutomation 3ec3872730 Single Z raise value for all tool-changing / parking (#12090)
* Universal tool-change Z lift
* Add TOOLCHANGE_ZRAISE to example configs
* Park/unpark changes to example configs
* Implement DEBUG_DXC_MODE
6 years ago
Scott Lahteine 6bdbe3299e Fix a comment 6 years ago
Scott Lahteine bc75eb2c64 Cleanup for HAL_spi_Due.cpp 6 years ago
AnHardt d82bcdeea1 Make PULSE_STOP(E) conditional (#12121) 6 years ago
Chris Pepper c90e26dfa6 fix normal extruder stepping (#12118) 6 years ago
Hannes Brandstätter-Müller 96bbda5d48 remove confusing comment (#12120) 6 years ago
Marcio Teixeira f98f4ac7ea Fix and improve EXTENSIBLE_UI (#12117)
- Add methods to access print counter data
- Clean up some inconsistent method names
- Clear lcd status after filament change
- Implement `lcd_reset_status` so it works like UltraLCD
6 years ago
Scott Lahteine 8bf596bd4c RETRACT_ZLIFT => RETRACT_ZRAISE 6 years ago
Marcio Teixeira 056561df93 [2.0.x] Enhancements to FILAMENT_RUNOUT_SENSOR (#12069)
- Added FILAMENT_RUNOUT_DISTANCE_MM option
- Added FILAMENT_MOTION_SENSOR option
6 years ago
Scott Lahteine cce4931342 Clean up recent contribs 6 years ago
Karl Andersson 8b5e51c9aa STM32F4xx modifications for HAL_STM32 (#12080) 6 years ago
Scott Lahteine bf0c809ff2 Update M165 comment 6 years ago
AnHardt 9ac9649183 Mixer - update descriptions (#12108) 6 years ago
Scott Lahteine 9bf5d4331c Clear up some compiler warnings 6 years ago
Scott Lahteine 0139762a96 Fix a sanity check 6 years ago
Scott Lahteine 2ecb124e42 Fix trailing whitespace 6 years ago
AnHardt f56968ba0b New Continuous Filament Mixer (#12098) 6 years ago
Ludy 2d2cd628c6 Update German language (#12094) 6 years ago
Scott Lahteine 84b59d58fb Clean up whitespace 6 years ago
swilkens 06e2afe8e0 [2.0.x] Reduce HOMING_FEEDRATE_XY for Ender 3 (#12105)
Homing on the Ender 3 with HOMING_FEEDRATE_XY set to 50*60 was shown (#12074) to cause the end-stop micro-switches to bottom out, causing the carriage for both X and Y axis to physically crash into the micro switch. Reducing the homing speed prevents the switches from bottoming out.
6 years ago
TheSFReader af939c158a Option for G0 to have a separate feedrate (#12089) 6 years ago
Christopher Pepper e5b4bf22d4 Remove debug output from flash persistent store implementation 6 years ago
Christopher Pepper 42fb7c14b0 Update the sdcard usb sharing config and apply to Re-ARM 6 years ago
Christopher Pepper 254b68fe2c servo update 6 years ago
Andy Shaw 870bfd08f5 usb and sdcard sharing improvements
* Add traceback after watchdog timeout

Add the cpability to perform a traceback following a watchdog timeout.

* Enhanced hardware SPI

Allow use of either SSP0 or SSP1.
Ensure that no data is left in I/O buffers after calls to enable sharing of SSP hardware.

* Make flash emulation of eeprom the default

Make use of flash for eeprom storage the default. This means that usage of eeprom will not cause USB drive mount/unmount operations.

* Allow sharing of SD card

SD card I/O operations from the USB stack take place in idle loop, rather than at interrupt time. Allowing sharing of the SPI bus.

New configuration options to allow usage of the SD card to be specified.

* Fix problem with hardware SPI pins
6 years ago
Christopher Pepper 5ddf52d58e [HAL][LPC176x] Pull out framework into separate repository
Framework and build platform now located at https://github.com/p3p/pio-framework-arduino-lpc176x and https://github.com/p3p/pio-nxplpc-arduino-lpc176x respectively

fix mkssbase leds

move hardware serial

remove hardware/software serial

Hardware Serial extraction

HardwareSerial ISRs

fix disabled serial2 causing Serial object to link

move usb devices out to framework

separate out adc/pwm peripheral function from hal.cpp

fix includes

remove unused pwm init

move adc

HAL header update

templated filtered adc

LPC1769 platform
6 years ago
Roman Moravčík 213e94bce2 [2.0.x] Updated slovak translation (#12059) 6 years ago
Karl Andersson a40458405a Fix datasize error when FWRETRACT is disabled (#12086) 6 years ago
Scott Lahteine 951b25163e
Extend M217 with configurable park/raise (#12076) 6 years ago
Kevin Velickovic ea13a77dcb Fixed Z-Probes NO/NC for Anycubic Kossel (#12083) 6 years ago
N95JPL ab9d5eb38d Add Bootscreen Animation (#12077) 6 years ago
Scott Lahteine 26208a5c2f Clean up some boot screens 6 years ago
Scott Lahteine 9b6be0ae0f Fix lite status screen SD % 6 years ago
Scott Lahteine af3bf6c956 Tweak config spacing 6 years ago
Scott Lahteine a44ef27897 Outdent singlenozzle toolchange code 6 years ago
Scott Lahteine d338e4d875 Fix singlenozzle toolchange cold extrusion test 6 years ago
Roxy-3D 25b980dddb
Remove erroneous Pin 12 definition
There is no switchable Power Supply.   Don't put it on Pin 12.   
(Pin 12 is actually FAN1)
6 years ago
Scott Lahteine ddaef1a60c Clean trailing whitespace 6 years ago
Scott Lahteine 1407afad73 Move SENSITIVE_PINS to its own file 6 years ago
Scott Lahteine 45e738876a Add stepper MS3 support
Co-Authored-By: TheLongAndOnly <thelongandonly@users.noreply.github.com>
6 years ago
Giuliano Zaro d43d4e4219 Refactor PRINTER_EVENT_LEDS, apply to M303 (#12038)
Co-Authored-By: Giuliano Zaro <gmagician@users.noreply.github.com>
6 years ago
Giuliano Zaro d8d76cd2ba [2.0.x] Italian language update (#12060) 6 years ago
Scott Lahteine e8d2cf4fb5 EEPROM followup (tmc_stepper_current_t) 6 years ago
Scott Lahteine 50cbca4c55 Hide some menu items when busy 6 years ago
InsanityAutomation 3cb5517ddb Make singlenozzle tool-change honor no_move (#12056)
...Set no move earlier so it applies
6 years ago
InsanityAutomation d332fcb8fa Fix firmware-retract compile errors (#12061) 6 years ago
Scott Lahteine 43940d59ed Fix trailing spaces 6 years ago
InsanityAutomation b2c1cd7eda Allow cold change of active extruder (#12055)
Followup to #11994
6 years ago
Scott Lahteine d556dc1865
Fix and improve EEPROM storage (#12054)
* Clean up Temperature PID
* Improve EEPROM read/write/validate
* Group `SINGLENOZZLE` saved settings
* Group planner saved settings
* Group filament change saved settings
* Group skew saved settings
* Group `FWRETRACT` saved settings
6 years ago
Scott Lahteine 9b5c1a5e77 Fix EEPROM checksum bug
Addressing #12048
6 years ago
Scott Lahteine 272d4a5167 Apply #pragma once 6 years ago
Scott Lahteine 07d33849b0 Fix unused var warning, apply ENABLED 6 years ago
Hannes Brandstätter-Müller a3e8cb1e44 [2.0.x] Ender-4 small improvements in Configuration (#11843) 6 years ago
Scott Lahteine cf5284cdf2
Add SD Firmware Update capability (#12043)
Co-Authored-By: timoxd7 <timoxd7@users.noreply.github.com>
6 years ago
Scott Lahteine 0bd54392b7 Use uint8_t in EEPROM code 6 years ago
Scott Lahteine ce82015d5f Fix include in G80 6 years ago
Marcio Teixeira cef1de89d0 Fixed incorrect axis index. (#12051) 6 years ago
Marcio Teixeira d6d48e63fb Allow #defined TYPE arg to ultralcd menu macros (#12041)
Previously, it was not possible for the TYPE argument to ultralcd menu macros to itself be a #defined value. This made it difficult to create variables to set many related menu items to a common precision that could be easily changed.
6 years ago
Emilio Moretti 2ef7175b42 Update Ender-2 BED_MAXTEMP (#12042)
Also added details to the README to make sure the Ender-2 status is properly documented.
6 years ago
Scott Lahteine 5f6aabccbe Tweak M48 spacing 6 years ago
Marcio Teixeira ec9aa4f468 [2.0.x] Miscellaneous fixes (#12039)
* Allow override of soft SPI pins in `pins_*.h`
* Add default case to avoid compiler warning.
* Additional pin definitions for Archim 2.
* Einsy Retro has same timings as Einsy Rambo.
6 years ago
Marcio Teixeira 906a24fa81 Extensible user interface API (#11193) 6 years ago