7.1.53

    Fix: save Z-offset calibration

7.1.52

    Fix: ntpd -qg could hang forever if there is no network

7.1.51

    Improvement: faster network connection due to faster date set by setting a date right after certifi's certificates validity begins
    Fix: removed old requests and urllib3 folders as they where incompatible with newer version of python

7.1.50

    Fix: time was not synchronized on startup

7.1.49

    Update: CA certificates
    
7.1.48

    Fix: a downloaded file not removed after error or cancel.
    Change: download to ~/.3dprinteos/download instead of temporary folders in /tmp

7.1.45

    Improvement: support for gzip job downloading

7.1.44

    Improvement: camera now reports its type to cloud on a first request to cloud
    Fix: another camera restart problem

7.1.43

    Fix: camera restart problem

7.1.42

    Improvement: better camera stopping code. Ported from beta branch.
    Improvement: updater now can use update URL from settings file

7.1.40

    Fix: standard ca-certs are discarted after installing a custom ca-cert on the old OS images
    Fix: update of NetworkManager python wrapper to be compatible with a new NetworkManager and DBus

7.1.39
    
    Fix: restored cameras functionality broken in 7.1.37

7.1.38

    Feature: reimplementation of virtual printer to be the same in means of sender and USB identifiers

7.1.37

    Feature: ability to patch settings, install updates and install custom CA certs from USB drive, through QtUI

7.1.36

    Change: a better way of checking a sudo access

7.1.35

    Fix: reset cloud's job on printer_interface start

7.1.34

    Improvement: camera log sending on update logs
    Fix: removed redundant code the update_script.py

7.1.33

    Fix: crash on start due when not ['protocol']['custom_port'] field in present in settings
    Fix: false error logging on using wired connection

7.1.32

    Change: now connecting state will be threated as already connected by Qt UI
    Change: connecting state will only be triggered by complete network disconnect, not on every error
    Fix: estimated print time set to zero by after getting correct one from cloud
    Fix: job is not canceled in cloud on shutdown
    Fix: rare network state monitoring thread crash on getting local IP
    Fix: needless WiFi scans on every network state change

7.1.30
    
    Fix: filament wizards stuck on heating(code merge mistake)

7.1.29

    Fix: header not show in Advanced and Cloud submenus of settings
    Fix: confirmation UI bug
    Fix: z calibration UI bug

7.1.28

    Feature: menu item for cloud's queue check and job start
    Feature: print time left for local prints(estimation calculation by printing speed)
    Feature: support for "pause at layer" scripts
    Improvement: new sub-menu - Cloud
    Improvement: multiscreen sub-menus support
    Fix: gcode line numeration skips at comments only lines

7.1.27

    Feature: print time left
    Feature: wired connection detection and header icon for it
    Improvement: better print screen layout
    Improvement: smarter error reporting for Qt UI
    Refactoring: network model
    Fix: rare crash bug in printer interface

7.1.26

    Fix: cancel locally not sent to cloud
    Fix: hang of threaded sender on cancel
    Fix: keyboard pop-up in gcodes console
    Fix: error message cancelled locally could appear after cancel
    Improvement: button to hide a virtual keyboard
    Improvement: more space for gcodes console by hiding the header
    Improvement: local print from SD card now will note the user when loading if finished and sd can be removed

7.1.24

    Improvement: new wizard for calibration of Z endstop offset 
    Remake: wizard for changing a print head

7.1.17
    
    Camera: some changes in camera code
    Tuned: RPi camera resolution is now 1280x720

7.1.16

    Improvement: better temperatures parsing for minus target temperatures

7.1.15

    Improvement: temperature requesting during gcode callback is changed
    Fixed: virtual keyboard in edit config in Qt UI
    Fixed: proper feedrate is not set on entering joystick
    Fixed: show incorrect fan speed on entering joystick

7.1.14

    Improvement: threaded sender now uses Semaphores instead of Event - to mitigate ok\n\ok\n behaviour of RepRapFirmware
    Improvement: M98 is not threated as heating gcode as it could potentially contain long ok waiting gcodes

