# See documentation for this file at https://docs.pioreactor.com/user-guide/configuration [pioreactor] [PWM] # map the PWM channels to externals. # hardware PWM are available on channels 2 & 4. 1=stirring 2=media 3=alt_media 4=waste 5=heating [leds] # Specify LED channels, add LED labels in the UI, and access specific LEDs programmatically. Ex: A=IR, B=white1, C=white2. Should be unique names. # To measure optical density, one LED channel should be labelled `IR`. A=IR B= C= D= [stirring.config] target_rpm=500 initial_duty_cycle=30 pwm_hz=200 use_rpm=1 duration_between_updates_seconds=23 [od_reading.config] # how many optical density measurements should be published per second? Recommended maximum is 1. samples_per_second=0.2 # default intensity of IR LED. The value `auto` will automatically choose an IR LED intensity that matches an internal value. # Or set an integer between 0 and 100. Higher is usually better (>= 50), but keep less than 90 for longevity. ir_led_intensity=auto # lower to remove heating artifacts, but may introduce more noise in the OD. Must be between 0 and 1. pd_reference_ema=0.9 # populate with your local AC frequency (typically 50 or 60) to get slightly reduced noise. Inferred from data otherwise. # local_ac_hz= # use the most recent calibration file, if available use_calibration=1 # apply a smoothing penalizer smoothing_penalizer=700.0 # turn off the other LED channels during an OD reading snapshot. turn_off_leds_during_reading=1 [od_config.photodiode_channel] # Default IR photodiode channel(s) to use and its angle relative to the IR LED(s), # OR choose the reference photodiode using the keyword REF. # Only valid angles are {45, 90, 135, 180} # Only allowable channels are {1, 2} 1=REF 2=90 [bioreactor] # used in dosing automations # max_volume_ml is determined by the volume that just touches the outflow tube. I.e. if you # where to keep running the waste pump, what would the stable volume be. # see docs: https://docs.pioreactor.com/user-guide/prepare-vial-for-cultures#extra max_volume_ml=14 initial_volume_ml=14 initial_alt_media_fraction=0 [storage] # the UI looks here, too. database=/home/pioreactor/.pioreactor/storage/pioreactor.sqlite # in a cluster, leader will backup the db to workers. Set the number of workers below. number_of_backup_replicates_to_workers=2 [logging] # where, on each Rpi, to store the logs log_file=/var/log/pioreactor.log ui_log_file=/var/log/pioreactor.log # See Python's logging module for possible values # logs also appear in the UI ui_log_level=INFO console_log_level=DEBUG [cluster.topology] # should be a hostname defined on the network # See docs: https://docs.pioreactor.com/user-guide/create-cluster leader_hostname= # something like: leadername.local # this can be an IP address, too. leader_address= [mqtt] username=pioreactor password=raspberry broker_address= broker_ws_port=9001 broker_port=1883 ws_protocol=ws use_tls=0 [ui] # the UI will be available at the below alias, along with .local # note - it must end in .local, and subdomains are not allowed. # requires a reboot after changing. domain_alias=pioreactor.local # port the webserver is listening to, found in lighttpd.conf port=80 # protocol the webserver expects. proto=http [ui.overview.settings] # only display the previous X hours of data. # lookback_hours can be decimal values, too. Ex: 0.5 to represent 30 minutes. filtered_od_lookback_hours=50000 raw_od_lookback_hours=50000 # to change the default x-axis: clock_time or hours time_display_mode=clock_time [ui.overview.charts] # show/hide charts on the PioreactorUI dashboard # 1 is show, 0 is hide implied_growth_rate=1 implied_daily_growth_rate=0 fraction_of_volume_that_is_alternative_media=0 normalized_optical_density=1 raw_optical_density=1 temperature=1 [ui.overview.cards] # show/hide cards on the PioreactorUI dashboard # 1 is show, 0 is hide dosings=1 event_logs=1 [dosing_automation.config] pause_between_subdoses_seconds=5 waste_removal_multiplier=2 max_volume_to_stop=18.0 max_subdose=1.0 [dosing_automation.pid_morbidostat] Kp=5 Ki=0 Kd=0 minimum_dosing_volume_ml=0.1 [temperature_automation.thermostat] Kp=2.6 Ki=0.0 Kd=4.6 [stirring.pid] Kp=0.007 Ki=0.0 Kd=0.0 [growth_rate_kalman] # obs_std ↑ smooths growth rate, rate_std ↑ more responsive growth rate acc_std=0.0008 obs_std=1.5 od_std=0.0025 rate_std=0.1 [growth_rate_calculating.config] # these next two parameters control the length and magnitude # of the variance shift that our Kalman filter performs after a dosing event ekf_variance_shift_post_dosing_minutes=0.40 ekf_variance_shift_post_dosing_factor=2500 ekf_outlier_std_threshold=3.0 samples_for_od_statistics=35 [turbidostat.config] signal_channel=2 od_smoothing_ema=0.5 [local_access_point] # Only used if using the a pioreactor as a access point. # See details at https://docs.pioreactor.com/user-guide/local-access-point ssid=pioreactor passphrase=raspberry proto=rsn