Design of an inexpensive spin coater (with a touch-screen interface)

Gurucharan V. Karnad, R. N. Ninad and V. Venkataraman show how to create a spin coater for polymer-based microfluidic devices at a fraction of the cost of commercial machines

Gurucharan V. Karnad*a,b, R. N. Ninad*b and V. Venkataraman a
a Dept. of Physics, Indian Institute  of Science, Bangalore, India
b Dept. of Electronics and Communication Engineering, Amrita School of Engineering, Bangalore, India
* Corresponding authors: Gurucharan V. Karnad, R. N. Ninad
Email: gvkarnad[at], rnninad[at]

Why is this useful?

Spin coating is one  of  the  coating  techniques  used  to  apply  thin uniform  films  to  flat  substrates. A Spin Coater is a machine used for spin coating, and is one of the most ubiquitous instruments in any laboratory dealing with microfluidic devices.

Most commercial spin coaters are extremely expensive (≈ > US $1,995 [1]) and come with features and specifications not necessarily needed for fabricating and experimenting with polymer based microfluidic devices.

The cost of this instrument should not act as a deterrent for groups intending to venture into fabricating and experimenting with simple devices, hence the effort in this direction.

We have designed an inexpensive spin coater (with a touch-screen interface) costing less than US $350. The user input is through the touch-screen interface, where parameters such as spin duration and speed can be entered. Real time speed is also displayed alongside. A microcontroller forms the intelligence of the system and manages the inputs, display, and speed and duration control. The real time speed is sensed by the microcontroller using an optical encoder, and a control loop keeps it within acceptable error limits.

The substrate is mounted either using a double-side tape or a set of clamps. Improvements with regard to vacuum chuck, computer interfacing etc., can be done as per necessity.

What do I need?

  • PIC Microcontroller Programmer (with support for 18F4550)
  • PIC 18F4550 (≈ US $04.47 [2])
  • Graphic LCD 128×64( JHD 12864E or equivalent) (≈ US $16.80 [3])
  • TouchPanel (≈ US $07.00 [4])
  • TouchPanel Connector Board (≈ US $04.00 [5])
  • Infrared Distance Sensor (equivalent – Cytron IR01A Medium Range Infrared Sensor) – Optical Encoder-Sensor (≈ US $08.10 [6])
  • Crystal oscillator circuit (11 Mhz Crystal Oscillator, 22pf Capactitor (2) – connection as given in PIC 18F4550 Datasheet) (≈ US $01.00 [7])
  • IR 2110 (≈ US $07.25 [8])
  • IRFP 150N (≈ US $02.77 [9])
  • 1N 4744A (≈ US $00.21 [10])
  • BYQ 28E200 (≈ US $00.98 [11])
  • Brushed DC Motor (Como Drills 719RE850 or equivalent) (≈ UK £21.69 [12] ≈ US $35)
  • Any PC CPU Case (for Power Supply-SMPS and as instrument control box) (≈ US $50.00 [13])
  • PC (to program the microcontroller initially)
  • Software – MPLAB IDE (Free), HI TECH C Compiler for PIC 18 MCU (Free Version)
  • Machining, raw material, workshop access ( for chuck, optical encoder mount and motor cabinet) (≈ US $200.00)

What do I do?

  1. Interface and connect the PIC Microcontroller Programmer to the PC as per the instructions given in its manual
  2. Burn the Program01.hex file into the microcontroller with the help of the programmer
  3. Connect the microcontroller and other components as given in the circuit diagram (Figure 1). The circuit and display can be appropriately mounted in a PC CPU case
  4. Power up the circuit
  5. The Graphic LCD should display data similar to Figure 2. Figure 3 and Figure 4 will appear on the display if appropriate icons on the Menu “Selected Values” screen are touched
  6. There can be dissimilarities with each touch panel and hence it may not respond to input due to change in touch co-ordinates. Hence, there would be a need to modify the Program01.c. If there are no problems, jump to instruction 11
  7. Install the software mentioned above
  8. Modify the program, by finding out the new co-ordinates of the icons by following the instructions given in readme.txt
  9. Compile the modified Program01.c and program the microcontroller as per the instructions given in the programmer manual
  10. Repeat instruction 2 to 5
  11. Make an appropriate box to mount the motor
  12. An aluminium ( light and easy to clean) chuck (Figure 6, Figure 7) to fit the motor shaft  has to be machined
  13. A simple optical encoder set up  which includes mounting of a slim white acrylic piece on the bottom of the motor shaft and the IR optical sensor has to be made ( Figure  5)
  14. Put together all the components appropriately. The spin coater (Figure 8 ) should now be ready ( appropriate modification of  the chuck may result in a centrifuge too)
  15. Mount the wafer samples for spin coating either with a double-sided tape or a set of adjustable clamps

