[2026-04-23 18:43:21,236] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 18:43:21,280] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 18:46:40,604] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 18:46:41,028] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 18:46:41,233] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 18:46:41,244] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 18:46:41,295] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 18:46:42,257] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 18:46:42,263] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 18:46:42,274] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 18:46:42,312] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 18:46:42,355] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 18:47:39,154] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 18:47:39,579] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 18:47:39,786] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 18:47:39,797] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 18:47:39,847] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 18:47:40,808] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 18:47:40,813] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 18:47:40,824] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 18:47:40,863] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 18:47:40,904] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 19:41:03,249] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 19:41:03,627] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 19:41:03,832] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 19:41:03,842] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 19:41:03,891] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 19:41:04,850] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 19:41:04,855] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 19:41:04,865] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 19:41:04,900] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 19:41:04,939] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 19:43:16,398] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 19:43:16,834] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 19:43:17,044] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 19:43:17,061] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 19:43:17,136] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 19:43:18,178] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 19:43:18,183] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 19:43:18,193] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 19:43:18,227] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 19:43:18,267] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:03:03,144] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:03:03,573] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:03:03,590] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:03:03,898] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:03:03,961] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:03:15,581] [INFO] <labthings_fastapi.things.smart_scan> Moving to (12505, 4175)
[2026-04-23 20:03:26,399] [INFO] <labthings_fastapi.things.smart_scan> Moving to (16959, 4175)
[2026-04-23 20:03:56,129] [INFO] <labthings_fastapi.things.smart_scan> Moving to (21413, 4175)
[2026-04-23 20:04:20,523] [INFO] <labthings_fastapi.things.smart_scan> Moving to (12505, 837)
[2026-04-23 20:04:43,210] [INFO] <labthings_fastapi.things.smart_scan> Moving to (16959, 837)
[2026-04-23 20:05:17,604] [INFO] <labthings_fastapi.things.smart_scan> Moving to (21413, 837)
[2026-04-23 20:05:44,490] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:05:45,496] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:05:45,570] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:05:45,687] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:05:45,824] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:05:45,857] [INFO] <labthings_fastapi.things.smart_scan> Returning to starting position.
[2026-04-23 20:05:54,796] [INFO] <labthings_fastapi.things.smart_scan> Waiting for background processes to finish...
[2026-04-23 20:10:02,630] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:03,105] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:03,789] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:03,790] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:04,275] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:04,277] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:10,801] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:12,464] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:12,471] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:12,496] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:12,502] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:12,554] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:12,606] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:12,676] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:13,042] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:13,264] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:13,355] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:15,436] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 132, 'exposure_time': 75, 'analog_gain': 1.0}
[2026-04-23 20:10:16,446] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 254, 'exposure_time': 226, 'analog_gain': 1.0}
[2026-04-23 20:10:17,435] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 347, 'exposure_time': 340, 'analog_gain': 1.0}
[2026-04-23 20:10:18,339] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 377, 'exposure_time': 378, 'analog_gain': 1.0}
[2026-04-23 20:10:19,234] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 393, 'exposure_time': 396, 'analog_gain': 1.0}
[2026-04-23 20:10:19,598] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 392, 'exposure_time': 396, 'analog_gain': 1.0}
[2026-04-23 20:10:19,599] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> Brightness has converged to within 5%.
[2026-04-23 20:10:20,125] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:20,131] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:20,141] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:20,177] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:20,216] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:20,272] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:20,645] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:20,871] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:20,871] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:21,087] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:21,088] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:21,436] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:21,501] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:21,502] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:21,514] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:21,519] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:21,557] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:21,598] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:21,659] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:22,387] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:22,647] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:22,648] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:22,883] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:22,885] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:23,380] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:23,518] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:23,520] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:23,544] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:23,553] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:23,603] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:23,665] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:23,743] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:24,449] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:24,661] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:24,712] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:24,938] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:25,272] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:25,273] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:25,551] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:25,552] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:25,880] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:25,945] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:25,946] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:25,958] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:25,965] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:25,995] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:26,035] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:47,216] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:47,648] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:47,875] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:47,875] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:48,223] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:48,223] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:48,555] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:48,623] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:48,624] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:48,636] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:48,641] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:48,671] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:48,712] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:48,769] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:49,145] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:49,366] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:49,447] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:50,876] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 131, 'exposure_time': 75, 'analog_gain': 1.0}
[2026-04-23 20:10:51,856] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 254, 'exposure_time': 226, 'analog_gain': 1.0}
[2026-04-23 20:10:53,007] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 346, 'exposure_time': 340, 'analog_gain': 1.0}
[2026-04-23 20:10:54,225] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 375, 'exposure_time': 378, 'analog_gain': 1.0}
[2026-04-23 20:10:55,179] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 393, 'exposure_time': 396, 'analog_gain': 1.0}
[2026-04-23 20:10:55,529] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> {'level': 389, 'exposure_time': 396, 'analog_gain': 1.0}
[2026-04-23 20:10:55,530] [INFO] <openflexure_microscope_server.things.camera.picamera_recalibrate_utils> Brightness has converged to within 5%.
[2026-04-23 20:10:56,061] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:56,067] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:56,077] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:56,113] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:56,154] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:56,211] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:56,584] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:56,837] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:56,847] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:57,235] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:57,237] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:57,751] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:57,896] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:57,898] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:57,923] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:57,930] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:57,981] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:58,046] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:10:58,126] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:10:58,493] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:10:58,741] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:10:58,743] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:10:59,156] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:10:59,157] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:10:59,653] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:10:59,791] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:10:59,793] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:10:59,817] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:10:59,825] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:10:59,875] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:10:59,938] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:11:00,017] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:11:00,719] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-23 20:11:00,931] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:11:00,982] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:11:01,233] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-23 20:11:01,552] [INFO] <openflexure_microscope_server.things.camera.picamera> Closing picamera object for reinitialisation
[2026-04-23 20:11:01,552] [INFO] <openflexure_microscope_server.things.camera.picamera> Camera object already exists, closing for reinitialisation
[2026-04-23 20:11:01,846] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-23 20:11:01,847] [INFO] <openflexure_microscope_server.things.camera.picamera> Picamera closed, deleting picamera
[2026-04-23 20:11:02,173] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 20:11:02,238] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 20:11:02,239] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 20:11:02,252] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 20:11:02,257] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 20:11:02,287] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 20:11:02,332] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 20:14:15,849] [INFO] <labthings_fastapi.things.camera_stage_mapping> Calibrating Y axis:
[2026-04-23 20:14:17,729] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage until we see motion...
[2026-04-23 20:14:32,772] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage to the edge of the field of view...
[2026-04-23 20:14:35,598] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage backwards to measure backlash (1/2)
[2026-04-23 20:14:50,104] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage forwards to measure backlash (2/2)
[2026-04-23 20:15:08,453] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving back to the start, correcting for backlash...
[2026-04-23 20:15:19,980] [INFO] <labthings_fastapi.things.camera_stage_mapping> Estimated backlash 95 steps
[2026-04-23 20:15:19,983] [INFO] <labthings_fastapi.things.camera_stage_mapping> Stage-to-image ratio 0.050 pixels/step
[2026-04-23 20:15:19,984] [INFO] <labthings_fastapi.things.camera_stage_mapping> Residuals were about 0.03 times the step size
[2026-04-23 20:15:20,288] [INFO] <labthings_fastapi.things.camera_stage_mapping> Calibrating X axis:
[2026-04-23 20:15:21,668] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage until we see motion...
[2026-04-23 20:15:35,860] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage to the edge of the field of view...
[2026-04-23 20:15:41,098] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage backwards to measure backlash (1/2)
[2026-04-23 20:15:58,893] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving the stage forwards to measure backlash (2/2)
[2026-04-23 20:16:17,078] [INFO] <labthings_fastapi.things.camera_stage_mapping> Moving back to the start, correcting for backlash...
[2026-04-23 20:16:25,507] [INFO] <labthings_fastapi.things.camera_stage_mapping> Estimated backlash 40 steps
[2026-04-23 20:16:25,510] [INFO] <labthings_fastapi.things.camera_stage_mapping> Stage-to-image ratio 0.050 pixels/step
[2026-04-23 20:16:25,511] [INFO] <labthings_fastapi.things.camera_stage_mapping> Residuals were about 0.01 times the step size
[2026-04-23 20:16:25,814] [INFO] <labthings_fastapi.things.camera_stage_mapping> Calibration complete, updating metadata.
[2026-04-23 20:16:25,816] [INFO] <labthings_fastapi.things.camera_stage_mapping> CSM matrix is [0.07, -9.93,],[10.05, 0.02].
[2026-04-23 23:42:26,623] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-23 23:42:27,492] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-23 23:42:27,494] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-23 23:42:27,494] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-23 23:42:28,987] [INFO] <uvicorn> Started server process [514]
[2026-04-23 23:42:28,988] [INFO] <uvicorn> Waiting for application startup.
[2026-04-23 23:42:29,031] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-23 23:42:29,172] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-23 23:42:29,173] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-23 23:42:29,187] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,192] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,216] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,219] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,244] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,247] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,272] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,275] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,319] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,322] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,345] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,348] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,371] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,374] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,397] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,401] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,440] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-23 23:42:29,444] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-23 23:42:29,480] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-23 23:42:29,531] [INFO] <picamera2.picamera2> Camera started
[2026-04-23 23:42:29,564] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-23 23:42:29,565] [INFO] <root> Updating ESI port settings
[2026-04-23 23:42:29,566] [INFO] <root> Opening ESI connection to port None
[2026-04-23 23:42:29,582] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-23 23:42:29,583] [INFO] <root> Creating serial.Serial instance...
[2026-04-23 23:42:29,584] [INFO] <root> Created Serial<id=0x7f5225ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-23 23:42:29,585] [INFO] <root> Testing communication to SangaBoard
[2026-04-23 23:42:29,585] [INFO] <root> Running firmware checks...
[2026-04-23 23:42:29,590] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-23 23:42:29,593] [INFO] <root> Success!
[2026-04-23 23:42:29,594] [INFO] <root> Creating serial.Serial instance...
[2026-04-23 23:42:29,595] [INFO] <root> Created Serial<id=0x7f52258bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-23 23:42:29,596] [INFO] <root> Testing communication to SangaBoard
[2026-04-23 23:42:29,596] [INFO] <root> Running firmware checks...
[2026-04-23 23:42:29,602] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-23 23:42:29,603] [INFO] <root> Opened ESI connection to port None
[2026-04-23 23:42:29,603] [INFO] <root> Checking valid firmware...
[2026-04-23 23:42:29,604] [INFO] <root> Running firmware checks...
[2026-04-23 23:42:29,609] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-23 23:42:29,610] [INFO] <root> Loading modules...
[2026-04-23 23:42:29,631] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-23 23:42:29,647] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-23 23:42:29,660] [INFO] <uvicorn> Application startup complete.
[2026-04-23 23:42:29,695] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-24 01:05:02,469] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-24 01:05:03,340] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 01:05:03,341] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 01:05:03,341] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 01:05:04,838] [INFO] <uvicorn> Started server process [516]
[2026-04-24 01:05:04,839] [INFO] <uvicorn> Waiting for application startup.
[2026-04-24 01:05:04,883] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-24 01:05:05,024] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-24 01:05:05,026] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-24 01:05:05,039] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,044] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,069] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,073] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,097] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,100] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,125] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,128] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,172] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,175] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,198] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,201] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,223] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,226] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,249] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,253] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,292] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 01:05:05,295] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 01:05:05,333] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-24 01:05:05,385] [INFO] <picamera2.picamera2> Camera started
[2026-04-24 01:05:05,419] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-24 01:05:05,419] [INFO] <root> Updating ESI port settings
[2026-04-24 01:05:05,420] [INFO] <root> Opening ESI connection to port None
[2026-04-24 01:05:05,436] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-24 01:05:05,436] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 01:05:05,438] [INFO] <root> Created Serial<id=0x7f6400ae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 01:05:05,438] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 01:05:05,439] [INFO] <root> Running firmware checks...
[2026-04-24 01:05:05,444] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 01:05:05,447] [INFO] <root> Success!
[2026-04-24 01:05:05,448] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 01:05:05,449] [INFO] <root> Created Serial<id=0x7f64008c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 01:05:05,450] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 01:05:05,450] [INFO] <root> Running firmware checks...
[2026-04-24 01:05:05,456] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 01:05:05,456] [INFO] <root> Opened ESI connection to port None
[2026-04-24 01:05:05,457] [INFO] <root> Checking valid firmware...
[2026-04-24 01:05:05,457] [INFO] <root> Running firmware checks...
[2026-04-24 01:05:05,463] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 01:05:05,464] [INFO] <root> Loading modules...
[2026-04-24 01:05:05,487] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-24 01:05:05,504] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-24 01:05:05,519] [INFO] <uvicorn> Application startup complete.
[2026-04-24 01:05:05,550] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-24 02:33:31,979] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-24 02:33:32,845] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 02:33:32,846] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 02:33:32,846] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 02:33:34,332] [INFO] <uvicorn> Started server process [513]
[2026-04-24 02:33:34,334] [INFO] <uvicorn> Waiting for application startup.
[2026-04-24 02:33:34,377] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-24 02:33:34,518] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-24 02:33:34,519] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-24 02:33:34,532] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,537] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,561] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,565] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,590] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,593] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,618] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,621] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,665] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,668] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,691] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,694] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,716] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,719] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,742] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,745] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,785] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 02:33:34,791] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 02:33:34,827] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-24 02:33:34,877] [INFO] <picamera2.picamera2> Camera started
[2026-04-24 02:33:34,911] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-24 02:33:34,912] [INFO] <root> Updating ESI port settings
[2026-04-24 02:33:34,912] [INFO] <root> Opening ESI connection to port None
[2026-04-24 02:33:34,928] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-24 02:33:34,928] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 02:33:34,930] [INFO] <root> Created Serial<id=0x7f374aadd0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 02:33:34,930] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 02:33:34,931] [INFO] <root> Running firmware checks...
[2026-04-24 02:33:34,936] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 02:33:34,939] [INFO] <root> Success!
[2026-04-24 02:33:34,940] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 02:33:34,941] [INFO] <root> Created Serial<id=0x7f374a8be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 02:33:34,942] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 02:33:34,942] [INFO] <root> Running firmware checks...
[2026-04-24 02:33:34,948] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 02:33:34,949] [INFO] <root> Opened ESI connection to port None
[2026-04-24 02:33:34,949] [INFO] <root> Checking valid firmware...
[2026-04-24 02:33:34,950] [INFO] <root> Running firmware checks...
[2026-04-24 02:33:34,955] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 02:33:34,956] [INFO] <root> Loading modules...
[2026-04-24 02:33:34,979] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-24 02:33:34,995] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-24 02:33:35,009] [INFO] <uvicorn> Application startup complete.
[2026-04-24 02:33:35,050] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-24 02:33:46,536] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:46,673] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:49,135] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:49,181] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:49,990] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:50,037] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:51,176] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:51,276] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:52,137] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:52,161] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:57,052] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:57,087] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:57,647] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:33:57,683] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:34:02,823] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:34:02,888] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:34:04,678] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:34:04,688] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:34:05,198] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 02:34:05,239] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-24 17:28:01,555] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-24 17:28:02,425] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 17:28:02,426] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 17:28:02,426] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 17:28:03,921] [INFO] <uvicorn> Started server process [514]
[2026-04-24 17:28:03,922] [INFO] <uvicorn> Waiting for application startup.
[2026-04-24 17:28:03,967] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-24 17:28:04,108] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-24 17:28:04,109] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-24 17:28:04,122] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,127] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,153] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,157] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,182] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,185] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,210] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,213] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,257] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,261] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,283] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,287] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,309] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,312] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,335] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,338] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,377] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 17:28:04,381] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 17:28:04,417] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-24 17:28:04,468] [INFO] <picamera2.picamera2> Camera started
[2026-04-24 17:28:04,502] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-24 17:28:04,503] [INFO] <root> Updating ESI port settings
[2026-04-24 17:28:04,503] [INFO] <root> Opening ESI connection to port None
[2026-04-24 17:28:04,519] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-24 17:28:04,520] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 17:28:04,521] [INFO] <root> Created Serial<id=0x7f5b25ae30, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 17:28:04,522] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 17:28:04,522] [INFO] <root> Running firmware checks...
[2026-04-24 17:28:04,528] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 17:28:04,530] [INFO] <root> Success!
[2026-04-24 17:28:04,531] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 17:28:04,532] [INFO] <root> Created Serial<id=0x7f5b258c40, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 17:28:04,533] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 17:28:04,534] [INFO] <root> Running firmware checks...
[2026-04-24 17:28:04,539] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 17:28:04,540] [INFO] <root> Opened ESI connection to port None
[2026-04-24 17:28:04,540] [INFO] <root> Checking valid firmware...
[2026-04-24 17:28:04,541] [INFO] <root> Running firmware checks...
[2026-04-24 17:28:04,546] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 17:28:04,547] [INFO] <root> Loading modules...
[2026-04-24 17:28:04,570] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-24 17:28:04,586] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-24 17:28:04,599] [INFO] <uvicorn> Application startup complete.
[2026-04-24 17:28:04,634] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-24 20:07:00,020] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-24 20:07:00,891] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 20:07:00,892] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 20:07:00,893] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-24 20:07:02,384] [INFO] <uvicorn> Started server process [515]
[2026-04-24 20:07:02,385] [INFO] <uvicorn> Waiting for application startup.
[2026-04-24 20:07:02,429] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-24 20:07:02,570] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-24 20:07:02,571] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-24 20:07:02,584] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,589] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,612] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,616] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,640] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,643] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,668] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,671] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,714] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,718] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,740] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,743] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,765] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,768] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,791] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,794] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,833] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-24 20:07:02,837] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-24 20:07:02,872] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-24 20:07:02,921] [INFO] <picamera2.picamera2> Camera started
[2026-04-24 20:07:02,956] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-24 20:07:02,957] [INFO] <root> Updating ESI port settings
[2026-04-24 20:07:02,957] [INFO] <root> Opening ESI connection to port None
[2026-04-24 20:07:02,973] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-24 20:07:02,974] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 20:07:02,975] [INFO] <root> Created Serial<id=0x7f4631ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 20:07:02,975] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 20:07:02,976] [INFO] <root> Running firmware checks...
[2026-04-24 20:07:02,982] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 20:07:02,984] [INFO] <root> Success!
[2026-04-24 20:07:02,985] [INFO] <root> Creating serial.Serial instance...
[2026-04-24 20:07:02,987] [INFO] <root> Created Serial<id=0x7f46318bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-24 20:07:02,987] [INFO] <root> Testing communication to SangaBoard
[2026-04-24 20:07:02,988] [INFO] <root> Running firmware checks...
[2026-04-24 20:07:02,993] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 20:07:02,994] [INFO] <root> Opened ESI connection to port None
[2026-04-24 20:07:02,995] [INFO] <root> Checking valid firmware...
[2026-04-24 20:07:02,995] [INFO] <root> Running firmware checks...
[2026-04-24 20:07:03,000] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-24 20:07:03,001] [INFO] <root> Loading modules...
[2026-04-24 20:07:03,024] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-24 20:07:03,044] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-24 20:07:03,055] [INFO] <uvicorn> Application startup complete.
[2026-04-24 20:07:03,091] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-25 00:38:15,909] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-25 00:38:16,775] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-25 00:38:16,776] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-25 00:38:16,776] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-25 00:38:18,261] [INFO] <uvicorn> Started server process [513]
[2026-04-25 00:38:18,263] [INFO] <uvicorn> Waiting for application startup.
[2026-04-25 00:38:18,306] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-25 00:38:18,447] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-25 00:38:18,448] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-25 00:38:18,461] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,467] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,491] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,495] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,519] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,522] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,548] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,551] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,598] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,601] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,624] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,627] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,649] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,653] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,676] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,679] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,718] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-25 00:38:18,722] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-25 00:38:18,758] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-25 00:38:18,808] [INFO] <picamera2.picamera2> Camera started
[2026-04-25 00:38:18,841] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-25 00:38:18,842] [INFO] <root> Updating ESI port settings
[2026-04-25 00:38:18,843] [INFO] <root> Opening ESI connection to port None
[2026-04-25 00:38:18,859] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-25 00:38:18,860] [INFO] <root> Creating serial.Serial instance...
[2026-04-25 00:38:18,862] [INFO] <root> Created Serial<id=0x7f486ded10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-25 00:38:18,863] [INFO] <root> Testing communication to SangaBoard
[2026-04-25 00:38:18,863] [INFO] <root> Running firmware checks...
[2026-04-25 00:38:18,868] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-25 00:38:18,871] [INFO] <root> Success!
[2026-04-25 00:38:18,872] [INFO] <root> Creating serial.Serial instance...
[2026-04-25 00:38:18,874] [INFO] <root> Created Serial<id=0x7f486dcb20, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-25 00:38:18,875] [INFO] <root> Testing communication to SangaBoard
[2026-04-25 00:38:18,875] [INFO] <root> Running firmware checks...
[2026-04-25 00:38:18,880] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-25 00:38:18,881] [INFO] <root> Opened ESI connection to port None
[2026-04-25 00:38:18,882] [INFO] <root> Checking valid firmware...
[2026-04-25 00:38:18,882] [INFO] <root> Running firmware checks...
[2026-04-25 00:38:18,888] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-25 00:38:18,889] [INFO] <root> Loading modules...
[2026-04-25 00:38:18,911] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-25 00:38:18,928] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-25 00:38:18,939] [INFO] <uvicorn> Application startup complete.
[2026-04-25 00:38:18,971] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-28 11:33:35,026] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-28 11:33:35,899] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-28 11:33:35,900] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-28 11:33:35,900] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-28 11:33:37,417] [INFO] <uvicorn> Started server process [514]
[2026-04-28 11:33:37,419] [INFO] <uvicorn> Waiting for application startup.
[2026-04-28 11:33:37,462] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-28 11:33:37,603] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-28 11:33:37,604] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-28 11:33:37,617] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,622] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,647] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,651] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,675] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,678] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,704] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,707] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,751] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,754] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,777] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,781] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,803] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,806] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,830] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,833] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,873] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-28 11:33:37,876] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-28 11:33:37,913] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-28 11:33:37,964] [INFO] <picamera2.picamera2> Camera started
[2026-04-28 11:33:37,997] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-28 11:33:37,998] [INFO] <root> Updating ESI port settings
[2026-04-28 11:33:37,999] [INFO] <root> Opening ESI connection to port None
[2026-04-28 11:33:38,014] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-28 11:33:38,015] [INFO] <root> Creating serial.Serial instance...
[2026-04-28 11:33:38,016] [INFO] <root> Created Serial<id=0x7f46cfae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-28 11:33:38,017] [INFO] <root> Testing communication to SangaBoard
[2026-04-28 11:33:38,017] [INFO] <root> Running firmware checks...
[2026-04-28 11:33:38,023] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-28 11:33:38,025] [INFO] <root> Success!
[2026-04-28 11:33:38,026] [INFO] <root> Creating serial.Serial instance...
[2026-04-28 11:33:38,028] [INFO] <root> Created Serial<id=0x7f46cf8c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-28 11:33:38,028] [INFO] <root> Testing communication to SangaBoard
[2026-04-28 11:33:38,029] [INFO] <root> Running firmware checks...
[2026-04-28 11:33:38,034] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-28 11:33:38,035] [INFO] <root> Opened ESI connection to port None
[2026-04-28 11:33:38,036] [INFO] <root> Checking valid firmware...
[2026-04-28 11:33:38,036] [INFO] <root> Running firmware checks...
[2026-04-28 11:33:38,042] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-28 11:33:38,042] [INFO] <root> Loading modules...
[2026-04-28 11:33:38,063] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-28 11:33:38,078] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-28 11:33:38,091] [INFO] <uvicorn> Application startup complete.
[2026-04-28 11:33:38,136] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-29 11:54:23,013] [INFO] <uvicorn> Shutting down
[2026-04-29 11:54:23,114] [INFO] <uvicorn> Waiting for application shutdown.
[2026-04-29 11:54:23,134] [INFO] <picamera2.picamera2> Camera stopped
[2026-04-29 11:54:23,510] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-04-29 11:54:23,943] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-04-29 11:54:23,945] [INFO] <uvicorn> Application shutdown complete.
[2026-04-29 11:54:23,945] [INFO] <uvicorn> Finished server process [514]
[2026-04-29 11:54:36,398] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-29 11:54:37,247] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 11:54:37,248] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 11:54:37,249] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 11:54:38,509] [INFO] <uvicorn> Started server process [1062]
[2026-04-29 11:54:38,511] [INFO] <uvicorn> Waiting for application startup.
[2026-04-29 11:54:38,544] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-29 11:54:38,612] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-29 11:54:38,613] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-29 11:54:38,626] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,630] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,650] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,653] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,677] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,681] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,706] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,709] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,757] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,760] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,783] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,786] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,808] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,811] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,835] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,838] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,877] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 11:54:38,881] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 11:54:38,917] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-29 11:54:38,968] [INFO] <picamera2.picamera2> Camera started
[2026-04-29 11:54:38,999] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-29 11:54:39,000] [INFO] <root> Updating ESI port settings
[2026-04-29 11:54:39,000] [INFO] <root> Opening ESI connection to port None
[2026-04-29 11:54:39,017] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-29 11:54:39,017] [INFO] <root> Creating serial.Serial instance...
[2026-04-29 11:54:39,018] [INFO] <root> Created Serial<id=0x7f31f5ed70, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-29 11:54:39,019] [INFO] <root> Testing communication to SangaBoard
[2026-04-29 11:54:39,019] [INFO] <root> Running firmware checks...
[2026-04-29 11:54:39,025] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 11:54:39,027] [INFO] <root> Success!
[2026-04-29 11:54:39,028] [INFO] <root> Creating serial.Serial instance...
[2026-04-29 11:54:39,029] [INFO] <root> Created Serial<id=0x7f31f5cb80, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-29 11:54:39,030] [INFO] <root> Testing communication to SangaBoard
[2026-04-29 11:54:39,030] [INFO] <root> Running firmware checks...
[2026-04-29 11:54:39,036] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 11:54:39,037] [INFO] <root> Opened ESI connection to port None
[2026-04-29 11:54:39,037] [INFO] <root> Checking valid firmware...
[2026-04-29 11:54:39,038] [INFO] <root> Running firmware checks...
[2026-04-29 11:54:39,043] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 11:54:39,044] [INFO] <root> Loading modules...
[2026-04-29 11:54:39,066] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-29 11:54:39,082] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-29 11:54:39,092] [INFO] <uvicorn> Application startup complete.
[2026-04-29 11:54:39,125] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-29 12:31:14,570] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:31:14,633] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:31:18,978] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:31:19,004] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:31:26,694] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:31:26,715] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:32:21,447] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:32:21,469] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:32:24,188] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:32:24,200] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:32:30,497] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:32:30,510] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:42:02,064] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 12:42:02,256] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 13:53:39,556] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-29 13:53:40,430] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 13:53:40,431] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 13:53:40,432] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 13:53:41,933] [INFO] <uvicorn> Started server process [517]
[2026-04-29 13:53:41,934] [INFO] <uvicorn> Waiting for application startup.
[2026-04-29 13:53:41,978] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-29 13:53:42,119] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-29 13:53:42,120] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-29 13:53:42,133] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,139] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,163] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,166] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,191] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,194] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,220] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,223] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,266] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,270] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,293] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,297] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,319] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,322] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,345] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,348] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,387] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 13:53:42,391] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 13:53:42,426] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-29 13:53:42,477] [INFO] <picamera2.picamera2> Camera started
[2026-04-29 13:53:42,511] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-29 13:53:42,511] [INFO] <root> Updating ESI port settings
[2026-04-29 13:53:42,512] [INFO] <root> Opening ESI connection to port None
[2026-04-29 13:53:42,528] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-29 13:53:42,528] [INFO] <root> Creating serial.Serial instance...
[2026-04-29 13:53:42,530] [INFO] <root> Created Serial<id=0x7f6104ed70, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-29 13:53:42,530] [INFO] <root> Testing communication to SangaBoard
[2026-04-29 13:53:42,531] [INFO] <root> Running firmware checks...
[2026-04-29 13:53:42,536] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 13:53:42,539] [INFO] <root> Success!
[2026-04-29 13:53:42,540] [INFO] <root> Creating serial.Serial instance...
[2026-04-29 13:53:42,541] [INFO] <root> Created Serial<id=0x7f6104cb80, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-29 13:53:42,542] [INFO] <root> Testing communication to SangaBoard
[2026-04-29 13:53:42,542] [INFO] <root> Running firmware checks...
[2026-04-29 13:53:42,548] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 13:53:42,549] [INFO] <root> Opened ESI connection to port None
[2026-04-29 13:53:42,549] [INFO] <root> Checking valid firmware...
[2026-04-29 13:53:42,550] [INFO] <root> Running firmware checks...
[2026-04-29 13:53:42,555] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 13:53:42,556] [INFO] <root> Loading modules...
[2026-04-29 13:53:42,579] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-29 13:53:42,596] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-29 13:53:42,610] [INFO] <uvicorn> Application startup complete.
[2026-04-29 13:53:42,644] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-29 14:06:08,572] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 14:06:08,797] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 14:06:09,540] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 14:06:09,545] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 14:38:40,424] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-29 14:38:41,292] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 14:38:41,293] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 14:38:41,294] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-29 14:38:42,787] [INFO] <uvicorn> Started server process [514]
[2026-04-29 14:38:42,788] [INFO] <uvicorn> Waiting for application startup.
[2026-04-29 14:38:42,832] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-29 14:38:42,973] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-29 14:38:42,974] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-29 14:38:42,987] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:42,993] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,017] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,021] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,046] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,049] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,074] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,078] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,121] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,125] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,148] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,151] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,173] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,176] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,200] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,203] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,242] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-29 14:38:43,246] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-29 14:38:43,282] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-29 14:38:43,332] [INFO] <picamera2.picamera2> Camera started
[2026-04-29 14:38:43,365] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-29 14:38:43,366] [INFO] <root> Updating ESI port settings
[2026-04-29 14:38:43,366] [INFO] <root> Opening ESI connection to port None
[2026-04-29 14:38:43,382] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-29 14:38:43,383] [INFO] <root> Creating serial.Serial instance...
[2026-04-29 14:38:43,384] [INFO] <root> Created Serial<id=0x7f3bf9add0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-29 14:38:43,385] [INFO] <root> Testing communication to SangaBoard
[2026-04-29 14:38:43,385] [INFO] <root> Running firmware checks...
[2026-04-29 14:38:43,391] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 14:38:43,393] [INFO] <root> Success!
[2026-04-29 14:38:43,394] [INFO] <root> Creating serial.Serial instance...
[2026-04-29 14:38:43,395] [INFO] <root> Created Serial<id=0x7f3bf98be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-29 14:38:43,396] [INFO] <root> Testing communication to SangaBoard
[2026-04-29 14:38:43,397] [INFO] <root> Running firmware checks...
[2026-04-29 14:38:43,402] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 14:38:43,403] [INFO] <root> Opened ESI connection to port None
[2026-04-29 14:38:43,404] [INFO] <root> Checking valid firmware...
[2026-04-29 14:38:43,404] [INFO] <root> Running firmware checks...
[2026-04-29 14:38:43,409] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-29 14:38:43,410] [INFO] <root> Loading modules...
[2026-04-29 14:38:43,431] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-29 14:38:43,447] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-29 14:38:43,461] [INFO] <uvicorn> Application startup complete.
[2026-04-29 14:38:43,490] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-29 16:45:02,217] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 16:45:02,577] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 16:45:03,300] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 16:45:32,157] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-29 16:45:32,264] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-30 03:21:54,429] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-30 03:21:55,300] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 03:21:55,300] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 03:21:55,301] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 03:21:56,790] [INFO] <uvicorn> Started server process [516]
[2026-04-30 03:21:56,792] [INFO] <uvicorn> Waiting for application startup.
[2026-04-30 03:21:56,851] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-30 03:21:56,991] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-30 03:21:56,992] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-30 03:21:57,005] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,010] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,034] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,038] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,062] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,066] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,091] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,094] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,138] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,141] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,164] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,167] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,189] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,193] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,216] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,220] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,259] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 03:21:57,263] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 03:21:57,300] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-30 03:21:57,351] [INFO] <picamera2.picamera2> Camera started
[2026-04-30 03:21:57,383] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-30 03:21:57,384] [INFO] <root> Updating ESI port settings
[2026-04-30 03:21:57,385] [INFO] <root> Opening ESI connection to port None
[2026-04-30 03:21:57,400] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-30 03:21:57,401] [INFO] <root> Creating serial.Serial instance...
[2026-04-30 03:21:57,402] [INFO] <root> Created Serial<id=0x7f2ff7ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-30 03:21:57,403] [INFO] <root> Testing communication to SangaBoard
[2026-04-30 03:21:57,403] [INFO] <root> Running firmware checks...
[2026-04-30 03:21:57,409] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 03:21:57,411] [INFO] <root> Success!
[2026-04-30 03:21:57,412] [INFO] <root> Creating serial.Serial instance...
[2026-04-30 03:21:57,414] [INFO] <root> Created Serial<id=0x7f2ff78bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-30 03:21:57,415] [INFO] <root> Testing communication to SangaBoard
[2026-04-30 03:21:57,415] [INFO] <root> Running firmware checks...
[2026-04-30 03:21:57,421] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 03:21:57,421] [INFO] <root> Opened ESI connection to port None
[2026-04-30 03:21:57,422] [INFO] <root> Checking valid firmware...
[2026-04-30 03:21:57,422] [INFO] <root> Running firmware checks...
[2026-04-30 03:21:57,428] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 03:21:57,428] [INFO] <root> Loading modules...
[2026-04-30 03:21:57,449] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-30 03:21:57,465] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-30 03:21:57,479] [INFO] <uvicorn> Application startup complete.
[2026-04-30 03:21:57,515] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-30 14:54:59,165] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-30 14:55:00,038] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 14:55:00,039] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 14:55:00,040] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 14:55:01,532] [INFO] <uvicorn> Started server process [514]
[2026-04-30 14:55:01,534] [INFO] <uvicorn> Waiting for application startup.
[2026-04-30 14:55:01,577] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-30 14:55:01,718] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-30 14:55:01,719] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-30 14:55:01,732] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,737] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,762] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,766] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,790] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,793] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,818] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,821] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,864] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,868] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,890] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,894] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,915] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,919] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,941] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,945] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:01,984] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 14:55:01,987] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 14:55:02,022] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-30 14:55:02,074] [INFO] <picamera2.picamera2> Camera started
[2026-04-30 14:55:02,107] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-30 14:55:02,108] [INFO] <root> Updating ESI port settings
[2026-04-30 14:55:02,108] [INFO] <root> Opening ESI connection to port None
[2026-04-30 14:55:02,124] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-30 14:55:02,125] [INFO] <root> Creating serial.Serial instance...
[2026-04-30 14:55:02,126] [INFO] <root> Created Serial<id=0x7f5454ed40, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-30 14:55:02,127] [INFO] <root> Testing communication to SangaBoard
[2026-04-30 14:55:02,127] [INFO] <root> Running firmware checks...
[2026-04-30 14:55:02,132] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 14:55:02,135] [INFO] <root> Success!
[2026-04-30 14:55:02,136] [INFO] <root> Creating serial.Serial instance...
[2026-04-30 14:55:02,137] [INFO] <root> Created Serial<id=0x7f5454cb50, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-30 14:55:02,137] [INFO] <root> Testing communication to SangaBoard
[2026-04-30 14:55:02,138] [INFO] <root> Running firmware checks...
[2026-04-30 14:55:02,144] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 14:55:02,145] [INFO] <root> Opened ESI connection to port None
[2026-04-30 14:55:02,145] [INFO] <root> Checking valid firmware...
[2026-04-30 14:55:02,145] [INFO] <root> Running firmware checks...
[2026-04-30 14:55:02,151] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 14:55:02,152] [INFO] <root> Loading modules...
[2026-04-30 14:55:02,175] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-30 14:55:02,191] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-30 14:55:02,204] [INFO] <uvicorn> Application startup complete.
[2026-04-30 14:55:02,238] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-04-30 15:05:17,363] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-30 15:05:17,372] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-04-30 15:09:44,387] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-04-30 15:09:45,256] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 15:09:45,257] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 15:09:45,258] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-04-30 15:09:46,745] [INFO] <uvicorn> Started server process [512]
[2026-04-30 15:09:46,747] [INFO] <uvicorn> Waiting for application startup.
[2026-04-30 15:09:46,790] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-04-30 15:09:46,931] [INFO] <picamera2.picamera2> Initialization successful.
[2026-04-30 15:09:46,933] [INFO] <picamera2.picamera2> Camera now open.
[2026-04-30 15:09:46,946] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:46,951] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:46,975] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:46,978] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,002] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,006] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,031] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,034] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,078] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,081] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,104] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,107] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,129] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,132] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,155] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,159] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,198] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-04-30 15:09:47,201] [INFO] <picamera2.picamera2> Configuration successful!
[2026-04-30 15:09:47,237] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-04-30 15:09:47,291] [INFO] <picamera2.picamera2> Camera started
[2026-04-30 15:09:47,322] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-04-30 15:09:47,322] [INFO] <root> Updating ESI port settings
[2026-04-30 15:09:47,323] [INFO] <root> Opening ESI connection to port None
[2026-04-30 15:09:47,339] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-04-30 15:09:47,339] [INFO] <root> Creating serial.Serial instance...
[2026-04-30 15:09:47,340] [INFO] <root> Created Serial<id=0x7f609aada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-30 15:09:47,341] [INFO] <root> Testing communication to SangaBoard
[2026-04-30 15:09:47,341] [INFO] <root> Running firmware checks...
[2026-04-30 15:09:47,347] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 15:09:47,350] [INFO] <root> Success!
[2026-04-30 15:09:47,350] [INFO] <root> Creating serial.Serial instance...
[2026-04-30 15:09:47,352] [INFO] <root> Created Serial<id=0x7f609a8bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-04-30 15:09:47,352] [INFO] <root> Testing communication to SangaBoard
[2026-04-30 15:09:47,353] [INFO] <root> Running firmware checks...
[2026-04-30 15:09:47,358] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 15:09:47,359] [INFO] <root> Opened ESI connection to port None
[2026-04-30 15:09:47,359] [INFO] <root> Checking valid firmware...
[2026-04-30 15:09:47,360] [INFO] <root> Running firmware checks...
[2026-04-30 15:09:47,365] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-04-30 15:09:47,366] [INFO] <root> Loading modules...
[2026-04-30 15:09:47,389] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-04-30 15:09:47,405] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-04-30 15:09:47,418] [INFO] <uvicorn> Application startup complete.
[2026-04-30 15:09:47,446] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-01 04:57:35,148] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-01 04:57:35,177] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-01 07:36:47,365] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-01 07:36:47,492] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-01 07:53:20,450] [INFO] <labthings_fastapi.things.smart_scan> Finding a list of all overlapping images
[2026-05-01 07:53:20,655] [INFO] <labthings_fastapi.things.smart_scan> Starting correlation of overlapping image pairs.
[2026-05-01 07:53:38,594] [INFO] <labthings_fastapi.things.smart_scan> Correlation complete. Pairs loaded from cache: 3, pairs calculated: 4
[2026-05-01 07:53:38,606] [INFO] <labthings_fastapi.things.smart_scan> Getting all the image info ready to stitch
[2026-05-01 07:53:38,613] [INFO] <labthings_fastapi.things.smart_scan> Plotting the inputs to stitching
[2026-05-01 07:53:43,479] [INFO] <labthings_fastapi.things.smart_scan> Finding the optimal threshold
[2026-05-01 07:53:43,486] [INFO] <labthings_fastapi.things.smart_scan> Starting with 7 possible peak quality thresholds and 7 possible stage discrepancy thresholds
[2026-05-01 07:53:43,487] [INFO] <labthings_fastapi.things.smart_scan> After filtering and resampling 7 peak quality thresholds and 7 stage discrepancy thresholds will be trialed for fit quality.
[2026-05-01 07:53:49,353] [INFO] <labthings_fastapi.things.smart_scan> Using 6 of the 7 pairs for final optimisation
[2026-05-01 07:53:49,354] [INFO] <labthings_fastapi.things.smart_scan> Starting csm is [[ 0.033 , -4.9262], [ 4.938 ,  0.0053]]
[2026-05-01 07:53:49,356] [INFO] <labthings_fastapi.things.smart_scan> A better starting estimate of the csm is [[ 0.0329, -5.0151], [ 5.0115, -0.0088]].
[2026-05-01 07:53:51,404] [INFO] <labthings_fastapi.things.smart_scan> Final image will be exported with size (1901, 3431) pixels
[2026-05-01 07:53:51,421] [INFO] <labthings_fastapi.things.smart_scan> Exporting stitched image. Depending on the size of your scan, this may take a while.
[2026-05-01 07:54:02,608] [INFO] <labthings_fastapi.things.smart_scan> Stitching complete
[2026-05-01 17:47:45,443] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-01 17:47:46,354] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 17:47:46,355] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 17:47:46,356] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 17:47:47,904] [INFO] <uvicorn> Started server process [512]
[2026-05-01 17:47:47,905] [INFO] <uvicorn> Waiting for application startup.
[2026-05-01 17:47:47,950] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-01 17:47:48,094] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-01 17:47:48,095] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-01 17:47:48,109] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,114] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,139] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,143] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,167] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,171] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,197] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,200] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,244] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,248] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,271] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,275] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,297] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,301] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,324] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,328] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,367] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 17:47:48,371] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 17:47:48,408] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-01 17:47:48,460] [INFO] <picamera2.picamera2> Camera started
[2026-05-01 17:47:48,494] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-01 17:47:48,495] [INFO] <root> Updating ESI port settings
[2026-05-01 17:47:48,496] [INFO] <root> Opening ESI connection to port None
[2026-05-01 17:47:48,511] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-01 17:47:48,512] [INFO] <root> Creating serial.Serial instance...
[2026-05-01 17:47:48,513] [INFO] <root> Created Serial<id=0x7f4e36add0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-01 17:47:48,514] [INFO] <root> Testing communication to SangaBoard
[2026-05-01 17:47:48,514] [INFO] <root> Running firmware checks...
[2026-05-01 17:47:48,519] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 17:47:48,522] [INFO] <root> Success!
[2026-05-01 17:47:48,523] [INFO] <root> Creating serial.Serial instance...
[2026-05-01 17:47:48,524] [INFO] <root> Created Serial<id=0x7f4e368be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-01 17:47:48,525] [INFO] <root> Testing communication to SangaBoard
[2026-05-01 17:47:48,526] [INFO] <root> Running firmware checks...
[2026-05-01 17:47:48,531] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 17:47:48,532] [INFO] <root> Opened ESI connection to port None
[2026-05-01 17:47:48,532] [INFO] <root> Checking valid firmware...
[2026-05-01 17:47:48,533] [INFO] <root> Running firmware checks...
[2026-05-01 17:47:48,538] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 17:47:48,539] [INFO] <root> Loading modules...
[2026-05-01 17:47:48,559] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-01 17:47:48,575] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-01 17:47:48,587] [INFO] <uvicorn> Application startup complete.
[2026-05-01 17:47:48,629] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-01 18:43:05,934] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-01 18:43:06,817] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 18:43:06,818] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 18:43:06,818] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 18:43:08,323] [INFO] <uvicorn> Started server process [512]
[2026-05-01 18:43:08,324] [INFO] <uvicorn> Waiting for application startup.
[2026-05-01 18:43:08,368] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-01 18:43:08,511] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-01 18:43:08,512] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-01 18:43:08,525] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,531] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,555] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,559] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,583] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,588] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,613] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,616] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,659] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,663] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,685] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,690] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,712] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,716] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,739] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,743] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,786] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 18:43:08,790] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 18:43:08,827] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-01 18:43:08,877] [INFO] <picamera2.picamera2> Camera started
[2026-05-01 18:43:08,911] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-01 18:43:08,911] [INFO] <root> Updating ESI port settings
[2026-05-01 18:43:08,912] [INFO] <root> Opening ESI connection to port None
[2026-05-01 18:43:08,929] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-01 18:43:08,929] [INFO] <root> Creating serial.Serial instance...
[2026-05-01 18:43:08,930] [INFO] <root> Created Serial<id=0x7f612aadd0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-01 18:43:08,931] [INFO] <root> Testing communication to SangaBoard
[2026-05-01 18:43:08,931] [INFO] <root> Running firmware checks...
[2026-05-01 18:43:08,937] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 18:43:08,940] [INFO] <root> Success!
[2026-05-01 18:43:08,941] [INFO] <root> Creating serial.Serial instance...
[2026-05-01 18:43:08,942] [INFO] <root> Created Serial<id=0x7f612a8be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-01 18:43:08,943] [INFO] <root> Testing communication to SangaBoard
[2026-05-01 18:43:08,943] [INFO] <root> Running firmware checks...
[2026-05-01 18:43:08,949] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 18:43:08,950] [INFO] <root> Opened ESI connection to port None
[2026-05-01 18:43:08,950] [INFO] <root> Checking valid firmware...
[2026-05-01 18:43:08,951] [INFO] <root> Running firmware checks...
[2026-05-01 18:43:08,956] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 18:43:08,957] [INFO] <root> Loading modules...
[2026-05-01 18:43:08,980] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-01 18:43:08,999] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-01 18:43:09,009] [INFO] <uvicorn> Application startup complete.
[2026-05-01 18:43:09,041] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-01 19:06:55,664] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-01 19:06:56,540] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 19:06:56,541] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 19:06:56,541] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-01 19:06:58,036] [INFO] <uvicorn> Started server process [515]
[2026-05-01 19:06:58,038] [INFO] <uvicorn> Waiting for application startup.
[2026-05-01 19:06:58,121] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-01 19:06:58,262] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-01 19:06:58,263] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-01 19:06:58,276] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,281] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,305] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,308] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,332] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,335] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,360] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,364] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,407] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,410] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,433] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,436] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,458] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,462] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,485] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,488] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,527] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-01 19:06:58,531] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-01 19:06:58,567] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-01 19:06:58,618] [INFO] <picamera2.picamera2> Camera started
[2026-05-01 19:06:58,652] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-01 19:06:58,653] [INFO] <root> Updating ESI port settings
[2026-05-01 19:06:58,653] [INFO] <root> Opening ESI connection to port None
[2026-05-01 19:06:58,669] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-01 19:06:58,670] [INFO] <root> Creating serial.Serial instance...
[2026-05-01 19:06:58,671] [INFO] <root> Created Serial<id=0x7f5bf4ed10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-01 19:06:58,672] [INFO] <root> Testing communication to SangaBoard
[2026-05-01 19:06:58,672] [INFO] <root> Running firmware checks...
[2026-05-01 19:06:58,678] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 19:06:58,680] [INFO] <root> Success!
[2026-05-01 19:06:58,681] [INFO] <root> Creating serial.Serial instance...
[2026-05-01 19:06:58,683] [INFO] <root> Created Serial<id=0x7f5bf4cb20, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-01 19:06:58,684] [INFO] <root> Testing communication to SangaBoard
[2026-05-01 19:06:58,684] [INFO] <root> Running firmware checks...
[2026-05-01 19:06:58,690] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 19:06:58,691] [INFO] <root> Opened ESI connection to port None
[2026-05-01 19:06:58,691] [INFO] <root> Checking valid firmware...
[2026-05-01 19:06:58,691] [INFO] <root> Running firmware checks...
[2026-05-01 19:06:58,697] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-01 19:06:58,698] [INFO] <root> Loading modules...
[2026-05-01 19:06:58,720] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-01 19:06:58,741] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-01 19:06:58,751] [INFO] <uvicorn> Application startup complete.
[2026-05-01 19:06:58,781] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 14:01:49,243] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-02 14:01:50,154] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:01:50,155] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:01:50,156] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:01:51,690] [INFO] <uvicorn> Started server process [513]
[2026-05-02 14:01:51,691] [INFO] <uvicorn> Waiting for application startup.
[2026-05-02 14:01:51,735] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-02 14:01:51,878] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-02 14:01:51,879] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-02 14:01:51,893] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:51,898] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:51,923] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:51,927] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:51,952] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:51,955] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:51,981] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:51,984] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:52,028] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:52,032] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:52,055] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:52,059] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:52,081] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:52,084] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:52,108] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:52,111] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:52,151] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:01:52,155] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:01:52,191] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-02 14:01:52,243] [INFO] <picamera2.picamera2> Camera started
[2026-05-02 14:01:52,277] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-02 14:01:52,278] [INFO] <root> Updating ESI port settings
[2026-05-02 14:01:52,278] [INFO] <root> Opening ESI connection to port None
[2026-05-02 14:01:52,296] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-02 14:01:52,296] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:01:52,298] [INFO] <root> Created Serial<id=0x7f4b91add0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:01:52,299] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:01:52,299] [INFO] <root> Running firmware checks...
[2026-05-02 14:01:52,305] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:01:52,308] [INFO] <root> Success!
[2026-05-02 14:01:52,309] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:01:52,310] [INFO] <root> Created Serial<id=0x7f4b918be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:01:52,311] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:01:52,311] [INFO] <root> Running firmware checks...
[2026-05-02 14:01:52,317] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:01:52,318] [INFO] <root> Opened ESI connection to port None
[2026-05-02 14:01:52,318] [INFO] <root> Checking valid firmware...
[2026-05-02 14:01:52,319] [INFO] <root> Running firmware checks...
[2026-05-02 14:01:52,324] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:01:52,325] [INFO] <root> Loading modules...
[2026-05-02 14:01:52,347] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-02 14:01:52,363] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-02 14:01:52,374] [INFO] <uvicorn> Application startup complete.
[2026-05-02 14:01:52,403] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 14:07:42,931] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-02 14:07:43,806] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:07:43,807] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:07:43,808] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:07:45,301] [INFO] <uvicorn> Started server process [514]
[2026-05-02 14:07:45,303] [INFO] <uvicorn> Waiting for application startup.
[2026-05-02 14:07:45,346] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-02 14:07:45,487] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-02 14:07:45,488] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-02 14:07:45,502] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,507] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,533] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,537] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,561] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,565] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,590] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,593] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,636] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,640] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,662] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,665] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,687] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,690] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,713] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,716] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,755] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:07:45,759] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:07:45,793] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-02 14:07:45,843] [INFO] <picamera2.picamera2> Camera started
[2026-05-02 14:07:45,878] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-02 14:07:45,879] [INFO] <root> Updating ESI port settings
[2026-05-02 14:07:45,879] [INFO] <root> Opening ESI connection to port None
[2026-05-02 14:07:45,895] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-02 14:07:45,895] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:07:45,897] [INFO] <root> Created Serial<id=0x7f405cadd0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:07:45,897] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:07:45,898] [INFO] <root> Running firmware checks...
[2026-05-02 14:07:45,903] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:07:45,906] [INFO] <root> Success!
[2026-05-02 14:07:45,907] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:07:45,908] [INFO] <root> Created Serial<id=0x7f405c8be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:07:45,909] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:07:45,910] [INFO] <root> Running firmware checks...
[2026-05-02 14:07:45,915] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:07:45,916] [INFO] <root> Opened ESI connection to port None
[2026-05-02 14:07:45,916] [INFO] <root> Checking valid firmware...
[2026-05-02 14:07:45,917] [INFO] <root> Running firmware checks...
[2026-05-02 14:07:45,922] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:07:45,924] [INFO] <root> Loading modules...
[2026-05-02 14:07:45,946] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-02 14:07:45,963] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-02 14:07:45,975] [INFO] <uvicorn> Application startup complete.
[2026-05-02 14:07:46,009] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 14:17:29,495] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-02 14:17:30,371] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:17:30,372] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:17:30,373] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:17:31,864] [INFO] <uvicorn> Started server process [512]
[2026-05-02 14:17:31,867] [INFO] <uvicorn> Waiting for application startup.
[2026-05-02 14:17:31,911] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-02 14:17:32,052] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-02 14:17:32,053] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-02 14:17:32,066] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,071] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,095] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,099] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,123] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,127] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,152] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,155] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,199] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,202] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,225] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,228] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,255] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,259] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,283] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,287] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,326] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:17:32,330] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:17:32,366] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-02 14:17:32,417] [INFO] <picamera2.picamera2> Camera started
[2026-05-02 14:17:32,452] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-02 14:17:32,453] [INFO] <root> Updating ESI port settings
[2026-05-02 14:17:32,453] [INFO] <root> Opening ESI connection to port None
[2026-05-02 14:17:32,470] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-02 14:17:32,470] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:17:32,472] [INFO] <root> Created Serial<id=0x7f69aeed70, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:17:32,472] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:17:32,473] [INFO] <root> Running firmware checks...
[2026-05-02 14:17:32,478] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:17:32,480] [INFO] <root> Success!
[2026-05-02 14:17:32,481] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:17:32,483] [INFO] <root> Created Serial<id=0x7f69aecb80, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:17:32,484] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:17:32,484] [INFO] <root> Running firmware checks...
[2026-05-02 14:17:32,490] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:17:32,491] [INFO] <root> Opened ESI connection to port None
[2026-05-02 14:17:32,491] [INFO] <root> Checking valid firmware...
[2026-05-02 14:17:32,492] [INFO] <root> Running firmware checks...
[2026-05-02 14:17:32,497] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:17:32,499] [INFO] <root> Loading modules...
[2026-05-02 14:17:32,521] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-02 14:17:32,537] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-02 14:17:32,549] [INFO] <uvicorn> Application startup complete.
[2026-05-02 14:17:32,583] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 14:38:50,000] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-02 14:38:50,898] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:38:50,899] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:38:50,899] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:38:52,393] [INFO] <uvicorn> Started server process [515]
[2026-05-02 14:38:52,394] [INFO] <uvicorn> Waiting for application startup.
[2026-05-02 14:38:52,438] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-02 14:38:52,579] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-02 14:38:52,580] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-02 14:38:52,593] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,598] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,622] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,626] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,650] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,653] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,678] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,682] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,725] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,728] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,751] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,754] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,776] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,779] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,802] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,805] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,845] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:38:52,848] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:38:52,886] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-02 14:38:52,939] [INFO] <picamera2.picamera2> Camera started
[2026-05-02 14:38:52,972] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-02 14:38:52,973] [INFO] <root> Updating ESI port settings
[2026-05-02 14:38:52,973] [INFO] <root> Opening ESI connection to port None
[2026-05-02 14:38:52,989] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-02 14:38:52,990] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:38:52,991] [INFO] <root> Created Serial<id=0x7f4f0aae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:38:52,992] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:38:52,992] [INFO] <root> Running firmware checks...
[2026-05-02 14:38:52,998] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:38:53,000] [INFO] <root> Success!
[2026-05-02 14:38:53,001] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:38:53,003] [INFO] <root> Created Serial<id=0x7f4f0a8c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:38:53,003] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:38:53,004] [INFO] <root> Running firmware checks...
[2026-05-02 14:38:53,009] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:38:53,010] [INFO] <root> Opened ESI connection to port None
[2026-05-02 14:38:53,011] [INFO] <root> Checking valid firmware...
[2026-05-02 14:38:53,011] [INFO] <root> Running firmware checks...
[2026-05-02 14:38:53,017] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:38:53,018] [INFO] <root> Loading modules...
[2026-05-02 14:38:53,038] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-02 14:38:53,054] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-02 14:38:53,067] [INFO] <uvicorn> Application startup complete.
[2026-05-02 14:38:53,096] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 14:46:26,565] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-02 14:46:27,440] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:46:27,441] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:46:27,442] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:46:28,937] [INFO] <uvicorn> Started server process [513]
[2026-05-02 14:46:28,938] [INFO] <uvicorn> Waiting for application startup.
[2026-05-02 14:46:28,981] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-02 14:46:29,123] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-02 14:46:29,124] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-02 14:46:29,137] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,143] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,167] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,170] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,194] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,198] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,223] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,226] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,270] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,273] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,296] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,299] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,322] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,325] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,348] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,351] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,391] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:46:29,394] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:46:29,432] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-02 14:46:29,484] [INFO] <picamera2.picamera2> Camera started
[2026-05-02 14:46:29,519] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-02 14:46:29,520] [INFO] <root> Updating ESI port settings
[2026-05-02 14:46:29,520] [INFO] <root> Opening ESI connection to port None
[2026-05-02 14:46:29,536] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-02 14:46:29,536] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:46:29,538] [INFO] <root> Created Serial<id=0x7f2e03ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:46:29,538] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:46:29,538] [INFO] <root> Running firmware checks...
[2026-05-02 14:46:29,544] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:46:29,546] [INFO] <root> Success!
[2026-05-02 14:46:29,547] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:46:29,549] [INFO] <root> Created Serial<id=0x7f2e038bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:46:29,550] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:46:29,550] [INFO] <root> Running firmware checks...
[2026-05-02 14:46:29,556] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:46:29,557] [INFO] <root> Opened ESI connection to port None
[2026-05-02 14:46:29,557] [INFO] <root> Checking valid firmware...
[2026-05-02 14:46:29,557] [INFO] <root> Running firmware checks...
[2026-05-02 14:46:29,563] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:46:29,564] [INFO] <root> Loading modules...
[2026-05-02 14:46:29,586] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-02 14:46:29,603] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-02 14:46:29,614] [INFO] <uvicorn> Application startup complete.
[2026-05-02 14:46:29,666] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 14:51:24,942] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-02 14:51:25,819] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:51:25,820] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:51:25,820] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-02 14:51:27,320] [INFO] <uvicorn> Started server process [513]
[2026-05-02 14:51:27,321] [INFO] <uvicorn> Waiting for application startup.
[2026-05-02 14:51:27,364] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-02 14:51:27,505] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-02 14:51:27,507] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-02 14:51:27,520] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,526] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,550] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,553] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,577] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,581] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,606] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,609] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,652] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,656] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,678] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,682] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,704] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,707] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,730] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,733] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,772] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-02 14:51:27,776] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-02 14:51:27,811] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-02 14:51:27,861] [INFO] <picamera2.picamera2> Camera started
[2026-05-02 14:51:27,895] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-02 14:51:27,896] [INFO] <root> Updating ESI port settings
[2026-05-02 14:51:27,896] [INFO] <root> Opening ESI connection to port None
[2026-05-02 14:51:27,913] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-02 14:51:27,913] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:51:27,915] [INFO] <root> Created Serial<id=0x7f2d9eada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:51:27,915] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:51:27,916] [INFO] <root> Running firmware checks...
[2026-05-02 14:51:27,921] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:51:27,924] [INFO] <root> Success!
[2026-05-02 14:51:27,925] [INFO] <root> Creating serial.Serial instance...
[2026-05-02 14:51:27,926] [INFO] <root> Created Serial<id=0x7f2d9e8bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-02 14:51:27,927] [INFO] <root> Testing communication to SangaBoard
[2026-05-02 14:51:27,928] [INFO] <root> Running firmware checks...
[2026-05-02 14:51:27,933] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:51:27,935] [INFO] <root> Opened ESI connection to port None
[2026-05-02 14:51:27,936] [INFO] <root> Checking valid firmware...
[2026-05-02 14:51:27,936] [INFO] <root> Running firmware checks...
[2026-05-02 14:51:27,943] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-02 14:51:27,944] [INFO] <root> Loading modules...
[2026-05-02 14:51:27,965] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-02 14:51:27,981] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-02 14:51:27,993] [INFO] <uvicorn> Application startup complete.
[2026-05-02 14:51:28,027] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-02 19:23:05,905] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-02 19:23:05,932] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-03 16:56:11,385] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-03 16:56:12,269] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 16:56:12,270] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 16:56:12,270] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 16:56:13,772] [INFO] <uvicorn> Started server process [514]
[2026-05-03 16:56:13,773] [INFO] <uvicorn> Waiting for application startup.
[2026-05-03 16:56:13,817] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-03 16:56:13,958] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-03 16:56:13,959] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-03 16:56:13,972] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:13,977] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,002] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,006] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,031] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,034] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,059] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,063] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,106] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,109] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,132] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,136] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,158] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,161] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,184] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,187] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,228] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 16:56:14,231] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 16:56:14,267] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-03 16:56:14,318] [INFO] <picamera2.picamera2> Camera started
[2026-05-03 16:56:14,353] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-03 16:56:14,354] [INFO] <root> Updating ESI port settings
[2026-05-03 16:56:14,354] [INFO] <root> Opening ESI connection to port None
[2026-05-03 16:56:14,370] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-03 16:56:14,371] [INFO] <root> Creating serial.Serial instance...
[2026-05-03 16:56:14,373] [INFO] <root> Created Serial<id=0x7f6345ae30, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-03 16:56:14,373] [INFO] <root> Testing communication to SangaBoard
[2026-05-03 16:56:14,374] [INFO] <root> Running firmware checks...
[2026-05-03 16:56:14,380] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 16:56:14,383] [INFO] <root> Success!
[2026-05-03 16:56:14,384] [INFO] <root> Creating serial.Serial instance...
[2026-05-03 16:56:14,386] [INFO] <root> Created Serial<id=0x7f63458c40, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-03 16:56:14,386] [INFO] <root> Testing communication to SangaBoard
[2026-05-03 16:56:14,387] [INFO] <root> Running firmware checks...
[2026-05-03 16:56:14,392] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 16:56:14,393] [INFO] <root> Opened ESI connection to port None
[2026-05-03 16:56:14,393] [INFO] <root> Checking valid firmware...
[2026-05-03 16:56:14,394] [INFO] <root> Running firmware checks...
[2026-05-03 16:56:14,400] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 16:56:14,401] [INFO] <root> Loading modules...
[2026-05-03 16:56:14,422] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-03 16:56:14,439] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-03 16:56:14,452] [INFO] <uvicorn> Application startup complete.
[2026-05-03 16:56:14,481] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-03 17:00:05,603] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-03 17:00:06,480] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 17:00:06,481] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 17:00:06,482] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 17:00:07,976] [INFO] <uvicorn> Started server process [515]
[2026-05-03 17:00:07,978] [INFO] <uvicorn> Waiting for application startup.
[2026-05-03 17:00:08,021] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-03 17:00:08,183] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-03 17:00:08,184] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-03 17:00:08,198] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,202] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,226] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,230] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,254] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,257] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,282] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,286] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,329] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,333] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,355] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,359] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,381] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,384] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,407] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,410] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,449] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:00:08,453] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:00:08,490] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-03 17:00:08,541] [INFO] <picamera2.picamera2> Camera started
[2026-05-03 17:00:08,577] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-03 17:00:08,578] [INFO] <root> Updating ESI port settings
[2026-05-03 17:00:08,579] [INFO] <root> Opening ESI connection to port None
[2026-05-03 17:00:08,594] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-03 17:00:08,595] [INFO] <root> Creating serial.Serial instance...
[2026-05-03 17:00:08,596] [INFO] <root> Created Serial<id=0x7f60b7ae30, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-03 17:00:08,597] [INFO] <root> Testing communication to SangaBoard
[2026-05-03 17:00:08,597] [INFO] <root> Running firmware checks...
[2026-05-03 17:00:08,603] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 17:00:08,605] [INFO] <root> Success!
[2026-05-03 17:00:08,606] [INFO] <root> Creating serial.Serial instance...
[2026-05-03 17:00:08,608] [INFO] <root> Created Serial<id=0x7f60b78c40, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-03 17:00:08,608] [INFO] <root> Testing communication to SangaBoard
[2026-05-03 17:00:08,609] [INFO] <root> Running firmware checks...
[2026-05-03 17:00:08,614] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 17:00:08,615] [INFO] <root> Opened ESI connection to port None
[2026-05-03 17:00:08,616] [INFO] <root> Checking valid firmware...
[2026-05-03 17:00:08,616] [INFO] <root> Running firmware checks...
[2026-05-03 17:00:08,622] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 17:00:08,624] [INFO] <root> Loading modules...
[2026-05-03 17:00:08,645] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-03 17:00:08,662] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-03 17:00:08,672] [INFO] <uvicorn> Application startup complete.
[2026-05-03 17:00:08,715] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-03 17:59:19,334] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-03 17:59:20,212] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 17:59:20,213] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 17:59:20,214] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-03 17:59:21,709] [INFO] <uvicorn> Started server process [513]
[2026-05-03 17:59:21,711] [INFO] <uvicorn> Waiting for application startup.
[2026-05-03 17:59:21,754] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-03 17:59:21,895] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-03 17:59:21,896] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-03 17:59:21,909] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:21,914] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:21,939] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:21,943] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:21,967] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:21,970] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:21,996] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:21,999] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:22,043] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:22,046] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:22,069] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:22,073] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:22,095] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:22,098] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:22,122] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:22,125] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:22,165] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-03 17:59:22,168] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-03 17:59:22,206] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-03 17:59:22,257] [INFO] <picamera2.picamera2> Camera started
[2026-05-03 17:59:22,291] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-03 17:59:22,292] [INFO] <root> Updating ESI port settings
[2026-05-03 17:59:22,292] [INFO] <root> Opening ESI connection to port None
[2026-05-03 17:59:22,309] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-03 17:59:22,309] [INFO] <root> Creating serial.Serial instance...
[2026-05-03 17:59:22,311] [INFO] <root> Created Serial<id=0x7f3961ae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-03 17:59:22,311] [INFO] <root> Testing communication to SangaBoard
[2026-05-03 17:59:22,311] [INFO] <root> Running firmware checks...
[2026-05-03 17:59:22,317] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 17:59:22,319] [INFO] <root> Success!
[2026-05-03 17:59:22,320] [INFO] <root> Creating serial.Serial instance...
[2026-05-03 17:59:22,322] [INFO] <root> Created Serial<id=0x7f39618c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-03 17:59:22,323] [INFO] <root> Testing communication to SangaBoard
[2026-05-03 17:59:22,323] [INFO] <root> Running firmware checks...
[2026-05-03 17:59:22,329] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 17:59:22,330] [INFO] <root> Opened ESI connection to port None
[2026-05-03 17:59:22,330] [INFO] <root> Checking valid firmware...
[2026-05-03 17:59:22,331] [INFO] <root> Running firmware checks...
[2026-05-03 17:59:22,336] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-03 17:59:22,338] [INFO] <root> Loading modules...
[2026-05-03 17:59:22,359] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-03 17:59:22,375] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-03 17:59:22,386] [INFO] <uvicorn> Application startup complete.
[2026-05-03 17:59:22,414] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-04 02:10:51,707] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-04 02:10:52,586] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-04 02:10:52,587] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-04 02:10:52,587] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-04 02:10:54,099] [INFO] <uvicorn> Started server process [516]
[2026-05-04 02:10:54,100] [INFO] <uvicorn> Waiting for application startup.
[2026-05-04 02:10:54,144] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-04 02:10:54,285] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-04 02:10:54,286] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-04 02:10:54,299] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,303] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 02:10:54,329] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,333] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 02:10:54,357] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,360] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 02:10:54,385] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,389] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 02:10:54,432] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,435] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 02:10:54,458] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,461] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 02:10:54,482] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 02:10:54,486] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 08:14:07,765] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 08:14:07,769] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 08:14:07,808] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 08:14:07,811] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 08:14:07,848] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-04 08:14:07,897] [INFO] <picamera2.picamera2> Camera started
[2026-05-04 08:14:07,935] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-04 08:14:07,936] [INFO] <root> Updating ESI port settings
[2026-05-04 08:14:07,936] [INFO] <root> Opening ESI connection to port None
[2026-05-04 08:14:07,951] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-04 08:14:07,952] [INFO] <root> Creating serial.Serial instance...
[2026-05-04 08:14:07,953] [INFO] <root> Created Serial<id=0x7f3060ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-04 08:14:07,954] [INFO] <root> Testing communication to SangaBoard
[2026-05-04 08:14:07,954] [INFO] <root> Running firmware checks...
[2026-05-04 08:14:07,960] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-04 08:14:07,963] [INFO] <root> Success!
[2026-05-04 08:14:07,964] [INFO] <root> Creating serial.Serial instance...
[2026-05-04 08:14:07,966] [INFO] <root> Created Serial<id=0x7f30608bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-04 08:14:07,966] [INFO] <root> Testing communication to SangaBoard
[2026-05-04 08:14:07,967] [INFO] <root> Running firmware checks...
[2026-05-04 08:14:07,972] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-04 08:14:07,973] [INFO] <root> Opened ESI connection to port None
[2026-05-04 08:14:07,973] [INFO] <root> Checking valid firmware...
[2026-05-04 08:14:07,974] [INFO] <root> Running firmware checks...
[2026-05-04 08:14:07,979] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-04 08:14:07,980] [INFO] <root> Loading modules...
[2026-05-04 08:14:08,001] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-04 08:14:08,019] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-04 08:14:08,030] [INFO] <uvicorn> Application startup complete.
[2026-05-04 08:14:08,059] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-04 09:04:44,618] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-04 09:04:45,490] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-04 09:04:45,491] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-04 09:04:45,492] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-04 09:04:46,980] [INFO] <uvicorn> Started server process [517]
[2026-05-04 09:04:46,982] [INFO] <uvicorn> Waiting for application startup.
[2026-05-04 09:04:47,025] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-04 09:04:47,166] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-04 09:04:47,167] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-04 09:04:47,180] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,185] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,210] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,214] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,238] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,242] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,267] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,270] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,314] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,317] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,340] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,343] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,365] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,369] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,392] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,395] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,434] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-04 09:04:47,438] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-04 09:04:47,473] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-04 09:04:47,521] [INFO] <picamera2.picamera2> Camera started
[2026-05-04 09:04:47,554] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-04 09:04:47,555] [INFO] <root> Updating ESI port settings
[2026-05-04 09:04:47,556] [INFO] <root> Opening ESI connection to port None
[2026-05-04 09:04:47,571] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-04 09:04:47,572] [INFO] <root> Creating serial.Serial instance...
[2026-05-04 09:04:47,573] [INFO] <root> Created Serial<id=0x7f2e26ae30, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-04 09:04:47,574] [INFO] <root> Testing communication to SangaBoard
[2026-05-04 09:04:47,574] [INFO] <root> Running firmware checks...
[2026-05-04 09:04:47,580] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-04 09:04:47,582] [INFO] <root> Success!
[2026-05-04 09:04:47,583] [INFO] <root> Creating serial.Serial instance...
[2026-05-04 09:04:47,586] [INFO] <root> Created Serial<id=0x7f2e268c40, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-04 09:04:47,586] [INFO] <root> Testing communication to SangaBoard
[2026-05-04 09:04:47,587] [INFO] <root> Running firmware checks...
[2026-05-04 09:04:47,592] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-04 09:04:47,593] [INFO] <root> Opened ESI connection to port None
[2026-05-04 09:04:47,594] [INFO] <root> Checking valid firmware...
[2026-05-04 09:04:47,594] [INFO] <root> Running firmware checks...
[2026-05-04 09:04:47,600] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-04 09:04:47,601] [INFO] <root> Loading modules...
[2026-05-04 09:04:47,628] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-04 09:04:47,645] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-04 09:04:47,655] [INFO] <uvicorn> Application startup complete.
[2026-05-04 09:04:47,685] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 01:36:39,016] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 01:36:39,893] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 01:36:39,894] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 01:36:39,894] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 01:36:41,420] [INFO] <uvicorn> Started server process [515]
[2026-05-05 01:36:41,421] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 01:36:41,465] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 01:36:41,606] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 01:36:41,607] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 01:36:41,620] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,625] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,649] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,653] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,677] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,680] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,705] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,708] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,752] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,755] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,777] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,781] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,803] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,806] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,829] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,832] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,872] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 01:36:41,875] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 01:36:41,912] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 01:36:41,963] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 01:36:41,996] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 01:36:41,997] [INFO] <root> Updating ESI port settings
[2026-05-05 01:36:41,998] [INFO] <root> Opening ESI connection to port None
[2026-05-05 01:36:42,013] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 01:36:42,014] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 01:36:42,015] [INFO] <root> Created Serial<id=0x7f2e6eadd0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 01:36:42,016] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 01:36:42,016] [INFO] <root> Running firmware checks...
[2026-05-05 01:36:42,022] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 01:36:42,024] [INFO] <root> Success!
[2026-05-05 01:36:42,025] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 01:36:42,026] [INFO] <root> Created Serial<id=0x7f2e6e8be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 01:36:42,027] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 01:36:42,028] [INFO] <root> Running firmware checks...
[2026-05-05 01:36:42,033] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 01:36:42,034] [INFO] <root> Opened ESI connection to port None
[2026-05-05 01:36:42,035] [INFO] <root> Checking valid firmware...
[2026-05-05 01:36:42,035] [INFO] <root> Running firmware checks...
[2026-05-05 01:36:42,040] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 01:36:42,041] [INFO] <root> Loading modules...
[2026-05-05 01:36:42,063] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 01:36:42,079] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 01:36:42,092] [INFO] <uvicorn> Application startup complete.
[2026-05-05 01:36:42,131] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 02:04:59,008] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 02:04:59,886] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 02:04:59,887] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 02:04:59,888] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 02:05:01,386] [INFO] <uvicorn> Started server process [517]
[2026-05-05 02:05:01,388] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 02:05:01,431] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 02:05:01,572] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 02:05:01,573] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 02:05:01,586] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,591] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,615] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,619] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,644] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,647] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,673] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,676] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,720] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,724] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,746] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,750] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,772] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,776] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,799] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,802] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,841] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 02:05:01,845] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 02:05:01,882] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 02:05:01,933] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 02:05:01,967] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 02:05:01,968] [INFO] <root> Updating ESI port settings
[2026-05-05 02:05:01,968] [INFO] <root> Opening ESI connection to port None
[2026-05-05 02:05:01,984] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 02:05:01,985] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 02:05:01,986] [INFO] <root> Created Serial<id=0x7f4316ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 02:05:01,987] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 02:05:01,987] [INFO] <root> Running firmware checks...
[2026-05-05 02:05:01,993] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 02:05:01,996] [INFO] <root> Success!
[2026-05-05 02:05:01,997] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 02:05:01,998] [INFO] <root> Created Serial<id=0x7f43168bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 02:05:01,999] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 02:05:02,000] [INFO] <root> Running firmware checks...
[2026-05-05 02:05:02,005] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 02:05:02,006] [INFO] <root> Opened ESI connection to port None
[2026-05-05 02:05:02,007] [INFO] <root> Checking valid firmware...
[2026-05-05 02:05:02,007] [INFO] <root> Running firmware checks...
[2026-05-05 02:05:02,012] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 02:05:02,013] [INFO] <root> Loading modules...
[2026-05-05 02:05:02,036] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 02:05:02,052] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 02:05:02,063] [INFO] <uvicorn> Application startup complete.
[2026-05-05 02:05:02,095] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 06:39:57,536] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-05 06:39:57,693] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-05 06:40:24,689] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-05 06:40:24,709] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-05 06:40:33,139] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 06:40:34,013] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 06:40:34,014] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 06:40:34,015] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 06:40:35,509] [INFO] <uvicorn> Started server process [513]
[2026-05-05 06:40:35,510] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 06:40:35,553] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 06:40:35,695] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 06:40:35,696] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 06:40:35,709] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,715] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,739] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,742] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,767] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,771] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,797] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,800] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,843] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,847] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,869] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,873] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,895] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,898] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,921] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,925] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:35,964] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 06:40:35,967] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 06:40:36,003] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 06:40:36,056] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 06:40:36,091] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 06:40:36,091] [INFO] <root> Updating ESI port settings
[2026-05-05 06:40:36,092] [INFO] <root> Opening ESI connection to port None
[2026-05-05 06:40:36,107] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 06:40:36,108] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 06:40:36,109] [INFO] <root> Created Serial<id=0x7f3d86add0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 06:40:36,110] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 06:40:36,110] [INFO] <root> Running firmware checks...
[2026-05-05 06:40:36,116] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 06:40:36,119] [INFO] <root> Success!
[2026-05-05 06:40:36,119] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 06:40:36,121] [INFO] <root> Created Serial<id=0x7f3d868be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 06:40:36,122] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 06:40:36,122] [INFO] <root> Running firmware checks...
[2026-05-05 06:40:36,128] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 06:40:36,129] [INFO] <root> Opened ESI connection to port None
[2026-05-05 06:40:36,129] [INFO] <root> Checking valid firmware...
[2026-05-05 06:40:36,130] [INFO] <root> Running firmware checks...
[2026-05-05 06:40:36,135] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 06:40:36,136] [INFO] <root> Loading modules...
[2026-05-05 06:40:36,156] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 06:40:36,173] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 06:40:36,186] [INFO] <uvicorn> Application startup complete.
[2026-05-05 06:40:36,214] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 08:06:26,456] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 08:06:27,333] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:06:27,334] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:06:27,335] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:06:28,835] [INFO] <uvicorn> Started server process [516]
[2026-05-05 08:06:28,836] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 08:06:28,880] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 08:06:29,021] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 08:06:29,022] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 08:06:29,035] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,041] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,065] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,068] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,092] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,096] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,121] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,124] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,168] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,171] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,194] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,197] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,219] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,222] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,245] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,249] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,288] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:06:29,291] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:06:29,328] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 08:06:29,377] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 08:06:29,412] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 08:06:29,413] [INFO] <root> Updating ESI port settings
[2026-05-05 08:06:29,413] [INFO] <root> Opening ESI connection to port None
[2026-05-05 08:06:29,430] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 08:06:29,431] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 08:06:29,432] [INFO] <root> Created Serial<id=0x7f39f9ed40, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 08:06:29,433] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 08:06:29,433] [INFO] <root> Running firmware checks...
[2026-05-05 08:06:29,438] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:06:29,441] [INFO] <root> Success!
[2026-05-05 08:06:29,442] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 08:06:29,444] [INFO] <root> Created Serial<id=0x7f39f9cb50, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 08:06:29,444] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 08:06:29,445] [INFO] <root> Running firmware checks...
[2026-05-05 08:06:29,450] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:06:29,451] [INFO] <root> Opened ESI connection to port None
[2026-05-05 08:06:29,451] [INFO] <root> Checking valid firmware...
[2026-05-05 08:06:29,452] [INFO] <root> Running firmware checks...
[2026-05-05 08:06:29,458] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:06:29,459] [INFO] <root> Loading modules...
[2026-05-05 08:06:29,480] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 08:06:29,496] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 08:06:29,507] [INFO] <uvicorn> Application startup complete.
[2026-05-05 08:06:29,536] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 08:20:53,712] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 08:20:54,586] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:20:54,587] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:20:54,588] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:20:56,079] [INFO] <uvicorn> Started server process [518]
[2026-05-05 08:20:56,081] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 08:20:56,125] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 08:20:56,266] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 08:20:56,267] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 08:20:56,280] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,285] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,310] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,313] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,338] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,341] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,366] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,369] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,413] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,416] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,439] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,442] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,464] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,468] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,491] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,494] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,534] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:20:56,537] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:20:56,574] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 08:20:56,624] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 08:20:56,657] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 08:20:56,657] [INFO] <root> Updating ESI port settings
[2026-05-05 08:20:56,658] [INFO] <root> Opening ESI connection to port None
[2026-05-05 08:20:56,674] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 08:20:56,674] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 08:20:56,676] [INFO] <root> Created Serial<id=0x7f66d8ae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 08:20:56,676] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 08:20:56,677] [INFO] <root> Running firmware checks...
[2026-05-05 08:20:56,682] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:20:56,685] [INFO] <root> Success!
[2026-05-05 08:20:56,685] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 08:20:56,687] [INFO] <root> Created Serial<id=0x7f66d88c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 08:20:56,687] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 08:20:56,688] [INFO] <root> Running firmware checks...
[2026-05-05 08:20:56,693] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:20:56,694] [INFO] <root> Opened ESI connection to port None
[2026-05-05 08:20:56,695] [INFO] <root> Checking valid firmware...
[2026-05-05 08:20:56,695] [INFO] <root> Running firmware checks...
[2026-05-05 08:20:56,700] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:20:56,701] [INFO] <root> Loading modules...
[2026-05-05 08:20:56,722] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 08:20:56,738] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 08:20:56,751] [INFO] <uvicorn> Application startup complete.
[2026-05-05 08:20:56,791] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 08:31:25,062] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 08:31:25,939] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:31:25,940] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:31:25,941] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 08:31:27,431] [INFO] <uvicorn> Started server process [513]
[2026-05-05 08:31:27,433] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 08:31:27,476] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 08:31:27,620] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 08:31:27,622] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 08:31:27,635] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,639] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,664] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,667] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,691] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,694] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,719] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,723] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,766] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,769] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,792] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,795] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,818] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,821] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,844] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,847] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,886] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 08:31:27,890] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 08:31:27,927] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 08:31:27,978] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 08:31:28,013] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 08:31:28,014] [INFO] <root> Updating ESI port settings
[2026-05-05 08:31:28,014] [INFO] <root> Opening ESI connection to port None
[2026-05-05 08:31:28,029] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 08:31:28,030] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 08:31:28,031] [INFO] <root> Created Serial<id=0x7f33ceadd0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 08:31:28,032] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 08:31:28,032] [INFO] <root> Running firmware checks...
[2026-05-05 08:31:28,038] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:31:28,041] [INFO] <root> Success!
[2026-05-05 08:31:28,042] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 08:31:28,043] [INFO] <root> Created Serial<id=0x7f33ce8be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 08:31:28,044] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 08:31:28,045] [INFO] <root> Running firmware checks...
[2026-05-05 08:31:28,050] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:31:28,051] [INFO] <root> Opened ESI connection to port None
[2026-05-05 08:31:28,051] [INFO] <root> Checking valid firmware...
[2026-05-05 08:31:28,052] [INFO] <root> Running firmware checks...
[2026-05-05 08:31:28,057] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 08:31:28,058] [INFO] <root> Loading modules...
[2026-05-05 08:31:28,081] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 08:31:28,097] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 08:31:28,108] [INFO] <uvicorn> Application startup complete.
[2026-05-05 08:31:28,139] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 14:39:14,420] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 14:39:15,299] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 14:39:15,300] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 14:39:15,301] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 14:39:16,796] [INFO] <uvicorn> Started server process [515]
[2026-05-05 14:39:16,798] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 14:39:16,841] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 14:39:16,983] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 14:39:16,984] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 14:39:16,997] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,002] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,026] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,030] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,054] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,057] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,082] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,086] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,129] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,132] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,155] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,159] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,181] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,184] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,207] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,210] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,249] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:39:17,253] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:39:17,288] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 14:39:17,336] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 14:39:17,369] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 14:39:17,369] [INFO] <root> Updating ESI port settings
[2026-05-05 14:39:17,370] [INFO] <root> Opening ESI connection to port None
[2026-05-05 14:39:17,386] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 14:39:17,387] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 14:39:17,388] [INFO] <root> Created Serial<id=0x7f3ffeada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 14:39:17,389] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 14:39:17,389] [INFO] <root> Running firmware checks...
[2026-05-05 14:39:17,395] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 14:39:17,398] [INFO] <root> Success!
[2026-05-05 14:39:17,398] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 14:39:17,400] [INFO] <root> Created Serial<id=0x7f3ffe8bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 14:39:17,401] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 14:39:17,401] [INFO] <root> Running firmware checks...
[2026-05-05 14:39:17,407] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 14:39:17,408] [INFO] <root> Opened ESI connection to port None
[2026-05-05 14:39:17,408] [INFO] <root> Checking valid firmware...
[2026-05-05 14:39:17,408] [INFO] <root> Running firmware checks...
[2026-05-05 14:39:17,414] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 14:39:17,415] [INFO] <root> Loading modules...
[2026-05-05 14:39:17,435] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 14:39:17,453] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 14:39:17,465] [INFO] <uvicorn> Application startup complete.
[2026-05-05 14:39:17,507] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-05 14:50:48,453] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-05 14:50:49,328] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 14:50:49,329] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 14:50:49,330] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-05 14:50:50,818] [INFO] <uvicorn> Started server process [514]
[2026-05-05 14:50:50,820] [INFO] <uvicorn> Waiting for application startup.
[2026-05-05 14:50:50,863] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-05 14:50:51,004] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-05 14:50:51,005] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-05 14:50:51,018] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,024] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,048] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,052] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,076] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,079] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,104] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,108] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,151] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,155] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,178] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,181] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,203] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,206] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,229] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,233] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,272] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-05 14:50:51,275] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-05 14:50:51,312] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-05 14:50:51,363] [INFO] <picamera2.picamera2> Camera started
[2026-05-05 14:50:51,399] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-05 14:50:51,400] [INFO] <root> Updating ESI port settings
[2026-05-05 14:50:51,400] [INFO] <root> Opening ESI connection to port None
[2026-05-05 14:50:51,416] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-05 14:50:51,416] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 14:50:51,418] [INFO] <root> Created Serial<id=0x7f5700ada0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 14:50:51,418] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 14:50:51,419] [INFO] <root> Running firmware checks...
[2026-05-05 14:50:51,424] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 14:50:51,427] [INFO] <root> Success!
[2026-05-05 14:50:51,428] [INFO] <root> Creating serial.Serial instance...
[2026-05-05 14:50:51,429] [INFO] <root> Created Serial<id=0x7f57008bb0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-05 14:50:51,430] [INFO] <root> Testing communication to SangaBoard
[2026-05-05 14:50:51,430] [INFO] <root> Running firmware checks...
[2026-05-05 14:50:51,437] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 14:50:51,438] [INFO] <root> Opened ESI connection to port None
[2026-05-05 14:50:51,438] [INFO] <root> Checking valid firmware...
[2026-05-05 14:50:51,439] [INFO] <root> Running firmware checks...
[2026-05-05 14:50:51,445] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-05 14:50:51,447] [INFO] <root> Loading modules...
[2026-05-05 14:50:51,467] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-05 14:50:51,484] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-05 14:50:51,496] [INFO] <uvicorn> Application startup complete.
[2026-05-05 14:50:51,543] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-06 02:21:22,403] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-06 02:21:23,275] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 02:21:23,275] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 02:21:23,276] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 02:21:24,766] [INFO] <uvicorn> Started server process [513]
[2026-05-06 02:21:24,767] [INFO] <uvicorn> Waiting for application startup.
[2026-05-06 02:21:24,811] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-06 02:21:24,952] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-06 02:21:24,953] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-06 02:21:24,966] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:24,970] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:24,994] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:24,998] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,022] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,025] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,051] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,054] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,097] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,101] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,123] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,127] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,149] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,152] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,175] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,178] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,217] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:21:25,221] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:21:25,259] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-06 02:21:25,315] [INFO] <picamera2.picamera2> Camera started
[2026-05-06 02:21:25,347] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-06 02:21:25,348] [INFO] <root> Updating ESI port settings
[2026-05-06 02:21:25,348] [INFO] <root> Opening ESI connection to port None
[2026-05-06 02:21:25,364] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-06 02:21:25,365] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 02:21:25,366] [INFO] <root> Created Serial<id=0x7f46cdae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 02:21:25,367] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 02:21:25,367] [INFO] <root> Running firmware checks...
[2026-05-06 02:21:25,373] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 02:21:25,375] [INFO] <root> Success!
[2026-05-06 02:21:25,376] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 02:21:25,378] [INFO] <root> Created Serial<id=0x7f46cd8c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 02:21:25,379] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 02:21:25,379] [INFO] <root> Running firmware checks...
[2026-05-06 02:21:25,385] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 02:21:25,386] [INFO] <root> Opened ESI connection to port None
[2026-05-06 02:21:25,386] [INFO] <root> Checking valid firmware...
[2026-05-06 02:21:25,387] [INFO] <root> Running firmware checks...
[2026-05-06 02:21:25,392] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 02:21:25,393] [INFO] <root> Loading modules...
[2026-05-06 02:21:25,415] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-06 02:21:25,432] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-06 02:21:25,444] [INFO] <uvicorn> Application startup complete.
[2026-05-06 02:21:25,479] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-06 02:43:04,293] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-06 02:43:05,170] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 02:43:05,171] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 02:43:05,172] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 02:43:06,667] [INFO] <uvicorn> Started server process [512]
[2026-05-06 02:43:06,669] [INFO] <uvicorn> Waiting for application startup.
[2026-05-06 02:43:06,712] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-06 02:43:06,853] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-06 02:43:06,854] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-06 02:43:06,867] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:06,872] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:06,896] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:06,900] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:06,924] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:06,927] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:06,952] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:06,956] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:06,999] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:07,002] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:07,025] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:07,028] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:07,050] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:07,053] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:07,076] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:07,080] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:07,118] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 02:43:07,122] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 02:43:07,156] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-06 02:43:07,209] [INFO] <picamera2.picamera2> Camera started
[2026-05-06 02:43:07,242] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-06 02:43:07,243] [INFO] <root> Updating ESI port settings
[2026-05-06 02:43:07,243] [INFO] <root> Opening ESI connection to port None
[2026-05-06 02:43:07,259] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-06 02:43:07,260] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 02:43:07,261] [INFO] <root> Created Serial<id=0x7f5ae7ed70, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 02:43:07,262] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 02:43:07,262] [INFO] <root> Running firmware checks...
[2026-05-06 02:43:07,268] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 02:43:07,270] [INFO] <root> Success!
[2026-05-06 02:43:07,271] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 02:43:07,272] [INFO] <root> Created Serial<id=0x7f5ae7cb80, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 02:43:07,273] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 02:43:07,274] [INFO] <root> Running firmware checks...
[2026-05-06 02:43:07,279] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 02:43:07,280] [INFO] <root> Opened ESI connection to port None
[2026-05-06 02:43:07,281] [INFO] <root> Checking valid firmware...
[2026-05-06 02:43:07,281] [INFO] <root> Running firmware checks...
[2026-05-06 02:43:07,286] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 02:43:07,287] [INFO] <root> Loading modules...
[2026-05-06 02:43:07,308] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-06 02:43:07,323] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-06 02:43:07,338] [INFO] <uvicorn> Application startup complete.
[2026-05-06 02:43:07,378] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-06 06:59:10,143] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-06 06:59:11,019] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 06:59:11,020] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 06:59:11,021] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 06:59:12,519] [INFO] <uvicorn> Started server process [516]
[2026-05-06 06:59:12,521] [INFO] <uvicorn> Waiting for application startup.
[2026-05-06 06:59:12,564] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-06 06:59:12,706] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-06 06:59:12,707] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-06 06:59:12,720] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,725] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,749] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,753] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,777] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,780] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,805] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,809] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,852] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,856] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,878] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,882] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,904] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,907] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,930] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,933] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:12,972] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 06:59:12,976] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 06:59:13,012] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-06 06:59:13,062] [INFO] <picamera2.picamera2> Camera started
[2026-05-06 06:59:13,095] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-06 06:59:13,095] [INFO] <root> Updating ESI port settings
[2026-05-06 06:59:13,096] [INFO] <root> Opening ESI connection to port None
[2026-05-06 06:59:13,112] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-06 06:59:13,113] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 06:59:13,114] [INFO] <root> Created Serial<id=0x7f6016ed70, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 06:59:13,115] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 06:59:13,115] [INFO] <root> Running firmware checks...
[2026-05-06 06:59:13,121] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 06:59:13,124] [INFO] <root> Success!
[2026-05-06 06:59:13,125] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 06:59:13,126] [INFO] <root> Created Serial<id=0x7f6016cb80, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 06:59:13,127] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 06:59:13,127] [INFO] <root> Running firmware checks...
[2026-05-06 06:59:13,133] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 06:59:13,134] [INFO] <root> Opened ESI connection to port None
[2026-05-06 06:59:13,134] [INFO] <root> Checking valid firmware...
[2026-05-06 06:59:13,135] [INFO] <root> Running firmware checks...
[2026-05-06 06:59:13,140] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 06:59:13,141] [INFO] <root> Loading modules...
[2026-05-06 06:59:13,162] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-06 06:59:13,177] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-06 06:59:13,191] [INFO] <uvicorn> Application startup complete.
[2026-05-06 06:59:13,221] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-06 09:47:37,228] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-06 09:47:38,101] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 09:47:38,102] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 09:47:38,102] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 09:47:39,594] [INFO] <uvicorn> Started server process [513]
[2026-05-06 09:47:39,595] [INFO] <uvicorn> Waiting for application startup.
[2026-05-06 09:47:39,639] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-06 09:47:39,781] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-06 09:47:39,782] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-06 09:47:39,795] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,800] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:39,824] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,827] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:39,851] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,855] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:39,880] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,883] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:39,927] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,930] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:39,952] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,956] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:39,978] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:39,981] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:40,004] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:40,008] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:40,047] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 09:47:40,050] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 09:47:40,086] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-06 09:47:40,135] [INFO] <picamera2.picamera2> Camera started
[2026-05-06 09:47:40,167] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-06 09:47:40,168] [INFO] <root> Updating ESI port settings
[2026-05-06 09:47:40,169] [INFO] <root> Opening ESI connection to port None
[2026-05-06 09:47:40,185] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-06 09:47:40,186] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 09:47:40,187] [INFO] <root> Created Serial<id=0x7f3110ae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 09:47:40,187] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 09:47:40,188] [INFO] <root> Running firmware checks...
[2026-05-06 09:47:40,193] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 09:47:40,196] [INFO] <root> Success!
[2026-05-06 09:47:40,197] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 09:47:40,198] [INFO] <root> Created Serial<id=0x7f31108c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 09:47:40,199] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 09:47:40,199] [INFO] <root> Running firmware checks...
[2026-05-06 09:47:40,205] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 09:47:40,206] [INFO] <root> Opened ESI connection to port None
[2026-05-06 09:47:40,206] [INFO] <root> Checking valid firmware...
[2026-05-06 09:47:40,207] [INFO] <root> Running firmware checks...
[2026-05-06 09:47:40,212] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 09:47:40,213] [INFO] <root> Loading modules...
[2026-05-06 09:47:40,233] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-06 09:47:40,250] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-06 09:47:40,263] [INFO] <uvicorn> Application startup complete.
[2026-05-06 09:47:40,303] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-06 23:44:32,672] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-06 23:44:33,547] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 23:44:33,548] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 23:44:33,549] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 23:44:35,045] [INFO] <uvicorn> Started server process [513]
[2026-05-06 23:44:35,046] [INFO] <uvicorn> Waiting for application startup.
[2026-05-06 23:44:35,089] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-06 23:44:35,230] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-06 23:44:35,231] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-06 23:44:35,244] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,249] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,273] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,277] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,300] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,304] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,329] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,332] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,375] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,379] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,401] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,405] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,427] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,430] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,453] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,456] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,495] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:44:35,499] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:44:35,534] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-06 23:44:35,584] [INFO] <picamera2.picamera2> Camera started
[2026-05-06 23:44:35,620] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-06 23:44:35,621] [INFO] <root> Updating ESI port settings
[2026-05-06 23:44:35,621] [INFO] <root> Opening ESI connection to port None
[2026-05-06 23:44:35,637] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-06 23:44:35,638] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 23:44:35,639] [INFO] <root> Created Serial<id=0x7f2f64ae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 23:44:35,639] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 23:44:35,640] [INFO] <root> Running firmware checks...
[2026-05-06 23:44:35,645] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 23:44:35,648] [INFO] <root> Success!
[2026-05-06 23:44:35,649] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 23:44:35,650] [INFO] <root> Created Serial<id=0x7f2f648c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 23:44:35,651] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 23:44:35,651] [INFO] <root> Running firmware checks...
[2026-05-06 23:44:35,657] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 23:44:35,658] [INFO] <root> Opened ESI connection to port None
[2026-05-06 23:44:35,658] [INFO] <root> Checking valid firmware...
[2026-05-06 23:44:35,658] [INFO] <root> Running firmware checks...
[2026-05-06 23:44:35,665] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 23:44:35,666] [INFO] <root> Loading modules...
[2026-05-06 23:44:35,687] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-06 23:44:35,703] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-06 23:44:35,715] [INFO] <uvicorn> Application startup complete.
[2026-05-06 23:44:35,753] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-06 23:54:06,280] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-06 23:54:07,152] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 23:54:07,153] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 23:54:07,154] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-06 23:54:08,645] [INFO] <uvicorn> Started server process [514]
[2026-05-06 23:54:08,646] [INFO] <uvicorn> Waiting for application startup.
[2026-05-06 23:54:08,691] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-06 23:54:08,832] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-06 23:54:08,833] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-06 23:54:08,846] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:08,851] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:08,875] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:08,879] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:08,903] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:08,907] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:08,932] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:08,935] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:08,979] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:08,982] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:09,005] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:09,008] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:09,030] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:09,033] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:09,056] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:09,060] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:09,099] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-06 23:54:09,102] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-06 23:54:09,139] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-06 23:54:09,190] [INFO] <picamera2.picamera2> Camera started
[2026-05-06 23:54:09,224] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-06 23:54:09,225] [INFO] <root> Updating ESI port settings
[2026-05-06 23:54:09,225] [INFO] <root> Opening ESI connection to port None
[2026-05-06 23:54:09,241] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-06 23:54:09,241] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 23:54:09,242] [INFO] <root> Created Serial<id=0x7f691dadd0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 23:54:09,243] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 23:54:09,243] [INFO] <root> Running firmware checks...
[2026-05-06 23:54:09,249] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 23:54:09,251] [INFO] <root> Success!
[2026-05-06 23:54:09,252] [INFO] <root> Creating serial.Serial instance...
[2026-05-06 23:54:09,254] [INFO] <root> Created Serial<id=0x7f691d8be0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-06 23:54:09,255] [INFO] <root> Testing communication to SangaBoard
[2026-05-06 23:54:09,255] [INFO] <root> Running firmware checks...
[2026-05-06 23:54:09,261] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 23:54:09,262] [INFO] <root> Opened ESI connection to port None
[2026-05-06 23:54:09,262] [INFO] <root> Checking valid firmware...
[2026-05-06 23:54:09,263] [INFO] <root> Running firmware checks...
[2026-05-06 23:54:09,268] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-06 23:54:09,269] [INFO] <root> Loading modules...
[2026-05-06 23:54:09,289] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-06 23:54:09,304] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-06 23:54:09,319] [INFO] <uvicorn> Application startup complete.
[2026-05-06 23:54:09,351] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-07 01:38:28,203] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-07 01:38:29,077] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 01:38:29,078] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 01:38:29,079] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 01:38:30,572] [INFO] <uvicorn> Started server process [513]
[2026-05-07 01:38:30,573] [INFO] <uvicorn> Waiting for application startup.
[2026-05-07 01:38:30,617] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-07 01:38:30,758] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-07 01:38:30,759] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-07 01:38:30,772] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,777] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,801] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,804] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,828] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,832] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,856] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,860] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,904] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,907] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,929] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,932] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,954] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,957] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:30,980] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:30,983] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:31,022] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 01:38:31,025] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 01:38:31,060] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-07 01:38:31,108] [INFO] <picamera2.picamera2> Camera started
[2026-05-07 01:38:31,142] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-07 01:38:31,143] [INFO] <root> Updating ESI port settings
[2026-05-07 01:38:31,143] [INFO] <root> Opening ESI connection to port None
[2026-05-07 01:38:31,159] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-07 01:38:31,159] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 01:38:31,161] [INFO] <root> Created Serial<id=0x7f2bc6ae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 01:38:31,161] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 01:38:31,162] [INFO] <root> Running firmware checks...
[2026-05-07 01:38:31,167] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 01:38:31,170] [INFO] <root> Success!
[2026-05-07 01:38:31,171] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 01:38:31,172] [INFO] <root> Created Serial<id=0x7f2bc68c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 01:38:31,173] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 01:38:31,173] [INFO] <root> Running firmware checks...
[2026-05-07 01:38:31,179] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 01:38:31,180] [INFO] <root> Opened ESI connection to port None
[2026-05-07 01:38:31,180] [INFO] <root> Checking valid firmware...
[2026-05-07 01:38:31,181] [INFO] <root> Running firmware checks...
[2026-05-07 01:38:31,186] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 01:38:31,187] [INFO] <root> Loading modules...
[2026-05-07 01:38:31,209] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-07 01:38:31,225] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-07 01:38:31,238] [INFO] <uvicorn> Application startup complete.
[2026-05-07 01:38:31,271] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-07 04:22:26,549] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-07 04:22:27,426] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 04:22:27,427] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 04:22:27,428] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 04:22:28,926] [INFO] <uvicorn> Started server process [516]
[2026-05-07 04:22:28,928] [INFO] <uvicorn> Waiting for application startup.
[2026-05-07 04:22:28,971] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-07 04:22:29,112] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-07 04:22:29,114] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-07 04:22:29,127] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,132] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,157] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,161] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,186] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,189] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,214] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,217] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,261] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,264] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,287] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,290] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,312] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,316] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,339] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,342] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,381] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 04:22:29,385] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 04:22:29,421] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-07 04:22:29,475] [INFO] <picamera2.picamera2> Camera started
[2026-05-07 04:22:29,510] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-07 04:22:29,511] [INFO] <root> Updating ESI port settings
[2026-05-07 04:22:29,511] [INFO] <root> Opening ESI connection to port None
[2026-05-07 04:22:29,526] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-07 04:22:29,527] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 04:22:29,528] [INFO] <root> Created Serial<id=0x7f431eae00, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 04:22:29,529] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 04:22:29,529] [INFO] <root> Running firmware checks...
[2026-05-07 04:22:29,535] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 04:22:29,537] [INFO] <root> Success!
[2026-05-07 04:22:29,539] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 04:22:29,540] [INFO] <root> Created Serial<id=0x7f431e8c10, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 04:22:29,541] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 04:22:29,541] [INFO] <root> Running firmware checks...
[2026-05-07 04:22:29,547] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 04:22:29,547] [INFO] <root> Opened ESI connection to port None
[2026-05-07 04:22:29,548] [INFO] <root> Checking valid firmware...
[2026-05-07 04:22:29,548] [INFO] <root> Running firmware checks...
[2026-05-07 04:22:29,554] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 04:22:29,555] [INFO] <root> Loading modules...
[2026-05-07 04:22:29,576] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-07 04:22:29,593] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-07 04:22:29,604] [INFO] <uvicorn> Application startup complete.
[2026-05-07 04:22:29,655] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-07 06:00:32,039] [INFO] <uvicorn> Shutting down
[2026-05-07 06:00:32,144] [INFO] <uvicorn> Waiting for connections to close. (CTRL+C to force quit)
[2026-05-07 06:00:34,144] [ERROR] <uvicorn.error> Cancel 2 running task(s), timeout graceful shutdown exceeded
[2026-05-07 06:00:34,145] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-07 06:00:34,152] [ERROR] <uvicorn.error> Exception in ASGI application
Traceback (most recent call last):
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/fastapi/applications.py", line 1159, in __call__
    await super().__call__(scope, receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 192, in __call__
    async with anyio.create_task_group() as task_group:
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 787, in __aexit__
    raise exc_val
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 194, in __call__
    await response(scope, wrapped_receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 238, in __call__
    await send({"type": "http.response.body", "body": chunk, "more_body": True})
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 161, in _send
    await send(message)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 454, in send
    await self.flow.drain()  # pragma: full coverage
    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/flow_control.py", line 19, in drain
    await self._is_writable_event.wait()  # pragma: full coverage
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/locks.py", line 213, in wait
    await fut
asyncio.exceptions.CancelledError: Task cancelled, timeout graceful shutdown exceeded
[2026-05-07 06:00:34,198] [ERROR] <uvicorn.error> Exception in ASGI application
Traceback (most recent call last):
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/fastapi/applications.py", line 1159, in __call__
    await super().__call__(scope, receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 192, in __call__
    async with anyio.create_task_group() as task_group:
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 787, in __aexit__
    raise exc_val
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 194, in __call__
    await response(scope, wrapped_receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 238, in __call__
    await send({"type": "http.response.body", "body": chunk, "more_body": True})
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 161, in _send
    await send(message)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 454, in send
    await self.flow.drain()  # pragma: full coverage
    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/flow_control.py", line 19, in drain
    await self._is_writable_event.wait()  # pragma: full coverage
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/locks.py", line 213, in wait
    await fut
asyncio.exceptions.CancelledError: Task cancelled, timeout graceful shutdown exceeded
[2026-05-07 06:00:34,245] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-07 06:00:34,654] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-07 06:00:35,252] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-07 06:00:35,253] [INFO] <uvicorn> Application shutdown complete.
[2026-05-07 06:00:35,254] [INFO] <uvicorn> Finished server process [516]
[2026-05-07 06:00:49,528] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-07 06:00:50,505] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 06:00:50,506] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 06:00:50,510] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 06:00:51,964] [INFO] <uvicorn> Started server process [1126]
[2026-05-07 06:00:51,965] [INFO] <uvicorn> Waiting for application startup.
[2026-05-07 06:00:52,004] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-07 06:00:52,083] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-07 06:00:52,085] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-07 06:00:52,101] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,106] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,126] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,130] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,156] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,160] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,189] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,193] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,248] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,251] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,277] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,281] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,306] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,310] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,336] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,339] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,381] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 06:00:52,385] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 06:00:52,427] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-07 06:00:52,482] [INFO] <picamera2.picamera2> Camera started
[2026-05-07 06:00:52,518] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-07 06:00:52,518] [INFO] <root> Updating ESI port settings
[2026-05-07 06:00:52,519] [INFO] <root> Opening ESI connection to port None
[2026-05-07 06:00:52,537] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-07 06:00:52,537] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 06:00:52,539] [INFO] <root> Created Serial<id=0x7f54ee3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 06:00:52,540] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 06:00:52,540] [INFO] <root> Running firmware checks...
[2026-05-07 06:00:52,546] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 06:00:52,549] [INFO] <root> Success!
[2026-05-07 06:00:52,550] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 06:00:52,552] [INFO] <root> Created Serial<id=0x7f54ee37c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 06:00:52,552] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 06:00:52,553] [INFO] <root> Running firmware checks...
[2026-05-07 06:00:52,559] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 06:00:52,560] [INFO] <root> Opened ESI connection to port None
[2026-05-07 06:00:52,560] [INFO] <root> Checking valid firmware...
[2026-05-07 06:00:52,561] [INFO] <root> Running firmware checks...
[2026-05-07 06:00:52,568] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 06:00:52,570] [INFO] <root> Loading modules...
[2026-05-07 06:00:52,593] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-07 06:00:52,612] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-07 06:00:52,622] [INFO] <uvicorn> Application startup complete.
[2026-05-07 06:00:52,653] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-07 09:42:50,673] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-07 09:42:51,658] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 09:42:51,659] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 09:42:51,660] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 09:42:54,159] [INFO] <uvicorn> Started server process [514]
[2026-05-07 09:42:54,161] [INFO] <uvicorn> Waiting for application startup.
[2026-05-07 09:42:54,221] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-07 09:42:54,630] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-07 09:42:54,631] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-07 09:42:54,645] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,649] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,678] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,682] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,706] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,709] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,735] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,738] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,782] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,785] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,809] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,812] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,841] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,844] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,873] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,877] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,926] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 09:42:54,930] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 09:42:54,973] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-07 09:42:55,027] [INFO] <picamera2.picamera2> Camera started
[2026-05-07 09:42:55,069] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-07 09:42:55,070] [INFO] <root> Updating ESI port settings
[2026-05-07 09:42:55,071] [INFO] <root> Opening ESI connection to port None
[2026-05-07 09:42:55,089] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-07 09:42:55,090] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 09:42:55,091] [INFO] <root> Created Serial<id=0x7f55813910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 09:42:55,092] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 09:42:55,093] [INFO] <root> Running firmware checks...
[2026-05-07 09:42:55,099] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 09:42:55,101] [INFO] <root> Success!
[2026-05-07 09:42:55,102] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 09:42:55,104] [INFO] <root> Created Serial<id=0x7f558137f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 09:42:55,104] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 09:42:55,105] [INFO] <root> Running firmware checks...
[2026-05-07 09:42:55,111] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 09:42:55,113] [INFO] <root> Opened ESI connection to port None
[2026-05-07 09:42:55,115] [INFO] <root> Checking valid firmware...
[2026-05-07 09:42:55,116] [INFO] <root> Running firmware checks...
[2026-05-07 09:42:55,125] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 09:42:55,126] [INFO] <root> Loading modules...
[2026-05-07 09:42:55,146] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-07 09:42:55,166] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-07 09:42:55,177] [INFO] <uvicorn> Application startup complete.
[2026-05-07 09:42:55,217] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-07 19:58:03,712] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-07 19:58:03,724] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-07 23:11:31,870] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-07 23:11:32,738] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 23:11:32,739] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 23:11:32,740] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-07 23:11:34,244] [INFO] <uvicorn> Started server process [516]
[2026-05-07 23:11:34,247] [INFO] <uvicorn> Waiting for application startup.
[2026-05-07 23:11:34,291] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-07 23:11:34,433] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-07 23:11:34,434] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-07 23:11:34,447] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,451] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,475] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,479] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,503] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,507] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,531] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,535] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,578] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,581] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,604] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,607] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,629] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,632] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,655] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,658] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,697] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-07 23:11:34,700] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-07 23:11:34,736] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-07 23:11:34,787] [INFO] <picamera2.picamera2> Camera started
[2026-05-07 23:11:34,819] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-07 23:11:34,820] [INFO] <root> Updating ESI port settings
[2026-05-07 23:11:34,820] [INFO] <root> Opening ESI connection to port None
[2026-05-07 23:11:34,836] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-07 23:11:34,837] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 23:11:34,838] [INFO] <root> Created Serial<id=0x7f38743910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 23:11:34,839] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 23:11:34,839] [INFO] <root> Running firmware checks...
[2026-05-07 23:11:34,845] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 23:11:34,847] [INFO] <root> Success!
[2026-05-07 23:11:34,848] [INFO] <root> Creating serial.Serial instance...
[2026-05-07 23:11:34,849] [INFO] <root> Created Serial<id=0x7f387437c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-07 23:11:34,850] [INFO] <root> Testing communication to SangaBoard
[2026-05-07 23:11:34,850] [INFO] <root> Running firmware checks...
[2026-05-07 23:11:34,856] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 23:11:34,857] [INFO] <root> Opened ESI connection to port None
[2026-05-07 23:11:34,857] [INFO] <root> Checking valid firmware...
[2026-05-07 23:11:34,858] [INFO] <root> Running firmware checks...
[2026-05-07 23:11:34,863] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-07 23:11:34,864] [INFO] <root> Loading modules...
[2026-05-07 23:11:34,884] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-07 23:11:34,900] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-07 23:11:34,916] [INFO] <uvicorn> Application startup complete.
[2026-05-07 23:11:34,945] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-08 05:19:57,826] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-08 05:19:58,695] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 05:19:58,696] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 05:19:58,696] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 05:20:00,202] [INFO] <uvicorn> Started server process [515]
[2026-05-08 05:20:00,203] [INFO] <uvicorn> Waiting for application startup.
[2026-05-08 05:20:00,247] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-08 05:20:00,389] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-08 05:20:00,390] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-08 05:20:00,403] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,408] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,433] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,437] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,462] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,465] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,490] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,493] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,537] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,540] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,562] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,566] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,588] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,591] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,614] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,617] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,656] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 05:20:00,660] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 05:20:00,696] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-08 05:20:00,747] [INFO] <picamera2.picamera2> Camera started
[2026-05-08 05:20:00,781] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-08 05:20:00,782] [INFO] <root> Updating ESI port settings
[2026-05-08 05:20:00,783] [INFO] <root> Opening ESI connection to port None
[2026-05-08 05:20:00,798] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-08 05:20:00,799] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 05:20:00,800] [INFO] <root> Created Serial<id=0x7f2cd03910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 05:20:00,801] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 05:20:00,801] [INFO] <root> Running firmware checks...
[2026-05-08 05:20:00,807] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 05:20:00,809] [INFO] <root> Success!
[2026-05-08 05:20:00,810] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 05:20:00,812] [INFO] <root> Created Serial<id=0x7f2cd037f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 05:20:00,813] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 05:20:00,813] [INFO] <root> Running firmware checks...
[2026-05-08 05:20:00,819] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 05:20:00,820] [INFO] <root> Opened ESI connection to port None
[2026-05-08 05:20:00,820] [INFO] <root> Checking valid firmware...
[2026-05-08 05:20:00,821] [INFO] <root> Running firmware checks...
[2026-05-08 05:20:00,826] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 05:20:00,827] [INFO] <root> Loading modules...
[2026-05-08 05:20:00,848] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-08 05:20:00,865] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-08 05:20:00,880] [INFO] <uvicorn> Application startup complete.
[2026-05-08 05:20:00,910] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-08 05:59:48,578] [INFO] <uvicorn> Shutting down
[2026-05-08 05:59:48,853] [INFO] <uvicorn> Waiting for connections to close. (CTRL+C to force quit)
[2026-05-08 05:59:49,079] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-08 05:59:49,463] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-08 05:59:49,942] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-08 05:59:50,850] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-08 05:59:50,869] [INFO] <uvicorn> Application shutdown complete.
[2026-05-08 05:59:50,889] [INFO] <uvicorn> Finished server process [515]
[2026-05-08 06:18:34,584] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-08 06:18:35,453] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 06:18:35,454] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 06:18:35,455] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 06:18:36,961] [INFO] <uvicorn> Started server process [518]
[2026-05-08 06:18:36,963] [INFO] <uvicorn> Waiting for application startup.
[2026-05-08 06:18:37,006] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-08 06:18:37,148] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-08 06:18:37,150] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-08 06:18:37,163] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,169] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,193] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,197] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,222] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,226] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,252] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,255] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,299] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,303] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,326] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,329] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,352] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,355] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,378] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,382] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,422] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 06:18:37,425] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 06:18:37,461] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-08 06:18:37,512] [INFO] <picamera2.picamera2> Camera started
[2026-05-08 06:18:37,545] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-08 06:18:37,546] [INFO] <root> Updating ESI port settings
[2026-05-08 06:18:37,546] [INFO] <root> Opening ESI connection to port None
[2026-05-08 06:18:37,563] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-08 06:18:37,563] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 06:18:37,565] [INFO] <root> Created Serial<id=0x7f35853910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 06:18:37,565] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 06:18:37,566] [INFO] <root> Running firmware checks...
[2026-05-08 06:18:37,571] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 06:18:37,574] [INFO] <root> Success!
[2026-05-08 06:18:37,574] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 06:18:37,576] [INFO] <root> Created Serial<id=0x7f358537f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 06:18:37,577] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 06:18:37,577] [INFO] <root> Running firmware checks...
[2026-05-08 06:18:37,583] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 06:18:37,583] [INFO] <root> Opened ESI connection to port None
[2026-05-08 06:18:37,584] [INFO] <root> Checking valid firmware...
[2026-05-08 06:18:37,584] [INFO] <root> Running firmware checks...
[2026-05-08 06:18:37,590] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 06:18:37,591] [INFO] <root> Loading modules...
[2026-05-08 06:18:37,613] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-08 06:18:37,629] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-08 06:18:37,644] [INFO] <uvicorn> Application startup complete.
[2026-05-08 06:18:37,675] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-08 07:01:14,256] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-08 07:01:14,271] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-08 07:01:18,826] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-08 07:01:18,859] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-08 07:35:34,281] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-08 07:35:35,163] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 07:35:35,164] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 07:35:35,164] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 07:35:36,678] [INFO] <uvicorn> Started server process [516]
[2026-05-08 07:35:36,680] [INFO] <uvicorn> Waiting for application startup.
[2026-05-08 07:35:36,723] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-08 07:35:36,865] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-08 07:35:36,866] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-08 07:35:36,879] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:36,885] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:36,910] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:36,913] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:36,937] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:36,940] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:36,965] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:36,968] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:37,012] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:37,015] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:37,038] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:37,041] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:37,063] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:37,066] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:37,089] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:37,092] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:37,131] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 07:35:37,134] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 07:35:37,174] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-08 07:35:37,227] [INFO] <picamera2.picamera2> Camera started
[2026-05-08 07:35:37,260] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-08 07:35:37,261] [INFO] <root> Updating ESI port settings
[2026-05-08 07:35:37,262] [INFO] <root> Opening ESI connection to port None
[2026-05-08 07:35:37,277] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-08 07:35:37,278] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 07:35:37,279] [INFO] <root> Created Serial<id=0x7f48263910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 07:35:37,280] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 07:35:37,280] [INFO] <root> Running firmware checks...
[2026-05-08 07:35:37,286] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 07:35:37,289] [INFO] <root> Success!
[2026-05-08 07:35:37,290] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 07:35:37,291] [INFO] <root> Created Serial<id=0x7f482637f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 07:35:37,292] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 07:35:37,292] [INFO] <root> Running firmware checks...
[2026-05-08 07:35:37,298] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 07:35:37,299] [INFO] <root> Opened ESI connection to port None
[2026-05-08 07:35:37,299] [INFO] <root> Checking valid firmware...
[2026-05-08 07:35:37,299] [INFO] <root> Running firmware checks...
[2026-05-08 07:35:37,305] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 07:35:37,306] [INFO] <root> Loading modules...
[2026-05-08 07:35:37,327] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-08 07:35:37,343] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-08 07:35:37,357] [INFO] <uvicorn> Application startup complete.
[2026-05-08 07:35:37,400] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-08 10:58:35,679] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-08 10:58:36,556] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 10:58:36,557] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 10:58:36,557] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-08 10:58:38,094] [INFO] <uvicorn> Started server process [515]
[2026-05-08 10:58:38,096] [INFO] <uvicorn> Waiting for application startup.
[2026-05-08 10:58:38,139] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-08 10:58:38,281] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-08 10:58:38,282] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-08 10:58:38,296] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,300] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,324] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,327] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,352] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,355] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,380] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,383] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,429] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,432] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,455] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,458] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,480] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,483] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,507] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,510] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,549] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-08 10:58:38,552] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-08 10:58:38,588] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-08 10:58:38,640] [INFO] <picamera2.picamera2> Camera started
[2026-05-08 10:58:38,673] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-08 10:58:38,674] [INFO] <root> Updating ESI port settings
[2026-05-08 10:58:38,674] [INFO] <root> Opening ESI connection to port None
[2026-05-08 10:58:38,691] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-08 10:58:38,691] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 10:58:38,693] [INFO] <root> Created Serial<id=0x7f44b53910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 10:58:38,694] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 10:58:38,694] [INFO] <root> Running firmware checks...
[2026-05-08 10:58:38,700] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 10:58:38,702] [INFO] <root> Success!
[2026-05-08 10:58:38,703] [INFO] <root> Creating serial.Serial instance...
[2026-05-08 10:58:38,704] [INFO] <root> Created Serial<id=0x7f44b537c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-08 10:58:38,705] [INFO] <root> Testing communication to SangaBoard
[2026-05-08 10:58:38,706] [INFO] <root> Running firmware checks...
[2026-05-08 10:58:38,711] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 10:58:38,712] [INFO] <root> Opened ESI connection to port None
[2026-05-08 10:58:38,712] [INFO] <root> Checking valid firmware...
[2026-05-08 10:58:38,713] [INFO] <root> Running firmware checks...
[2026-05-08 10:58:38,718] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-08 10:58:38,719] [INFO] <root> Loading modules...
[2026-05-08 10:58:38,739] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-08 10:58:38,755] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-08 10:58:38,770] [INFO] <uvicorn> Application startup complete.
[2026-05-08 10:58:38,804] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 03:46:28,399] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 03:46:29,279] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 03:46:29,280] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 03:46:29,281] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 03:46:30,797] [INFO] <uvicorn> Started server process [512]
[2026-05-09 03:46:30,800] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 03:46:30,843] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 03:46:30,985] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 03:46:30,986] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 03:46:31,000] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,010] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,034] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,038] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,062] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,066] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,091] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,095] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,139] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,142] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,165] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,169] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,191] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,195] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,218] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,222] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,261] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 03:46:31,265] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 03:46:31,303] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 03:46:31,349] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 03:46:31,381] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 03:46:31,381] [INFO] <root> Updating ESI port settings
[2026-05-09 03:46:31,382] [INFO] <root> Opening ESI connection to port None
[2026-05-09 03:46:31,399] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 03:46:31,399] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 03:46:31,401] [INFO] <root> Created Serial<id=0x7f32473910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 03:46:31,401] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 03:46:31,402] [INFO] <root> Running firmware checks...
[2026-05-09 03:46:31,407] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 03:46:31,409] [INFO] <root> Success!
[2026-05-09 03:46:31,410] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 03:46:31,412] [INFO] <root> Created Serial<id=0x7f324737c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 03:46:31,412] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 03:46:31,413] [INFO] <root> Running firmware checks...
[2026-05-09 03:46:31,418] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 03:46:31,419] [INFO] <root> Opened ESI connection to port None
[2026-05-09 03:46:31,420] [INFO] <root> Checking valid firmware...
[2026-05-09 03:46:31,420] [INFO] <root> Running firmware checks...
[2026-05-09 03:46:31,425] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 03:46:31,426] [INFO] <root> Loading modules...
[2026-05-09 03:46:31,449] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 03:46:31,466] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 03:46:31,480] [INFO] <uvicorn> Application startup complete.
[2026-05-09 03:46:31,508] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 04:09:19,808] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-09 04:09:20,617] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-09 04:09:20,828] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 04:09:20,844] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 04:09:20,911] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 04:09:21,870] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-09 04:09:21,876] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 04:09:21,885] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 04:09:21,926] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 04:09:21,967] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 06:45:56,299] [INFO] <labthings_fastapi.things.smart_scan> Finding a list of all overlapping images
[2026-05-09 06:45:56,503] [INFO] <labthings_fastapi.things.smart_scan> Starting correlation of overlapping image pairs.
[2026-05-09 06:46:04,172] [INFO] <labthings_fastapi.things.smart_scan> Correlation complete. Pairs loaded from cache: 5, pairs calculated: 2
[2026-05-09 06:46:04,179] [INFO] <labthings_fastapi.things.smart_scan> Getting all the image info ready to stitch
[2026-05-09 06:46:04,180] [INFO] <labthings_fastapi.things.smart_scan> Plotting the inputs to stitching
[2026-05-09 06:46:08,398] [INFO] <labthings_fastapi.things.smart_scan> Finding the optimal threshold
[2026-05-09 06:46:08,400] [INFO] <labthings_fastapi.things.smart_scan> Starting with 4 possible peak quality thresholds and 7 possible stage discrepancy thresholds
[2026-05-09 06:46:08,401] [INFO] <labthings_fastapi.things.smart_scan> After filtering and resampling 4 peak quality thresholds and 7 stage discrepancy thresholds will be trialed for fit quality.
[2026-05-09 06:46:12,829] [INFO] <labthings_fastapi.things.smart_scan> Using 6 of the 7 pairs for final optimisation
[2026-05-09 06:46:13,032] [INFO] <labthings_fastapi.things.smart_scan> Starting csm is [[ 0.033 , -4.9262], [ 4.938 ,  0.0053]]
[2026-05-09 06:46:13,037] [INFO] <labthings_fastapi.things.smart_scan> A better starting estimate of the csm is [[ 0.0069, -5.0023], [ 5.0712, -0.0069]].
[2026-05-09 06:46:14,647] [INFO] <labthings_fastapi.things.smart_scan> Final image will be exported with size (1902, 3422) pixels
[2026-05-09 06:46:14,649] [INFO] <labthings_fastapi.things.smart_scan> Exporting stitched image. Depending on the size of your scan, this may take a while.
[2026-05-09 06:46:24,733] [INFO] <labthings_fastapi.things.smart_scan> Stitching complete
[2026-05-09 09:42:51,147] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 09:42:52,029] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 09:42:52,030] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 09:42:52,030] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 09:42:53,547] [INFO] <uvicorn> Started server process [515]
[2026-05-09 09:42:53,548] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 09:42:53,592] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 09:42:53,734] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 09:42:53,735] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 09:42:53,748] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,753] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,777] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,781] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,807] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,811] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,836] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,840] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,883] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,887] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,909] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,912] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,934] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,938] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:53,960] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:53,964] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:54,004] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 09:42:54,007] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 09:42:54,044] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 09:42:54,094] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 09:42:54,127] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 09:42:54,128] [INFO] <root> Updating ESI port settings
[2026-05-09 09:42:54,128] [INFO] <root> Opening ESI connection to port None
[2026-05-09 09:42:54,144] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 09:42:54,144] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 09:42:54,146] [INFO] <root> Created Serial<id=0x7f3eea3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 09:42:54,146] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 09:42:54,147] [INFO] <root> Running firmware checks...
[2026-05-09 09:42:54,152] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 09:42:54,155] [INFO] <root> Success!
[2026-05-09 09:42:54,156] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 09:42:54,157] [INFO] <root> Created Serial<id=0x7f3eea37f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 09:42:54,157] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 09:42:54,158] [INFO] <root> Running firmware checks...
[2026-05-09 09:42:54,164] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 09:42:54,164] [INFO] <root> Opened ESI connection to port None
[2026-05-09 09:42:54,165] [INFO] <root> Checking valid firmware...
[2026-05-09 09:42:54,165] [INFO] <root> Running firmware checks...
[2026-05-09 09:42:54,171] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 09:42:54,172] [INFO] <root> Loading modules...
[2026-05-09 09:42:54,193] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 09:42:54,210] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 09:42:54,225] [INFO] <uvicorn> Application startup complete.
[2026-05-09 09:42:54,266] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 10:11:37,650] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 10:11:38,527] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 10:11:38,528] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 10:11:38,529] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 10:11:40,050] [INFO] <uvicorn> Started server process [513]
[2026-05-09 10:11:40,052] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 10:11:40,096] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 10:11:40,238] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 10:11:40,239] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 10:11:40,252] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,257] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,282] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,285] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,309] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,313] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,338] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,341] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,384] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,388] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,410] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,414] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,436] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,439] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,462] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,465] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,505] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 10:11:40,508] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 10:11:40,544] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 10:11:40,595] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 10:11:40,629] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 10:11:40,630] [INFO] <root> Updating ESI port settings
[2026-05-09 10:11:40,631] [INFO] <root> Opening ESI connection to port None
[2026-05-09 10:11:40,647] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 10:11:40,648] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 10:11:40,649] [INFO] <root> Created Serial<id=0x7f2bb73910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 10:11:40,650] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 10:11:40,650] [INFO] <root> Running firmware checks...
[2026-05-09 10:11:40,656] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 10:11:40,658] [INFO] <root> Success!
[2026-05-09 10:11:40,659] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 10:11:40,661] [INFO] <root> Created Serial<id=0x7f2bb737f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 10:11:40,662] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 10:11:40,662] [INFO] <root> Running firmware checks...
[2026-05-09 10:11:40,667] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 10:11:40,668] [INFO] <root> Opened ESI connection to port None
[2026-05-09 10:11:40,669] [INFO] <root> Checking valid firmware...
[2026-05-09 10:11:40,669] [INFO] <root> Running firmware checks...
[2026-05-09 10:11:40,675] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 10:11:40,676] [INFO] <root> Loading modules...
[2026-05-09 10:11:40,698] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 10:11:40,718] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 10:11:40,730] [INFO] <uvicorn> Application startup complete.
[2026-05-09 10:11:40,762] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 10:29:14,345] [INFO] <labthings_fastapi.things.smart_scan> Finding a list of all overlapping images
[2026-05-09 10:29:14,553] [INFO] <labthings_fastapi.things.smart_scan> Starting correlation of overlapping image pairs.
[2026-05-09 10:29:32,179] [INFO] <labthings_fastapi.things.smart_scan> Correlation complete. Pairs loaded from cache: 3, pairs calculated: 4
[2026-05-09 10:29:32,183] [INFO] <labthings_fastapi.things.smart_scan> Getting all the image info ready to stitch
[2026-05-09 10:29:32,184] [INFO] <labthings_fastapi.things.smart_scan> Plotting the inputs to stitching
[2026-05-09 10:29:37,037] [INFO] <labthings_fastapi.things.smart_scan> Finding the optimal threshold
[2026-05-09 10:29:37,039] [INFO] <labthings_fastapi.things.smart_scan> Starting with 6 possible peak quality thresholds and 7 possible stage discrepancy thresholds
[2026-05-09 10:29:37,048] [INFO] <labthings_fastapi.things.smart_scan> After filtering and resampling 6 peak quality thresholds and 7 stage discrepancy thresholds will be trialed for fit quality.
[2026-05-09 10:29:41,081] [INFO] <labthings_fastapi.things.smart_scan> Using 6 of the 7 pairs for final optimisation
[2026-05-09 10:29:41,083] [INFO] <labthings_fastapi.things.smart_scan> Starting csm is [[ 0.033 , -4.9262], [ 4.938 ,  0.0053]]
[2026-05-09 10:29:41,086] [INFO] <labthings_fastapi.things.smart_scan> A better starting estimate of the csm is [[-0.0183, -4.9135], [ 5.0145, -0.0143]].
[2026-05-09 10:29:43,720] [INFO] <labthings_fastapi.things.smart_scan> Final image will be exported with size (1926, 2544) pixels
[2026-05-09 10:29:43,723] [INFO] <labthings_fastapi.things.smart_scan> Exporting stitched image. Depending on the size of your scan, this may take a while.
[2026-05-09 10:29:56,278] [INFO] <labthings_fastapi.things.smart_scan> Stitching complete
[2026-05-09 14:19:54,893] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 14:19:55,771] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 14:19:55,772] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 14:19:55,773] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 14:19:57,289] [INFO] <uvicorn> Started server process [513]
[2026-05-09 14:19:57,290] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 14:19:57,334] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 14:19:57,475] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 14:19:57,476] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 14:19:57,490] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,494] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,519] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,522] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,546] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,550] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,575] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,578] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,622] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,625] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,648] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,652] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,674] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,677] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,700] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,704] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,743] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 14:19:57,746] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 14:19:57,785] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 14:19:57,834] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 14:19:57,868] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 14:19:57,869] [INFO] <root> Updating ESI port settings
[2026-05-09 14:19:57,870] [INFO] <root> Opening ESI connection to port None
[2026-05-09 14:19:57,886] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 14:19:57,887] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 14:19:57,888] [INFO] <root> Created Serial<id=0x7f5d3f3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 14:19:57,889] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 14:19:57,889] [INFO] <root> Running firmware checks...
[2026-05-09 14:19:57,895] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 14:19:57,897] [INFO] <root> Success!
[2026-05-09 14:19:57,898] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 14:19:57,899] [INFO] <root> Created Serial<id=0x7f5d3f37c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 14:19:57,900] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 14:19:57,900] [INFO] <root> Running firmware checks...
[2026-05-09 14:19:57,908] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 14:19:57,909] [INFO] <root> Opened ESI connection to port None
[2026-05-09 14:19:57,910] [INFO] <root> Checking valid firmware...
[2026-05-09 14:19:57,910] [INFO] <root> Running firmware checks...
[2026-05-09 14:19:57,915] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 14:19:57,916] [INFO] <root> Loading modules...
[2026-05-09 14:19:57,937] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 14:19:57,954] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 14:19:57,969] [INFO] <uvicorn> Application startup complete.
[2026-05-09 14:19:58,000] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 16:33:43,737] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 16:33:44,614] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:33:44,615] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:33:44,615] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:33:46,127] [INFO] <uvicorn> Started server process [513]
[2026-05-09 16:33:46,129] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 16:33:46,172] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 16:33:46,314] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 16:33:46,315] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 16:33:46,328] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,333] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,358] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,362] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,386] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,390] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,415] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,418] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,462] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,465] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,488] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,492] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,514] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,517] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,540] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,544] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,583] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:33:46,587] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:33:46,623] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 16:33:46,672] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 16:33:46,705] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 16:33:46,706] [INFO] <root> Updating ESI port settings
[2026-05-09 16:33:46,706] [INFO] <root> Opening ESI connection to port None
[2026-05-09 16:33:46,724] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 16:33:46,725] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 16:33:46,726] [INFO] <root> Created Serial<id=0x7f3d383910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 16:33:46,727] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 16:33:46,727] [INFO] <root> Running firmware checks...
[2026-05-09 16:33:46,733] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:33:46,735] [INFO] <root> Success!
[2026-05-09 16:33:46,736] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 16:33:46,738] [INFO] <root> Created Serial<id=0x7f3d3837f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 16:33:46,739] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 16:33:46,739] [INFO] <root> Running firmware checks...
[2026-05-09 16:33:46,745] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:33:46,746] [INFO] <root> Opened ESI connection to port None
[2026-05-09 16:33:46,746] [INFO] <root> Checking valid firmware...
[2026-05-09 16:33:46,746] [INFO] <root> Running firmware checks...
[2026-05-09 16:33:46,752] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:33:46,754] [INFO] <root> Loading modules...
[2026-05-09 16:33:46,774] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 16:33:46,791] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 16:33:46,805] [INFO] <uvicorn> Application startup complete.
[2026-05-09 16:33:46,842] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 16:34:44,375] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 16:34:45,254] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:34:45,255] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:34:45,255] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:34:46,772] [INFO] <uvicorn> Started server process [516]
[2026-05-09 16:34:46,773] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 16:34:46,817] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 16:34:46,959] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 16:34:46,960] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 16:34:46,974] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:46,978] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,003] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,006] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,031] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,034] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,059] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,062] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,106] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,109] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,132] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,135] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,158] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,161] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,184] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,187] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,227] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:34:47,230] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:34:47,266] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 16:34:47,319] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 16:34:47,354] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 16:34:47,355] [INFO] <root> Updating ESI port settings
[2026-05-09 16:34:47,356] [INFO] <root> Opening ESI connection to port None
[2026-05-09 16:34:47,374] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 16:34:47,375] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 16:34:47,376] [INFO] <root> Created Serial<id=0x7f359d3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 16:34:47,377] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 16:34:47,377] [INFO] <root> Running firmware checks...
[2026-05-09 16:34:47,382] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:34:47,385] [INFO] <root> Success!
[2026-05-09 16:34:47,386] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 16:34:47,388] [INFO] <root> Created Serial<id=0x7f359d37c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 16:34:47,389] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 16:34:47,389] [INFO] <root> Running firmware checks...
[2026-05-09 16:34:47,394] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:34:47,395] [INFO] <root> Opened ESI connection to port None
[2026-05-09 16:34:47,396] [INFO] <root> Checking valid firmware...
[2026-05-09 16:34:47,396] [INFO] <root> Running firmware checks...
[2026-05-09 16:34:47,402] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:34:47,403] [INFO] <root> Loading modules...
[2026-05-09 16:34:47,423] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 16:34:47,441] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 16:34:47,454] [INFO] <uvicorn> Application startup complete.
[2026-05-09 16:34:47,505] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 16:45:06,003] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 16:45:06,923] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:45:06,924] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:45:06,925] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 16:45:08,438] [INFO] <uvicorn> Started server process [515]
[2026-05-09 16:45:08,440] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 16:45:08,483] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 16:45:08,625] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 16:45:08,626] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 16:45:08,639] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,644] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,668] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,672] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,696] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,699] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,724] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,728] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,773] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,776] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,799] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,803] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,825] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,828] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,851] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,854] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,894] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 16:45:08,897] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 16:45:08,933] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 16:45:08,984] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 16:45:09,015] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 16:45:09,017] [INFO] <root> Updating ESI port settings
[2026-05-09 16:45:09,017] [INFO] <root> Opening ESI connection to port None
[2026-05-09 16:45:09,033] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 16:45:09,034] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 16:45:09,036] [INFO] <root> Created Serial<id=0x7f3cff3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 16:45:09,037] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 16:45:09,037] [INFO] <root> Running firmware checks...
[2026-05-09 16:45:09,043] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:45:09,045] [INFO] <root> Success!
[2026-05-09 16:45:09,046] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 16:45:09,048] [INFO] <root> Created Serial<id=0x7f3cff37c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 16:45:09,048] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 16:45:09,049] [INFO] <root> Running firmware checks...
[2026-05-09 16:45:09,054] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:45:09,055] [INFO] <root> Opened ESI connection to port None
[2026-05-09 16:45:09,056] [INFO] <root> Checking valid firmware...
[2026-05-09 16:45:09,057] [INFO] <root> Running firmware checks...
[2026-05-09 16:45:09,062] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 16:45:09,063] [INFO] <root> Loading modules...
[2026-05-09 16:45:09,083] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 16:45:09,100] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 16:45:09,117] [INFO] <uvicorn> Application startup complete.
[2026-05-09 16:45:09,143] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-09 17:34:38,368] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-09 17:34:39,249] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 17:34:39,250] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 17:34:39,251] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-09 17:34:40,776] [INFO] <uvicorn> Started server process [516]
[2026-05-09 17:34:40,778] [INFO] <uvicorn> Waiting for application startup.
[2026-05-09 17:34:40,821] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-09 17:34:40,963] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-09 17:34:40,964] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-09 17:34:40,978] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:40,984] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,008] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,012] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,036] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,039] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,064] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,068] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,111] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,115] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,137] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,141] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,163] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,166] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,189] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,192] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,231] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-09 17:34:41,235] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-09 17:34:41,271] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-09 17:34:41,328] [INFO] <picamera2.picamera2> Camera started
[2026-05-09 17:34:41,362] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-09 17:34:41,363] [INFO] <root> Updating ESI port settings
[2026-05-09 17:34:41,363] [INFO] <root> Opening ESI connection to port None
[2026-05-09 17:34:41,379] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-09 17:34:41,380] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 17:34:41,381] [INFO] <root> Created Serial<id=0x7f3db23910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 17:34:41,382] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 17:34:41,382] [INFO] <root> Running firmware checks...
[2026-05-09 17:34:41,388] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 17:34:41,390] [INFO] <root> Success!
[2026-05-09 17:34:41,391] [INFO] <root> Creating serial.Serial instance...
[2026-05-09 17:34:41,393] [INFO] <root> Created Serial<id=0x7f3db237c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-09 17:34:41,393] [INFO] <root> Testing communication to SangaBoard
[2026-05-09 17:34:41,394] [INFO] <root> Running firmware checks...
[2026-05-09 17:34:41,399] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 17:34:41,400] [INFO] <root> Opened ESI connection to port None
[2026-05-09 17:34:41,401] [INFO] <root> Checking valid firmware...
[2026-05-09 17:34:41,401] [INFO] <root> Running firmware checks...
[2026-05-09 17:34:41,406] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-09 17:34:41,407] [INFO] <root> Loading modules...
[2026-05-09 17:34:41,429] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-09 17:34:41,444] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-09 17:34:41,461] [INFO] <uvicorn> Application startup complete.
[2026-05-09 17:34:41,494] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-10 05:55:24,719] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-10 05:55:25,596] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 05:55:25,597] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 05:55:25,597] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 05:55:27,117] [INFO] <uvicorn> Started server process [514]
[2026-05-10 05:55:27,118] [INFO] <uvicorn> Waiting for application startup.
[2026-05-10 05:55:27,162] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-10 05:55:27,303] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-10 05:55:27,305] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-10 05:55:27,318] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,323] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,348] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,351] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,375] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,379] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,404] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,407] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,451] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,454] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,477] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,480] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,502] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,506] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,529] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,532] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,571] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 05:55:27,576] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 05:55:27,611] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-10 05:55:27,661] [INFO] <picamera2.picamera2> Camera started
[2026-05-10 05:55:27,692] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-10 05:55:27,694] [INFO] <root> Updating ESI port settings
[2026-05-10 05:55:27,694] [INFO] <root> Opening ESI connection to port None
[2026-05-10 05:55:27,711] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-10 05:55:27,711] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 05:55:27,712] [INFO] <root> Created Serial<id=0x7f48533910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 05:55:27,713] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 05:55:27,713] [INFO] <root> Running firmware checks...
[2026-05-10 05:55:27,719] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 05:55:27,721] [INFO] <root> Success!
[2026-05-10 05:55:27,722] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 05:55:27,723] [INFO] <root> Created Serial<id=0x7f485337f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 05:55:27,724] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 05:55:27,724] [INFO] <root> Running firmware checks...
[2026-05-10 05:55:27,730] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 05:55:27,731] [INFO] <root> Opened ESI connection to port None
[2026-05-10 05:55:27,731] [INFO] <root> Checking valid firmware...
[2026-05-10 05:55:27,732] [INFO] <root> Running firmware checks...
[2026-05-10 05:55:27,737] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 05:55:27,738] [INFO] <root> Loading modules...
[2026-05-10 05:55:27,760] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-10 05:55:27,777] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-10 05:55:27,792] [INFO] <uvicorn> Application startup complete.
[2026-05-10 05:55:27,823] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-10 06:22:58,462] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-10 06:22:59,343] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 06:22:59,344] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 06:22:59,344] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 06:23:00,866] [INFO] <uvicorn> Started server process [516]
[2026-05-10 06:23:00,867] [INFO] <uvicorn> Waiting for application startup.
[2026-05-10 06:23:00,911] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-10 06:23:01,053] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-10 06:23:01,054] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-10 06:23:01,067] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,072] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,095] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,099] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,122] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,126] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,150] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,154] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,197] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,200] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,222] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,226] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,247] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,250] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,273] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,276] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,315] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 06:23:01,323] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 06:23:01,358] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-10 06:23:01,408] [INFO] <picamera2.picamera2> Camera started
[2026-05-10 06:23:01,442] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-10 06:23:01,443] [INFO] <root> Updating ESI port settings
[2026-05-10 06:23:01,443] [INFO] <root> Opening ESI connection to port None
[2026-05-10 06:23:01,459] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-10 06:23:01,460] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 06:23:01,461] [INFO] <root> Created Serial<id=0x7f5f5d3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 06:23:01,462] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 06:23:01,462] [INFO] <root> Running firmware checks...
[2026-05-10 06:23:01,468] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 06:23:01,470] [INFO] <root> Success!
[2026-05-10 06:23:01,471] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 06:23:01,473] [INFO] <root> Created Serial<id=0x7f5f5d37f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 06:23:01,473] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 06:23:01,474] [INFO] <root> Running firmware checks...
[2026-05-10 06:23:01,479] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 06:23:01,480] [INFO] <root> Opened ESI connection to port None
[2026-05-10 06:23:01,481] [INFO] <root> Checking valid firmware...
[2026-05-10 06:23:01,481] [INFO] <root> Running firmware checks...
[2026-05-10 06:23:01,486] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 06:23:01,487] [INFO] <root> Loading modules...
[2026-05-10 06:23:01,509] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-10 06:23:01,525] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-10 06:23:01,540] [INFO] <uvicorn> Application startup complete.
[2026-05-10 06:23:01,572] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-10 09:41:22,805] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-10 09:41:23,683] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 09:41:23,684] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 09:41:23,684] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 09:41:25,250] [INFO] <uvicorn> Started server process [513]
[2026-05-10 09:41:25,252] [INFO] <uvicorn> Waiting for application startup.
[2026-05-10 09:41:25,295] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-10 09:41:25,437] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-10 09:41:25,439] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-10 09:41:25,452] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,457] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,480] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,484] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,508] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,511] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,536] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,540] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,583] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,586] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,609] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,612] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,635] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,638] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,661] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,664] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,704] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 09:41:25,709] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 09:41:25,746] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-10 09:41:25,798] [INFO] <picamera2.picamera2> Camera started
[2026-05-10 09:41:25,834] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-10 09:41:25,834] [INFO] <root> Updating ESI port settings
[2026-05-10 09:41:25,835] [INFO] <root> Opening ESI connection to port None
[2026-05-10 09:41:25,850] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-10 09:41:25,851] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 09:41:25,852] [INFO] <root> Created Serial<id=0x7f3a943910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 09:41:25,853] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 09:41:25,853] [INFO] <root> Running firmware checks...
[2026-05-10 09:41:25,859] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 09:41:25,861] [INFO] <root> Success!
[2026-05-10 09:41:25,862] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 09:41:25,864] [INFO] <root> Created Serial<id=0x7f3a9437f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 09:41:25,865] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 09:41:25,865] [INFO] <root> Running firmware checks...
[2026-05-10 09:41:25,871] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 09:41:25,871] [INFO] <root> Opened ESI connection to port None
[2026-05-10 09:41:25,872] [INFO] <root> Checking valid firmware...
[2026-05-10 09:41:25,872] [INFO] <root> Running firmware checks...
[2026-05-10 09:41:25,878] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 09:41:25,879] [INFO] <root> Loading modules...
[2026-05-10 09:41:25,899] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-10 09:41:25,916] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-10 09:41:25,930] [INFO] <uvicorn> Application startup complete.
[2026-05-10 09:41:25,962] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-10 19:04:51,989] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-10 19:04:52,867] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 19:04:52,868] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 19:04:52,868] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 19:04:54,389] [INFO] <uvicorn> Started server process [513]
[2026-05-10 19:04:54,390] [INFO] <uvicorn> Waiting for application startup.
[2026-05-10 19:04:54,435] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-10 19:04:54,577] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-10 19:04:54,578] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-10 19:04:54,591] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,596] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,619] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,623] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,647] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,650] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,675] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,679] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,722] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,725] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,748] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,752] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,774] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,777] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,801] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,804] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,843] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 19:04:54,847] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 19:04:54,883] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-10 19:04:54,933] [INFO] <picamera2.picamera2> Camera started
[2026-05-10 19:04:54,966] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-10 19:04:54,967] [INFO] <root> Updating ESI port settings
[2026-05-10 19:04:54,967] [INFO] <root> Opening ESI connection to port None
[2026-05-10 19:04:54,983] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-10 19:04:54,984] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 19:04:54,985] [INFO] <root> Created Serial<id=0x7f32ac3910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 19:04:54,986] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 19:04:54,986] [INFO] <root> Running firmware checks...
[2026-05-10 19:04:54,992] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 19:04:54,994] [INFO] <root> Success!
[2026-05-10 19:04:54,995] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 19:04:54,996] [INFO] <root> Created Serial<id=0x7f32ac37f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 19:04:54,997] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 19:04:54,998] [INFO] <root> Running firmware checks...
[2026-05-10 19:04:55,003] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 19:04:55,004] [INFO] <root> Opened ESI connection to port None
[2026-05-10 19:04:55,005] [INFO] <root> Checking valid firmware...
[2026-05-10 19:04:55,005] [INFO] <root> Running firmware checks...
[2026-05-10 19:04:55,010] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 19:04:55,011] [INFO] <root> Loading modules...
[2026-05-10 19:04:55,032] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-10 19:04:55,048] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-10 19:04:55,061] [INFO] <uvicorn> Application startup complete.
[2026-05-10 19:04:55,091] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-10 20:36:48,802] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-10 20:36:49,681] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 20:36:49,682] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 20:36:49,683] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-10 20:36:51,199] [INFO] <uvicorn> Started server process [517]
[2026-05-10 20:36:51,200] [INFO] <uvicorn> Waiting for application startup.
[2026-05-10 20:36:51,244] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-10 20:36:51,385] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-10 20:36:51,386] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-10 20:36:51,400] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,404] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,429] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,432] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,457] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,461] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,486] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,489] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,533] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,536] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,559] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,563] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,585] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,588] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,612] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,616] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,656] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-10 20:36:51,659] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-10 20:36:51,696] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-10 20:36:51,753] [INFO] <picamera2.picamera2> Camera started
[2026-05-10 20:36:51,786] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-10 20:36:51,787] [INFO] <root> Updating ESI port settings
[2026-05-10 20:36:51,788] [INFO] <root> Opening ESI connection to port None
[2026-05-10 20:36:51,803] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-10 20:36:51,804] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 20:36:51,805] [INFO] <root> Created Serial<id=0x7f59de7910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 20:36:51,806] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 20:36:51,806] [INFO] <root> Running firmware checks...
[2026-05-10 20:36:51,812] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 20:36:51,814] [INFO] <root> Success!
[2026-05-10 20:36:51,815] [INFO] <root> Creating serial.Serial instance...
[2026-05-10 20:36:51,817] [INFO] <root> Created Serial<id=0x7f59de77c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-10 20:36:51,817] [INFO] <root> Testing communication to SangaBoard
[2026-05-10 20:36:51,818] [INFO] <root> Running firmware checks...
[2026-05-10 20:36:51,823] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 20:36:51,824] [INFO] <root> Opened ESI connection to port None
[2026-05-10 20:36:51,825] [INFO] <root> Checking valid firmware...
[2026-05-10 20:36:51,825] [INFO] <root> Running firmware checks...
[2026-05-10 20:36:51,830] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-10 20:36:51,831] [INFO] <root> Loading modules...
[2026-05-10 20:36:51,853] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-10 20:36:51,869] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-10 20:36:51,884] [INFO] <uvicorn> Application startup complete.
[2026-05-10 20:36:51,914] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00[2026-05-11 11:51:47,189] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-11 11:51:48,064] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 11:51:48,065] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 11:51:48,065] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 11:51:49,582] [INFO] <uvicorn> Started server process [516]
[2026-05-11 11:51:49,583] [INFO] <uvicorn> Waiting for application startup.
[2026-05-11 11:51:49,627] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-11 11:51:49,769] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-11 11:51:49,770] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-11 11:51:49,783] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,788] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,812] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,815] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,839] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,842] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,867] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,871] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,914] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,917] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,940] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,943] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,965] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,968] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:49,991] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:49,994] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:50,033] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 11:51:50,037] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 11:51:50,071] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-11 11:51:50,121] [INFO] <picamera2.picamera2> Camera started
[2026-05-11 11:51:50,154] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-11 11:51:50,155] [INFO] <root> Updating ESI port settings
[2026-05-11 11:51:50,155] [INFO] <root> Opening ESI connection to port None
[2026-05-11 11:51:50,171] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-11 11:51:50,172] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 11:51:50,173] [INFO] <root> Created Serial<id=0x7f69723910, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 11:51:50,174] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 11:51:50,174] [INFO] <root> Running firmware checks...
[2026-05-11 11:51:50,180] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 11:51:50,182] [INFO] <root> Success!
[2026-05-11 11:51:50,183] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 11:51:50,184] [INFO] <root> Created Serial<id=0x7f697237f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 11:51:50,185] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 11:51:50,185] [INFO] <root> Running firmware checks...
[2026-05-11 11:51:50,191] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 11:51:50,192] [INFO] <root> Opened ESI connection to port None
[2026-05-11 11:51:50,192] [INFO] <root> Checking valid firmware...
[2026-05-11 11:51:50,193] [INFO] <root> Running firmware checks...
[2026-05-11 11:51:50,198] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 11:51:50,199] [INFO] <root> Loading modules...
[2026-05-11 11:51:50,221] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-11 11:51:50,237] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-11 11:51:50,252] [INFO] <uvicorn> Application startup complete.
[2026-05-11 11:51:50,281] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-11 12:34:52,169] [INFO] <uvicorn> Shutting down
[2026-05-11 12:34:52,272] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-11 12:34:52,291] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-11 12:34:53,069] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-11 12:34:53,501] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-11 12:34:53,503] [INFO] <uvicorn> Application shutdown complete.
[2026-05-11 12:34:53,504] [INFO] <uvicorn> Finished server process [516]
[2026-05-11 12:36:06,454] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-11 12:36:07,304] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 12:36:07,305] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 12:36:07,306] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 12:36:08,621] [INFO] <uvicorn> Started server process [927]
[2026-05-11 12:36:08,623] [INFO] <uvicorn> Waiting for application startup.
[2026-05-11 12:36:08,625] [INFO] <uvicorn> Application startup complete.
[2026-05-11 12:36:08,634] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-11 12:42:30,689] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-11 12:42:31,567] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 12:42:31,568] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 12:42:31,568] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 12:42:33,125] [INFO] <uvicorn> Started server process [514]
[2026-05-11 12:42:33,127] [INFO] <uvicorn> Waiting for application startup.
[2026-05-11 12:42:33,129] [INFO] <uvicorn> Application startup complete.
[2026-05-11 12:42:33,141] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-11 14:56:29,541] [INFO] <uvicorn> Shutting down
[2026-05-11 14:56:29,951] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-11 14:56:30,079] [INFO] <uvicorn> Application shutdown complete.
[2026-05-11 14:56:30,097] [INFO] <uvicorn> Finished server process [514]
[2026-05-11 15:00:02,739] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-11 15:00:03,665] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:00:03,666] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:00:03,667] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:00:05,504] [INFO] <uvicorn> Started server process [1144]
[2026-05-11 15:00:05,505] [INFO] <uvicorn> Waiting for application startup.
[2026-05-11 15:00:05,552] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-11 15:00:05,709] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-11 15:00:05,710] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-11 15:00:05,723] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,729] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,754] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,758] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,782] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,785] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,810] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,814] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,867] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,872] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,895] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,898] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,921] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,924] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,947] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,950] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:05,990] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:00:05,994] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:00:06,034] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-11 15:00:06,084] [INFO] <picamera2.picamera2> Camera started
[2026-05-11 15:00:06,118] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-11 15:00:06,119] [INFO] <root> Updating ESI port settings
[2026-05-11 15:00:06,119] [INFO] <root> Opening ESI connection to port None
[2026-05-11 15:00:06,134] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-11 15:00:06,135] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 15:00:06,136] [INFO] <root> Created Serial<id=0x7f40a36260, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 15:00:06,137] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 15:00:06,137] [INFO] <root> Running firmware checks...
[2026-05-11 15:00:06,143] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:00:06,146] [INFO] <root> Success!
[2026-05-11 15:00:06,147] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 15:00:06,149] [INFO] <root> Created Serial<id=0x7f409f51e0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 15:00:06,150] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 15:00:06,150] [INFO] <root> Running firmware checks...
[2026-05-11 15:00:06,155] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:00:06,156] [INFO] <root> Opened ESI connection to port None
[2026-05-11 15:00:06,157] [INFO] <root> Checking valid firmware...
[2026-05-11 15:00:06,157] [INFO] <root> Running firmware checks...
[2026-05-11 15:00:06,163] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:00:06,164] [INFO] <root> Loading modules...
[2026-05-11 15:00:06,185] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-11 15:00:06,202] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-11 15:00:06,216] [INFO] <uvicorn> Application startup complete.
[2026-05-11 15:00:06,246] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-11 15:37:58,774] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,787] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,915] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,919] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,922] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,927] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,930] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,934] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,954] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,958] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,966] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,974] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,981] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:58,989] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,004] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,009] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,021] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,030] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,037] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,045] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,053] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,059] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,066] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,073] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,084] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,091] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,103] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,109] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,119] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,124] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,134] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,142] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,153] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,166] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,172] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,180] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,188] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,202] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,207] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,216] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,223] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,235] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,245] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,251] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,257] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,269] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,274] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,280] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,288] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,293] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,305] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,334] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,352] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,415] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,530] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,537] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,547] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,554] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,559] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,565] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,575] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,584] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,593] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,606] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,614] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,627] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,637] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,642] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,654] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,666] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,672] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,682] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,690] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,696] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,704] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,709] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,719] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:37:59,729] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:07,593] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:07,603] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:07,608] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:07,656] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:07,662] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:07,665] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:08,546] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:08,548] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:08,614] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:08,619] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,041] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,077] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,105] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,111] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,310] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,339] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,398] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,431] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,510] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,515] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,551] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:09,554] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,006] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,038] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,042] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,047] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,054] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,063] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,115] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,189] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,251] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,256] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,305] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,311] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,744] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,747] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,815] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,822] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,885] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,897] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:10,995] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:11,011] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,100] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,103] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,133] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,140] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,190] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,241] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,544] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,547] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,552] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,580] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,606] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:18,610] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:19,933] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:19,935] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:19,939] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:19,947] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:19,956] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:19,964] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:20,589] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:20,594] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:20,609] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:20,611] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:20,678] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:20,706] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,228] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,231] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,245] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,261] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,822] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,831] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,838] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,842] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,910] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:21,942] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:22,386] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:22,396] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:22,400] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:22,414] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:22,421] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:38:22,428] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:39:51,603] [INFO] <uvicorn> Shutting down
[2026-05-11 15:39:51,712] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-11 15:39:51,740] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-11 15:39:52,527] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-11 15:39:52,956] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-11 15:39:52,959] [INFO] <uvicorn> Application shutdown complete.
[2026-05-11 15:39:52,960] [INFO] <uvicorn> Finished server process [1144]
[2026-05-11 15:40:13,086] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-11 15:40:14,007] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:40:14,008] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:40:14,008] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:40:15,706] [INFO] <uvicorn> Started server process [1572]
[2026-05-11 15:40:15,707] [INFO] <uvicorn> Waiting for application startup.
[2026-05-11 15:40:15,740] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-11 15:40:15,809] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-11 15:40:15,810] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-11 15:40:15,823] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:15,828] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:15,846] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:15,849] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:15,872] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:15,876] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:15,900] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:15,904] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:15,948] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:15,951] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:15,974] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:15,977] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:15,999] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:16,002] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:16,025] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:16,028] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:16,067] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:40:16,070] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:40:16,110] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-11 15:40:16,158] [INFO] <picamera2.picamera2> Camera started
[2026-05-11 15:40:16,194] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-11 15:40:16,196] [INFO] <root> Updating ESI port settings
[2026-05-11 15:40:16,196] [INFO] <root> Opening ESI connection to port None
[2026-05-11 15:40:16,225] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-11 15:40:16,226] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 15:40:16,229] [INFO] <root> Created Serial<id=0x7f3bb662c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 15:40:16,230] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 15:40:16,230] [INFO] <root> Running firmware checks...
[2026-05-11 15:40:16,237] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:40:16,243] [INFO] <root> Success!
[2026-05-11 15:40:16,245] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 15:40:16,247] [INFO] <root> Created Serial<id=0x7f3bb25210, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 15:40:16,248] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 15:40:16,249] [INFO] <root> Running firmware checks...
[2026-05-11 15:40:16,255] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:40:16,258] [INFO] <root> Opened ESI connection to port None
[2026-05-11 15:40:16,259] [INFO] <root> Checking valid firmware...
[2026-05-11 15:40:16,261] [INFO] <root> Running firmware checks...
[2026-05-11 15:40:16,272] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:40:16,273] [INFO] <root> Loading modules...
[2026-05-11 15:40:16,306] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-11 15:40:16,331] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-11 15:40:16,356] [INFO] <uvicorn> Application startup complete.
[2026-05-11 15:40:16,397] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-11 15:40:32,784] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:32,788] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:32,801] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:32,810] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,028] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,042] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,101] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,115] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,494] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,497] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,511] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,518] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,769] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,785] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,878] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:33,895] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,070] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,079] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,089] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,107] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,361] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,376] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,462] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,474] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,572] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,575] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,595] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,600] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,777] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,794] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,875] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:34,889] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:35,850] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:35,854] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:35,865] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:35,870] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,028] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,044] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,115] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,130] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,919] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,921] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,934] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:36,941] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,085] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,096] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,180] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,194] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,460] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,465] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,481] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,483] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,639] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,650] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,693] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,705] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,753] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,756] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,771] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,781] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,884] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,895] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:37,998] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:40:38,011] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,594] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,611] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,760] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,770] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,776] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,781] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,786] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,790] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,801] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,814] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,821] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,827] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,838] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,847] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,852] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,859] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,865] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,871] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,876] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,886] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,893] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,904] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,910] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,917] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,922] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,937] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,947] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,958] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,965] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,972] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,981] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,991] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:50,996] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,006] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,013] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,020] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,026] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,032] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,040] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,060] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,090] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,097] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,104] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,123] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,137] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,145] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,152] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,162] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,169] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,176] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,187] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,196] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,221] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,273] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,403] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,409] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,429] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,433] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,437] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,442] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,467] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,473] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,478] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,489] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,495] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,503] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,510] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,520] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,529] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,553] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,576] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,582] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,590] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,604] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,609] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,617] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,627] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:49:51,635] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:54:23,597] [INFO] <uvicorn> Shutting down
[2026-05-11 15:54:23,702] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-11 15:54:23,747] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-11 15:54:24,555] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-11 15:54:25,164] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-11 15:54:25,166] [INFO] <uvicorn> Application shutdown complete.
[2026-05-11 15:54:25,168] [INFO] <uvicorn> Finished server process [1572]
[2026-05-11 15:54:43,934] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-11 15:54:44,885] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:54:44,887] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:54:44,888] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-11 15:54:47,876] [INFO] <uvicorn> Started server process [1754]
[2026-05-11 15:54:47,878] [INFO] <uvicorn> Waiting for application startup.
[2026-05-11 15:54:47,939] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-11 15:54:48,069] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-11 15:54:48,071] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-11 15:54:48,095] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,105] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,139] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,145] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,176] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,179] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,204] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,207] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,251] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,254] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,276] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,279] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,301] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,304] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,327] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,330] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,376] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-11 15:54:48,382] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-11 15:54:48,446] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-11 15:54:48,526] [INFO] <picamera2.picamera2> Camera started
[2026-05-11 15:54:48,581] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-11 15:54:48,582] [INFO] <root> Updating ESI port settings
[2026-05-11 15:54:48,583] [INFO] <root> Opening ESI connection to port None
[2026-05-11 15:54:48,611] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-11 15:54:48,612] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 15:54:48,615] [INFO] <root> Created Serial<id=0x7f2f6f62c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 15:54:48,616] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 15:54:48,617] [INFO] <root> Running firmware checks...
[2026-05-11 15:54:48,623] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:54:48,629] [INFO] <root> Success!
[2026-05-11 15:54:48,631] [INFO] <root> Creating serial.Serial instance...
[2026-05-11 15:54:48,634] [INFO] <root> Created Serial<id=0x7f2f6b5210, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-11 15:54:48,636] [INFO] <root> Testing communication to SangaBoard
[2026-05-11 15:54:48,637] [INFO] <root> Running firmware checks...
[2026-05-11 15:54:48,651] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:54:48,653] [INFO] <root> Opened ESI connection to port None
[2026-05-11 15:54:48,657] [INFO] <root> Checking valid firmware...
[2026-05-11 15:54:48,658] [INFO] <root> Running firmware checks...
[2026-05-11 15:54:48,664] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-11 15:54:48,666] [INFO] <root> Loading modules...
[2026-05-11 15:54:48,702] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-11 15:54:48,725] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-11 15:54:48,745] [INFO] <uvicorn> Application startup complete.
[2026-05-11 15:54:48,803] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-11 15:55:09,405] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,421] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,563] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,566] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,570] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,577] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,585] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,594] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,603] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,620] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,625] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,635] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,649] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,658] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,667] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,679] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,688] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,697] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,705] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,714] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,721] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,729] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,738] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,749] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,755] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,759] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,772] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,785] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,793] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,802] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,813] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,822] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,827] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,834] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,850] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,859] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,866] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,871] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,879] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,887] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,895] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,903] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,917] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,928] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,935] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,944] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,954] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,964] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,972] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:09,983] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,003] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,014] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,019] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,025] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,240] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,251] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,258] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,264] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,270] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,275] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,284] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,296] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,306] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,315] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,320] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,329] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,335] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,378] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,394] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,404] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,413] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,422] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,427] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,433] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,448] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,453] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,458] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:10,464] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:21,606] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:21,615] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:21,622] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:21,642] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:21,920] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:21,959] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,013] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,025] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,303] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,310] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,326] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,355] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,578] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,591] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,650] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:22,674] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,584] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,588] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,633] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,638] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,909] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,976] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:23,994] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:24,046] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:24,910] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:24,914] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:24,923] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:24,943] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:25,328] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:25,369] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:25,416] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:25,443] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,386] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,391] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,419] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,423] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,766] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,782] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,857] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:26,886] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,018] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,048] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,053] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,060] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,313] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,377] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,415] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,451] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,454] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,493] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,498] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,564] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,713] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,728] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,818] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,856] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,955] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:27,986] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,007] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,013] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,202] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,217] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,281] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,299] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,318] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,321] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,336] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,381] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,708] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,715] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,725] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:28,742] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,046] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,050] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,075] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,082] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,249] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,272] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,350] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,386] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,389] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,412] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,418] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,425] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,538] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,553] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,616] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,622] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,629] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,644] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,655] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,661] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,953] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,957] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:29,961] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,006] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,015] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,018] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,043] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,056] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,134] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,188] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,230] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:55:30,258] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,248] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,251] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,279] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,281] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,632] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,648] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,711] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:03,741] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,373] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,377] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,386] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,414] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,648] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,674] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,713] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,743] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,747] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,750] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,757] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,763] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,914] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:04,944] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,039] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,071] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,077] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,084] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,105] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,145] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,280] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,285] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,289] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,361] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,366] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,382] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,513] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,516] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,563] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,566] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,571] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,576] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,737] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,740] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,749] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,907] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,912] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,914] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,944] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,948] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,967] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,972] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:05,984] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,099] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,105] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,113] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,140] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,145] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,153] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,378] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,384] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,391] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,395] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,403] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,413] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,422] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,427] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,502] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,508] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,519] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,763] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,766] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,775] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,780] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,790] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,794] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,807] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,814] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,919] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,942] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,946] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:06,953] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,048] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,052] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,054] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,060] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,076] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,079] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,291] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,298] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,306] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,317] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,323] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,335] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,387] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,410] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,571] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,608] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,646] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,650] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,667] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,682] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,690] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,703] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,790] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,826] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,845] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,880] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,883] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,894] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,918] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:07,934] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,095] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,102] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,106] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,124] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,127] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,134] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,189] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,246] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,280] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,310] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,374] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:08,400] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:10,106] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:10,110] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:10,114] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:10,120] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:10,125] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:10,143] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,263] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,272] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,365] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,553] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,558] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,562] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,602] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,605] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,617] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,627] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,780] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,783] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,802] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,962] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,968] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:12,997] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,006] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,010] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,176] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,191] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,200] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,261] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,344] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,347] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:13,372] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:14,442] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 15:56:14,473] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,079] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,096] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,182] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,185] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,189] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,191] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,195] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,200] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,206] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,219] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,223] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,230] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,238] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,248] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,254] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,264] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,280] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,288] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,295] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,308] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,319] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,331] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,341] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,351] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,357] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,363] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,372] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,379] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,387] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,394] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,403] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,414] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,422] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,432] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,438] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,451] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,456] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,464] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,474] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,484] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,490] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,499] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,510] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,524] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,532] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,541] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,551] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,557] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,565] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,573] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,606] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,614] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,632] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,679] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,787] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,795] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,799] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,805] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,815] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,821] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,827] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,840] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,848] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,853] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,860] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,866] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,874] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,887] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,901] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,908] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,916] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,922] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,929] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,942] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,952] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,961] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,970] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:06,984] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:14,882] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:14,887] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:14,891] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:14,928] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:14,932] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-11 20:18:14,953] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,553] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,571] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,700] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,707] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,713] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,724] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,728] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,737] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,750] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,757] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,762] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,772] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,782] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,788] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,793] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,798] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,804] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,811] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,825] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,835] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,839] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,851] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,861] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,869] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,879] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,887] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,893] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,902] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,911] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,924] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,932] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,939] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,955] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,961] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,970] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,981] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,988] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:18,997] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,004] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,011] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,022] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,030] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,037] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,043] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,054] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,059] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,067] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,075] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,087] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,092] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,126] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,130] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,249] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,282] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,416] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,421] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,430] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,435] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,445] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,454] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,467] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,472] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,475] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,486] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,493] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,499] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,509] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,524] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,532] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,541] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,554] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,565] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,583] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,596] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,606] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,619] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,630] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:19,636] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:33,786] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:33,800] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,053] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,065] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,077] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,083] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,089] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,093] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,100] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,106] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,117] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,121] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,127] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,137] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,143] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,150] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,156] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,163] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,170] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,185] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,192] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,200] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,207] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,220] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,225] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,233] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,239] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,249] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,257] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,267] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,274] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,277] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,290] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,301] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,310] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,316] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,324] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,339] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,348] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,353] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,366] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,374] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,380] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,387] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,401] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,408] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,413] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,428] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,439] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,446] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,452] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,460] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,557] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,587] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,706] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,714] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,722] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,727] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,734] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,745] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,752] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,757] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,761] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,768] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,778] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,787] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,796] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,805] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,823] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,834] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,840] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,852] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,858] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,865] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,875] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,893] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,901] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:26:34,907] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,388] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,406] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,581] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,583] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,588] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,598] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,610] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,615] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,619] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,658] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,661] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,674] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,680] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,686] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,690] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,703] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,710] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,720] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,737] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,751] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,754] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,761] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,766] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,774] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,779] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,793] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,795] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,811] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,817] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,830] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,834] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,870] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,881] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,889] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,902] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,908] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,912] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,961] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,969] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,980] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:40,988] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,004] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,009] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,025] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,035] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,067] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,076] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,091] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,100] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,113] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,119] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,136] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,185] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,196] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,434] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,441] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,445] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,452] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,455] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,458] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,493] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,506] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,509] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,513] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,521] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,525] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,600] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,611] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,615] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,619] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,626] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,632] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,666] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,685] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,694] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,701] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,707] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:27:41,713] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,761] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,772] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,906] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,910] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,915] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,918] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,921] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,934] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,946] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,953] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,959] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,965] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,971] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,978] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,986] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,992] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:19,999] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,004] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,019] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,025] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,037] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,045] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,054] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,060] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,068] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,074] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,085] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,090] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,101] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,109] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,117] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,128] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,139] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,147] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,157] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,162] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,170] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,177] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,190] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,198] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,208] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,213] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,223] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,230] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,239] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,255] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,262] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,270] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,281] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,290] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,325] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,367] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,393] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,449] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,568] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,572] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,574] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,578] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,582] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,588] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,605] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,610] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,617] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,624] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,633] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,642] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,654] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,661] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,669] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,676] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,689] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,700] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,707] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,724] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,731] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,738] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,746] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:20,757] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:28,661] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:28,665] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:28,668] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:28,699] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:28,703] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:28,733] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:39,155] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:39,159] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:39,226] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 04:29:39,228] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 07:29:41,301] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-12 07:29:42,245] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 07:29:42,246] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 07:29:42,247] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 07:29:44,284] [INFO] <uvicorn> Started server process [511]
[2026-05-12 07:29:44,285] [INFO] <uvicorn> Waiting for application startup.
[2026-05-12 07:29:44,330] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-12 07:29:44,471] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-12 07:29:44,472] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-12 07:29:44,485] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,490] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,513] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,517] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,541] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,544] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,569] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,572] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,616] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,619] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,642] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,645] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,667] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,671] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,694] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,697] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,737] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:29:44,740] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:29:44,776] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-12 07:29:44,826] [INFO] <picamera2.picamera2> Camera started
[2026-05-12 07:29:44,859] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-12 07:29:44,860] [INFO] <root> Updating ESI port settings
[2026-05-12 07:29:44,860] [INFO] <root> Opening ESI connection to port None
[2026-05-12 07:29:44,876] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-12 07:29:44,877] [INFO] <root> Creating serial.Serial instance...
[2026-05-12 07:29:44,878] [INFO] <root> Created Serial<id=0x7f6a55a050, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-12 07:29:44,878] [INFO] <root> Testing communication to SangaBoard
[2026-05-12 07:29:44,879] [INFO] <root> Running firmware checks...
[2026-05-12 07:29:44,885] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 07:29:44,888] [INFO] <root> Success!
[2026-05-12 07:29:44,889] [INFO] <root> Creating serial.Serial instance...
[2026-05-12 07:29:44,890] [INFO] <root> Created Serial<id=0x7f6a515180, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-12 07:29:44,891] [INFO] <root> Testing communication to SangaBoard
[2026-05-12 07:29:44,891] [INFO] <root> Running firmware checks...
[2026-05-12 07:29:44,897] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 07:29:44,898] [INFO] <root> Opened ESI connection to port None
[2026-05-12 07:29:44,898] [INFO] <root> Checking valid firmware...
[2026-05-12 07:29:44,898] [INFO] <root> Running firmware checks...
[2026-05-12 07:29:44,904] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 07:29:44,905] [INFO] <root> Loading modules...
[2026-05-12 07:29:44,926] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-12 07:29:44,943] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-12 07:29:44,959] [INFO] <uvicorn> Application startup complete.
[2026-05-12 07:29:44,996] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-12 07:29:47,063] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 07:29:47,077] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 07:52:36,549] [INFO] <uvicorn> Shutting down
[2026-05-12 07:52:36,657] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-12 07:52:36,678] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-12 07:52:37,071] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-12 07:52:37,486] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-12 07:52:37,488] [INFO] <uvicorn> Application shutdown complete.
[2026-05-12 07:52:37,489] [INFO] <uvicorn> Finished server process [511]
[2026-05-12 07:52:51,273] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-12 07:52:52,192] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 07:52:52,193] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 07:52:52,194] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 07:52:53,893] [INFO] <uvicorn> Started server process [858]
[2026-05-12 07:52:53,895] [INFO] <uvicorn> Waiting for application startup.
[2026-05-12 07:52:53,928] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-12 07:52:53,997] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-12 07:52:53,998] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-12 07:52:54,011] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,016] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,036] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,040] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,066] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,070] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,094] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,098] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,147] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,150] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,173] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,177] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,198] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,202] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,224] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,228] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,267] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 07:52:54,271] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 07:52:54,313] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-12 07:52:54,363] [INFO] <picamera2.picamera2> Camera started
[2026-05-12 07:52:54,396] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-12 07:52:54,396] [INFO] <root> Updating ESI port settings
[2026-05-12 07:52:54,397] [INFO] <root> Opening ESI connection to port None
[2026-05-12 07:52:54,413] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-12 07:52:54,413] [INFO] <root> Creating serial.Serial instance...
[2026-05-12 07:52:54,414] [INFO] <root> Created Serial<id=0x7f28ac59c0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-12 07:52:54,415] [INFO] <root> Testing communication to SangaBoard
[2026-05-12 07:52:54,415] [INFO] <root> Running firmware checks...
[2026-05-12 07:52:54,421] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 07:52:54,424] [INFO] <root> Success!
[2026-05-12 07:52:54,425] [INFO] <root> Creating serial.Serial instance...
[2026-05-12 07:52:54,426] [INFO] <root> Created Serial<id=0x7f28a851e0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-12 07:52:54,427] [INFO] <root> Testing communication to SangaBoard
[2026-05-12 07:52:54,427] [INFO] <root> Running firmware checks...
[2026-05-12 07:52:54,432] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 07:52:54,433] [INFO] <root> Opened ESI connection to port None
[2026-05-12 07:52:54,434] [INFO] <root> Checking valid firmware...
[2026-05-12 07:52:54,434] [INFO] <root> Running firmware checks...
[2026-05-12 07:52:54,439] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 07:52:54,440] [INFO] <root> Loading modules...
[2026-05-12 07:52:54,459] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-12 07:52:54,477] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-12 07:52:54,492] [INFO] <uvicorn> Application startup complete.
[2026-05-12 07:52:54,517] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-12 10:21:27,877] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 10:21:27,891] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 10:21:35,368] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 10:21:35,384] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 10:21:56,117] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 10:21:56,128] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 10:24:58,113] [INFO] <uvicorn> Shutting down
[2026-05-12 10:24:58,214] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-12 10:24:58,236] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-12 10:24:59,012] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-12 10:24:59,445] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-12 10:24:59,446] [INFO] <uvicorn> Application shutdown complete.
[2026-05-12 10:24:59,447] [INFO] <uvicorn> Finished server process [858]
[2026-05-12 10:25:13,120] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-12 10:25:14,040] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 10:25:14,041] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 10:25:14,042] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-12 10:25:15,740] [INFO] <uvicorn> Started server process [1068]
[2026-05-12 10:25:15,742] [INFO] <uvicorn> Waiting for application startup.
[2026-05-12 10:25:15,776] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-12 10:25:15,845] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-12 10:25:15,846] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-12 10:25:15,859] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:15,865] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:15,887] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:15,891] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:15,924] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:15,928] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:15,953] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:15,956] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:16,015] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:16,019] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:16,041] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:16,045] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:16,066] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:16,070] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:16,092] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:16,097] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:16,136] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-12 10:25:16,140] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-12 10:25:16,182] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-12 10:25:16,228] [INFO] <picamera2.picamera2> Camera started
[2026-05-12 10:25:16,260] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-12 10:25:16,261] [INFO] <root> Updating ESI port settings
[2026-05-12 10:25:16,262] [INFO] <root> Opening ESI connection to port None
[2026-05-12 10:25:16,278] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-12 10:25:16,278] [INFO] <root> Creating serial.Serial instance...
[2026-05-12 10:25:16,280] [INFO] <root> Created Serial<id=0x7f41ec6020, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-12 10:25:16,280] [INFO] <root> Testing communication to SangaBoard
[2026-05-12 10:25:16,281] [INFO] <root> Running firmware checks...
[2026-05-12 10:25:16,287] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 10:25:16,290] [INFO] <root> Success!
[2026-05-12 10:25:16,291] [INFO] <root> Creating serial.Serial instance...
[2026-05-12 10:25:16,293] [INFO] <root> Created Serial<id=0x7f41e85150, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-12 10:25:16,294] [INFO] <root> Testing communication to SangaBoard
[2026-05-12 10:25:16,294] [INFO] <root> Running firmware checks...
[2026-05-12 10:25:16,300] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 10:25:16,301] [INFO] <root> Opened ESI connection to port None
[2026-05-12 10:25:16,302] [INFO] <root> Checking valid firmware...
[2026-05-12 10:25:16,302] [INFO] <root> Running firmware checks...
[2026-05-12 10:25:16,308] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-12 10:25:16,310] [INFO] <root> Loading modules...
[2026-05-12 10:25:16,331] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-12 10:25:16,347] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-12 10:25:16,360] [INFO] <uvicorn> Application startup complete.
[2026-05-12 10:25:16,398] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-12 11:01:38,150] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 11:01:38,162] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 11:01:41,457] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 11:01:41,465] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 11:02:11,211] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-12 11:02:11,230] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-13 00:58:18,095] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-13 00:58:19,034] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-13 00:58:19,035] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-13 00:58:19,036] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-13 19:20:16,790] [INFO] <uvicorn> Started server process [518]
[2026-05-13 19:20:16,791] [INFO] <uvicorn> Waiting for application startup.
[2026-05-13 19:20:16,835] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-13 19:20:16,997] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-13 19:20:16,998] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-13 19:20:17,011] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,016] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,040] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,044] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,068] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,071] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,096] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,100] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,143] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,146] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,169] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,172] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,194] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,198] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,221] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,224] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,263] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-13 19:20:17,267] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-13 19:20:17,302] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-13 19:20:17,351] [INFO] <picamera2.picamera2> Camera started
[2026-05-13 19:20:17,384] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-13 19:20:17,385] [INFO] <root> Updating ESI port settings
[2026-05-13 19:20:17,386] [INFO] <root> Opening ESI connection to port None
[2026-05-13 19:20:17,404] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-13 19:20:17,405] [INFO] <root> Creating serial.Serial instance...
[2026-05-13 19:20:17,406] [INFO] <root> Created Serial<id=0x7f350760b0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-13 19:20:17,407] [INFO] <root> Testing communication to SangaBoard
[2026-05-13 19:20:17,407] [INFO] <root> Running firmware checks...
[2026-05-13 19:20:17,413] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-13 19:20:17,416] [INFO] <root> Success!
[2026-05-13 19:20:17,417] [INFO] <root> Creating serial.Serial instance...
[2026-05-13 19:20:17,418] [INFO] <root> Created Serial<id=0x7f350391e0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-13 19:20:17,419] [INFO] <root> Testing communication to SangaBoard
[2026-05-13 19:20:17,419] [INFO] <root> Running firmware checks...
[2026-05-13 19:20:17,425] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-13 19:20:17,426] [INFO] <root> Opened ESI connection to port None
[2026-05-13 19:20:17,426] [INFO] <root> Checking valid firmware...
[2026-05-13 19:20:17,426] [INFO] <root> Running firmware checks...
[2026-05-13 19:20:17,432] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-13 19:20:17,433] [INFO] <root> Loading modules...
[2026-05-13 19:20:17,453] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-13 19:20:17,469] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-13 19:20:17,484] [INFO] <uvicorn> Application startup complete.
[2026-05-13 19:20:17,520] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-13 19:22:39,006] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-13 19:22:39,022] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-13 19:22:44,400] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-13 19:22:44,413] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 03:52:23,711] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-14 05:47:41,886] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 05:47:41,887] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 05:47:41,888] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 05:47:43,816] [INFO] <uvicorn> Started server process [513]
[2026-05-14 05:47:43,817] [INFO] <uvicorn> Waiting for application startup.
[2026-05-14 05:47:43,861] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-14 05:47:44,002] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-14 05:47:44,003] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-14 05:47:44,016] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,022] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,046] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,050] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,074] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,078] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,103] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,107] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,150] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,154] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,177] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,180] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,202] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,205] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,228] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,232] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,271] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:47:44,275] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:47:44,312] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-14 05:47:44,362] [INFO] <picamera2.picamera2> Camera started
[2026-05-14 05:47:44,396] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-14 05:47:44,397] [INFO] <root> Updating ESI port settings
[2026-05-14 05:47:44,398] [INFO] <root> Opening ESI connection to port None
[2026-05-14 05:47:44,413] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-14 05:47:44,414] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 05:47:44,415] [INFO] <root> Created Serial<id=0x7f62beda80, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 05:47:44,416] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 05:47:44,416] [INFO] <root> Running firmware checks...
[2026-05-14 05:47:44,422] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 05:47:44,425] [INFO] <root> Success!
[2026-05-14 05:47:44,426] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 05:47:44,427] [INFO] <root> Created Serial<id=0x7f62bb12a0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 05:47:44,428] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 05:47:44,429] [INFO] <root> Running firmware checks...
[2026-05-14 05:47:44,434] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 05:47:44,435] [INFO] <root> Opened ESI connection to port None
[2026-05-14 05:47:44,435] [INFO] <root> Checking valid firmware...
[2026-05-14 05:47:44,436] [INFO] <root> Running firmware checks...
[2026-05-14 05:47:44,441] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 05:47:44,442] [INFO] <root> Loading modules...
[2026-05-14 05:47:44,463] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-14 05:47:44,478] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-14 05:47:44,494] [INFO] <uvicorn> Application startup complete.
[2026-05-14 05:47:44,525] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-14 05:48:18,045] [INFO] <uvicorn> Shutting down
[2026-05-14 05:48:18,150] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-14 05:48:18,174] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-14 05:48:18,571] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-14 05:48:18,990] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-14 05:48:18,993] [INFO] <uvicorn> Application shutdown complete.
[2026-05-14 05:48:18,995] [INFO] <uvicorn> Finished server process [513]
[2026-05-14 05:48:32,801] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-14 05:48:33,717] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 05:48:33,718] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 05:48:33,719] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 05:48:35,414] [INFO] <uvicorn> Started server process [833]
[2026-05-14 05:48:35,415] [INFO] <uvicorn> Waiting for application startup.
[2026-05-14 05:48:35,450] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-14 05:48:35,520] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-14 05:48:35,521] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-14 05:48:35,534] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,540] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,559] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,563] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,588] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,591] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,616] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,620] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,666] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,669] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,692] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,696] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,717] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,721] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,744] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,747] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,787] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 05:48:35,790] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 05:48:35,829] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-14 05:48:35,881] [INFO] <picamera2.picamera2> Camera started
[2026-05-14 05:48:35,913] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-14 05:48:35,914] [INFO] <root> Updating ESI port settings
[2026-05-14 05:48:35,914] [INFO] <root> Opening ESI connection to port None
[2026-05-14 05:48:35,931] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-14 05:48:35,931] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 05:48:35,933] [INFO] <root> Created Serial<id=0x7f2d552170, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 05:48:35,933] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 05:48:35,933] [INFO] <root> Running firmware checks...
[2026-05-14 05:48:35,939] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 05:48:35,942] [INFO] <root> Success!
[2026-05-14 05:48:35,943] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 05:48:35,944] [INFO] <root> Created Serial<id=0x7f2d5152a0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 05:48:35,945] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 05:48:35,946] [INFO] <root> Running firmware checks...
[2026-05-14 05:48:35,951] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 05:48:35,952] [INFO] <root> Opened ESI connection to port None
[2026-05-14 05:48:35,953] [INFO] <root> Checking valid firmware...
[2026-05-14 05:48:35,953] [INFO] <root> Running firmware checks...
[2026-05-14 05:48:35,958] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 05:48:35,959] [INFO] <root> Loading modules...
[2026-05-14 05:48:35,982] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-14 05:48:36,001] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-14 05:48:36,014] [INFO] <uvicorn> Application startup complete.
[2026-05-14 05:48:36,047] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-14 05:53:22,005] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 05:53:22,022] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 05:58:33,720] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 05:58:33,914] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 06:17:41,504] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 06:17:41,602] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 08:20:10,419] [ERROR] <root> Error in stream: the ith frame has been overwritten, stream stopped
Traceback (most recent call last):
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/labthings_fastapi/outputs/mjpeg_stream.py", line 291, in frame_async_generator
    async with self.buffer_for_reading(i) as frame:
  File "/usr/lib/python3.11/contextlib.py", line 204, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/labthings_fastapi/outputs/mjpeg_stream.py", line 227, in buffer_for_reading
    entry = await self.ringbuffer_entry(i)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/labthings_fastapi/outputs/mjpeg_stream.py", line 203, in ringbuffer_entry
    raise ValueError("the ith frame has been overwritten")
