7.9.18

    Fix: incorrect number of extruders in printer profiles of Makerbot Method 

7.9.16

    Fix: print stops due to error caused false positive check on max valid resend range 

7.9.15

    Feature: support for Makerbot Method 
    Fix: changes connection sync to prevent skipping of start gcodes on some printers
    
7.9.14

    Fix: slow printing on threaded sender when printing with file that contains comments(every file downloaded from cloud now)
    Improvement: logging of print read/ok/resend/etc rates for threaded sender

7.9.9

    Fix: unhandled exception backend.enumerate_devices PyUSB call in usb_detector
    Fix: downloader will now properly restart a gzip download in case of temporary connection lose

7.9.8

    Improvement: protection against an error on calling comports to detect a serial port of printer, by using a previous value

7.9.7

    Improvement: HTTP will now reconnect after 5 non OK responses
    Improvement: board error state detection in threaded sender for  error message like: kill, halt, etc
    Improvement: refactoring of print file downloader, better processing of disconnection/reconnection events
    Fix: downloader is not checking HTTP status
    Development: better logging for camera debugging

7.9.6

    Feature: better printer connection checking code, to support for printer with messed up firmware 
    Feature: cancel after a gcode resend request will now send command to reboot printer's board
    Feature: a pause after failed connection to a printer, to give a user some time to press Reset printer type
    Fix: a bug of printer interface's loop sleeping too long after loosing connection to the server
    Fix: threaded sender hang on empty line in not buffered gcodes
    Fix: logging of ok timeouts is fixed and now got more info

7.9.4

    Tuning: reduction of http connection max timeout
    Fix: better exception logging on authentication of Makerbot's of 5th gen
    Fix: Makerbot 5th generation with Python 3.10
    Fix: http_client logging fix, to prevent overriding of log_level between different clients

7.9.2

    Feature: Formlabs Fuse1+ support
    Fix: not patching cloud URL shown in local WebUI

7.9.1

    Feature: experimental support for Formlabs Fuse 1, Formlabs Form 3(L, B, BL)

7.9.0

    Feature: support for gzip downloads
    Fix: update command from the cloud

7.8.5

    Fix: crush on detection of Formlabs printers

7.8.4

    Improvement: new printer state - cancel
    Fix: double reconnection after cancel

7.8.3

    Improvement: pause gcodes interception is now controlled by the settings and is disabled by default
    Fix: above change expect to mitigate a bug of a printer stuck in printing_locally state after getting into paused by user state in some cases
    Fix: detector of 3DPrinterOS Client in same LAN

7.8.1

    Fix: crash on processing the cloud's command with payload
    Fix: checking for rights to control a backlight in unnecessary cases

7.8.0

    Improvement: UI for changing SSH password and generate, upload or revoke keys.
    Fix: platform detection for RPi images with aarch64 kernel
    Fix: formlabs_sender bug of .gcode/.go filename switch

7.7.0

    Improvement: unzip now done in a subprocess, so its CPU load cant affect ongoing printing 
    Improvement: memory check is now performed before loading gcodes, to ensure that a file will fit
    Improvement: optimized memory consumption on gcodes preprocessing
7.6.6

    Fix: removed a debug output line from printer interface and user login

7.6.5

    Improvement: detection of camera backend errors to recover a camera connection(disabled by default)
    Improvement: detection of printer board's firmware reboot now covering a case then it was in "paused for user" mode
    Improvement: Pi camera support is back. Meaning direct using picamera module, instead of through Dual Camera using v4l2
    Development: better logging of server requests and responses
    Fix: improper handling of server login with invalid credentials

7.6.4

    Improvement: simplified and more reliable code for timeout waiting ok scenario
    Improvement: a printer profile flag for no homing on connect
    Improvement: ability to force host for the updater
    Fix: crash on quit from threaded sender due to missing skipped_line_numbers attribute

7.6.3

    Improvement: ability to install custom cacerts for private servers(merge)
    Improvement: updater server url prefix now is switchable(merge)
    Refactoring: cleanup of the code for kwargs processing in http client message packing
    Fix: action Quit is renamed to Restart on wrong platforms
    Fix: some invalid defaults in settings
    Fix: double logging of print time left

7.6.2

    Improvement: protection against double ok in threaded sender init
    Fix: incorrect line number offset in threaded sender
    Fix: stuck on N110 when using emulated serial connection

