allow saving raw CSV even when image is normalized
[#572] allow zooming image on-screen
add prefix/suffix to basename
add horizontal cursor
weak integration with BatchCollection (uses the configured BatchCollection measurement period, but only when BatchCollection is ENABLED but NOT RUNNING, and in Factory view)
2026-02-09 4.1.37
fixed "persistent error" coloring in Marquee
rotated Hamamatsu area scan 180 deg
2026-01-16 4.1.36
support 2min acquisitions on IDS / STARVIS
2026-01-12 4.1.35
improved support for using 220250 as laser driver (no spectra)
2025-12-18 4.1.34
display cursor in Area Scan
infrastructure to support laser PIN on XS
2025-12-10 4.1.33
disable onboard averaging (XS testing)
disable use of eeprom.actual_horiz_pixels when reading spectra
2025-11-06 4.1.32
[#562] re-copy distribution plugins at first launch of each new ENLIGHTEN version
graceful error handling when loading Raman.LibraryMatching spectra
[#544] fix hotplug race condition when laser power set in percent (often defaulted to 1%)
ensure laser firing buttons disable when spectrometer unplugged
2025-10-29 4.1.31
allow use of XS board as laser driver with no detector
2025-10-22 4.1.30
clamp excitation to 3 decimal places in exports
remove unused PyQt5 dependency
improved support for external scripts to use internal classes
fixed heartbeat warning on Andor
2025-06-30 4.1.29
Area Scan working on 2048px Hamamatsu detectors (with unreleased FW)
[#557] bad pixel fix in EEPROM Editor
2025-06-16 4.1.28
internal testing
2025-05-30 4.1.27
Horiz ROI
persist button setting as "user request"
Area Scan
continue updating detector temperature and other hardware metrics from "background / ignored" readings while scope paused
mostly works on XS
2025-04-11 4.1.26
Area Scan
R0 Area Scan works with new FW
R0 vertical ROI works with new FW
added green/red vertical ROI lines for Hamamatsu
Logging
firmware option now available on Logging View (XS only)
Scan Averaging
changing scans-to-average in ENLIGHTEN will automatically disable onboard averaging in XS (including any persistent AutoRaman settings)
flipped (corrected) meaning of "collated_export" (still defaults to "original behavior")
restore installer COMPRESSION option
2024-02-27 4.0.44
deprecated Miniconda (python venv FTW)
built installer on Win11
ASTM tweak
DYK tweaks
convert timestamps to strings in JSON
fix pixel axis with ROI
disable KIA tips
2024-02-20 4.0.43
fixed XL temperature
fixed Peak Sharpening
2024-02-19 4.0.42
GUI tweaks
added DidYouKnowFeature
added session close button for KIA
fleshed-out WhatsThis docs
theme fixes
moved sounds checkbox to Settings view
added laser_steady.wav
tightened checks around StatusIndicators
2024-02-14 4.0.41 ❤️
RamanShiftCorrection: better support for ROI, tweaked peak windows
updated to Tensorflow 2.13.1
2024-02-09 4.0.40
Configuration cleanup
persist scans to average in enlighten.ini by serial number
move PluginController.autoload to PluginController QTimer to make sure it happens on GUI thread, but...previous call from initialize_new_device was already on a QTimer? Yet this seemed to fix bug?
2024-02-07 4.0.39
fixed ROI bug in Measurement.save_excel_file
properly apply ROI for loaded export and columnar csv files
2024-02-06 4.0.38
fixed load from export
fixed graph traces on loaded exports
fixed common.msgbox bug
moved to ctl
ColumnFileParser
DashFileParser
ExportFileParser
SPCFileParser
TextFileParser
2024-02-05 4.0.37
pylint
docs
fixed LaserControlFeature restriction bug
fixed Measurements export ROI bug
2024-01-30 4.0.36
Raman
ensured all Raman features available in Expert mode
renamed RamanModeFeature to AutoRaman
moving Raman Intensity Correction to its own widget visible in Raman view
extracted LaserWatchdogFeature
don't force Laser Watchdog unless XS SML w/o TEC (but support for any XS)
GUI
Guide tweaks
common.msgbox tweaks
cleanup
moved Filters and Authentication to ui
moved SpectrometerApplicationState, AccessoryControlFeature, DetectorTemperatureFeature, ExternalTriggerFeature, GainDBFeature, HighGainModeFeature, IntegrationTimeFeature, LaserControlFeature, LaserTemperatureFeature, MultiPos, RegionControlFeature and Spectrometer to device
renamed spectra_processes to post_processing
moved DarkFeature, ReferenceFeature, RamanMode to post_processing
renamed pluginExamples to plugins
renamed sfu to cfu
moved to ctl
HighGainModeFeature
ManufacturingFeature
CloudManager
RichardsonLucy
Sounds
2024-01-26 4.0.35
RamanModeFeature
prompt for confirmation
release restriction on LaserControlFeature when invisible
better handling of case where laser already firing when Raman Mode engaged
BatchCollection
bugfix (typo)
disable Guide during BatchCollection
enforce 2sec gap between subsequent Batches to allow manual "Stop" and stabilization
reset TakeOneFeature before calling TakeOne.complete observers
Refactored RamanModeFeature, VCRControls and TakeOneFeature around TakeOneRequest
moved to ctl
BatchCollection
RamanModeFeature
TakeOneFeature
VCRControls
2024-01-15 4.0.33
fix load bug
simplify common.msgbox api
simplify thumbnail removal prompt
correctly associate thumbnails with generating plugin
give Graphs names for tracking
make utf8 settings more explicit
default logfile to truncate
added SpectrometerApplicationState.received_reading_at_current_integration_time, in contention for ENLIGHTEN Longest Variable Name
2024-01-12 4.0.32
GUI
StatusBar only shows battery when appropriate
added common.msgbox(..., detail)
added GUI.msgbox_with_textedit
plugins
renamed logfile to plugin.log
truncate plugin logfile on load
updated peaks in RamanLines and ASTM-1840 configuration
2024-01-11 4.0.31
axis corner-cases
replaced InterpolatedProcessedReading with ProcessedReading.cropped and .interpolated
for now, prevent export from trying to mix different x-axes from the same serial number (ultimately we could extend the export format in different ways to support this)
GUI
allow visualizing SRM calibration
styled common.msgbox
expand ScrollStealFilter to include focused widgets
fixed bug graphing pixel axis
moved to ctl
Authentication
EEPROMWriter
MeasurementFactory
scripts
retain more metadata in split-spectra
2023-12-14 4.0.30
GUI
added battery to StatusBar
generalized PluginController.display_plugin_warning into GUI.msgbox_with_checkbox
simplified font sizes
added X series png's
fixed Hardware tab device image
optionally Export only displayed traces
moved to ctl
AbsorbanceFeature
Clipboard
Configuration
DetectorTemperatureFeature
EEPROMEditor
ExternalTriggerFeature
FileManager
FocusListener
GuideFeature
HardwareFileOutputManager
LoggingFeature
Marquee
ModelInfo
Multispec
ResourceMonitorFeature
SaveOptions
StatusBarFeature
ThumbnailWidget
TransmissionFeature
scripts
refreshed scripts/split-spectra
2023-12-13 4.0.29
stopped clearing dark/refs when changing interpolation
RamanShiftCorrection tweaks (fixed width unit, obey ROI, show nm hint)
refactoring
moved DarkFeature to ctl
2023-12-11 4.0.28
platforms
updating Raspberry Pi build docs
support both PySide6 and PySide2
GUI
laser button tooltip fix
fixed markers
added convenience laser button where permanently visible
added interpolation button above graph
restored original ordering of (lock, fullwidth) buttons
fixed multiple Factory items on multiple logins
2023-12-08 4.0.27
locked to Python 3.11 for Tensorflow
default to maximized
restore previous integration time up to 5sec (was 1sec)
plugins
all field types support callbacks
docs
updated Windows docs for 10/11
updated MacOS docs for ARM
2023-11-10 4.0.26
auto-resize pandas table columns
fix ctl issues in Measurement*
move jcamp from pip to PYTHONPATH until feature branch released
2023-11-06 4.0.25
added PresetFeature
plugins
hide plugin field frame if no fields
deprecate dependencies
support events in functional plugins
increase default plugin Marquee period
provide self.marquee_message for functional plugins
add combobox datatype for plugin fields
allow plugin fields to have stylesheets
auto-resize pandas table columns
file_io
persist custom spectra save location
save as JCAMP-DX
support loading columnar CSV files which don't happen to include 'Integration Time'
refactoring
moved RamanIntensityCorrection, ScanAveragingFeature, BaselineCorrection, BoxcarFeature, IntegrationTimeFeature to ctl
docs and cleanup around ScrollStealFilter and MouseWheelFilter
simplified Configuration.save
2023-10-09 4.0.24
Prod.BurnIn temperature fix
added run_from_root
restored hide_from_console (hide-early doesn't work on W11, hide-late doesn't on W10)
2023-10-06 4.0.23
temporarily changed PluginController autoload from "ctor + 1sec" to "first
spectrometer connection" (later rolled-back, as broke ID plugin)
2023-10-06 4.0.22
bundle libusb0.dll to Windows install folder :-(
2023-10-06 4.0.21
automatically retain previous 2MB of existing enlighten.log to aid in fault analysis
2023-09-30 4.0.20
updated dependency versions to resolve tensorflow import issue
Python 3.10 -> 3.11
PySide 2 -> 6
pyinstaller 4 -> 5
numpy -> 1.26 (1.24.3?)
tensorflow <- 2.13
let bootstrap pass compression to InnoSetup (default lzma/max)
change pyinstaller –noconsole to –hide-console to fix pexpect issue