Overview:
This repository contains the instructions/code/files for the assembly and operation of the LEDbyXample photoreactor. LEDbyXample is designed for automation and self-driving labs (SDLs), like those at the Acceleration Consortium in Toronto. Although it is designed for 8 mL (2 dram) vials that can be placed inside by a robotic arm with gripper, the 3d-printed design files are easily altered for use with larger vials. Most components, including for the LEDs (~1W to be suitable for photochemistry) are modular and easy to swap.
Authors:
Owen Alfred Melville, Staff Scientist
Monique Ngan, Automation Technician
Acceleration Consortium
Last Updated 2024-10-22
Why LEDbyXample?
Low Cost: Existing photoreactors on the market are quite expensive. One of the cheapest, the Pioreactor, costs about $340 USD ($460 CAD). There is no need for such a large price. The main parts for the LEDbyXample photoreactor cost about $80 USD, with additional electronic components from kits costing another $80 USD. Many of these additional parts are small electronic components that users may already have, and the kits provide more parts than are required by the reactor. Many of the components could also likely be sourced for cheaper as long as the builders are able to perform their own quality control checks.
Automation Friendly: LEDbyXample is designed to work with automation and self-driving labs. Vials can be release inside the reactor by a robotic arm with a gripper. Automation of the stirring rpm and LED intensity is controlled through a custom python script and uses a Raspberry Pi Pico which can be commanded through a USB cable. Wireless support for the Pico is available but not documented in this project.
Skill Development: LEDbyXample is made largely from scratch. This allows builders to develop their DIY skills (3D printing, electronics prototyping, microcontroller use). It contains clear build instructions with photos, links to videos, and clear part lists with links. The Python code used to communicate with the microcontroller is designed to be clear and easily modified.
Modular / Customizable: LEDbyXample is designed to be modular, with components (LEDs, fans, bases) that can be easily removed or swapped. The 3D printed parts that comprise the physical reactor can be modified to accomodate for different vial sizes.
Summary of Steps:
Tools Required For This Project:
Skills required For This Project:
Step 1: Order the Required Items:
The majority of the components for this project are electronic.
Materials Required:
These materials are required for the photoreactor. You would need to purchase more to make additional photoreactors. Note, only 1x Fan and 1x Fan Board are strictly needed for stirring. The active cooling Fan and Fan Board are optional. The total cost with 2 LED modules and 1 active cooling (fan) module is $82.80 USD.
Item | Supplier | Part number | Number | Cost (USD) | Total Cost (USD) |
---|---|---|---|---|---|
Raspberry Pi Pico WH | PiShop | 402-1 | 1 | 9.8 | 9.8 |
Grove Shield for Pico | Digikey | 1597-103100142-ND | 1 | 6.25 | 6.25 |
Fan Control Board | Digikey | 1528-4808-ND | 2 | 7.99 | 15.98 |
Square Fan (20mm Diameter) | Digikey | 2223-CFM-2006CF-060-078-22-ND | 2 | 11.06 | 22.12 |
Grove to Fan Board Connectors | Digikey | 1528-4528-ND | 2 | 2.83 | 5.66 |
Power Barrel Connector | Digikey | PJ-102AH | 1 | 1.02 | 1.02 |
Power Supply | Digikey | L6R06H-050 | 1 | 5.31 | 5.31 |
LED Stars (Green) | Digikey | LST1-01H06-GRN1-01 | 2 | 6.41 | 12.82 |
NPN Transistor | Digikey | 1727-4252-1-ND | 2 | 0.56 | 1.12 |
USB Cable for Pico | Digikey | DH-20M50056 | 1 | 2.72 | 2.72 |
Total Cost (USD) | $82.80 | ||||
Total Cost (CAD) | $115.53 |
Materials Required - Kits:
These materials come in kits, so you may not need them if you already have similar materials. They can be used for multiple reactors or other projects.
Item | Supplier | Cost (CAD) |
---|---|---|
Prototype PCB Board | Amazon Canada | 21.99 |
Nyodenium Magnets 6mm x 2mm | Amazon Canada | 9.99 |
Heat Sinks | Amazon Canada | 10.99 |
Resistors | Amazon Canada | 17.99 |
Solder Seal Connectors | Amazon Canada | 16.99 |
4-Pin Connectors | Amazon Canada | 21.99 |
2-Pin Connectors | Amazon Canada | 10.77 |
Total Cost (USD) | $79.29 | |
Total Cost (CAD) | $110.71 |
Generic Materials Required
Photo of Materials
Step 2: 3D Print the Parts:
All the 3D printed parts can be printed with 0.2 mm layer height and a 0.4 mm nozzle. For prototyping or low-temperature reactors, PLA filament can be used. For higher temperatures or shorter wavelength (blue,violet,UV), ASA can be used. Since ASA tends to warp, I recommend using glue stick on the print bed.
File Name | Purpose | Printing Considerations | Number Required | Customization Potential |
---|---|---|---|---|
LED_holder.stl | Holds LED + Heat Sink | None | 1 per LED | |
blank_holder.stl | Blocks Window | None | 1 per unblocked window | |
fan_base.stl | Holds Fan + Magnets | Tree Supports from base only | 1 | Change inset for larger fan |
fan_holder.stl | Holds Cooling Fan | Tree supports from base only | Only if cooling desired | |
reactor_shield.stl | Holds Vial | Tree supports from base only | 1 | Change circle diameter for larger vial |
screw_base.stl | Connects reactor to base | None | 1 | Change screw pattern for different base |
Step 3: Assemble the Photoreactor:
The 3D printed parts are modular. When assembled, they should look like this:
Step 3a: Assemble the LED Holders
The LED Holder takes the 3D printed insert, and adds in a heat sink and a ~1W LED with attached wires to be controlled by the microcontroller.
Parts Required:
Steps:
https://github.com/user-attachments/assets/7bd34561-cb51-4cb3-8f49-8e8b69328b1f
Congratulations, you have created your LED holder, which can slide in and out of the photoreactor! You can create as many of these as you have LEDs that you want to use
Step 3b: Assemble the Fan Base
The fan base holds a fan with magnets to allow for magnetic stirring.
Parts Required:
Steps:
Attach the connectors: You can wire the fan to a 4-pin connector using the optional kit or an alternative.
Using Optional Kit: Using the same technique as in Step 3a - 7, use solder seal connectors to extend the length of the fan wires by attaching them to pre-crimped wires from the electrical connector kit. Then, connect each wire to the connector head. When inserted correctly, the ends of the wire should be fully contained inside the plastic connectors, and fit snugly in place.
Using Other Connectors: If you have a pre-wired connector with 4 wire leads, you can use that instead of the connector kit. Using the same technique as in Step 3a - 7, use solder seal connectors to connect the fan wires to your pre-wired 4-pin connector.
Congratulations, you have created your Fan Base which is used to stir a magnetic rod in the reactor
Step 3c: (Optional) Assemble the Fan Holder
The fan holder holds a fan to actively cool the reactor vial. The cooling capacity of the current setup is unknown, and it is possible a larger or a stronger fan is required. This will be investigated for future versions of the photoreactor.
Parts Required:
Steps:
Congratulations, you have created your Fan Holder which is used to cool the reactor
Step 3d: Assemble the LED Board
The LED Board uses transistors to control the on/off status of the LEDs, with the signal to the transistor coming from the Rasperry pi. It also has a power inlet port to power the LEDs separately from the Pi, as they draw quite a bit of current. In the future, an LED board could be purchased to directly control the LED, including its intensity, something not currently possible with this design. The design described here controls 2 LEDs at a time, but it could be extended to control more LEDs at once.
Parts Required:
Steps:
Congratulations, you have created your LED Board which is used to control the reactor LEDs
Step 3e: Assemble the Fan Board
The Fan Board uses pre-made fan control boards to control the RPM of the fans. It connects to the Rasperry pi and to a separate power supply. The current design is for 2 fans (1 cooling, 1 stirring) but could be easily be extended for use with more fans.
Parts Required:
Steps:
1a. (Optional) Mount the power board and solder in a 1000 Ohm resistor between the power and ground sides. This creates a power port. The GND side represents your ground, and 5V your high voltage. 1b. Alternatively, you can connect the 5V using a wire to the 5V section of the LED board or to the 5V Pin in the Pico. This means one less power supply, but will draw power either from the LED power supply or from the Pico (which you don't want to draw too much from).
Congratulations, you have created your Fan Board which is used to control the reactor Fans
Step 3f: Combine the Electronics
We need to connect the boards to the raspberry pi, which controls them. Optionally, you can choose to house them in the 3D printed holder, the parts of which you would need to print. This housing is only to keep the electronics tidy, and is not needed.
Parts Required:
Steps:
Optional: Add the electronics to a housing
The electronics housing can be used to house the Raspberry Pi Pico and auxillary electronics. The holders for the auxillary electronics will fit the 60x40 mm PCB boards. They can be printed according to the instructions below. For the material you can use PLA but the snapping mechanism on the snap lid may work better with PETG.
File Name | Purpose | Printing Considerations | Number Required | Customization Potential |
---|---|---|---|---|
Pico Holder_MainBody.stl | Holds the Pico | Flat side down | 1 | |
Pico Holder_Main_Lid.stl | Lid for Main Unit | Flat side down | 1 | |
Aux_Module.stl | Holds LED/Fan Board | Flat side down | 2 | Could change to hold different sized PCB |
Pico Holder_Port_Door_Default.stl | Blank door for Aux Unit | Flat side down | 0 | Can add ports |
Pico Holder_Port_Door_Open_Ports.stl | Custom door for Aux Unit | Flat side down | 2 | |
Pico_Aux_Lid_Snap.stl | Lid for Aux Unit | Flat side down | 2 | |
Pico Holder_Port_Door_Honeycomb | Honeycomb door for Aux Unit | Flat side down | 2 |
Instructions:
Congratulations, you have finished assembling the electronics!
Step 3g: Assemble the Reactor
Parts Required:
Steps:
Congratulations, you have fully assembled the LEDbyXAmple photoreactor!
Step 4: Operate the Photoreactor:
To operate the photoreactor, we will need to use a Python script that connects to the RPi Pico. The script can be used to control the RPM of the fan (with some constraints) and to turn the LEDs on and off as needed.
Step 4a: Installations
Steps:
Step 4b: Python Scripts
Steps:
NOTE: Do not look directly at your LEDs! We recommend using blue-light blocking glasses and never looking directly at the emitted light
Step 4b: Operation
The LEDbyXample photoreactor currently has two functions: Switch on/off the LEDs (could have up to 4 in one reactor) and initialize/set the rpm of the fans (both for stirring and cooling).
Functions:
Future Steps