7.6.1

    Fix: sender crash on processing a filename

7.6.0

    Improvement: support for Formlabs printers
    Improvement: a fixes and refactoring to stabilize the gcode sending code
    Improvement: cloud job id, printer job id and job filename added to the protocol report section
    Improvement: faster stopping for main and printers loops
    Development: emulator for printer firmware now can: validate line number and checksum, heatup, block and request resend from line 
    Development: FakeApp now collects errors history
    Development: autoreport and update now will be enabled during the building process and disabled in dev
    Refactoring: all HTTP requests using urllib reimplemented using requests module
    Fix: network check of Qt interface now uses a correct URL instead of hardcode
    Fix: console login crash
    Fix: requests crashing on first import due to simplejson removal leftover(empty folder)
    Fix: numerous crash on json exceptions, due to exception class incompatibility of json and simplejson
    Fix: virtual printer using emulated serial connection and threaded_sender not connecting with "No serial port" error
    Fix: crash on quit due to calls to Qt objects that are already closed
    Fix: high CPU load when Dual camera module is enabled, but no cameras present

7.5.14

    Fix: Creality CR-10 temperatures processing

7.5.13

    Feature: M0/M1 and other pause/resume gcode are now pass to firmware if they got S or P arguments or if gcode line contains "3DPrinterOS pause pass"

7.5.12

    Feature: support for Creality CR-10 temperatures format with cryptic ==

7.5.11

    Fix: numerous errors caused by local cancel command processing

7.5.10

    Fix: crash of network printers detector on http detection when host is reported as iterable

7.5.9

    Fix: of comparison instead on assignments in crash on check for need to remote login

7.5.8

    Fix: crash on checking for a need to remote login

7.5.7

    Fix: crash on pause or resume gcodes

7.5.6

    Fix: incorrent platform detection on recent MacOS
    Fix: 3DPrinterOSAPI paths parsing 

7.5.5

    Fix: malfunction of Setup camera page in WebUI

7.5.4

    Improvement: better report problem title with version and OS
    Fix: quit and logout confirmation in local webUI 
    Fix: disable camera logging by default

7.5.3
    
    Fix: crash on startup due to removal of zeroconf library

7.5.2

    Improvement: HTTPS for updater

7.5.1

    Improvement: change of server command logic to make command execution possible even with unsent errors
    Fix: false no update when checked too fast of HTTP request error and base for other future improvements for updater
    Fix: crash of page_former on processing group selection for printer without profile
    Fix: crash of joystick_interface on console command to disconnected printer
    Fix: lost style tags in main page html 
    Fix: layout on joystick page
    Fix: temporary fix of multi ok response in joystick on clicks to some buttons
    Fix: WebUI path parsing refactored to work correctly

7.5.0

    Bundle: huge merge from 7.1.6+ version's branch, including print time left and pause on layer

7.4.4

     Fix: crash on handing of HTTP errors in camera code

7.4.3

    Fix: crash on handing of HTTP errors during user login

7.4.2
    
    Improvement: parsing of targetless temperature responses
    Fix: crash of network printers detector on /status path responding with non dict json

7.4.1

    Rework: HTTP errors will no longer cause switching to state "connecting"

7.4.0

    Rework: WebUI colors to match the cloud's new UI
    Improvement: Upload button on local printing page
    Improvement: two less buttons for every printer on the main screen
    Improvement: automatic local mode when user in on console or login page
    Fix: yet another crash on threaded sender close
    Fix: wrong redirect when selecting camera type during the wizard

7.3.26

    Improvement: settings UI rework in two columns
    Fix: exception on closing of threaded sender
    Fix: error on print cancel cancel in threaded sender

7.3.25
    
    Fix: vendor and product usb ids swapped in local web UI
    Fix: add missed pam library to requirements.txt
    Fix: README.md update

7.3.24

    Feature: requirements.txt added for manual dependencies installation 

7.3.23

    Fix: already printing error after successful cancel
    Fix: minor code logging bugs in threaded sender

7.3.22

    Fix: cancel on virtual printer

7.3.21

    Fix: exception on logging of an already printing error

7.3.20

    Fix: exception in network detect caused by unknown scanner name

