Microcontroller based fluid flow and image control system for biochemical analysis
Jarle Kotsbak started started the company Kotsbak Consulting to test an idea he had of a method of sequencing DNA material, that is reading the contents of the string of genes in a DNA. The method is supposed to be much faster and cheaper than the methods that exist today. For the analysis equipment there are a lot of parts that need to be developed, and the most important ones in the first phases of experimentation is given as problems for this thesis.
The analysis is going to take place in a relatively small reaction chamber where chemicals need to be automatically added and heated to the correct temperature. Then a high resolution image is going to be captured using a small image chip similar to those found inside digital cameras. As these have varying real time requirements, it is not possible to control from a ordinary PC. A microcontroller is needed to do the low level controls. Control of the experiments should be possible to set up from a PC connected to the equipment using a USB (Universal Serial Port) 2.0 port, which is also going to transfer the images captured to the PC for image and data analysis.
Atmel AVR32 microcontroller was suggested for use, and it was not found that any of the requirements was not in theory possible to solve using this microcontroller, so it was the one used in all parts. It was evaluated if it was best to program the microcontroller directly without an operating system, but it was found that using Linux, which the evaluation boards of the microcontroller was shipped with, had so many advantages over the small and uncertain advantages of programming the microcontroller directly. so Linux was used in all parts. As most of the needed drivers for Linux were new or unreleased, a lot of time was spent learning how to compile the Linux kernel with those patches and finding out how to use the undocumented parts of the drivers, as well as extending the drivers to support the hardware and specification needed.
The heating controller worked quite well after getting the connection to the sensors working, including estimation of the temperature inside the reaction chamber, which is the temperature that is going to be controlled, but can not be measured directly. If needed it is possible to tune the controller better for stricter requirements or change to a model based controller if needed and the parameters in the model can be found, which turned out to be hard.
A nice solution to the flow control was found using a stepping motor that is able to push the piston in a syringe containing one of the chemical mixes in exact amounts, controlled by an external stepping motor driver chip, which was easy to get working, connected using I2C. The solution was at least as good and much easier to implement than the one suggested in the assignment, using valves and pressure measurements to estimate the amount flowing.
It was shown that image capture of the required resolution, i.e. 2048 x 1536 and possibility for much higher, was possible using Linux and the hardware support for transferring images from image chips in the AVR32 microcontroller using kernel modules. The problem is that it was only working sometimes, so a little more debugging of the possible hardware/ software reason for this to be resolved, but it seems like it is only a small problem and not caused by any limitation in software or hardware.
It was attempted to get the USB part working without running an O/S on the microcontroller, but it did not succeed, partly because of incomplete documentation of the USB hardware module in the AVR32. Then the available driver systems for USB slave equipment under Linux was studied and it was found that gadgetfs seemed most promising to use. The driver did though first not load, just giving a stacktrace. In a newer version of the Linux version for the development board, it did though load and it seemed like it was working. Further development of this part was not done because of much delay in the other parts, and the fact that choosing Linux as platform, as well as the image being buffered in RAM, allows to use ethernet to transport the images during testing until later product development stages.
Overall most of the parts have been accomplished according to the specifications, although there was not too detailed practical testing of each part because of much time spent on solving problems, and the fact that many complex parts were outlined to be solved during the project. Solving the small problems left as described at the corresponding discussion chapters should, with small modifications/customization, make the practical solutions found usable for future prototypes of the product or for more experiments.
Place, publisher, year, edition, pages
Institutt for teknisk kybernetikk , 2007. , 78 p.
ntnudaim:3369, MTTK teknisk kybernetikk, Industriell datateknikk
IdentifiersURN: urn:nbn:no:ntnu:diva-18325Local ID: ntnudaim:3369OAI: oai:DiVA.org:ntnu-18325DiVA: diva2:565820
Skavhaug, Amund, Førsteamanuensis