ValueError: the ith frame has been overwritten
[2026-05-14 08:20:12,365] [ERROR] <root> Error in stream: the ith frame has been overwritten, stream stopped
Traceback (most recent call last):
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/labthings_fastapi/outputs/mjpeg_stream.py", line 291, in frame_async_generator
    async with self.buffer_for_reading(i) as frame:
  File "/usr/lib/python3.11/contextlib.py", line 204, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/labthings_fastapi/outputs/mjpeg_stream.py", line 227, in buffer_for_reading
    entry = await self.ringbuffer_entry(i)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/labthings_fastapi/outputs/mjpeg_stream.py", line 203, in ringbuffer_entry
    raise ValueError("the ith frame has been overwritten")
ValueError: the ith frame has been overwritten
[2026-05-14 08:45:44,927] [INFO] <uvicorn> Shutting down
[2026-05-14 08:45:45,091] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-14 08:45:45,440] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-14 08:45:46,392] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-14 08:45:47,320] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-14 08:45:47,346] [INFO] <uvicorn> Application shutdown complete.
[2026-05-14 08:45:47,367] [INFO] <uvicorn> Finished server process [833]
[2026-05-14 08:46:12,808] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-14 08:46:13,732] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 08:46:13,733] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 08:46:13,734] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 08:46:15,580] [INFO] <uvicorn> Started server process [1419]
[2026-05-14 08:46:15,581] [INFO] <uvicorn> Waiting for application startup.
[2026-05-14 08:46:15,624] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-14 08:46:15,763] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-14 08:46:15,764] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-14 08:46:15,777] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,783] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:15,806] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,810] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:15,838] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,842] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:15,867] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,870] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:15,924] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,928] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:15,950] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,953] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:15,975] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:15,979] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:16,001] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:16,004] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:16,043] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 08:46:16,047] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 08:46:16,090] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-14 08:46:16,146] [INFO] <picamera2.picamera2> Camera started
[2026-05-14 08:46:16,179] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-14 08:46:16,180] [INFO] <root> Updating ESI port settings
[2026-05-14 08:46:16,180] [INFO] <root> Opening ESI connection to port None
[2026-05-14 08:46:16,197] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-14 08:46:16,197] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 08:46:16,199] [INFO] <root> Created Serial<id=0x7f4c88e350, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 08:46:16,199] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 08:46:16,200] [INFO] <root> Running firmware checks...
[2026-05-14 08:46:16,205] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 08:46:16,208] [INFO] <root> Success!
[2026-05-14 08:46:16,209] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 08:46:16,211] [INFO] <root> Created Serial<id=0x7f4c855270, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 08:46:16,211] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 08:46:16,212] [INFO] <root> Running firmware checks...
[2026-05-14 08:46:16,217] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 08:46:16,218] [INFO] <root> Opened ESI connection to port None
[2026-05-14 08:46:16,219] [INFO] <root> Checking valid firmware...
[2026-05-14 08:46:16,219] [INFO] <root> Running firmware checks...
[2026-05-14 08:46:16,224] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 08:46:16,225] [INFO] <root> Loading modules...
[2026-05-14 08:46:16,250] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-14 08:46:16,269] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-14 08:46:16,287] [INFO] <uvicorn> Application startup complete.
[2026-05-14 08:46:16,334] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)
[2026-05-14 13:58:09,781] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 13:58:09,803] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 14:03:05,831] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 14:03:05,847] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 14:03:11,069] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 14:03:11,084] [WARNING] <uvicorn> Invalid HTTP request received.
[2026-05-14 14:12:12,059] [INFO] <uvicorn> Shutting down
[2026-05-14 14:12:12,166] [INFO] <uvicorn> Waiting for connections to close. (CTRL+C to force quit)
[2026-05-14 14:12:14,165] [ERROR] <uvicorn.error> Cancel 1 running task(s), timeout graceful shutdown exceeded
[2026-05-14 14:12:14,168] [INFO] <uvicorn> Waiting for application shutdown.
[2026-05-14 14:12:14,177] [ERROR] <uvicorn.error> Exception in ASGI application
Traceback (most recent call last):
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/fastapi/applications.py", line 1159, in __call__
    await super().__call__(scope, receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/applications.py", line 107, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 192, in __call__
    async with anyio.create_task_group() as task_group:
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 787, in __aexit__
    raise exc_val
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 194, in __call__
    await response(scope, wrapped_receive, send)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/base.py", line 238, in __call__
    await send({"type": "http.response.body", "body": chunk, "more_body": True})
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 161, in _send
    await send(message)
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 454, in send
    await self.flow.drain()  # pragma: full coverage
    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/openflexure/application/openflexure-microscope-server/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/flow_control.py", line 19, in drain
    await self._is_writable_event.wait()  # pragma: full coverage
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/locks.py", line 213, in wait
    await fut
asyncio.exceptions.CancelledError: Task cancelled, timeout graceful shutdown exceeded
[2026-05-14 14:12:14,370] [INFO] <picamera2.picamera2> Camera stopped
[2026-05-14 14:12:14,422] [INFO] <openflexure_microscope_server.things.camera.picamera> Stopped MJPEG stream.
[2026-05-14 14:12:14,986] [INFO] <picamera2.picamera2> Camera closed successfully.
[2026-05-14 14:12:14,988] [INFO] <uvicorn> Application shutdown complete.
[2026-05-14 14:12:14,990] [INFO] <uvicorn> Finished server process [1419]
[2026-05-14 14:12:30,543] [INFO] <openflexure_microscope_server.logging> OFM server root logger has been set up at INFO level
[2026-05-14 14:12:31,469] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_dz was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 14:12:31,470] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_images_to_save was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 14:12:31,471] [WARNING] <labthings_fastapi.things.autofocus> An extra key stack_min_images_to_test was found in the settings file. It will be deleted the next time settings are saved.
[2026-05-14 14:12:33,243] [INFO] <uvicorn> Started server process [3204]
[2026-05-14 14:12:33,245] [INFO] <uvicorn> Waiting for application startup.
[2026-05-14 14:12:33,295] [INFO] <openflexure_microscope_server.things.camera.picamera> Creating new Picamera2 object
[2026-05-14 14:12:33,370] [INFO] <picamera2.picamera2> Initialization successful.
[2026-05-14 14:12:33,372] [INFO] <picamera2.picamera2> Camera now open.
[2026-05-14 14:12:33,385] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,389] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,406] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,409] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,434] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,438] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,462] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,465] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,520] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,524] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,546] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,549] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,570] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,573] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,596] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,600] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,638] [INFO] <picamera2.picamera2> Camera configuration has been adjusted!
[2026-05-14 14:12:33,642] [INFO] <picamera2.picamera2> Configuration successful!
[2026-05-14 14:12:33,687] [INFO] <openflexure_microscope_server.things.camera.picamera> Starting picamera MJPEG stream...
[2026-05-14 14:12:33,734] [INFO] <picamera2.picamera2> Camera started
[2026-05-14 14:12:33,764] [INFO] <root> Initialising ExtensibleSerialInstrument on port None
[2026-05-14 14:12:33,765] [INFO] <root> Updating ESI port settings
[2026-05-14 14:12:33,765] [INFO] <root> Opening ESI connection to port None
[2026-05-14 14:12:33,781] [INFO] <root> Trying port /dev/ttyAMA0 with settings {'baudrate': 115200, 'bytesize': 8, 'parity': 'N', 'stopbits': 1}
[2026-05-14 14:12:33,781] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 14:12:33,782] [INFO] <root> Created Serial<id=0x7f5d8fa2f0, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 14:12:33,783] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 14:12:33,783] [INFO] <root> Running firmware checks...
[2026-05-14 14:12:33,789] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 14:12:33,792] [INFO] <root> Success!
[2026-05-14 14:12:33,793] [INFO] <root> Creating serial.Serial instance...
[2026-05-14 14:12:33,794] [INFO] <root> Created Serial<id=0x7f5d8fa440, open=True>(port='/dev/ttyAMA0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)
[2026-05-14 14:12:33,794] [INFO] <root> Testing communication to SangaBoard
[2026-05-14 14:12:33,795] [INFO] <root> Running firmware checks...
[2026-05-14 14:12:33,800] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 14:12:33,801] [INFO] <root> Opened ESI connection to port None
[2026-05-14 14:12:33,802] [INFO] <root> Checking valid firmware...
[2026-05-14 14:12:33,802] [INFO] <root> Running firmware checks...
[2026-05-14 14:12:33,807] [INFO] <root> Firmware response: Sangaboard Firmware v1.0.1
[2026-05-14 14:12:33,808] [INFO] <root> Loading modules...
[2026-05-14 14:12:33,830] [INFO] <root> Enabling backwards-compatible behaviour on new Sangaboard firmware
[2026-05-14 14:12:33,845] [WARNING] <labthings_fastapi.things.stage> Sangaboard firmware version 1.0.1 is below the recommended 1.0.4. Visit https://openflexure.miraheze.org/wiki/Sangaboard for instructions on updating.
[2026-05-14 14:12:33,861] [INFO] <uvicorn> Application startup complete.
[2026-05-14 14:12:33,900] [INFO] <uvicorn> Uvicorn running on http://0.0.0.0:5000 (Press CTRL+C to quit)