A microfluidics journey (1)

Microfluidics
La microfluidique est une science qui miniaturise des réseaux et systèmes de manipulation de fluides à l’échelle micrométrique.
Appellé aussi Lab-on-Chip (laboratoire sur une puce), leurs applications sont très variées. Médecine, biologie, chimie, industrie …
Il existe de nombreuse façon de créer ces puces.
La méthode utilisée la plus précise est la photolithographie. Cette technique de gravure est extrêmement précise et est aussi utilisée pour faire des circuits intégrés. Elle permet de faire, sur du verre, des canaux à l’echelle micrométrique. On peut alors utiliser directement le circuit obtenu, ou si cela a été prévu à la conception d’en faire un moulage en utilisant un silicone spécifique (PDMS).
D’autres methodes sont généralement utilisées pour faire des circuits plus grossiers, mais sont plus accessibles, la photolithographie necessitant du matériel de pointe et des produits chimiques très dangereux comme l’acide fluorhydrique.
Impression 3D résine
Dans mon cas, je vais utiliser une imprimante 3d résine de type LCD qui utilise une technique de stéréolithographie par photopolymérisation.
Ce type d’imprimante est utilisée pour créer des figurines ou objets très détaillé. L’idée ici est de maîtriser et utiliser cette précision pour créer des microfluidics.
Mon modèle est la photon d’anycubic.
Voici les specs qui nous interessent:
- XY DPI : 47um (2560*1440)
- Layer resolution : 25 ~ 100um
- Printing volume : 115mm 65mm 155mm (4.52″2.56″6.1″)
Comme on peut le voir, la résolution maximale théorique est très élevée.
De plus il est possible d’utiliser des résines transparentes, ce qui est un impératif pour faire des microfluidics et observer leur contenu. Dans mon cas j’utiliserais une résine qui me reste en stock: de l’anycubic Red.
Limitations théoriques
Avant de se lancer, il est important de comprendre les limitations de cette technologie.
LED array
Tout d’abord, la technologie LCD souffre d’un problème qui pourrait s’avérer crucial ici. Une matrice de LED UV est utilisée comme source de lumière et l’écran LCD va bloquer les pixels que l’on ne veut pas imprimer.
La matrice de LED peut poser soucis au niveau de l’uniformité de la lumière. Certaines zones pourraient être plus exposées que d’autres, ce qui donnera une photopolymérisation non uniforme.
Plus concrètement, certains canaux plus exposés pourraient se retrouver plus fins que d’autres (voir disparaitre).
Light scattering
La résine utilisée étant transparente, la lumière va avoir tendance à se diffuser. Cela peut réduire considérablement la finesse des détails, mais aussi l’impression d’une couche peut avoir une influence sur la ou les couches précédentes.
La finesse des pixels de l’écran LCD de 47µm est donc probablement loin de ce que l’on pourra obtenir, entre autre à cause de ce problème de diffusion.
Conception
Connecteurs
Tout d’abord, il faut pouvoir connecter les I/O de nos circuits à des tubes de silicone.
Un bon design est crutial pour que le tube tienne bien, mais aussi pour qu’il ne soit pas trop difficile à connecter.
Mes tubes ont un diamètre de 3x4mm et peuvent être connectés à des seringues en plastique communément utilisées dans le médical.

Première version du connecteur d’I/O vers un tube de silicone 3x4mm.
Design des pistes
J’utilise le workflow suivant pour le design de mes circuits.
- Design des pistes sur une image bitmap en suivant une grille de cellules de 20x20 pixels
- Vectorisation automatique avec potrace
- Import sous blender
Ce n’est pas le plus optimisé mais a l’avantage d’utiliser des outils accessibles.
Pour le design bitmap, l’avantage est de pouvoir facilement copier coller des patterns, les éditer facilement… La taille 20x20 pixels pour la grille à été choisie car c’est celle qui donne des résultats vectorisés les plus fidèles.

Un fluidic micromixer basique. Cliquer pour avoir l’image en 100%.
Une fois le design fait, il faut préparer l’image pour la vectoriser. Pour cela il faut que la piste soit noire et le fond blanc, puis exporter au format .ppm (format compatible avec potrace).
Ensuite on utilise potrace en ligne de commande:
potrace -s micromixer.ppm
Un fichier .svg sera alors généré.
On l’import sous blender, le selectionne et le rescale en 141.73 pour avoir l’équivalent d’une cellule = 1mm. Il faut ensuite convertir l’objet en mesh (clic droit > Convert to mesh).
Pour rendre notre mesh solide, on passe en edit mode (tab), on selectionne tout (A) et on extrude de l’épaisseur voulue (E).
La piste peut maintenant être utilisée pour creuser notre base en utilisant un boolean modifier en mode difference.
Si l’on souhaite faire des pistes plus fines ou plus épaisses que 1mm, il suffit de les rescale (S).
Premier batch
Pour ce premier batch, je vais imprimer 3 circuits microfluidiques d’un coup.
En effet, la durée d’une impression résine LCD ne dépend que de la hauteur de l’objet à imprimer, il est donc conseillé d’utiliser toute la surface d’impression pour gagner du temps.
Paramètres d’impression
Les impressions sont à plat, sans aucun support ou autre ajout.
- Exposition à 16 secondes
- Exposition des 3 premières couches à 50 secondes
- Epaisseur de 50µm par couche
La durée de cette impression sera de 1h10, et utilise la résine anycubic Red. Les circuits ont un top/bottom d’une épaisseur de 1mm, définie sur le modèle 3d.
Impressions
Le micromixer est l’un des élements fluidiques les plus simple. Il sert simplement à mélanger deux réactifs ou plus le long d’une longue résistance microfluidique.

