Buildbotics CNC Controller Firmware Changelog
=============================================

## v1.0.4
 - Detect ``ngc``, ``tap``, ``txt`` and ``tpl`` program file extensions.
 - Fixed bug where planner config changes were not reflected after program stop.
 - Fixed "stuck in jogging" bug.
 - Show error when switch not found rather than estop.

## v1.0.3
 - Fix bug in stall detect homing.
 - Program power firmware on upgrade.
 - Remove inaccurate over/under detection feature.
 - Fix GCode editor File -> New.

## v1.0.2
 - Remappable IO
 - Added support for Fuling DZB200/300 VFD.
 - Added support for EM60 VFD.
 - Added support for H100 VFD.
 - Maintain versioned config files to make downgrading easier.
 - Handle 3D view with only one move.
 - Fix over/under notification with offsets enabled.
 - Fix for type 2 gamepads.

## v1.0.1
 - Handle case correctly when assigning named GCode variables.
 - Increased gamepad deadband to 15% but with rescaling to improve precision.
 - Disable 3D viewer if hardware WebGL not available or on Pi 3 local head.
 - Automatically show keyboard when selecting input and hide when not.
 - Use bbkbd instead of ratpoison.
 - Added Galt G200/G500 VFD support
 - Correction for voltage measurements.
 - Removed load current and faults for newer hardware from indicators and LCD.
 - Added DB15 breakout box to indicators page.
 - Send stop command to VFD on estop.

## v1.0.0
 - Added online GCode editor.
 - Added online file manager.
 - Allow subdirectories of files.
 - Full page 3D viewer.
 - Full page camera view.
 - Move all configuration pages to ``SETTINGS``.
 - Moved ``Save`` button to ``SETTINGS`` pages.
 - Added firmware check message.
 - Added macro buttons.
 - Fixed error setting lower soft limit with virtual keyboard installed. #249
 - Fix numerical overflow causing long (time) linear moves to fail. #258
 - Better gamepad handling.
 - Fixed problem with web layout while using virtual keyboard.
 - Fixed problem with entering config values while virtual keyboard is active.
 - Warn when leaving Settings without having saved.
 - Show upload progress when uploading files or firmware.
 - Allow multiple file upload.
 - Moved documentation pages to ``DOCS`` page.
 - Show program messages in 3D view.
 - Fix bug where rehoming fails after stop. #294
 - Fixed splash screen centering.
 - Much improved onscreen keyboard for touch screen operation. #292
 - Handle pause duing seeking operation correctly.
 - Default Wifi config to internal.

## v0.4.16
 - Improved axis under/over warning tooltip.
 - Added support for DMM DYN4 VFD.
 - Only enable ``rapid-auto-off`` and ``dynamic-power`` in PWM mode. #272
 - Support more gamepads.
 - Added copyright to LCD boot up.
 - Fixed default units handling. #206
 - Fix zero-all when some axes are homed and some are unhomed.
 - Fixed LCD axis offset position display.
 - Set ``max-arc-error`` with ``max-deviation``.
 - Improved modbus debugging.
 - Fixed demo estop.

## v0.4.15
 - Set GCode variables ``#5400`` and ``#<_tool>``.
 - Added ``#<_timestamp>`` GCode variable.
 - Print program start, stop and end with timestamp.
 - Fix occasional "Plan Failed" when saving config.
 - Fix motor step alignment when changing motor parameters like microsteping.
 - Stall detect homing.
 - Improved voltage spike clamping time.
 - Support for WJ200 VFD
 - Added M8.1 and M7.1 coolant off commands.
 - Clear planner coolant and spindle state on stop.
 - Fix web disconnect problem when downloading a bug report.
 - Fix for jogging on touch screens.
 - Allow disabling the internal WiFi so a USB dongle can be used.
 - Override M30 as well as M2 with ``program-end`` override.