7.3.19

    Fix: possible crash and memory leak in joystick interface when printer is disconnected
    Rework: minor changes in threaded sender in attempt to fix the already printing bug

7.3.18

    Fix: 3dprinteros protocol error on processing arguments that are equal to False
    Tuning: longer print thread join timeout 

7.3.17

    Fix: threaded sender reading crash on empty printer reply

7.3.16
    
    Fix: random reading thread crash
    Fix: numerous bugs after keyword "enqueuein" in printer responses
    Improvement: stability of serial connection
    Improvement: better response timeout event detection

7.3.15

    Fix: threaded sender stuck on resend
    Fix: threaded sender ignored a heating flag

7.3.14

    Fix: on some firmware heating mode not properly detected, causing a new gcode line to be sent too early

7.3.13

    Fix: error when turning off local mode on printer interface reconnection
    Fix: wrong resend line number due to threads race in threaded sender
    Rework: serial connection refactored to be more universal
    Improvement: add new settings port_parity_hack to solve some drivers issues

7.3.12

    Fix: crash of threaded sender on non printable chars in error message

7.3.11

    Fix: joystick's gcodes console not working

7.3.10

    Fix: temperatures not updating
    Fix: bug braking temperatures updating after adding callback(other than previous one)
    Fix: joystick UI(E coordinate and extruder temperature were swapped)
    Improvement: check of python version on start with clear error message

7.3.9

    Rework: compatibility with aiohttp version 3.0.1 to regain support for Ubuntu 18.04 
    Fix: printer identification using uuid.getnode is now same as in stable branch
    Improvement: logging of python version and some libs versions 

7.3.8

    Fix: cloud joystick

7.3.7

    Rework: camera selection now will fallback to default camera type(Dual Camera) when wrong camera type is selected
    Fix: crash of http detector on invalid response
    Improvement: JSON decoding errors handling are refactored to cover more cases

7.3.6

    Feature: verbose logging button and functionality to apply verbose flags at runtime
    Feature: pause checkbox on show logs page 
    Rework: threaded sender is now reporting all errors and warnings from the printer to the cloud
    Rework: minor code cleanup
    Fix: asycio coroutine crash on application quit

7.3.5

    Feature: added support of Repetier Server
    Rework: downloader now can pass file object instead of just file's contents 

7.3.4
    
    Fix: semaphore timeout bug in threaded sender

7.3.3

    Fix: crash of local joystick
    Fix: crash of virtual printer on print start and finish

7.3.2

    Improvement: M0 support
    Improvement: storing of printer type choices in offline mode
    Rework: printer status "closing" removed
    Fix: resend issue in threaded sender(Marlin, RepRapFirmware, Repetier, etc)
    Fix: numerous rare bugs in threaded sender(Marlin, RepRapFirmware, Repetier, etc)
    Fix: freeze on some failures of LAN clients detector
    Fix: crash when Qt interface module is not in the build, even if it is not turned on

7.3.1

    Rework: camera configuration reimplemented
    Improvement: more complex and realistic virtual printer 
    Fix: crash on autologin
    Fix: show release note 

7.3.0

    Rework: WebUI ported from http.server to aiohttp
    Improvement: security of WebUI
    Improvement: WebUI access cookies are now preserved between application restarts
    Fix: crash of local joystick
    Fix: error logging in pyusb_connection, birdwind sender and m5th_cam
    Fix: error on upload a file with empty or corrupted name
    Fix: printer interface crash instead of error report on fail of telnet connecting
    Fix: crash on connection reset of telnet connection

7.2.11

    Fix: reconnection bugs in telnet printers
    Fix: crash of downloader on failed download
    Rework: the way of storing a firmware information got from printer

7.2.10

    Rework: gcodes downloader code
    Fix: printer interface can stuck with connecting status

7.2.9

    Fix: crash when run on Python3.6 when generating certificates for HTTPS server
    Fix: printer interface restart(crash?) on print end or cancel
    Fix: error on botched download with invalid zip 
    Fix: error on entering joystick

7.2.8

    Feature: support of RepRapFirmware using telnet connection
    Improvement: threaded sender is now using semaphores to manage gcodes queue
    Fix: crash on applying serial port access rules on desktop linux
    Fix: software update requests in offline mode
    Fix: crash on empty homing gcodes