Un fluidic micromixer a 2 entrées et une sortie avec des pistes de 1mm.


Le résultat de cette impression est parfait. On peut purger la résine facilement en injectant de l’alcool isopropylique dans la sortie.

6 résistances avec des pistes de 0.9mm a 0.4mm.
Le résultat de cette impression est étonnant au premier abord.
Aucune des pistes n’a été imprimée correctement. Elles sont visibles mais il est impossible de purger la résine.
Le problème semble être l’épaisseur des pistes, verticalement. La diffusion de la lumière empèche de faire des pistes moins épaisses que 1mm verticalement.

Un gradient generator avec des pistes de 0.5mm.
Résultat totalement raté, les pistes sont beaucoup trop fines en hauteur, et le circuit n’est presque pas visible à l’oeil nu.
Observations
Ces premiers essais ont mis en évidence que la résolution verticale doit être prise en compte bien plus que prévu.
Les pistes d’une épaisseur inférieure à 1mm semblent ne pas pouvoir s’imprimer avec les paramètres actuels.
Second batch
Cette fois l’idée est de tester la résolution XY mais en prennant en compte l’épaisseur.
Les paramètres d’impression sont les même que précedement.
Un micromixer identique au premier batch est imprimé pour vérifier la reproductibilité de l’impression. Résultat concluant.

5 resistances de 0.9mm de largeur et de 1.5 a 3.5mm d’épaisseur.
10 designs de connecteurs.


Résultat: imprimé parfaitement.
Le 3ieme connecteur fonctionne mieux que les
autres et sera utilisé pour les prochains designs.

6 résistances 0.9mm a 0.4mm de largeur et de 4mm d’épaisseur.


Résultat: très encourageant.
Toutes les résistances à part la 0.4mm fonctionnent.
Troisième batch

Gradient generator 0.5mm et d’épaisseur 4mm.

Résultat: impression correcte, mais plusieurs defauts bouchent completement certaines resistances du circuit.

8 résistances de 0.5mm de large et de 3.5mm à 1.1mm d’épaisseur.


Résultat: seulement 4 résistances fonctionnelles.
1 fail du côté fin, et 3 fails du coté épais.
Observations
Plusieurs problèmes. Certains defauts semblent apparaitre aléatoirement à la verticale sur les pistes de 0.5mm de large, quelque soit leur épaisseur.
Deux explications possibles:
- non uniformité de la source de lumière
- exposition trop forte
La première explication semble ne pas coller pour tout, étant donné que les défauts peuvent apparaitre subitement à la verticale.
Elle expliquerait cependant le fait que certaines résistances plus épaisses ne soient pas imprimées. On pourrait en déduire que l’exposition est plus forte sur le bord du haut de l’écran (plutot vers le milieu/gauche), car tous les cas de résistances épaisses ratées étaient à cette position.
Quatrième batch
Ce quatrième batch garde les même paramètres que précedemment, à part l’exposition qui passe de 16 a 12 secondes.
De nouveau, un gradient generator 0.5mm x 4.0mm pour voir si le changement d’exposition règle les problèmes.


Résultat: la nouvelle version est parfaite.
De nouveau, les 8 résistances 0.5mm de largeur et épaisseur de 3.5mm a 1.1mm.


Résultat: tout est bon a part les résistances aux extremités, dont la plus épaisse. On peut en déduire qu’il y a bien une zone d’impression en sur-exposition.

Gradient generator 0.5mm x 1.5mm, top et bottom 0.5mm.



Résultat parfait, malgrès la finesse des pistes.
Observations
Diminuer l’exposition à totalement réglé les problèmes d’imperfections aléatoires. Cependant il reste toujours le problème de sur exposition sur la partie haute de l’écran LCD. A l’avenir il faudra probablement éviter d’imprimer des détails fins dans cette zone.
Bonus
En bonus voici une vidéo d’un gradient générator (ou générateur de gradient) en fonctionnement. Comme son nom l’indique, il sert à faire des mélanges en gradient, d’intensité plus ou moins forte selon la sortie.
En situation réelle cela peut servir à tester de multiples réactions chimiques de concentration differentes en même temps, sans avoir à faire plusieurs expériences séparées. On peut aussi s’en servir pour obtenir des mélanges aux concentrations très précises.
Ici les sorties sont connectées sur un unique canal afin de pouvoir observer le gradient visuellement.
TLDR
Il est possible d’imprimer des pistes de 0.5mm de large et 1.5mm d’épaisseur parfaitement si l’exposition est réglée en conséquence (12 sec / layer dans le cas de ma résine anycubic Red).
Des paroies top/bottom de 0.5mm sont suffisantes, même si les circuits fins auront tendance à plus se courber/voiler une fois retirés.
La technologie LCD n’a pas une lumière parfaitement uniforme, et il faudra le prendre en compte pour le placement des parties qui nécessitent de la précision, car certaines zones sont sur-exposées par rapport à d’autres.