Introduction
To replace costly traditional spectrophotometers, we designed re-PEAt, a system capable of achieving low-cost absorbance detection. Our system uses an Arduino UNO R3 as its core to construct an LED array-based micro-spectroscopy platform. Six narrow-band LEDs (FWHM ≤20 nm, peak wavelengths spanning 405–690 nm) are soldered onto a custom PCB and sequentially pulse-driven. After light transmission through the sample, the transmitted light intensity is synchronously captured by AS7341, a visible light spectral sensor.
Raw light intensity is converted into discrete absorbance values via Beer–Lambert's law. These values are then analyzed against standard curves to derive characteristic peak shifts with EG concentration. This solution reduces light source costs by two orders of magnitude while maintaining wavelength accuracy of ≤±3 nm and absorbance resolution of 0.01 AU.
Structure
1. Frame and Work
SOLIDWORKS is a mainstream integrated 3D CAD/CAE/CAM platform developed by Dassault Systèmes of France. Utilizing feature-driven, parametric modeling technology, it enables rapid design and modification of parts, sheet metal, weldments, molds, and large assemblies. It integrates simulation modules like Simulation, Flow, and Plastics, supporting structural, thermal, fluid, mold flow, and topology optimization.
Additionally, it combines electrical, PCB, CAM, MBD, rendering, and product data management (PDR/PLM) capabilities, enabling a fully digital closed-loop workflow from concept design through manufacturing, quality inspection, and post-sales documentation. With its Windows-style interface, extensive standard parts library, and global ecosystem, SOLIDWORKS has become one of the most widely adopted 3D design tools across industries including mechanical engineering, consumer electronics, healthcare, energy, and education.
We utilized SOLIDWORKS to complete the modeling of our project's hardware components, sequentially designing the motor base, slip ring shaft base, glass cuvette base, drive gear and driven gear, and finally developing a mounting frame for these bases.
The bases are fabricated from high-strength nylon, ensuring both structural integrity and durability while facilitating screw hole machining. The black material minimizes reflections, guaranteeing accurate light absorption by the spectral sensor.
The frame and bases are secured with M5 screws, balancing stability with ease of assembly and disassembly.
2. Circuit
In the circuit section, we designed circuits to achieve light source control, stepper motor control, sensor control, and display control. Detailed information will be covered in the System section.
System
1. Control System
The control system utilizes an Arduino UNO R3 development board based on the ATmega328p microcontroller and an Arduino Mega2560 development board based on the ATmega2560 microcontroller. The Arduino UNO R3 board controls the stepper motor, sensors, and LED light source, while the Arduino Mega2560 board provides direct connection to the display. Serial communication links the two development boards.
The UNO connects to the computer via its USB port, while the Mega 2560 is powered by an external 7-12 V supply. The two boards are connected using only three DuPont wires in a cross configuration:
- UNO-TX (D1) → Mega-RX1 (D19)
- UNO-RX (D0) ← Mega-TX1 (D18)
- GND ↔ GND
2. Light Source System
To obtain monochromatic light at different wavelengths, we sequentially activate six LEDs and alternately shine them through a cuvette onto the sensor, capturing six discrete points. Our design is implemented on a PCB board, powered by an Arduino UNO R3 which also sends clock signals to drive the PCB's normal operation.
3. Drive System
The system is powered by a 24V 42-step stepper motor with a TB6600 driver, featuring a 4:3 gear ratio between the drive and driven gears. Arduino UNO R3 precisely controls the motor's rotation with PWM pulses, ensuring each step rotates 45° and driving the driven gear through the driving gear to rotate the PCB. A CLK signal then drives the 4017 counter to illuminate LEDs, enabling precise switching of the light source illuminating the sensor. This captures discrete absorption spectral points across different wavelengths.
4. Sensor
The AS7341 is an 11-channel spectrophotometer designed for spectral recognition and color matching applications in mobile devices. Its spectral response spans wavelengths from approximately 350nm to 1000nm. Eight optical channels cover the visible spectrum, one channel measures near-infrared light, and one channel is an unfiltered “transparent” photodiode.
We selected six channels: F1 (405-425nm), F3 (470-490nm), F4 (505-525nm), F6 (580-600nm), F7 (620-640nm), F8 (670–690 nm) to read data at their respective wavelengths. Using the absorbance definition (Equation 1), the dimensionless values were converted to absorbance, serving as the vertical axis for the spectral curve.
A = log₁₀(I/I₀) (1)
Where: A = Absorbance; I₀ = Blank (Reference) Channel ADC Count; I = Sample Channel ADC Count
5. Display System
The display system utilizes a 3.5-inch Arduino Display-Mega2560 screen, supporting direct plug-in with the Arduino Mega2560 series. Mounted externally on the frame, the display receives six absorbance data points via serial communication between the Arduino UNO R3 development board and the Arduino Mega2560 development board, displaying them in real time.
Programming
We use the Arduino IDE to program the Arduino UNO R3 development board and the Arduino Mega2560 development board within the control system.
1. Arduino UNO R3
The program on the Arduino UNO R3 development board includes sending PWM signals to motors to control their drive, sending CLK signals to the PCB to control the light source, transmitting data acquired from the AS7341 sensor channels as arrays to the serial port, and simultaneously connecting to the Arduino Mega2560 via serial communication.
2. Arduino Mega2560
The program on the Arduino Mega2560 development board captures and locks specific values from the serial output array of the Arduino UNO R3 development board, displaying them in real-time on the screen. Additionally, we have created a startup screen displaying the team name and project name.
Test Results
The AS7341 periodically outputs detection values from its six channels. After collecting and locking six discrete wavelength data points via the display, the corresponding output values for the required channels are extracted. We conducted a quantitative analysis of how EG concentration changes affect the output value of the channel corresponding to 525nm (F4), revealing a distinct linear relationship. Ultimately, the fitted formula was used for reverse detection of EG concentration.
We also performed cubic spline interpolation fitting on the output results from all six channels, yielding a smoothed absorption spectrum curve. Finally, we programmed the debugged code and formula onto an Arduino Mega2560 development board to display the output values from all six channels and the EG concentration in real time.
Showcase Video
Future and Enhancement of re-PEAt
We recognize that our device still has several shortcomings, such as the rigor of the absorbance algorithm and potential LED brightness inconsistencies on the PCB due to unstable voltages. To mitigate these errors, we employed a blank (reference) channel with a fixed ADC count.
Device safety is another area requiring improvement. For instance, reagents loaded into the cuvette require UV sterilization. Additionally, we must explore other methods to ensure safety.
To stay within budget, we utilized on-campus 3D printing technology and completed PCB design, component placement, and soldering ourselves. As mentioned at the outset, our goal is to achieve the functionality of a traditional spectrophotometer at minimal cost.