Open cfobel opened 5 years ago
Tools > DMF control board > Test channels...
Tools > DMF control board > Calibration > Calibrate reference load
(<type 'exceptions.AttributeError'>, AttributeError("'DMFControlBoardPlugin' object has no attribute 'calibrations_dir'",), <traceback object at 0x146F3B70>) {}
File "C:\Users\chris\mc2-x86\envs\md-wheeler-2.34.1rc0\lib\site-packages\pygtkhelpers\gthreads.py", line 260, in _no_return_func
func(*args)
File "C:\Users\chris\Documents\GitHub\wheeler-plugins\dmf_control_board_plugin\feedback.py", line 1958, in calibrate_attenuators
calibrations_dir = self.plugin.calibrations_dir()
Tools > DMF control board > Calibration > Open reference load calibration
(<type 'exceptions.AttributeError'>, AttributeError("'DMFControlBoardPlugin' object has no attribute 'calibrations_dir'",), <traceback object at 0x14689440>) {}
File "C:\Users\chris\mc2-x86\envs\md-wheeler-2.34.1rc0\lib\site-packages\pygtkhelpers\gthreads.py", line 260, in _no_return_func
func(*args)
File "C:\Users\chris\Documents\GitHub\wheeler-plugins\dmf_control_board_plugin\feedback.py", line 1868, in load_reference_calibration
dialog.set_current_folder(self.plugin.calibrations_dir())
Tools > DMF control board > Calibration > Calibrate device load
Tools > DMF control board > Calibration > Open device load calibration
Tools > DMF control board > Configuration > Edit settings
Tools > DMF control board > Configuration > Save to file
(<type 'exceptions.AttributeError'>, AttributeError("'DMFControlBoardPlugin' object has no attribute 'configurations_dir'",), <traceback object at 0x146E8850>) {}
File "C:\Users\chris\mc2-x86\envs\md-wheeler-2.34.1rc0\lib\site-packages\pygtkhelpers\gthreads.py", line 260, in _no_return_func
func(*args)
File "C:\Users\chris\Documents\GitHub\wheeler-plugins\dmf_control_board_plugin\pyutilib.py", line 1492, in save_config_dialog
dialog.set_current_folder(self.configurations_dir())
Tools > DMF control board > Configuration > Load from file
Tools > DMF control board > Configuration > Reset to default values
Background
As of
microdrop.dmf-control-board-plugin==2.3.4
, the latest version of MicroDrop (i.e., with asyncioon_step_run()
) is not supported. However, MicroDrop 2.32 fixes bugs, but also adds support for thresholding for all actuations - including those along routes.Task
Aaron Wheeler has agreed for the Wheeler Lab to contract Sci-Bots to update
microdrop.dmf-control-board-plugin
to run with the latest version of MicroDrop. This will help the Wheeler Lab benefit from further improvements to MicroDrop by Sci-Bots down the road.Approach
Port
microdrop.dropbot-plugin
to work with thedmf-control-board
DropBot 2.0 driver.This involves the following:
db.threshold
functions:actuate_channels()
db.threshold.co_target_capacitance()
self.control_board
usage with compatible DropBot 2.0 API calls.hv_output_enabled
turn_off_all_channels()
measure_capacitance()
measure_voltage()
transaction_lock
state_of_channels
voltage
frequency
proxy.signals.signal('capacitance-updated')
capacitance-updated
functionality, e.g., through pollingMicrodropChannelsAssistantView
wizard[ ] Port connection code to work for DropBot 2.0
[ ] Determine how to detect if 12 V power supply is available
[ ] Integrate
dmf-control-board-firmware
firmware flashing in response toversion-mismatch
[ ] Ideally low overhead method to detect if a DropBot is connected to any serial port (i.e., equivalent to the
base_node_rpc.async._available_devices(timeout=.1)
).dmf-control-board-firmware/src/RemoteObject.cpp
send_command()
,name()
,software_version()
,hardware_version()
in Python usingserial
/asyncserial
?[x] Handle DropBot watchdog timer reset.
Given the above functionality, we should be able to port the DropBot 3
dropbot.monitor.monitor()
coroutine to thedmf-control-board-firmware
package.Known issues
volume_threshold
step option instead: