Tous les articles par f4grx

Milliwattmètre à AD8307

Note: tous les liens s’ouvrent dans un nouvel onglet.

Introduction

Le circuit AD8307 d’Analog Devices est un détecteur logarithmique. Il est capable de mesurer la puissance d’un signal radio jusqu’à 500 MHz.

Voyons pourquoi la caractéristique logarithmique est intéressante. Un détecteur à diode (un pont de diodes utilisant des diodes Schottky rapides) produit un signal de sortie proportionnel à la puissance du signal radio. C’est pratique pour des signaux importants, mais en pratique, si le signal est trop faible, le détecteur sort soit aucune tension, soit une tension trop faible pour être mesurée sans amplificateur additionnel.

Un détecteur logarithmique, au contraire, est construit comme une suite d’amplificateurs saturables, et produit une tension correspondant au… logarithme de la puissance radio, en général quelques millivolts par décibel. Pour faire simple, cela fonctionne comme un multimètre à calibre automatique. Chaque fois que le signal est trop grand ou trop petit, le chip passe au “calibre” précédent ou suivant et donne une information mesurable. Cela lui permet d’avoir une plage de sensibilité (dynamique) beaucoup plus grande, tout en gardant un signal de sortie qui varie dans des proportions limitées.

On peut alors utiliser ce composant comme milliwattmètre (ou wattmètre avec le bon atténuateur). Mesurer de manière précise une puissance RF dans une large plage dynamique a de nombreuses applications pratiques, comme par exemple la réalisation d’un analyseur scalaire, ou la mesure de composants RF, comme des atténuateurs ou amplificateurs.

Dans le cas de l’AD8307, la dynamique est de 90 dB.

10dB représentent un rapport de 10^(10/10)=10 entre le mini et le maxi détectable, soit par ex. de 1 a 10 mW ou de 100 mW à 1W.

90dB représentent un rapport de 10^(90/10) = 10^9, soit 1 milliard, par ex de 1uW à 1 kW, ou encore 1nW à 1W, ou de 1pW à 1mW

Dans notre cas le maximum détectable est de de +15 dBm (30mW), ce qui amène le minimum à -75 dBm (30 pW, oui pico-watts!)

Ce rapport de 1 milliard entre la puissance la plus basse mesurable et la plus élevée est ramené a une plage de tension de 5V, la fonction logarithme “écrase” donc considérablement ces variations extrêmes de puissance pour les rendre mesurables. Une variation de 10 dB produira un résultat de 200 mV que le signal mesuré varie de -70 à -60 dB ou bien de -10 à 0 dB.

Le schéma

Le schéma est un classique qu’on retrouve un peu partout sur le web. L’impédance d’entrée du circuit est spécifiée a 1.1 kohms, une résistance parallèle de 52.3 ohms  permet de la ramener au classique 50 ohms. On peut alors faire une mesure directe de la puissance envoyée par une source de cette impédance sans réflexions parasites.

500 MHz est une bande passante très large, donc attention aux bruits divers mesurés en même temps que le signal utile: Il faudra bien blinder le boitier!