7.1.13

    Improvement of threaded sender to mitigate bug of RepRapFirmware of ok in end on error line
    Fixed: gcodes sending on entering Joystick in Qt UI
    Fixed: several bugs in wizards
    Fixed: bug of printer interface selection in Qt's printer model

7.1.12

    Fixed of error on finish of Filament unload wizard
    Fixed of wrong gif Filament load wizard
    Added M108 on any wizard finish or cancel

7.1.11

    Wizards workflow change to support error suppression on toolhead change

7.1.10

    Gcode execution callback
    Filament load/unload/etc wizards
    Support for setting temperature using G10 gcode for Duet3D
    Fixed printer state bug when entering joystick
    Universal naming for logs uploading 

7.1.9

    Complete rework of comment removing code to fix the issues with counter and emtpy lines
    Add some functionality to display printer's errors in Qt UI(still need a lot of work)
    Fixed display of state FINISHED in Qt on state CONNECTING
    Fixed error of _percent attribute not initialized
    Fixed joystick errors caused by previous patch
    Fixed UI issues in Qt's config editor

7.1.8

    Comment removal on every line send by threader_sender

7.1.7

    Add config editing to Qt interface(hidden menu)

7.1.6

    Fixed joystick not switching to relative mode
    Add more feedback after clicking Reset printer board

7.1.5

    Fixed layout in printing screen

7.1.4

    Logs uploading for APIPrinter
    Logs uploading button for Qt UI
    Fix of broken layout 
    Add downloading status to Qt UI

7.1.3

    Fixed update screen text
    Fixed a mistype in update process screen
    Changed the names of temperatures
    Remove dub bed and extruder names in joystick

7.1.2

    Qt interface RC2
    Offline mode(beta)
    Fixed temperatures displaying in Qt interface
    Removed line number from Qt interface

7.1.0

    Qt interface
    Duet3D support
    Fixed several connection bug in http client

7.0.0

    Appplication port to python3
    Removed MacOSX support
    Removed CloudSync
    Removed Linux system tray icon
    Removed HDCamera
    Errors system refactoring
    User interfaces start/stop refactoring
    HTTPS web initialization refactoring
    HTTPS warning-redirect refactoring

6.2.0

    New feature: single click login using 3DPrinterOS Cloud login credentials stored in browser
    Improvement: not accumulating multiple identical errors on error repeat - instead send only unique 
    Fix: inability to reset printer type when printer connection gives an error
    Fix: rare HTTPClient connection closing error on exit

6.1.1

    Fixed the race to reset printer type on failing connection loop

6.1.0

    Implemented GPIO buttons
    Some fixes on printer workgroups saving

6.0.17
    
    Certificates in requests library updated
    
6.0.16

    Camera traffic optimization

6.0.15

    Some sleep was added on server error in HTTP client
    3DPrinterOS favicon was added

6.0.14

    File transfer USB endpoint autodetection was added to pyusb_connection (for new FlashForge printers)
    Fix problem with old makerbot_sender (remove .pyc file)
    Fix download percents for dremel_sender (2 stages: download from cloud and upload to printer)
    Some fixes in smoothie_sender
    Some fixes in Get updates form
    Update temps for dremel_sender to support two extruders

6.0.13

    Camera mode saving after change on cloud was added
    Some update for runnable plugins
    Fix problem with old makerbot_sender

6.0.12

    Some fixes in Beeverycreative sender
    "Report_problem" command was added to 6th client
    Filename was added for Makerbot 5th printers

6.0.11

    Some fixes for Makerbot 5th
    Some send logs fixes
    Some fix in gcodes command
    Makerbot Replicator 2 and 2X 3D printer plugin for 3DPrinterOS cloud client was added

6.0.10

    License update
    Some fixes in dremel sender
    Updates for correct working of FlashForge Guider 2
    Some fixes in camera subprocess terminate logic
    Some fixes on empty camera image for Makerbot 5th
    Some fixes for correct cancel on downloading and paused steps
    Some fixes for Makerbot Replicator+ camera
    Some fixes for Makerbot 5th
    Smoothie serial sender was added
    Blocking heating emulator was added to threaded sender

