[Misc] Réparation HUB USB

Pour une raison que je ne m’explique pas mon petit HUB USB 7 ports est mort (dans la soirée s’il vous plait, ce qui explique ma tentative de réparation).  Si vous avez un HUB USB de plus de 4 ports il y a fort à parier que ce soit deux chip séparés (4 ports chacun).

Si le hub n’est plus détecté il y a fort a parier que ce soit le chip coté master qui soit mort. Mais il y a fort à parier aussi que les deux chip soit identiques :) Donc il y a toujours moyen de garder au moins 3 ports fonctionnels.

defect_gl850g swap

Un petit coup de soufflette, un petit swap des chip et ça roule, j’ai trois ports fonctionnels. Vous remarquerez au passage à quel point la carte et les soudures sont dégueulasses.

[CNC Microscope] Erreurs version 0.1 – PCB

Le PCB contient de la version 0.1 contient une erreur particulièrement gênante, les ouvertures du Soldermask sont trop grande conduisant à un grand nombre de court-circuits (montage à la main obligatoire).

Soldermask Failure

Comme visible sur la photo et sur la comparaison de Gerber le problème ne se pose pas sur le package QFN (ni sur les PowerPAD) car j’ai définit un override des contraintes générales.

GERBER Soldermask Failure

Le problème vient des options générales du projet que j’ai oublié de redéfinir avant de générer les GERBER et de ne PAS les vérifier. Comme règle de base prenez soin de mettre une dimension d’isolation inférieur ou égale à celle appliqué entre les plans de cuivre (dans ce cas il aurait fallu 152.4µm).

Kicad Soldermask Options

Au final, en faisant attention lors de l’assemblage la carte est fonctionnelle, elle pilote sans problèmes les deux moteurs de ma table de CNC, il ne reste plus qu’à faire un soft complet avec la communication et des timing propres. La deuxième version est en cours de dev en parallèle.

 

[CNC Microscope] Erreurs version 0.1 – Schematique

Petit récapitulatif des erreurs de la version 0.1.

Erreurs Schéma

Quelques erreurs se sont nichées sur le schéma, autant le dire tout de suite la solution est relativement simple, arrêter d’être fainéant et utiliser le check DRC à chaque fois.

- Les signaux "Fault" des 3 DRV8825 ne sont pas connectés (pas obligatoire mais quand même bien pratique pour comprendre pourquoi les moteurs s’arrêtent d’un coup sans raison apparente).

Unconnected fault pin

- Dans l’état actuel la carte fonctionne mais impossible de la faire tourner à partir du Quartz externe, lors de la tentative d’initialisation il n’y a pas d’oscillations. Je ne sais pas encore si cela viens des capas de pied ou si j’ai tout simplement un problème d’overdrive (ou peut-être un problème lié au soldermask défectueux). Quoi qu’il en soit la prochaine version intégrera une place pour une résistance tel que définit dans l’AN2867.

HSEStartUpStatus = RCC_WaitForHSEStartUp(); // Wait Xtal to start
// HSEStartUpStatus = Error à chaque fois
// Les pin de l'oscillateur présentes une tension continue une fois
// le block activé

Rext oscillator

- Modifications prévues: En plus de la correction des erreurs présentées ci-dessus, je vais réorganiser les PIN pour optimiser le routage, surtout après la suppression du troisième driver qui en l’état m’est inutile. Il sera remplacé par différente composants pour de la localisation dans l’espace. Dans l’absolu la diode de "Boost" présente sur le DC/DC peut-être retirée.

[CNC Microscope] Description de la table

La table vient de eBay, c’est une Nutec custom modele "6435". NuTec demande 125$ pour avoir la datasheet en PDF, mais la partie électrique est apparente. Les deux moteurs pas à pas sont des Lin-Engineering "417-15-03". N’ayant aucunes indications quand à la distance de déplacement de la table et à sa précision tout cela sera déterminé par le microscope avec un règle µm.

Nutec Driving ScrewLe principale défaut de cette table est de ne pas avoir de capteur de course, uniquement des capteurs d’arrêt sous forme de fourche optique. Il faudra donc prévoir une partie software pour étalonner la table.

Les fourches optiques sont des PM24 de chez Sunx.

[Kicad] Component Schematic Generator

Following the little script for Kicad footprint I did one to speed up the schematic design of component. It basically generate a schematic file from a CSV source and place pin on good pages.

Here is the script

The CSV format is:

Package Name Package Name Page NAME TYPE

For example:
LFBGA144;LFBGA144_PAGE;LQFP144;LQFP144_PAGE;NAME;TYPE
A3;6;1;;PE2;I/O

[Scilab] Plot oscilloscope big csv export

Some days ago I tried to learn more about SPA (Simple Power Analysis attack), I take my Rigol scope and set the Long Memory Mode.

I stored the trace in CSV format on my usb key and searched for a way to print a csv with 1 Mega samples… You can forget about Gnumeric, LibreOffice or Excel, I found some "projects" but really nothing fancy (or even usable). Last option Scilab or Matlab. I tried Scilab some time ago and was a little disappointed (no documentation or resources). But it’s Free !

This time it was a good surprise, the console has the code/path completion and a variables watching window ! To be simple Scilab support CSV import and plotting without too much problems :)

First code (and really bad one, deprecated you can find on some website):

my_data = read_csv(filename);

Why bad one ? Because it will generate you a String Matrix with col_num * samples elements… And the only way to use that stuff later is to do an eval() on each… If you have some hours to lose that’s a good way :D

Second code ( the one I use):

stacksize("max"); //to avoid import problem
values = csvRead('NewFile0.csv', ',', '.', 'double'); //take care to set separator and decimal sign as you need
plot(values);

Full trace view (1M sample/1 channel)
full trace

Zoomed trace view
zommed_trace

Documentation
Deprecated read_csv – Function Help
csvRead – Function Help