Cartesian Robotics

 Unpacking guide

Make sure to unpack the box from the proper side. Hold on to the upper horizontal aluminum bar to pull the robot out of the box.

Place the robot on a flat surface.

Make sure the tube rack can move all the way forward and backward, and nothing prevents the movement.

Make sure the pipette mechanism can move along the horizontal rails

Make sure both sides of the Z axis are at the same distance from the motors. Use the supplied spacers. Place them between the Z axis motor and manually lower Z axis until both sides are touching the spacer.

Make sure the power supply is switched to your net voltage (120 or 220 V). Check the switch on the back of the power supply.

Plug the cord into the power supply on the right side of the robot.

Plug the USB cable into your Windows 10 or later computer.

Proceed to the first time setup.

 First-time setup

At the moment, Bernie robot only works with Windows 10 out of the box

Install Anaconda environment.

Make sure Python is installed.

Install Arduino IDE.

Make sure that the robot is powered and connected to your computer via USB.

Clone bernielib repository to your computer.

Open Anaconda Prompt and go to the local bernielib directory.

Run calibration script:

python calibrate.py

Follow the instructions. If everything goes well, the robot will be ready for operation.

 Bernie robot operation guide

Bernie can perform two types of protocols out of the box: single-stage DNA purification and two-stage DNA purification. The first one intent to remove any small molecule impurities and short DNA, such as primers. The protocol will cut off only shorter DNA strands. The second one, the two-stage purification, will remove both shorter-than-needed and longer-than-needed DNA strands, keeping only medium-sized DNA according to the margin you specify.

To run any of the protocols, please open the Anaconda prompt and go to the local bernielib directory. There, find the samplesheet.csv or samplesheet_2stage.csv files. The first one is pre-designed for single-stage purification, the second one is for two-stage purification. Modify the files according to your needs and save them. It is a good idea to save the file under a different name.

In the Anaconda prompt, type the command:

python purify.py samplesheet.csv

Replace samplesheet.csv with your file name.

The robot will start the purification.

If you are running the robot for the first time, it is a good idea to do the first run with just water instead of your real samples.

Bernie specific questions and answers

12/1/2021 software update instructions

This only applies to Bernie SN3 and SN4.

  1. Backup of your previous Bernie installation, to save your parameters, protocols, or modifications.

  2. Manually delete the previous Bernie installation. Make sure the backup is saved.

  3. Using Git, pull or clone the Bernie GitHub repository.

  4. Flush the Arduino firmware (see the separate instructions).

  5. Remove all the tubes from the working area. Keep the tip rack (with or without the tips)

  6. Perform the calibration routine. Run “python calibrate.py”

  7. If calibration was successful, the robot is ready to work.

See also:

  • How to modify the parameters

 

How to flush the Arduino firmware?

First, make sure you followed the “12/1/2021 software update instructions” until the “flush firmware” step.

  1. Make sure the Arduino IDE is installed. Start Arduino IDE.

  2. Within the Arduino IDE, install the HX711 library. To do that:

    1. go to “Tools -> Manage Libraries”, or “Sketch -> Include library -> Manage Libraries”.

    2. In the “Filter your search…” field, type “HX711”.

    3. Locate the “HX711 by Rob Tillaart” entry. Select the latest version.

    4. Press “Install”, unless already installed.

    5. Close the Library manager window

  3. From within the Arduino IDE interface, open the Arduino firmware from the Bernie repository. To do that, go “File -> Open”, then locate your Bernie folder; go to “firmware_arduino”; choose the “Bernie” file.

    1. The Arduino IDE will prompt you to move it to the sketchbook; proceed.

  4. Press the “Verify” button, to make sure that the code compiles and nothing is wrong.

  5. Connect the Bernie robot to your computer’s USB port. Power may or may not be on.

  6. Choose the board and the port

    1. From the menu, go to “Tools -> Board” and choose “Arduino/Genuino Uno”.

    2. Go to the “Tools -> Port”. There should be at least two ports. Select the first port.

    3. Go to the “Tools -> Serial Monitor”. Wait for a few seconds. The monitor should give a welcome message.

    4. If the welcome message did not appear, select the other port from the “Tools -> Port”; then repeat the previous step.

    5. Once the port is selected, press the “Upload” button. Wait for the compilation and upload to complete.

    6. Open the Serial Monitor again, to make sure the welcome message appears.

  7. Continue with the “Software update” instructions.

 

About Bernie settings

The default settings are stored in the “factory_default” folder. Do not modify those settings, all the modifications will be discarded at the next Bernie library update.

All Bernie scripts and the library are using the settings from the “Bernielib” root folder. They are not changed during updates, so the robot settings can be preserved.

All the “.json” and “.csv” files from the “Bernielib” root folder can be safely deleted.

When a script is run and requires a setting, it will first look at the “Bernielib” root folder. If not found, it will look in the “factory_default” folder. It will then copy the required setting into the root folder.

The purify.py settings are stored in the samplesheet.csv file. Those are protocol-specific settings.

The robot-specific settings are stored in the “robot.json” file.

The workspace-specific settings for the robot are stored in the files “reagents.json”, “samples.json”, “waste.json”, “tips.json”. For example, the approximate X,Y center of the racks and workspace is stored there and can be modified.

The sample-specific settings are in the “.json” files with the corresponding name, such as “eppendorf.json” or “25ml.json”. Use the same name in the samplesheet.csv file to specify the tube. You can create your own tube by copying the file, remaining it and modifying the necessary settings.

Some settings are still hardcoded in the library code or the scripts. If you need to modify them, either locate them in the code or contact Sergii s.pochekailov@gmail.com

 

When Bernie mixes the liquids, I want it to pause between pipette strokes for the longer time

The mixing instructions are provided in a separate excel file for each tube type. The files are named mixing_pattern_SampleType.xls; for example, mixing_pattern_eppendorf.xls.

You can edit the file to modify the mixing pattern.

There is a copy of the mixing patterns file in the factory_default folder; in case you want to revert your settings, just replace the modified file with the copy from the factory_default.

The delay between strokes is specified in the “delay” column. Replace all the values with the desired ones.

Delay_Mixing_Change.png

Each row represents a pipette stroke up or down. If you want to modify only some strokes, change the delays only for those rows.

 

Bernie fails to uptake the liquid, trying to pipette while being somewhat above the actual liquid level

  1. Make sure the actual liquid level is the same or above the level provided in your samplesheet.csv file. Some liquid could evaporate over time.

  2. Make sure the tube is properly measured.

    1. Go to the ./bernielib folder.

    2. Find the .json file for your specific tube. For example, if you are using 25 mL tubes, the file will be called 25ml.json. Open the file with a text editor.

    3. Find the parameter “depth_to_vol_dict”. The parameter value is the dictionary of tube volume (uL) versus distance to the liquid from the top rim (mm).

    4. Measure those values manually and compare them with the dictionary values.

    5. If different, replace the values with your new ones.

    6. Do not modify the files in “factory_default” folder, since they will be replaced at the next update.

  3. If the previous measurements are correct, find the parameter “extra_immersion_volume” and increase its value. For example, instead of “2500”, enter “3000” or so.

  4. If you have several types of tubes, create a new tube file. Please refer to the “Creating new tube” guide.