6.0.9

    Set only TLS1.2 version available for HTTPS
    Restrict weak ciphers for HTTPS
    Some updates in Makerbot 5th logging
    Add Makerbot 5th internal camera
    Store network detected printers to file
    Add simple protection from connecting - error - connecting cycles for Makerbot 5th printers
    Add confirm detect network printers page
    Fixing Makerbot 5th error message on unsupported USB connecting
    Fixing double commands in joystick
    Fixing CPU serial numbers with only zeros processing
    Fixing Dremel's cancel from 3DPrinterOS client

6.0.8

    Add HTTPS web server feature
    Add self-signed certificates auto generating for HTTPS

6.0.7

    Some fixes in Makerbot 5th printer's protocol connected with new firmware
    Fixing HTTPClient register_error on camera object

6.0.6

    Some fixes in Makerbot printers protocol
    Some updates in network detector
    Fixed possibility of same printer duplicating on new printer connecting
    Add g3drem file format as supported for directed printing on Dremel printers
    Fixed recovering of printing process by stop to wait for ok (threaded_sender)

6.0.5

    Fixed many bugs
    Zipped gcodes transfer support

6.0

    General refactoring - no more hacky code in application core
    Complete refactoring of commands and errors systems
    Large refactoring of web interface - links based instead of huge html
    Faster startup and majority of other operations
    Local control: joystick, console and print cancel
    Web camera optimizations for non HD cameras - less lag and better frame rate
    Sorting for printer type selection by alphabet
    Remote access: remote authentication, cookies, configuration, etc...
    Ability to detect other 3DPrinterOS clients inside your LAN
    Ability apply custom user settings on login
    Embedded settings editor(text)
    More buttons and menu interface to customize users settings
    Interface to manually install updates for zip archives
    Setting for main loop to optimize performance
    Settings to disable automatic logs sending(for privacy or any other reason)
    Automatic logs reporting on critical errors
    Upgrade of updates system - ability to update client from different release branches
    Setting to turn on camera log
    Fix of possible misreport of error state
    Fixes for number of bugs in network printer detection
    Fix of API crash on token login, when using nocache in path
    Change of the license. This release is no longer GPL, because nobody had collaborated in a year :(

5.9.15

    Changes in threaded_sender to fix the bug of unable to print after cancel
    Fixed of false error at end of print on printers of BOSCH Dremel family
    Fixed rare crash on start

5.9.14

    Update of network printers detection. Now you can add and remove them manually.
    Update script to fix hdcamera issues on RPi(will set video memory split to 128MB)
    Fixed release notes opening on Ubuntu
    Fixed infinite browser page refresh on logout

5.9.13

    Dremel 3D40 support
    FlashForge Dreamer support
    Cancel for both Dremels 3D20 and 3D40
    Huge stability update for Dremel 3D
    Dremel download percentage is now counting in gcode uploading to printer
    Local telemetry interface
    Cancel during heating on a Printrbot will now cause printer module reload, not just show warning
    Support for marlin-like firmwares that lack standard starting message
    Add check for build number to send to cloud
    Update of gcode sender for marlin-like printers to improve stability
    Fixed bug of opening too many ports for web interface
    Fixed display of unicode text on some pages
    Fixed print auto restart after fast printer reboot for marlin-like firmwares


5.9.12

    Browser tab will not open when login using API
    Protection from API re-login during a print
    Fixed log message "no handler found..."
    Support for OpenCV3 camera backend
    Added camera module for picamera
    Correct processing for stop button on BOSCH Dremel

5.9.11

    New version API protocol and refactoring of it's backend
    Protocol for API to check mac address and some statuses
    Second attempt to login using API now will respond with success if user is same
    Fix of rare crashes on login
    Fix of blinking of cmd windows in MS Windows, during application start

5.9.10

    Fix of client fails to process API some requests with nocache parameter
    Host server name to login screen
    Ids in html for parsing with API
    Ability for API to get client's MAC address
    Ability to display real login name for disposable token login
    Fix of workgroup selection page

5.9.9

    Fix for port collision of RPi's Apache and 3DPrinterOS client itself

5.9.8

    Refresh script for login page

5.9.7

    Web interface is now reachable from non local IPs(if remote control is enabled in config)
    Web interface port is now a setting
    Update of requests library to version 2.9.1
    Automatic restart after logout
    Additional command line arguments(to resolve some issues with corrupted user_settings, etc)

5.9.6

    Universal client for normal login and login using 3DPrinterOS API

5.9.5

    Fix of threaded_sender crashing

5.9.4

    Fix of ultigcodes sender
    Warning about double ok message was removed
    Remake of double ok protection
    Fix crush of threaded sender when receiving message with exactly one character
    Fix of protection again lost ok(it will no longer be spoofed by temperature requests)
    Smarter HTTP connection timeout - it will increase after each failed connection attempt
    Fix warning about when user can't access groups
    Fixed message when trying to rename printer or manage groups when disconnecting it
    Protection against error in printer interface with error deque mutation during iteration
    Add console/joystick support to virtual printer

5.9.3

    Major changes in threaded sender:
        Double ok protection
        Printer hanging warning
        More reliable printing/homing thread starting
        General refactoring
    Fixed rare bug of printer disconnection handling
    Fixed detection of two identical printers without serial numbers
    Add protection again USB detector backend errors
    Logs sending code refactoring
    New setting - verbose
    Fixed problem reporting and printer renaming using non-latin characters on Windows
    Client identification change - now we are using MAC address of an interface that connected to 3dprinteros.com
    More protection against password file corruption
    Fix of updater crush of empty download URL
    Fix of connection closing for printer interface and user login
    Fix of rare crash of http_client on send with ssl exception
    CloudSync wrong retrying to upload fixed
    Other minor bug fixes

5.9.2

    Quit confirmation paths fixed
    Speedup for startup, shutdown and printer detection
    Reduce of logging amount when idle
    Add warning when client version is too old to support printer type
    MS Edge is now supported
    Restore password button implemented
    Error displaying on main page fixed
    Refactoring of threaded sender print start code
    Add support for UltiGcodes printing throught USB(only Ultimaker 2 for now, and only on custom firmware)

5.9.1

    Fix of application closing from tray icon

5.9.0

    Makerbot 5th gen integrated
    Dremel 3D Idea Builder integrated
    Network printers support implemented(for now only Makerbot 5th gen)
    Major optimization of CPU usage from all Marlin/Repetier/GRBL printers
    Protection against corrupted update package
    Change of login/password storing mechanism, to prevent storage corruption even when filesystem fails
    Fix of interface hanging after unplugging printer during type selection/reset procedure.
    Protection against corruption of "N-1 M110..." gcode(reset current line number)
    Add support for disposable(one time) login tokens
    Confirmation for logout and quit added

5.8.7

    Fix bug when user_settings.json is not updated with new settings sometimes
    Log rotation reimplemented
    Fix of bug of Makerbot's motors stuttering on cancel
    Refactoring of HTTPClient network connection waiting
    Add license header to five new files
    .DS_Store and Thumbs.db files added to CloudSync ignore list
    Wrong placing CloudSync buttons fixed
    Wrong sending terminate signal to subprocesses on Windows fixed
    Hacky fix for duplicate USBIDs(same VID, PID and serial number)
    Async_sender was renamed to threaded_sender
    SerialConnection class moved from threaded_sender to separate module
    Registration button added to login page
    Add warning for printers with same VID PID and serial number
    Wrong sending unicode problem report fixed
    A tip for restore default settings button added
    Fix for processing long web-interface handler closing
    Tutorial wizard on start implemented

5.8.6

    Protection for application multi-launching when installing update added
    Protection from crushing when trying to start tray icon process on RPi added
    Improvements for hd camera

5.8.5

    Fix of numerous problems with user settings causing crashes
    Fix of potential updater when package is partially unpacked with error
    Fix of potential problems caused by importing updater.py into launcher.py
    Tray icon status and warning popups(for Linux using PyGTK)
    Add pretty formatting to user_settings.json instead of one huge line
    Fix of another bug of camera module crash on start
    Updates are now downloaded to user folder instead of app folder
    Platform aliases for server side are changed to be prettier
    Camera switch to current mode crash fixed
    Linux groups adding with gksu implemented
    Console login script implemented
    Identical logging message spam when app waits for action fixed
    A tip when pointing printer's serial number in web-interface added
    Toggling CloudSync from web interface by button implemented

5.8.4

    Tray icon status and warning popups(for MacOS X and Windows)
    Logic of message "3DPrinterOS client had stopped" was changed, as well as message it self
    New settings processing schema
    Web interface refactoring done
    Refactoring of usb_detector with fix of bug of serial number 'None'
    Fix of stuck on downloading after numerous cancels in async_sender
    Protection for camera long closing implemented
    End application notification changed

5.8.3

    New updater with much more advanced mechanics
    *This update is needed only for transition to 5.8.4

5.8.2

    Sailfish support
    Crash when trying to login with cyrillic email or password fixed

5.8.1

    Printing sometimes stuck on first gcode. Fixed.
    Fixed slow target temperature update after M109 or M190
    Extruder lift on pause reimplemented
    Fix of temperature not updating in ready(idle) state
    Crush when reporting problem with cyrillic symbols fixed

5.8.0

    Fix of async_sender crushing when joining homing thread
    Fix of upload_logs command from servers
    Tray icon in notification area

5.7.9

    Fix of printer_interface crashing on receiving error code in string
    HD camera processing error upgraded

5.7.8

    Virtual printer feature implemented
    Fix of high CPU usage of async_sender
    Async_sender now sends homing gcodes in separate thread
    Fixed bug of handing of async_sender when it is unable to send homing gcodes
    PyUSB library update - should increase overall stability
    Camera controller update to support HD camera identification scheme
    Update of temperature requesting mechanism to prevent M105 repeat after heating
    Fix of beeverycreative to support on async_sender
    Web-interface buttons freeze fixed
    Starting HD camera for printers with not selected type fixed

5.7.7

    Printer detection fixed for printers with no serial number
    Fix of rare bug of crashing of async_sender on print start

5.7.6

    HD Camera
    Printer rename
    Camera starting algorithm updated
    Texts were updated
    Fix of the bug of missed clicks
    Report problem button

5.7.5

    Printrun was removed - custom library(async_sender) is used instead
    Bugs of hanging and unable to connected were fixed in async_sender
    Downloader refactoring for better stability

5.7.3

    Improved connection algorithm for faster baudrate selection and prevention of serial port handing for async_sender
    Reduced pseudo error spam for async_sender
    Increased number is download resume retries from 3 to 15

5.7.2

    /folder path for web interface to open logs folder
    Log rotation is disabled due to numerous bugs in logging backend

5.7.1

    Fix of printing stop when using async sender

5.7.0

    New gcode sending module - async sender. It is intend to replace printrun and potentially all other senders    

5.6.6

    Fix of crashing when 3dprinteros path containes unicode

5.6.5

    Launcher was refactored
    Camera logging turned on(for debugging purposes)

5.6.4

    Problem reporting form implemented
    Refactoring of usb_detector to reduce interference with opencv
    Camera switching from server fixed
    Camera restart feature implemented

5.6.3

    Fix of printing stop when network connection is lost
    Fix of crash on end of failed download
    Fix of rare camera crash when numpy fails to allocate memory
    Fix of crash of HTTPClient when errors occurs on first connection
    Add M999 in reset of printer without DTR reset

5.6.2

    Restarting Client feature disabled
    Release notes display fixed
    Fix of phantom printer bug

5.6.1

    Fixed bug in updater

5.6.0

    Printer type selection on client side
    Workgroups functionality fully implemented
    Fix of bug of blocking interface update on connection fail
    Web interface writing pages and style reading back-end refactored
    Fix of bug of Z axis stroke on print start
    Fix of crash on app start - ssl error
    Reporting of printer connection problems occured before ready(idle) state
    ZMorph driver not included

5.5.0

    Core of the system is reworked, everything much smoother, faster and cleaner
    New completely reworked error reporting system
    New WebUI with ajax updating - 15 times faster

5.3.1

    Fix bug of RightsCheckerWaiter crush

5.3.0

    Waiters working schema unified
    Better fix for bug of stuck on print start
    Other reset schema for printer with to DTR(PrintrBots for example)
    Fixed bug of command #0 failing

5.2.1

    Fix for hanging on start print(right after gcode loading)
    Fix for job fail on start of actual print
    Fix for crashing when serial port detection can't detect serial port for serial printer
    Fix for not updating page of web interface
    Logging of firmware version implemented
    Fix for stuck on cancel in Printrbot and other boards with no reset be DTR

5.2.0

    Fast gcode loading for printrun(10-100 times faster)
    Fixed bug of high cpu usage when no camera present

5.1.2

    Experimental Beevery Creative support (only for Linux)
    Printer type selection notifier improved
    Fixed bug of launcher when process didn't starts because of false already running
    Fixes a number of download related bugs.
    Fixed bug of error reporting to server.

5.1.1

    New approach for getting machine_id - use board serial number instead of macaddr on RPi
    Fixed error on pause for makerbots
    Implemented ability to show release notes after update

5.1.0

    Fixed position requesting after joystick or console executing
    Modification of printrun to make gcodes processing faster (~7 times)
    Conveyor killer working schema upgraded
    Fixed rare main page failure

5.0.2

    Fixed bug in reaction on download failure
    Fixed bug in percent get while switching download_thread_flag
    Updated console by adding newer regexps and fixing makerbot console.

5.0.1

    Linux rights warning fixed for RPi
    Fix bug of cancel during gcodes loading, with cause print locally status.

5.0.0

    Cameras now uses single thread and single http connection, greatly decreases cpu usage for bot client and server
    New printer detection algorithm, support multiprinting even if pyusb can't read serial number
    Console/Joysting support
    Bug of cancel during loading gcode, was fixed
    Fixed camera switching page
    Refactoring of almost all code
    Profiles now are stored in memory(for better stability and cleaner code)
    General config reimplementataion(singleton)
    New unhandled exceptions catcher/logger(100% of code covered)
    utils was split in several separate modules
    Upgraded CloudSync launching and control schema
    Fix of path get for CloudSync
    Logs sender upgraded
    Logs writing path changed to user folder
    Linux rights warning schema upgraded
    User folder path for Darwin fixed
    ZMorph code updated to 5.0.0 architecture
    Makerbot conveyor service killing for linux
    Fix of exit sequence for printrun gcode sender

4.8.6

    Updater logic upgraded

4.8.5

    Fixed critical bug in app, which caused total fail of web interface when updater disabled.

4.8.4

    Fixed critical bug in Launcher for Ubuntu

4.8.3

    Fixed bug with unicode paths in CloudSync

4.8.2

    Reboot under Mac OS X disabled
    Additional protection against hanging on restart implemented

4.8.1

    Bug in exit message handler of web interface was Fixed
    App gain more protection for cleaner restart
    Build scripts fixed

4.8.0

    Add client reboot ability
    Automatic client reboot after logout or update implemented
    Launcher preventing multiple launches of 3DPrinterOS
    Fixed bug of exit in printrun sender
    Fixed exit bug during login
    Fixed several bugs in ZMorph
    Fixed ZMorph support for  Windows
    Commands to client with GET requests implemented (login, logout, quit)

4.7.0

    Smoothie printers partial support
    ZMorph support(dont work on MAC OS X)
    Fixed rare bug of too many opened files
    Camera selection page was updated
    Changed names of folders for CloudSync - Successful and Failed

4.6.2

    Numerous bug fixes, small performance and code improvements
    Code reorganized to improve memory usage and refuse some bugs (web interface)
    Support for current line reporting was added(should fix false job completion bug)
    Cloudsync

4.5.1

	HTTP with keep_alive - faster camera and status/command exchange between client and server
	State reporting mechanism fix
	Generic Reperier Firmware support
	MassPortal support
	Felix 3.0 support
	Printbot slicing settings fix
	Quit sequence was refactored and fixed
	Ability to disable camera
	New status message for printer waiting to type selection and link to manual how to do it
	Reworked update mechanism to fix slow auto update.
	Updated Printrun to fix very rare bug on gcode resend