## v0.4.14
 - Handle file uploads with '#' or '?' in the name.
 - Added "step mode" to Web based jogging.
 - Fixed touch screen Web jogging.
 - Support V70 Stepper Online VFD.

## v0.4.13
 - Support for OMRON MX2 VFD.
 - Better error handling in WiFi configuration.
 - Fix open WiFi access.
 - Improved video camera performance.
 - Allow up to 4 camera clients at once.
 - Add axis bounds GCode variables ``#<_x_min>``, ``#<_x_max>``, etc.
 - Expose ``junction-accel`` planning parameter.
 - Fixed problem with manual firmware upload on OSX.
 - Ignore cameras that do not support MJPEG format video.

## v0.4.12
 - Segments straddle arc in linearization.
 - Control ``max-arc-error`` with GCode var.
 - Implemented path modes G61, G61.1 & G64 with naive CAM and basic blending.
 - Log GCode messages to "Messages" tab.
 - Acknowledging a message on one browser clears it for all.
 - Automatically reload Web view when file changes.
 - Added ``config-screen`` script.  Web based screen config to come later.
 - Suppress message popup with (MSG,# No popup message).
 - Show latest GCode message in ``Message`` field on CONTROL page.
 - Marked several GCodes supported in cheat sheet.
 - Solved planner lookahead failure for most reasonable cases.
 - Prevent cutting off distant parts of 3D path view.
 - Raised default ``latch-backoff`` to 100mm and ``zero-backoff`` to 5mm.
 - Added ``max-deviation`` option.
 - Fixed problem with GCode boolean expression parsing.  #232.
 - Ensure 2uS step pulse width.

## v0.4.11
 - Don't reset global offsets on M2.
 - Test shunt and show error on failure.
 - Report spindle status codes from Modbus.
 - Save more log files in bug report.
 - Fixed indicators low-side units.
 - Support for YL600, YL620 & YL620-A VFDs.
 - Move Modbus indicators to tool page.
 - Support for Sunfar E300 VFD.
 - Set GCODE_SCRIPT_PATH to support GCode file routines.
 - Fix pause bug introduced in v0.4.10.

## v0.4.10
 - Fix demo password check
 - Fix bug were fast clicks could cause jog commands to arrive out of order.
 - Fix bug where planner position may not sync after jog.
 - Show power shutdown on indicators page.
 - Show all motors in shutdown when in power shutdown.
 - Improved GCode error messages.
 - Put controller into estop when in power shutdown.

## v0.4.9
 - Enforce 6A per motor channel peak current limit.
 - Adjust config values above max or below min instead of resetting to default.

## v0.4.8
 - Fixed log rotating.
 - Use systemd service instead of init.d.
 - Fix planner terminate.
 - Changed AVR serial interrupt priorites.
 - Increased AVR serial and command buffers.
 - Boost HDMI signal.
 - Rewrote RPi serial driver.
 - Automatically scale max CPU speed to reduce RPi temp.
 - Disable USB camera if RPi temperature above 80°C, back on at 75°C.
 - Respect offsets in canned cycle moves.  #219
 - Fixed G53 warning.
 - Fixed delayed offset update after M2 or M30 end of program.
 - Handle multiple consecutive config resets correctly.
 - Fixed log CPU usage problem introduced in v0.4.6.
 - Show RPi temp on indicators page.
 - Show red thermometer if RPi temp exceeds 80°C.

## v0.4.7
 - Fix homing switch to motor channel mapping with non-standard axis order.
 - Added ``switch-debounce`` and ``switch-lockout`` config options.
 - Handle corrupt GCode simulation data correctly.
 - Fixes for exception logging.
 - Always limit motor max-velocity.  #209
 - Sync GCode and planner files to disk after write.
 - Added warning about reliability in a noisy environment on WiFi config page.
 - EStop on motor fault.
 - Fixed ETA line wrapping on Web interface.
 - Fixed zeroing with non-zero offset when unhomed. #211
 - Handle file paths uploaded from Windows correctly. #212
 - Don't retain estop state through reboot.
 - Log when RPi gets hot.
 - Support Modbus multi-write mode.
 - Added support for Nowforever VFDs.

## v0.4.6
 - Fixed a rare ``Negative s-curve time`` error.
 - Don't allow manual axis homing when soft limits are not set.
 - Right click to enable camera crosshair.
 - Demo mode.
 - Limit idle-current to 2A.
 - Removed dangerous ``power-mode`` in favor of simpler ``enabled`` option.
 - Fixed bug where motor driver could fail to disabled during estop.
 - Restored estop text.

## v0.4.5
 - Fix for random errors while running VFD.
 - Fix bug where planner would not continue after optional pause (M1).
 - Fix lockup on invalid no move probe G38.x. #183
 - Fix zeroing homed axis after jog.
 - Fix VFD communication at higher baud rates (> 9600). #184

## v0.4.4
 - Write version to log file.
 - Write time to log file periodically.
 - Show simulation progress with or with out 3D view.
 - Synchronize file list between browsers.
 - Increased max simulation time to 24hrs.
 - Added button to download current GCode file.
 - Blink play button to indicate pause.
 - Many layout tweaks/improvements.
 - Don't abort simulations when system time changes.
 - Only allow one camera stream at a time.

## v0.4.2
 - Suppress ``Auto-creating missing tool`` warning.
 - Prevent ``Stream is closed`` error.
 - Suppress ``WebGL not supported`` warning.
 - Fixed Web disconnect during simulation of large GCode.
 - Disable outputs on estop.
 - Improved switch debouncing for better homing.
 - Handle zero length dwell correctly.
 - Fixed problem with cached GCode file upload when file changed on disk.
 - Run simulation at low process priority.
 - Added ``Bug Report`` button to ``Admin`` -> ``General``.
 - Only render 3D view as needed to save CPU.
 - Prevent lockup due to browser causing out of memory condition.
 - Show error message when too large GCode upload fails.
 - Much faster 3D view loading.

## v0.4.1
 - Fix toolpath view axes bug.
 - Added LASER intensity view.
 - Fixed reverse path planner bug.
 - Video size and path view controls persistent over browser reload.
 - Fixed time and progress bugs.
 - Added PWM rapid auto off feature for LASER/Plasma.
 - Added dynamic PWM for LASER/Plasma.
 - Added motor faults table to indicators page.
 - Emit error and indicate FAULT on axis for motor driver faults.
 - Display axis motor FAULT on LCD.
 - Fixed bug with rapid repeated unpause.

## v0.4.0
 - Increased display precision of position and motor config.
 - Added support for 256 microstepping.
 - Smoother operation at 250k step rate by doubling clock as needed.
 - Indicators tab improvements.
 - Much improved camera support.
 - Camera hotpluging.
 - Move camera video to header.
 - Click to switch video size.
 - Automount/unmount USB drives.
 - Automatically install ``buildbotics.gc`` when no other GCode exists.
 - Preplan GCode and check for errors.
 - Display 3D view of program tool paths in browser.
 - Display accurate time remaining, ETA and progress during run.
 - Automatically collapse moves in planner which are too short in time.
 - Show IO status indicators on configuration pages.
 - Check that axis dimensions fit path plan dimensions.
 - Show machine working envelope in path plan viewer.
 - Don't reload browser view on reconnect unless controller has reloaded.
 - Increased max switch backoff search distance.
 - Major improvements for LASER raster GCodes.
 - Fixed major bug in command queuing.
 - Ignore Program Number O-Codes.
 - Improved planning of collinear line segments.
 - Allow PWM output up to 320kHz and no slower than 8Hz.

## v0.3.28
 - Show step rate on motor configuration page.
 - Limit motor max-velocity such that step rate cannot exceed 250k.
 - Fixed deceleration bug at full 250k step rate.

## v0.3.27
 - Fixed homing in imperial mode.

## v0.3.26
 - Removed VFD test.
 - Show VFD status on configuration page.
 - Show VFD commands fail counts.
 - Marked some VFD types as beta.

## v0.3.25
 - Error on home if max-soft-limit <= min-soft-limit + 1. #139
 - Decrease boot time networking delay.
 - Default to US keyboard layout. #145
 - Added configuration option to show metric or imperial units in browser. #74
 - Implemented fine jogging control in Web interface. #147

## v0.3.24
 - Added unhome button on axis position popup.
 - Ignore soft limits of max <= min.
 - Fixed problem with restarting program in imperial units mode.
 - Handle GCode with infinite or very long loops correctly.
 - Fixed Huanyang spindle restart after stop.

## v0.3.23
 - Fix for modbus read operation.
 - Finalized AC-Tech VFD support.
 - Preliminary FR-D700 VFD support.
 - Ignore leading zeros in modbus messages.
 - Handle older PWR firmwares.

## v0.3.22
 - Fix position loss after program pause.  #130
 - Correctly handle disabled axes.
 - Fixed config checkbox not displaying defaulted enabled correctly.
 - Added Custom Modbus VFD programming.

## v0.3.21
 - Implemented M70-M73 modal state save/restore.
 - Added support for modbus VFDs.
 - Start Huanyang spindle with out first pressing Start button on VFD.
 - Faster switching of large GCode files in Web.
 - Fixed reported gcode line off by one.
 - Disable MDI input while running.
 - Stabilized direction pin output during slow moves.

## v0.3.20
 - Eliminated drift caused by miscounting half microsteps.
 - Fixed disappearing GCode in Web.
 - More efficient GCode scrolling with very large files.
 - Fully functional soft-limited jogging.
 - Added client and access-point Wifi configuration.
 - Fixed broken hostname Web redirect after change.
 - Split admin page -> General & Network.
 - Improved calculation of junction velocity limits.

## v0.3.19
 - Fixed stopping problems. #127
 - Fixed ``Negative s-curve time`` error.
 - Improved jogging with soft limits.
 - Added site favicon.
 - Fixed problems with offsets and imperial units.
 - Fixed ``All zero s-curve times`` caused by extremely short, non-zero moves.
 - Fixed position drift.

## v0.3.18
 - Don't enable any tool by default.

## v0.3.17
 - Fixed pausing fail near end of run bug.
 - Show "Upgrading firmware" when upgrading.
 - Log excessive pwr communication failures as errors.
 - Ensure we can still get out of non-idle cycles when there are errors.
 - Less frequent pwr variable updates.
 - Stop cancels seek and subsequent estop.
 - Fixed bug in AVR/Planner command synchronization.
 - Consistently display HOMING state during homing operation.
 - Homing zeros axis global offset.
 - Added zero all button. #126
 - Separate "Auto" and "MDI" play/pause & stop buttons. #126
 - Moved home all button. #126
 - Display "Video camera not found." instead of broken image icon.
 - Show offset positions not absolute on LCD.
 - Don't change gcode lines while homing.
 - Don't change button states while homing.
 - Adding warning about power cyclying during an upgrade.
 - Reset planner on AVR errors.
 - Fixed pausing with short moves.
 - Corrected s-curve accel increasing jogging velocities.

## v0.3.16
 - Fixed switch debounce bug.

## v0.3.15
 - Suppress warning missing config.json warning after config reset.
 - Fixed EStop reboot loop.
 - Removed AVR unexpected reboot error.

## v0.3.14
 - Fixed: Config fails silently after web disconnect #112
 - Always reload the page after a disconnect.
 - Honor soft limits #111 (but not when jogging)
 - Limit switch going active while moving causes estop. #54
 - Added more links to help page.
 - Fixed axis display on LCD. #122
 - Added GCode cheat sheet.
 - Fixed LCD boot splash screen. #121
 - Implemented tool change procedures and pause message box. #81
 - Implemented program start and end procedures.

## v0.3.13
 - Disable spindle and loads on stop.
 - Fixed several state transition (stop, pause, estop, etc.) problems.

## v0.3.12
 - Updated DB25 M2 breakout diagram.
 - Enabled AVR watchdog.
 - Fixed problem with selecting newly uploaded file.
 - More thorough shutdown of stepper driver in estop.
 - Fixed spindle type specific options.
 - No more ``Unexpected AVR firmware reboot`` errors on estop clear.
 - Downgraded ``Machine alarmed - Command not processed`` errors to warnings.
 - Suppress unnecessary axis homing warnings.
 - More details for axis homing errors.
 - Support GCode messages e.g. (MSG, Hello World!)
 - Support programmed pauses.  i.e. M0

## v0.3.11
 - Suppressed ``firmware rebooted`` warning.
 - Error on unexpected AVR reboot.
 - Fixed pin fault output.
 - No longer using interrupts for switch inputs.  Debouncing on clock tick.

## v0.3.10
 - Fixed "Flood" display, changed to "Load 1" and "Load 2".  #108
 - Highlight loads when on.
 - Fixed axis zeroing.
 - Fixed bug in home position set after successful home.  #109
 - Fixed ugly Web error dumps.
 - Allow access to log file from Web.
 - Rotate log so it does not grow too big.
 - Keep same GCode file through browser reload.  #20

## v0.3.9
 - Fixed bug in move exec that was causing bumping between moves.
 - Fixed planner bug which could create negative s-curve times.
 - Hide step and optional pause buttons until they are implemented.
 - Fixed pausing problems.
 - Limit number of console messages.
 - Scrollbar on console view.
 - Log debug messages to console in developer mode.
 - Fixed AVR log message source.
 - Fixed step correction.
 - JOGGING, HOMMING and MDI states.
 - Fixed position problem with rapid MDI entry.

## v0.3.8
 - Fixed pwr flags display
 - Added pwr fault flags to indicators

## v0.3.7
 - Allow blocking error dialog for a period of time
 - Show actual error message on planner errors
 - Reset planner on serious error
 - Fixed console clear
 - Added helpful info to Video tab
 - Changed "Console" tab to "Messages"
 - Removed spin up/down velocity options, they don't do anything
 - Allow RS485 to work when wires are swapped
 - Allow setting VFD ID
 - Only show relevant spindle config items
 - More robust video camera reset
 - Added help page
 - Allow upgrade with out Internet
 - Limit power fault reporting
 - Added load over temp, load limiting and motor overload power faults

## v0.3.6
 - Set max_usb_current=1 in /boot/config.txt from installer #103

## v0.3.5
 - Fixed dwell (G4)
 - Always show limit switch indicators regardless of motor enable
 - Fixed feed rate display
 - Added current GCode unit display
 - Fixed homed axis zeroing
 - Fixed probe pin input
 - Added reload button to video tab
 - Don't open error dialog on repeat messages
 - Handle large GCode files in browser
 - Added max lookahead limit to planner
 - Fixed GCode stopping/pausing where ramp down needs more than is in the queue
 - Added breakout box diagram to indicators
 - Initialize axes offsets to zero on startup
 - Fixed conflict between ``x`` state variable and ``x`` axis variable
 - Don't show ipv6 addresses on LCD.  They don't fit.

## v0.3.4
 - Added alternate units for motor parameters
 - Automatic config file upgrading
 - Fixed planner/jog sync
 - Fixed planner limits config
 - Accel units mm/min² -> m/min²
 - Search and latch velocity mm/min -> m/min
 - Fixed password update (broken in last version)
 - Start Web server earlier in case of Python coding errors


Changelog not maintained in previous versions.  See git commit log.