What else should I know?

  • Basic knowledge of C is essential to modify the code to suit individual requirements or specification
  • The spin coater has been set to receive input of speeds from 1000-7000 RPM ( limited only due the motor used, can be modified easily)
  • The maximum spin time is 999 seconds (increments of 1)
  • Due to nonlinear response of the brushed DC motors to voltage ( and hence varying PWM values),  the speed response of the motor to variation in PWM values has to be plotted and an appropriate equation has to be estimated. The equation in Program01.C has to be modified (see the readme.txt).  Note: This needs to be done only if a Brushed DC motor other than Como Drills 719RE850 is used, or if further fine tuning of response is required.
Spinner control schematic
Fig 1. Spinner control schematic
Menu display screen
Fig 2. Menu display screen

Runtime settings – spin duration (in seconds) screen
Fig. 3 Runtime settings – spin duration (in seconds) screen
RPM settings screen
Fig. 4 RPM settings screen
Optical encoder set-up
Fig. 5 Optical encoder set-up
Chuck with adjustable clamps
Fig.6 Chuck with adjustable clamps
Chuck without adjustable clamps – samples mounted using a double-sided tape
Fig.7 Chuck without adjustable clamps – samples mounted using a double-sided tape

Spin coater
Fig 8. Spin coater




[3]    /200392901987?pt=LH_DefaultDomain_0&hash=item2ea8590563#ht_4043wt_906











Digg This
Reddit This
Stumble Now!
Share on Facebook
Bookmark this on Delicious
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

13 Responses to “Design of an inexpensive spin coater (with a touch-screen interface)”

  1. Gurucharan V Karnad says:

    Hi, We believe the moderators are working on putting up the link for the supplementary materials and the video. In the meanwhile please feel free to send us a mail, in case you need the files. We would be happy to guide you.

    Thank you,

    Gurucharan V. Karnad

  2. Sikuning says:

    Hi,I have the same encoder as you and I want to pemliment it into my project.But I really dont know what is the output from it.I have an atmega 328 to read the signals.Could you please help me?Thanks a lot.

  3. Gurucharan V Karnad says:

    Hi Sikuning,
    I have not completely understood your question. I shall try to explain in the best way I can.

    I hope, that by encoder, you are referring to the optical-IR-speed sensing set-up. The sensor that I have referred to would give a digital o/p and would look like a rectangular pulse train (when you have the motor running) when its o/p is observed on the CRO. The frequency of the signal would vary depending on the speed at which you are running the motor. You could easily understand the principle, if you were to search on the web for robotic based projects, where similar sensors have been used as distance or obstacle sensors.

    I have not used the micro-controller you have mentioned. I have used a PIC, specifically a PIC18F4550. The code we have written would be compatible with only the PIC. In principle, any other equivalent microcontroller should be able to implement the same. You could check the code to implement and modify it to work on the ATMEGA.

    I hope this has clarified your doubt.

  4. Diveroptics says:

    Lens Injection Mold
    Really enjoyed this article.Really thank you! Really Great.

  5. mike says:

    Where are the software and the hex file ?

  6. hasif says:

    can you share the Program01.hex file?tq

  7. Gurucharan V. Karnad says:

    @ Mike and @Hasif: Thanks for your interest. Please send me an email and I shall gladly send you the files.
    (I have moved to a different organization, so please direct your email and queries in the future to:


    Replace [at] with @

    Best regards,

    Gurucharan V. Karnad

  8. hasif says:

    im already email you.hope reply as soon as posibble sir,tq

  9. Hamid says:

    I have a question about vacuum chuck sample holder, if its possible please tell us about the design of vacuum chuck sample holder and mechanism of connecting to shaft and vacuum mechanism.

  10. kcjdjcjdkdmfjfi says:

    Hello. Could you publish all the source code and blueprints on GitHub ?

  11. Himanshu says:

    I was going through the blog and found that two files was discussed Program01.hex and Program01.c, and no link were given to download them. I have read the comments that I have to mail you for the file. I have mailed you for the same but I need the files Urgently. So its my humble request to provide me the files ASAP. Thank you.

  12. Muhammad Kashif says:

    I wan to ask that how can we add vaccum setup in spin coater.


  13. Justin says:


    I know this blog is very old, however, is there anyone who has the C-code and Hex code for this setup still, I would like to work with it if possible.


Leave a Reply