L’alimentation est régulée à 5V et nettoyée par des condensateurs de découplage. une résistance série de faible valeur sur l’alimentation de l’AD8307 améliore encore ce découplage (en cas de “pics” (bruit) de consommation, une différence de potentiel apparait aux bornes de cette résistance, ce qui évite de faire varier d’autant la tension du bus commun d’alimentation. Les potentiomètres de réglage de la pente et de l’offset sont repris du datasheet du composant et permettent de régler précisément le “gain” du circuit a 20 mV par décibel.

La sortie du circuit est bufferisée par un ampli-io rail to rail qui permet de fournir assez de courant sous une impédance suffisamment basse pour attaquer un cable et un multimètre ou un convertisseur analogique-numérique. Lui aussi est alimenté a travers une résistance série, et les condensateurs de découplage sont au plus près de la patte d’alimentation

Réalisation

Le PCB (13x45mm, panel de 8 circuits à l’échelle 1) est réalisable par la méthode du toner transfer sur de l’époxy double face. Il y a un straps et trois vias de masse (0.6mm, faisable a la main avec un petit mandrin pour éviter de casser le foret dans une dremel qui vibre!) Nul besoin de trous métallisés, on s’en sort en soudant des bouts de fil rigides de chaque coté du PCB. Le circuit a été étamé au fer a souder pour éviter son oxydation, en utilisant du flux colophane pour faciliter le mouillage. Souder d’abord l’ad8307 et l’ampli op, puis les passifs 0805 et finir par les potentiomètres (5Eur le bout, soyez délicats!) Finir par une SMA “flange” ou “end launch” en laiton (les modèles inox ou nickelés ne sont pas soudables).

Le montage

Le circuit finalisé, après test, est enveloppé d’une petite boite faite en clinquant de laiton. La version “flange” de la fiche SMA facilite la réalisation du blindage.

On peut ensuite visser à la SMA un adaptateur SMA male-male pour protéger la fiche SMA femelle, car celle ci est fragile.

Tests et calibration

Alimenter le montage sous 9V DC.

Pour calibrer il faut disposer:

  • d’une source RF de puissance suffisante (10 dBm) à une fréquence moyenne, par ex. 10 MHz. J’utilise un OCXO mais un oscillateur DIL suivi d’un DC-block (100nF en série, Xc=0.16 ohms @ 10 MHz) fonctionne aussi.
  • d’atténuateurs 10,10,20,30 dB. Attention à ne pas appliquer la composante continue d’un signal TTL (Vcc/2) à un atténuateur résistif!

Connecter l’atténuateur 10 dB (signal sur l’AD8307 aux alentours de 0 dBm). Mesurer le niveau, de sortie et le noter.

Connecter des atténuateurs supplémentaires pour diminuer le signal de, disons 50 ou 60 dB supplémentaires. Mesurer encore la tension. On doit trouver 60×20 = 1200 mV de moins. Régler le potentiomètre Slope (RV1) pour que ce soit le cas (théoriquement le potard permet un réglage entre 18 et 22 mV/dB). OK, la pente est calibrée.

Note: il faut mesurer boitier fermé, même si on doit l’ouvrir pour régler RV1 !

Ensuite, court-circuiter l’entrée et calibrer l’intercept (RV2) pour avoir xxx mV (TBD).

Une meilleure calibration, plus absolue est possible avec un générateur d’amplitude connue (ce n’est pas si évident).

Mais dans la plupart des cas, on va vouloir mesurer des atténuations ou des amplifications par rapport à une référence, donc seul le réglage de la pente est réellement “critique” et pourrait être à revoir pour des fréquences vraiment faibles ou élevées. D’après le datasheet, il devrait être encore bon à 100 MHz. En général une mesure large bande commence par une acquisition permettant la calibration automatique du détecteur sur chaque fréquence. Nous en reparlerons plus tard.

Utilisation

Il suffit d’alimenter le montage et de lire le niveau de signal a l’aide d’un multimètre ou d’un galvanomètre.

On peut bien entendu connecter la sortie du montage à un ADC pour lire le niveau de signal sur un arduino ou autre. La résolution de l’ADC donnera directement l’incrément de puissance mesurable:

8 bits: 256 steps -> 90/256 = 0.35 dB/step
10 bits: 1024 steps -> 0.09 dB/step
12 bits: 4096 steps -> 0.02 dB/step

A partir de 12 bits on atteint une précision qu’il n’est pas réaliste d’obtenir, même avec des calibrations métrologiques de haute précision (pour des mesures plus précises, comme on le fait en radiastronomie, il faut un radiomètre, il y a plusieurs technologies). Les effets de la température, de la linéarité, et de la réponse en fréquence sont plus importants que cette précision théorique. Même 0.1 dB significatifs sont difficiles à justifier. Donc inutile de donner des mesures en dB avec plus d’un chiffre significatif, cette précision n’a aucune signification. 0.5 dB est déja une bonne indication. Lors de votre mesure avec un arduino, pensez à moyenner plusieurs mesures pour éviter les effets du bruit de la mesure et de l’ADC.

Compilation de FreeDV sous linux mint (ubuntu, debian, etc)

Après de longues discussions sur twitter, je m’intéresse un peu a la Digital Voice (modes digitaux pour la transmission de la voix).

Autant le dire tout de suite: Vous ne trouverez ici ni DSTAR ni DMR, on est pas la pour polémiquer (ni pour personne d’autre d’ailleurs ©).

Je m’intéresse uniquement au logiciel libre freedv, et au codec libre qu’il intègre, codec2. Ce codec est capable de coder la voix humaine (et non un signal arbitraire) de manière très compacte, on parle d’environ 64 bits toutes les 20 ms. Ce codec a été inventé par l’auteur de speex, un codec très utilisé en téléphonie.

Ce flux de bits est encodé dans une modulation de type OFDM utilisant 16 porteuses modulées en QPSK, espacées de 75 Hz, pour une bande passante totale de 1,5 kHz, ce qui est la moitié de la bande nécessaire a la transmission de la voix en analogique, en modulation SSB.

La réception se fait via la sortie HP, et la transmission se fait via l’entrée micro et d’un transceiver. Un PC et une carte son suffisent au décodage, mais il faut bien sûr 2 cartes son pour transmettre et recevoir: Ce genre de truc fait parfaitement l’affaire pour un budget réduit (j’ai pas d’action chez eux mais leur glutte fonctionne).

Bref, pour commencer a tester, faut du soft. celui ci s’appelle freedv. Il est distribué via subversion et utilise cmake

Installez un peu plus de bazar sur votre distro si ce n’est pas déja fait

sudo apt-get update
sudo apt-get install cmake subversion gcc binutils libwxgtk3.0-dev libhamlib-dev libsndfile1-dev

Ensuite il faut portaudio, mais uniquement la version 19 (les autres ne fonctionnent pas a cause d’une API différente, oui j’ai testé). Donc:

sudo apt-get install portaudio19-dev

Sauf que chez moi le paquet portaudio19-dev ne veut pas installer automatiquement ses dépendances. Bref, faites dans l’ordre:

sudo apt-get install libjack0
sudo apt-get install libjack-dev
sudo apt-get install portaudio19-dev

et ca devrait être bon.

NOTE: sur mon système certaines de ces libs sont déja installées, cela demande peut être d’autres dépendances, merci de me les indiquer en commentaires. Si vous utilisez du redhat like, et que vous arrivez a compiler, faites moi signe et on ajoutera ces infos.

Une fois que c’est fait on obtient le code de freedv. Pour la version stable on prend:

 svn co https://svn.code.sf.net/p/freetel/code/freedv/branches/1.2 freedv

Si on préfère la version de développement (a fonctionné chez moi mais peut être temporairement cassée):

 svn co https://svn.code.sf.net/p/freetel/code/freedv-dev freedv

Une fois fait on crée un répertoire de compilation et on y entre:

mkdir freedv-build
cd freedv-build

et on lance la configuration

cmake ../freedv

si cela provoque une erreur signalez moi la dans les commentaires pour qu’on en parle, si cela finit bien on lance la compil avec

make

et une fois arrivé a 99% on obtient un binaire freedv dans le dossier src, qu’on peut lancer:

src/freedv

Ce qui donne la fenêtre principale du programme:

Interface de FreeDV 1.2
Interface de FreeDV 1.2

 

Dans le menu Tools on peut configurer les cartes sons a utiliser, et plein d’autres choses encore que je n’ai pas encore découvert.

En tout cas… ca a buildé!

Toner Transfer

Après un ptit hack sur une version insecure de wordpress, mon article sur la procrastination a dégagé, tant pis.

Hier j’ai fait un essai de circuit imprimé par toner transfert. Tout le monde connait, je vais pas m’étendre sur le concept. Je vais juste résumer la “recette” qui a marché.

  • Impression sur un papier photo quelconque a l’aspect glacé.
  • Décapage du cuivre avec de la poudre a récurer, puis finalisation à l’acétone pour virer toute trace grasse.
  • Fer à repasser à la température max (lin). D’autres recommandent “Coton”.
  • J’ai gardé du papier autour de l’impression pour “emballer” le bout de PCB, but: éviter que le dessin ne glisse. Il faut vraiment pas que ca bouge, on le voit quasiment pas mais au décollage on se rend compte qu’on a “deux images” superposées.
  • J’ai appuyé sans bouger pendant environ 1 minute, le fer bien a plat sur le circuit.
  • J’ai laissé tremper le papier dans l’eau jusqu’a ce que la majorité du papier se décolle sans forcer
  • Il reste des fibres de partout, je les ai grattées avec une vieille brosse a dents dure
  • Après séchage on remarque que le toner est encore collé a plein de fibres, mais elles ne gênent pas.
  • Il restait quelques bouts de fibres de papier entre les pistes, je les ai virées avec un petit grattoir en observant a la loupe (ca peut être des bouts vraiments petits)

Voila ce que ca donne:

Toner transfer terminé

Remarques

  • Pas de panique si on rate, c’est “recyclable”. Le toner part très bien à l’acétone (ou au scotch brite). Il faut tout bien renettoyer après.
  • Je pense que ca marcherait aussi bien avec du papier normal
  • Si c’est mal nettoyé, le toner n’adhère pas, ca peut arriver sur des petites zones. Dans mon cas j’ai comblé la zone avec du stylo peinture “Edding”.

Pour la gravure, pas de perchlo, j’ai utilisé de l’acide chlorhydrique de grande surface, mélangée à de l’eau en part approximativement égales. J’ai ajouté une cuillère a soupe d’eau oxygénée à 110 volumes. Cela a pris une minute sans trop chauffer. Je voulais conserver un plan de masse complet a l’arrière, j’ai utilisé du scotch pour protéger le cuivre de l’acide.

Gravure au CuCl2

Et voici le CI gravé:

Le PCB terminé

Je suis plutot satisfait du résultat. Il y avait très longtemps que je n’avais pas fait de circuit imprimé, car je n’ai rien pour insoler.

Par contre, ce n’est pas assez précis pour faire des circuits RF. Pour cela il faudra jouer au dry film bleu (les substrats RF présensibilisés sont introuvables, alors que bruts… on en trouve) et passer par la case insolation.

Ce midi j’ai obtenu le foret de 0.6mm pour percer les quelques vias GND, je reposterai le montage une fois terminé.

Manifeste pour un réseau ouvert des objets connectés

Les objets connectés sont partout. Certains sont plus utiles que d’autres, mais la réalité est la. Le besoin de faire communiquer nos objets de manière globale est là. La connexion doit être permanente, la couverture globale.

Récemment, plusieurs acteurs sont apparus sur ce marché, avec l’ambition de mettre en place un réseau global permettant à des objets connectés de communiquer. L’idée de réseau global pour IoT est très innovante, nous ne pouvons le nier, par contre toutes les tentatives actuelles ont des défauts graves.

Chacun de ces réseaux a en effet développé des technologies propriétaires pour cet usage. Ainsi, pas de risque que les clients aillent voir ailleurs.

Le problème, c’est que ces technologies

  • Requièrent d’acheter exclusivement les modules compatibles
  • Requièrent des modules fournis comme des boites noires
  • N’ont subi aucune évaluation de sécurité
  • N’ont aucune spec publique permettant de comprendre leur fonctionnement

Une fois de plus, nous pensons que cette logique d’enfermement est nuisible au large développement de l’Internet des Objets. En effet, chaque acteur n’a qu’un désir: imposer sa technologie, au détriment des autres, en espérant “conquérir le monde” et tout réussir tout seul.

A l’inverse, nous souhaitons développer un protocole de communication pour l’IoT qui soit totalement ouvert, avec des spécifications accessibles gratuitement à tous, sans NDA, sans donner son adresse email, sans requérir de module boite noire, sans être bloqué avec un fournisseur de module ou de service.

Nous pensons que:

  • Les technologies permettant l’implémentation d’un réseau global pour l’IoT existent déja, n’ont rien de révolutionnaire, et sont accessibles ouvertement.
  • Seul un écosystème ouvert, dans lequel chacun peut contribuer, permettra l’explosion du nombre d’objets connectés.
  • Cet écosystème doit inclure tout le monde: Entreprises, Makers, particuliers
  • Il ne faut pas avoir peur de l’ouverture. Le gateau à partager est suffisamment grand, et sera encore plus grand si tous les objets connectés parlent une même langue documentée et accessible.

Nous souhaitons:

  • Inventer un protocole complètement libre pour connecter tous les objets, dans lequel tout le monde a confiance, parce qu’il n’a rien à cacher.
  • Faire mieux que l’existant. Que celui ci soit une inspiration, mais pas un modèle technique.
  • Garantir la confidentialité et l’authenticité des données transmises.
  • Montrer que le monde du libre vaut mieux que celui de quelques industriels qui bossent dans leur coin.

Voici donc la roadmap que nous proposons:

  • Communiquer sur cette initiative, tout le temps.
  • Définir les fonctionnalités que doit permettre ce protocole
  • Evaluer les composants radio Sub-GHz existants pour déterminer un socle commun de fonctionnalités
  • Ecrire une spécification complète du protocole que tout le monde puisse implémenter avec les solutions techniques qu’il souhaite
  • Mettre en place un réseau aussi large que possible permettant la communication des objets ainsi connectés.

Nous avons besoin de bonnes volontés pour développer ce projet. Les experts de chaque domaine se reconnaitront et sauront participer à ce projet, j’en suis convaincu. J’en connais déja quelques uns qui ont des idées très claires et qui sont prêts à les partager.

Des discussions ont déja eu lieu à l’Electrolab, le plus grand hackerspace de France et presque d’Europe, qui regroupe des spécialistes reconnus du monde de la radio et des communications. Cette association, dont je suis récemment devenu membre administrateur, possède des moyens de prototypage faramineux pour des projets libres et ouverts intéressants. Je n’ai aucun doute que ses membres sauront également reconnaitre l’intéret de ce projet.

C’est vraiment ambitieux. Cela ne fonctionnera que si nous sommes plusieurs à nous y attaquer.

Mais les possibles répercussions sont très larges et très positives. Ceci peut être aussi significatif que l’arduino l’a été pour l’électronique.

Pour manifester votre intéret, ajoutez un commentaire ci-dessous. Si vous souhaitez joindre votre voix au manifeste, dites le, et je vous ajoute a la liste des “signataires” ci-dessous.

Signataires

Sébastien Lorquet, radioamateur F4GRX
Charles Rincheval, @hugokernel

IEEE 802.15.4 avec MRF24J40, ST Nucleo et NuttX

Et non Zigbee, qui est une stack de protocole complète!

Il y a longtemps que ce protocole radio basse consommation me plait. Le fait qu’il soit un standard m’attire car il garantit une certaine interopérabilité entre les fabricants de chips.

Je m’intéresse pour l’instant au 802.15.4, qui est un peu l’Ethernet du Zigbee.

Il y a longtemps (OH SHI– en dec 2012) j’avais acheté une paire de modules Microchip MRF24J40MA, et j’avais essayé de les faire fonctionner avec des PIC18. Sans grand succès. La relecture de l’article vous donnera des détails sur le protocole et la ou j’en étais resté.

Depuis, j’ai beaucoup joué avec les ARM Cortex, et j’ai gagné pas mal d’expérience en programmation système. Je travaille quotidiennement avec le RTOS NuttX qui permet de développer facilement des apps embarquées, avec un framework très complet de drivers.

En mélangeant tout cela, j’ai rapidement pu développer un driver NuttX pour le MRF24J40. Le chemin a été long:

-le bus SPI du STM32F411 ne fonctionnait pas; il perdait le LSB des transmissions a cause d’un mauvais réglage du slew-rate

-les datasheets du MRF24J40 sont écrites avec les pieds… un peu comme toutes les docs Microchip, quoi… Donc pour les fonctions basiques pas de problème, mais pour les détails, il faut passer du temps sur le web, les forums Microchip, les exemples de code… pour arriver a tout faire coller

Hier j’ai pu me procurer un module haute puissance (MRF24J40MC, avec antenne extérieure). Et rebelote… Pour arriver a faire fonctionner correctement les amplis RF du module, il m’a fallu une journée complète, avant de réaliser que la config des amplis doit être faite beaucoup plus souvent que prévu!

Enfin bref j’ai pu tout faire coller et maintenant, ma carte Nucleo se comporte maintenant comme un couteau suisse ieee.

La détection d’énergie (scan passif) fonctionne, le secret pour un bon affichage est de ne pas afficher la valeur recue, mais de mettre a jour l’affichage si on recoit une valeur supérieure a la valeur actuelle, et sinon de faire baisser le signal recu “artificiellement”, exactement comme sur un vu-mètre audio. La raison est simple: les paquets sont si courts qu’il est rare d’en voir passer suffisamment pendant une simple mesure.

nsh> i8 /dev/ieee0 scan
IEEE packet sniffer/dumper argc=3

11 : [ 58] #######
12 : [104] #############
11 : [ 57] ####### 
11 : [ 61] #######   
12 : [ 89] ########### 
13 : [ 80] ##########
14 : [ 61] ####### 
15 : [145] ##########################           
16 : [190] #######################          
17 : [102] ############    
18 : [111] #############       
19 : [111] #############   
20 : [  0]                                       
21 : [ 55] ###### 
22 : [ 66] ######## 
23 : [ 26] ###                                  
24 : [  0]                                 
25 : [ 12] #                                 
26 : [ 46] #####

Bon c’est bien rigolo ca, mais le scan actif est bien plus intéressant. Il s’agit d’envoyer, sur chaque canal, des “beacon requests”, puis d’attendre les “beacons”, des paquets qui informent sur la présence d’un noeud réseau. Voici un exemple de sortie:

chan=13 rssi=138 lqi=117 len= 11 [6942/0100 -> none] FFCF000046344752582F30
chan=15 rssi= 41 lqi=116 len= 19 [507C/0200 -> none] FF0F000000228C2DFD01E0C8B656BEFFFFFF00
chan=25 rssi=  0 lqi=117 len=  6 [C513/4DD5 -> none] FF4F0000CE01

Le RSSI est le niveau de puissance recue (arbitraire, 0-255), le LQI la qualité de réception (pas forcément liée à la puissance), entre crochets on a les champs d’adressage 802.15.4 (les beacons ont une adresse source mais pas d’adresse de destination car ce sont des broadcasts), puis la payload MAC:

“FF” -> réseau sans structure temporelle (superframe)
“CF” -> options
“00” -> Pas de Guaranteed Timeslot
“00” -> Pas de pending address
(pour ce charabia, voir la spec 802.15.4, elle est dispo en téléchargement gratuit)

Ce qui suit est le champ d’infos de la balise, il peut contenir n’importe quoi. Il y a un format spécial pour Zigbee, que je ne connais pas encore; c’est probablement ce qui est utilisé sur le paquet du canal 15.

Le canal 13 est celui que j’ai utilisé pour mon prototype de coordinateur, qui utilise une autre carte Nucleo. La payload est définie a “46344752582F30”, C’est a dire “F4GRX/0”, maniere d’être identifiable si on me décode, comme tout bon radio-amateur doit le faire.

Conclusion

Je me suis bien amusé avec ce protocole. Le projet a été suspendu pendant longtemps, mais la persévérance a payé: les couches basses fonctionnent.

Je peux maintenant passer au codage du coordinateur ‘en vrai’. Le coordinateur est un peu le “point d’accès wifi”. Il sert de plaque tournante a des périphériques ieee a intelligence (et conso) réduite.

Le code sera bientot intégré dans le code principal du RTOS NuttX. En attendant, le code est consultable dans mon fork de nuttx sur BitBucket, dans la branche ieee:
git clone https://bitbucket.org/slorquet/nuttx
git checkout ieee

La sauce secrète est ici: https://bitbucket.org/slorquet/nuttx/src/72ff5be3ee257b385751d5678901aa9edb45a1f9/drivers/ieee802154/mrf24j40.c?at=ieee

Ce a quoi il faut ajouter ce fork des apps de base NuttX:
git clone https://bitbucket.org/slorquet/apps
git checkout ieee

Allez un jour je vous expliquerai comment faire fonctionner NuttX. Sachez déja que ce sera sous Linux, parce que c’est trop galère sous Windows.

Fraise sans chantilly

Hello,

La semaine dernière j’ai pu utiliser la fraiseuse conventionnelle de l’Electrolab.

Je m’en suis servi pour surfacer le dessous de la pièce en laiton coulée la dernière fois. J’en ai profité pour nettoyer aussi quelques autres surfaces.

La qualité du laiton coulé “a la maison” est très bonne. Le bloc de métal est très homogène et sans bulles.

La pièce a été mise de niveau dans l’étau de la fraiseuse en se basant sur la distance entre le tube et la fraise, il y a environ 1mm d’erreur d’horizontalité sur la longueur totale du tube (45cm). On va dire que c’est assez horizontal pour notre affaire.

Fraisage
Fraisage de l’arrière

 

Le dessous est fini, passons au dessus.
Le dessous est fini, passons au dessus.

 

Breubreubreu
Breubreubreu, ici viendront des taraudages et la base d’un entonnoir rectangulaire

 

Tout propre!
Tout propre!

 

Une petite vidéo est dispo ici:

https://www.youtube.com/watch?v=6GDFvNYa6RA

 

Silence on coule

Hop, un petit article comme promis.

La semaine dernière les copains de l’Electrolab ont coulé en laiton le modèle de fonderie que j’avais fait en polystyrène.

Donc voila, maintenant j’ai la trémie de l’extrudeur, c’est vraiment super. La pièce pèse plusieurs kilos, et quand je l’ai récupérée, elle était super moche :

Brut de fonderie!
Brut de fonderie!

C’est incroyable comme la piece brute est moche. Normal, elle a été moulée dans le sable, le procédé est violent. Les surfaces sont tres irregulieres, il y a eu des fuites de métal, et comme mon pote s’est dépêché pour la mouler, elle est un peu tordue, arquée.

Un coup de meleuse pour avoir l'air plus présentable!
Un coup de meleuse pour avoir l’air plus présentable!

Un coup de meleuse avec disque abrasif (visible en fond), et hop la couleur laiton refait surface! C’est super long, j’ai fini le nettoyage a la simple brosse métallique, c’est plus facile et l’état de surface est plus intéressant.

La vis se présente bien
La vis se présente bien

La vis et le palier se présentent bien, mais rien ne rentre comme prévu. C’est normal, il faut ajuster tout cela a la lime et en usinage. En particulier, le palier a du mal a rentrer, et Tom m’a aidé a réusiner la pièce coulée; les derniers dixièmes de mm ont été réglés… au marteau, pour enfoncer le palier dans son logement. Il finira brasé. On a eu du mal a faire rentrer le tube en cuivre. Pendant un moment, j’ai même envisagé de ne pas le faire traverser… mais les copeaux de plastique arrivent a se coincer entre la vis et la trémie, pas cool… Le problème de déformation de la pièce a finalement été réglé… a coup de masse! Un seul coup de marteau bien placé, et hop, le tube et la vis sont parfaitement rentrés!

Le tube et le palier sont en place
Le tube et le palier sont en place

Etapes suivantes: brasure du tube et du raccord palier, puis ouverture du tube dans la trémie, et enfin, percage et taraudage des flancs et des pieds, puis formation de l’entonnoir avec de la tole fine.

Ménage de printemps

Bon, reprenons.

Suppression des plugins inutiles: check

Suppression des vieilles pages/articles jamais publiés et obsolètes: check

Suppression des catégories inutiles: check

Je refais vivre ce bloug, sur un mode plus simple: je n’ai pas le temps de faire de longs articles. Alors je vais faire:

-une page par projet, que je mets a jour.

-des mini-articles pour dire ce qui a changé.

 

Je n’ai pas été très sérieux avec ce blog, le temps passe si vite, et c’est si facile de remettre a plus tard l’écriture d’articles. Surtout que j’ai un super prétexte maintenant avec ma fille qui prend encore plus de temps.

Je connais plein de trucs, c’est bien,  c’est au chaud dans ma tête, mais je continue a trouver dommage de ne pas publier ce que je connais. Faisons donc de ce blog un gros dump de mes bricolages.

Je ne prétends pas être le nouveau wikipédia de l’Electronique et du bricolage, mais ce que je fais/connais peut inspirer des projets a d’autres, alors pourquoi pas.

reboot!

Making of: le chargeur Qi de Skywodd

Hello a tous!

Maintenant que Skywodd a publié son article sur le sujet, je peux enfin “en parler”! J’étais en effet resté discret à sa demande, mais j’ai effectivement pas mal bossé sur l’usinage des blocs de bois de son chargeur.

Bon, je passe sur les détails, vous avez bien compris qu’il s’agit d’un chargeur inductif permettant le transfert d’énergie sans contact.

Pour la petite histoire, dans ce système, c’est le récepteur (le tel) qui informe le chargeur de combien d’énergie il a besoin. Le tel communique avec le chargeur en modulant rapidement le courant de charge selon un protocole pas trop compliqué. Le chargeur répond en adaptant son fonctionnement aux besoins de l’objet chargé. Il n’y a pas une grande intelligence là dedans, le seul truc prévu est l’identification (pour que le chargeur évite de démarrer quand on pose un simple objet métallique non-Qi sur la surface) et la régulation du courant de charge. Bref.

J’ai donc eu pour mission d’usiner les blocs de chêne-qu’on-déconne-pas-avec. Skywodd m’a livré des fichiers DXF (contours 2D, un peu comme du SVG) obtenus à partir de ses pièces 3D. De mon coté j’ai chargé ces DXF dans CamBam pour en sortir des trajets d’outils.

Oui, le DXF n’est qu’un dessin, un peu comme le STL de l’impression 3D. Après, il reste encore à appliquer les paramètres de la machine et de l’outil (vitesse de coupe, diamètre de la fraise, épaisseur des passes, en impression 3D on parlerait plutôt de diamètre de buse, épaisseur des couches, et on utiliserait Slic3r).

En sortie on a donc du G-Code, qui sont des instructions de positionnement adaptées à une machine en particulier. J’insiste, je ne vous passerai pas mes g-codes, parce qu’ils vous seraient inutiles si votre machine n’a pas les mêmes moteurs, la même fraise, ou la même broche (perceuse).

Il faut savoir que la vitesse de coupe lors des déplacements dépend du matériau, de la vitesse de rotation de la broche, du nombre de dents et du diamètre de la fraise. Quand on fait les choses bien, on part de l’info “vitesse du point de coupe” (qui est le point du diamètre de la fraise qui se déplace pour arracher la matière). Selon le matériau, il faut avoir la bonne “vitesse de coupe”, qui est liée à la dureté de la matière. Ensuite, selon l’outil, on en déduit une vitesse d’avance et une vitesse de rotation, selon le diamètre de la fraise, et le type d’opération (rainurage, surfaçage, etc).

Vous remarquez une chose: je n’ai pas parlé de la puissance de la broche… En effet, on ne la choisit pas, selon le matériau et l’outil, on obtient des paramètres à utiliser, et il faut espérer que la broche est assez puissante pour les utiliser! Et je fais quoi si ma perceuse n’est pas assez puissante? Eh bien il n’y a pas le choix, il faut couper moins vite, mais c’est totalement sous-optimal, et le risque est de faire chauffer l’outil, par frottements précisément. Oui c’est fou: on use son outil si on ne coupe pas assez vite!

Et là arrive un autre problème: la rigidité de la machine: si on coupe trop vite, le risque que la machine se déforme est très important, et il ne faut pas se faire d’illusion: toute précision inférieure à 1/10 de mm est très difficile à atteindre, surtout avec une machine de type Shapeoko…

Ensuite il y a autre chose: la fragilité du matériau. Je n’ai eu aucun problème avec le bois, que l’on a fixé au bâti de la machine par 3 vis M6 à chaque fois, et qui est assez sympa à couper. En revanche, le plexi a été une autre histoire, comme l’a dit Skywodd: c’est un matériau fragile car cassant, plutôt dur, et plutôt fondant; donc c’est un défi, il faut couper vite sinon le plastique fond, mais pas trop profond à chaque passe sinon on force dessus et il casse. Je l’ai aussi nettement moins bien fixé, j’ai utilisé du scotch double face, et ce scotch résiste mal aux vibratons… Bilan, 5 pièces réussies, 3 à la benne!

Malgré tout, on arrive à faire des choses, mais il faut garder à l’esprit que l’usinage est une technique très exigeante, même quand on n’usine pas du métal. Dans tous les cas, tout nouvel outil, tout nouveau matériau demande de faire des essais de coupe pour trouver les bons paramètres machine. Dans le cas du métal c’est facile, on trouve des abaques, on sait que l’alu machin allié truc a besoin d’une vitesse d’avance de tartempion en rainurage, mais pour le bois, les différents types de plastique (PMMA, Acrylique,  Polycarbonate, PVC, Nylon, etc…) on ne trouve pas toujours (presque jamais) la bonne info.

A propos des types de fraise: Pour le bois, j’ai utilisé une fraise carbure “1 dent” de type défonceuse, diamètre 4mm. Ne surtout pas utiliser l’acier rapide (HSS) pour autre chose que pour le métal, il chauffe et s’use très rapidement. Au moins le carbure coupe moins (les dents en céramiques ont des rayons de courbure plus importants sur les arêtes) mais il supporte très bien les hautes températures. Pour le plexi j’ai utilisé une fraise deux dents hélicoïdale en carbure, toujours de 4mm. Ma broche Milwaukee a une pince qui accepte toutes les fraises avec des soies (axe de fixation) de 6mm.

Pour finir je remercie Skywodd de m’avoir fait faire ces opérations, qui ont amélioré mon expérience en usinage. Je le remercie de m’avoir passé un module pour mes propres essais.

Bon, assez parlé, place aux images!

 PS: le chêne utilisé est superbe une fois enduit d’huile d’olive. Elle rentre bien en quelques jours, et elle nourrit bien le bois qui prend une plus belle teinte.

Essais de vitesses de coupe
Essais de vitesses de coupe. Notez le “Pour essais” 🙂
En cours de découpe
En cours de découpe. Y’a des copeaux partout!
Deux blocs finis
Deux blocs finis. Il faudra faire les finitions au papier de verre…
Crash dans le plexi
Crash dans le plexi: la plaque s’est décollée du support.