7.2.7

    Rework: software update button and it's page
    Rework: warning about selection of printer type is make more noticeable
    Improvement: disable PyUSB after a critical failure
    Fix: parsing of waiting temperature gcode acks(B:..., T?:...)
    Fix: threaded sender ignoring errors reported by a printer board and stated with B, T
    Fix: crash in FlashForge Dreamer's gcodes sender
    Fix: crash on some error in PyUSB backend
    Fix: marking of devices as identical even when they are not

7.2.6

    Fix: camera subprocess crash on platform other than MS Windows

7.2.5
    
    Fix: bug of printer duplication on MS Windows - pyusb and pyserial are getting different physical ports for same device

7.2.4

    Rework: printer type reset message and behavior. Should be more reliable and faster in offline mode.
    Fix: impossible to select a printer type in offline mode
    Fix: subprocess windows pop-ups on MS Windows 
    Fix: possible crash on login storage file corruption
    Fix: bug in log sending repetition protection

7.2.3

    Rework: protection against hanging of printer connection(and other application threads) on quit
    Rework: exceptions logging and sending will now recognize repeats and will process them less dumb 
    Rework: UI tweak - red color for "...select printer type" message
    Rework: tweaking for threads join timeouts to make quit sequence faster
    Rework: refactoring of usb detector
    Fix: occasional crash of printer interface when resetting or selecting printer type in offline mode
    Fix: crash instead of error report when makerbot 1 and 2th gen is receiving binary instead of gcodes
    Fix: virtual printer in the wizard lead to setting page
    Fix: fix version string position(this time for real)
    Fix: PRT in usb info was tuple, not string
    Fix: behavior of usb_detector with several printers of same usb info

7.2.2

    Fix: wizard crash on the client start
    Fix: crash when downloading and unpacking too large file
    Fix: update request timeout too low
    Tuning: update request is tuned to be more frequent

7.2.1

    Rework: UI tweaks(button color, version string position, etc.)
    Rework: Threaded Sender becomes better at handling exotic temperature responses
    Fix: Makerbot 5th generation
    Fix: UltiGcode Sender module was not ported to python3
    Fix: printer type selection and reset in local mode
    Fix: detection wizard crush on entering the integration form
    Fix: crash of threaded sender on connection with empty response
    Fix: crash on fail to resetting pyusb device configuration on MS Windows
    Fix: crash when Picamera is selected 
    Fix: crash on flawed OS configuration of MS Windows, that results in error of pyserial
    Fix: gcodes sender(threaded_sender) got several improvements for crash on crazy printer responses
    Fix: printer interface crash on requests to server inside printer login
    Fix: console login
    Fix: "--logout" command line argument
    Fix: several potential crashes on trying to log rare exceptions
    Fix: rare detection wizard crashes

7.2.0

    Feature: local printing and offline mode
    Feature: new printer type integration wizard
    Feature: better support for multiple printers with same(or invalid/empty) USB serial numbers
    Feature: GPIO toggling button in settings and backend for GPIO interface toggling at runtime
    Feature: support for Bosch Dremel new firmware(had broken API compatibility)
    Rework: some elements of web UI
    Rework: code of user login, main loop, http client, GPIO and web UI
    Rework: cookies logic and token generation for better security
    Removed: PiCamera removed due to library bug causing incompatibility with Python3.8.1
    Fix: improved security of 3DPrinterOS RPi image by switching to run as user
    Fix: file uploading
    Fix: logging of web interface's broken pipe errors as crashes
    Fix: multipart post reimplemented, because cgi implementation in python3 was broken
    Fix: launcher's double run prevention functionality
    Fix: crash on empty login password
    Fix: not removing log zip files on failed problem report sending
    Fix: prevent temperatures reset on USB reconnect for Bosch Dremel 
    Fix: wrong parsing of some temperature responses 
    Fix: occasional duplication of clicks in UI
    Fix: local joystick using remote js libs
    Fix: wizard hangs before workgroups page
    Fix: camera type switching from cloud making camera unusable
    Fix: camera subprocess prevent application quit on some errors from opencv
    Fix: numerous bugs in workgroups management
    Fix: account email with some special symbols are not working
    Fix: lack of https warning on remote login page 

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.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

    Application 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 crash 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 crash 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 crashing 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 crashing 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 crash

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
