jeudi 4 décembre 2008

Alimentation de laboratoire pas chère

Quand on fait des petits montages électroniques, une alimentation de laboratoire deviens vite indispensable. Jouer avec des piles et des ponts diviseurs, ça va bien un temps mais cela deviens vite très lourd !

Par contre une vrai alim de labo coute vite des sous. Alors quitte à  mettre pas cher, autant mettre rien du tout[1] ! Avec un peu d'astuce, d'espièglerie c'est la vie... heu non. Un peu d'astuce et surtout un bon moteur de recherche peut transformer une vieille alim ATX qui prend la poussière en alim non réglable mais qui nous fournira les tensions les plus courantes[2].

Attention Même débranchée, de fortes tensions mortelles sont présentes dans une alim. Laissez les condensateurs se décharger plusieurs jours avant de l'ouvrir ! Et bien sur faites aussi une croix sur votre garantie :)

Je ne vais re-détailler ici tout le processus, de nombreuses pages existent déjà . Je me contente donc de vous renvoyer vers la page que j'ai principalement utilisée, très claire et détaillée ainsi que sur mon wiki ou j'ai regroupé plusieurs autres liens

Coté matériel, je n'ai eu à  acheter que la résistance de puissance à  4.30€, j'ai trouvé tout le reste dans les poubelles[3] ou dessoudé à  partir de vieux matos patiemment collecté et stocké. En temps de réalisation, vu mon taux d'occupation actuel, j'ai étalé sur plusieurs semaines, mais ça peut être torché en 2h.

Voici quelques photos commentées. Tout d'abord un petit plan[4] pour le placement Plan

L'essentiel positionné et soudé click La résistance doit être fixée en contact avec la carcasse métallique et dans le chemin du ventilateur pour assurer un bon refroidissement.

Le ventilateur étant particulièrement bruyant, j'ai ajouté un petit interrupteur pour choisir de l'alimenter en 5V (utilisation normale) ou de le repasser en 12V en cas d'utilisation prolongée ou particulièrement consommatrice. Il est soudé sur une plaque à  trous ce qui me permet de conserver le connecteur d'origine du ventilateur. Les alims sont repiqués sur les fiches bananes. Comme les LED, il est simplement fixé à  la super glue. click

Enfin, le produit fini :) click J'ai conservé les prises Molex pour pouvoir y brancher un disque ou un lecteur CD.

D'autres photos sont disponibles sur le wiki. N'oubliez pas d'isoler vos connections à  la gaine thermo ou au scotch d'électricien.

Notes

[1] ou presque

[2] et même du -/+ pour des amplis op.

[3] oui ça aide de travailler dans une boite qui fait du hard, et merci à  Jean-Pierre pour la LED jaune

[4] inkscape powered


Commentaires du post original

lundi 6 octobre 2008

Fonera 2 : Personnaliser, compiler, regénérer OpenWRT

OpenWRTNous allons voir dans cet article l'environnement de développement de OpenWRT (kamikaze). Étant un système embarqué, OpenWRT est souvent destiné à  fonctionner sur des architectures différentes de votre machine de bureau. Pour cela il faut mettre en place un environnement de cross-compilation permettant de compiler des binaires pour une architecture différente. Pour la Fonera, par exemple, il me faut générer des binaires MIPS à  partir d'une machine x86.

L'équipe d'OpenWRT propose plusieurs outils qui permettent de réaliser cette tà¢che, réputée compliquée, avec une facilité indécente. Nous allons passer en revue ces différents outils de manière à  trouver celui en adéquation avec chaque besoin. Tout au long nous prendrons en exemple la Fonera.

Selon ce que vous voulez faire, vous n'aurez pas besoin d'installer l'environnement complet de développement. Nous pouvons distinguer trois niveaux en fonction de la tà¢che :

  • ImageBuilder pour générer un firmware personnalisé ;
  • le SDK pour compiler de nouveaux paquets ;
  • BuildRoot qui est l'environnement complet.

Les deux premiers sont en fait des version allégées et adaptées du 3ème.

ImageBuilder

Avec ImageBuilder, nous allons pouvoir adapter la distribution OpenWRT à  nos besoins (le filesystem pour être précis). Typiquement pour ajouter des paquets non présents dans la version de base, en retirer, préparer une configuration spécifique ... Cet outil vient donc avec des versions binaires de tous les paquets standards.

Pour la Fonera et kamikaze 7.09, vous le téléchargez ici. Prenez le fichier ImageBuilder correspondant à  votre architecture de développement (i686 ou x86_64).

Pour ajouter un paquet :

$ cp /tmp/hello_1-1_mips.ipk packages/
$ make image PACKAGES="hello"

Pour ajouter des fichiers, construisez votre arborescence dans un répertoire (par exemple /tmp/files/etc/monfichier.conf)

$ make image FILES="/tmp/files"

et monfichier.conf sera ajouté au répertoire etc de votre image.

$ make help

vous explique tout cela.

Note: Il semble que les Profiles ne fonctionnent pas avec ImageBuilder.

SDK

GCC Le SDK va nous permettre de compiler de nouveaux paquets pour OpenWRT. Il inclu donc les binaires de compilation croisées (mips-linux-uclibc-gcc par exemple) qui vont vous permettre de générer des exécutables MIPS à  partir d'une machine PC. Nous pouvons donc l'utiliser pour générer des paquets existants avec une configuration différente voir créer carément de nouveaux paquets.

Vous le téléchargez au même endroit mais cette fois il s'agit du fichier SDK. De même décompressez le dans un répertoire de travail.

Deux erreurs ?

Avant d'aller plus loin, chez moi j'ai rencontré deux erreurs lors du make avec le SDK Kamikaze 7.09 pour Atheros.

$ make
/bin/sh: Syntax error: "&" unexpected
make: *** [world] Erreur 2

Bizarement celle-la se résoud en augmentant le niveau de verbosité :

$ make V=99

à  chaque fois que vous utilisez make

Deuxième erreur :

make: option requires an argument -- C
Usage: make [options] [target] ...
Options:
  -b, -m                      Ignored for compatibility.
  -B, --always-make           Unconditionally make all targets.
  -C DIRECTORY, --directory=DIRECTORY
                             Change to DIRECTORY before doing anything.
...

Il suffit de remplacer le ; par un . à  la ligne 79 du Makefile :

                      xargs -n1 $(MAKE) compile -C. \

Ce qui est étrange, c'est que je n'ai pas ces problèmes avec le BuildRoot.

Ajouter un paquet existant

Pour générer un paquet que vous n'avez pas, il vous suffit de copier le répertoire source dans package et de taper make à  la racine du SDK.

Avant de vous lancer dans la création d'un nouveau paquet, je vous invite à  aller voir si quelqu'un ne s'en ai pas déjà  chargé. Dans le cas contraire, suivez le guide ...

Hello world!

Pour commencer essayons de générer le fameux Hello world!. Positionnez vous dans le répertoire du SDK puis :

$ cd tmp
$ cat > hello.c
#include <stdio.h>
int main (int argc, char * argv)
{
   printf ("Hello world!\n");
   return 0;
}
^D

Compilons le et exécutons le sur la Fonera[1] :

$ ../staging_dir_mips/bin/mips-linux-uclibc-gcc hello.c -o hello -I../staging_dir_mips/include
$ scp hello root@fonera:/tmp
$ ssh root@fonera /tmp/hello
Hello world!

Construire un paquet

Paquet Bon, c'est bien joli, mais ça manque d'automatisation. Nous allons en faire un paquet. Créez les répertoires hello/src dans le dossier package du SDK et copiez y hello.c.

Voici donc les sources de notre paquet. Maintenant il faut créer un fichier de contrôle pour que le SDK sache comment générer et installer nos fichiers. Créons donc un fichier Makefile situé dans package/hello. Il doit contenir :

include $(TOPDIR)/rules.mk

PKG_NAME:=hello
PKG_RELEASE:=1
PKG_VERSION:=1

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

include $(INCLUDE_DIR)/package.mk

define Package/hello
	SECTION:=utils
	CATEGORY:=Utilities
	TITLE:=hello
	DESCRIPTION:=The Hello World
endef

define Build/Compile
	mkdir -p $(PKG_BUILD_DIR)
	$(CP) ./src/* $(PKG_BUILD_DIR)/
	$(TARGET_CC) $(PKG_BUILD_DIR)/hello.c -o $(PKG_BUILD_DIR)/hello
	## $(MAKE) CC=$(TARGET_CC) -C $(PKG_BUILD_DIR)
endef

define Package/hello/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/hello $(1)/usr/bin
endef

$(eval $(call BuildPackage,hello))

Voyons rapidement la syntaxe : au début et dans la section Package/hello on renseigne des variables décrivant le paquet (nom, versions, description ...).

Dans la section Build/Compile, la manière de compiler les sources. Copie des fichiers dans le répertoire de compilation et appel du compilateur croisé (TARGET_CC). Notez aussi la ligne en commentaire qui servirait dans le cas ou on aurait un Makefile pour les sources.

Enfin viens la section Package/hello/install qui indique quels fichiers installer ou. Création de /usr/bin et copie de hello dedans.

Vous pouvez trouver une description plus détaillée du format de fichier dans la doc BuildRoot. Enfin, il faut signaler que le SDK est capable de télécharger automatiquement des sources[2] simplifiant encore le fichier de contrôle.

Je vous invite aussi à  aller voir les sources pour pleins d'exemples.

Une fois ceci fait, positionnez vous à  la racine du SDK et tapez simplement :

$ make

le SDK va détecter les nouveaux packages et lancer le processus de génération de ceux-ci. Une fois terminé, vous trouverez les fichiers .ipk dans bin/packages. Il ne vous reste plus qu'a le copier sur la Fonera pour l'installer.

$ scp bin/packages/hello_1-1_mips.ipk root@fonera:/tmp
$ ssh root@fonera
...
root@OpenWrt:~# ipkg install hello_1-1_mips.ipk
root@OpenWrt:~# hello
Hello world!

\o/ Youhou !

Vous trouverez ici les sources et binaires

Buildroot

TuXAlors la, c'est du lourd. L'environnement complet de développement, vous allez pouvoir tout recompiler et hacker le noyau comme des petits fous. :) Comme il s'agit d'un sur-ensemble des deux outils précédents, vous pouvez bien sur utiliser BuildRoot pour simplement compiler un package ou générer un filesystem perso. A noter qu'une très bonne documentation est disponible.

Génération

Pour récupérer le BuildRoot Kamikaze 7.09, faites simplement :

$ svn co https://svn.openwrt.org/openwrt/tags/kamikaze_7.09/

ou alors :

$ wget http://downloads.openwrt.org/kamikaze/7.09/kamikaze_7.09.tar.bz2 && tar xvjf kamikaze_7.09.tar.bz2

Les gentils dev d'OpenWRT nous ont concocté un joli menu pour configurer tout ceci :

$ make menuconfig

Vous pouvez alors choisir la cible, quelques options de configuration, les images à  générer et les paquets à  inclure dans votre image. Vous pouvez aussi reconstruire ImageBuilder et le SDK. Si vous voulez changer des options du noyau[3], utilisez :

$ make kernel_menuconfig

Pour la Fonera, choisissez Atheros [2.6] comme cible.

Enfin, il est temps de compiler/générer tout cela. tapez simplement :

$ make

et allez raconter 12 histoires à  vos enfants. Chez moi (Athlon XP 1600+) ça a mis 1h30. Toutes les sources nécessaires sont téléchargées, patchées, le compilateur croisé est construit ainsi que le noyau et le filesystem. A la fin, vous trouvez ce qui vous intéresse dans le répertoire bin.

$ ls bin/
openwrt-atheros-2.6-root.jffs2-128k  openwrt-atheros-2.6-vmlinux.elf
openwrt-atheros-2.6-root.jffs2-256k  openwrt-atheros-2.6-vmlinux.gz
openwrt-atheros-2.6-root.jffs2-64k   openwrt-atheros-2.6-vmlinux.lzma

Lors des prochains make seules les parties nécessaires seront reconstruites. En particulier le compilateur ne sera pas recompilé à  chaque fois. :)

A noter quelques autres répertoires intéressants :

  • build_mips : contient tout ce qui a été compilé et généré. En particulier build_mips/root le système de fichiers ;
  • staging_dir_mips : le cross-compiler ;
  • package : les sources des paquets (fichiers de contrôle, patchs ...) ;
  • dl : les sources téléchargées lors de la construction.

Packages

Pour ajouter votre propre package, procédez comme avec le SDK. Puis lors du menuconfig, sélectionnez le simplement.

menuconfig

Fichiers

Si vous voulez ajouter des fichiers à  cette image, créez un répertoire files. Par exemple pour changer la configuration réseau par défaut :

mkdir -p files/etc/config
cat > files/etc/config
## Attention, il manque lo !!
config interface lan
       option ifname   eth0
       option proto    dhcp
       option hostname fonera

Lors du prochain make, BuildRoot remplacera la configuration réseau de package/base_files par la votre.

Émulation MIPS

Qemu logo Autant vous prévenir tout de suite, il ne semble pas possible d'émuler votre Fonera, même si quelques travaux existent.

Par contre, il est possible de lancer un programme MIPS sur votre PC :

$ cd /data/OpenWrt/kamikaze_7.09/build_mips/
$ qemu-mips -L /data/OpenWrt/kamikaze_7.09/build_mips/root root/bin/busybox

avec le SDK et notre programme hello ci-dessus :

$ qemu-mips -L /data/OpenWrt/OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/ hello

Cela peut vous permettre de tester quelques commandes. Mais à  priori pour le kernel, il vous faudra flasher.

Visiblement il existe pleins d'émulateurs MIPS mais je n'ai pas eu le courage d'en tester d'autres.

Voila, nous sommes maintenant capables de

  • ajouter des fichiers et des paquets dans une image sans rien recompiler ;
  • compiler des programmes, des paquets et en faire de nouveaux ;
  • regénerer un OpenWrt complet noyau y compris.

Nous voila prêts pour de nouvelles aventures au prochain épisode, porter open2300 sur la Fonera et lui donner accès au port série.

Liens

La doc de WhiteRussian, plutôt obsolète.

La doc de Kamikaze :

  • Moteur de recherche de paquets ipkg

Notes

[1] on pourra aussi émuler, mais on verra ça plus tard

[2] par exemple sur sourceforge

[3] et voir de jolis oops :)


Commentaires du post original

mercredi 1 octobre 2008

Fonera et Station météo 1 - Port serie et OpenWRT

Je me suis acheté récemment pour une somme modique une Fonera. Mais je n'ai pas l'intention de faire parti du réseau FON. L'utilité que je vois à  celle-ci est de disposer d'un système embarqué supportant linux et disposant d'un port série, réseau et wifi.

Le projet

Fonera
En effet ce genre de petite carte à  faible consommation revient généralement assez cher ! Vous trouverez quelques exemples dans mes bookmarks mais il est difficile de trouver quelque chose à  moins de 60EUR port exclu. La Fonera se présente alors comme une alternative crédible même si ses possibilités sont assez limitées.
Mon but est, à  terme, de l'utiliser comme mini-serveur web pour accéder aux données de ma station météo. Elle devrait pouvoir remplacer avantageusement un PC complet pour ce simple service. Ses capacités semblent tout-à -fait suffisantes :
  • support de Linux et en particulier de l'excellent OpenWRT ;
  • port série pour dialoguer avec la station ;
  • interface réseau filaire et Wifi ;
  • 4 GPIO disponibles sur lesquels on peut connecter une SD card pour la capacité de stockage.
Bref tout ce qui est nécessaire pour seulement 15EUR dans mon cas et pour une consommation électrique sans commune mesure : 3.2W en pic au boot et 2.6W en idle[1].
WS2300Les étapes nécessaires à  ce projet sont donc :
  1. réalisation d'un connecteur pour le port série ;
  2. flashage de la Fonera avec OpenWRT ;
  3. configuration/modification pour rendre le port série disponible pour la station météo ;
  4. compilation de open2300 sur la fonera ;
  5. réalisation du support de stockage de masse (SDcard) ;
  6. configuration du serveur web.
Rien de révolutionnaire dans ce projet, toutes les étapes sont déjà  parfaitement documentées un peu partout sur le web.

Connecteur série

Première étape, la réalisation d'un connecteur pour le port série.
Je ne vais pas détailler le montage, tout est déjà  très bien expliqué sur l'excellent blog de Denis Bodor[2] (y'a même un typon). Autant vous prévenir tout de suite, c'est une référence en ce qui concerne le hack de Fonera. D'ailleurs regardez le dernier article du GLMF de ce mois :)
D'abord, un petit test sur plaque d'essai. J'ai utilisé des transistors 2N2218 plutôt que les 2N2222 car c'est ce que mon fournisseur[3] avait en stock :)
essai essai
Attention, sur le Wiki OpenWRT, RXD et TXD du port fonera correspondent au coté PC ! Chez Denis par contre c'est OK.
Ensuite, la mise en place sur plaque pastillée. Les composants sont assez serrés car je veux loger tout ça dans une petite boite. Comme l'ensemble du montage sera à  coté de la station météo dans le salon, il faut que ça reste relativement propre.
placement recto verso
La nappe coté fonera est découpée dans une nappe IDE, celle coté PC vient d'une poubelle. J'ai du acheter la boite chez Selectronic pour un projet oublié depuis :)
Et voila, la Fonera est branchée et dialogue avec le PC !
fini

Quelques trucs avant de flasher

On peut commencer par se connecter en ssh[4] via le réseau filaire.
# autorise les connections tcp
iptables        -A input_rule      -i eth0 -p tcp  -j ACCEPT
iptables -t nat -A prerouting_rule -i eth0 -p tcp  -j ACCEPT
# lance dropbear
/etc/init.d/dropbear
On attend un peu que les clefs soient générées, puis :
ssh root@192.168.0.149  ## bien sur remplacez par l'adresse de votre fonera !
root@192.168.0.149's password: admin
Voila, c'est plus convivial que le lien série.
Ensuite, on sauvegarde les partitions actuelles. La méthode proposée sur le wiki OpenWRT ne fonctionne pas chez moi, j'en ai trouvé une autre ici
cd /dev/mtd
for f in *ro; do echo -n "processing $f."; cat $f | gzip >/tmp/$f.gz; echo " Done."; done
scp /tmp/*.gz jjl@penfret:/home/jjl/
Conservez aussi le contenu du fichier /proc/mtd

Flasher avec OpenWRT

logo Je me propose d'utiliser ici la méthode RedBoot via port série. Une autre très courrue est via telnet.
On installe un serveur tftpd, par exemple sur une ubuntu :
sudo aptitude install tftpd
Chez moi, il est lancé à  la demande par inetd. Les fichiers à  servir sont situés dans /srv/tftp[5], répertoire à  créer. On récupère alors le noyau et le filesystem pour atheros (le processeur de la fonera)
cd /srv/tftp
wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/openwrt-atheros-2.6-vmlinux.lzma
wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/openwrt-atheros-2.6-root.squashfs
La, je vous conseille de suivre cette méthode. Ne recopiez pas directement les lignes suivantes, allez lire l'article pour avoir toutes les explications !
RedBoot> ip_address -h 192.168.0.105 -l 192.168.0.149/24
RedBoot> fis init
RedBoot> lo -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma
RedBoot> fi cr -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
RedBoot> fis free
La vous faites la différence entre les deux valeurs hexa données.
RedBoot> lo -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs
RedBoot> fi cr -l 0x6F0000 rootfs ## Remplacez la valeur par la différence précédement calculée
RedBoot> fis load -l vmlinux.bin.l7
RedBoot> exec
Ne reste plus qu'a adapter la configuration comme le dhcp, le password root à  définir ...
Voila pour aujourd'hui. Prochaine étape, construire un environnement de cross-compilation pour régénérer un openwrt et open2300

Liens utiles

Je ne vais pas vous lister ici tous les liens sur la fonera ou OpenWrt, mais juste ceux qui me paraissent le plus pertinents dans mon cas.
Tout d'abord ceux qui ont eu la même idée que moi :
  • EquinoxeFR mais j'ai l'impression qu'il a changé de politique après l'étape 1
  • Puis ici openwrt/open2300 mais sur un routeur Asus
  • open2300 pour WhiteRussian
Puis sur la Fonera

Notes

[1] sans le wifi
[2] Quoi ? Il n'est pas encore dans vos flux RSS ! Mais ajoutez-le immédiatement !
[3] qu'il soit béni jusqu'à  la 7ème génération
[4] en one-shot, au prochain démarrage, il faudra recommencer
[5] voir /etc/inetd.conf


Commentaires du post original

mardi 19 août 2008

lundi 20 août 2007

Nouveau jouet : GBA

En me promenant dans un vide grenier, j'ai fait une acquisition de type consoleosaure (enfin presque)

Une GameBoy Advanced (GBA) me faisait de l'oeil et j'ai pu l'avoir à  un prix très raisonnable. En plus vu la taille de la bête, on ne m'a même pas reproché son encombrement :) [1]

GBA

Pour le même prix j'ai eu deux jeux, mais ce n'est pas ça qui me motive le plus dans cette machine, ce sont plutôt les possibilités de geeker avec :)

En effet il existe une version de GCC qui permet de développer ses propres applications (par exemple le kit de dev devkitpro), quantité de modifications hardware, un port série ...[2]

Comble du bonheur, quelqu'un à  même réussit à  faire tourner un Linux dessus \o/

En plus une grosse communauté existe et nombre de tutoriaux de dev sous linux ou windows sont facilement trouvables.

Pour développer je me suis aussi commandé une SuperCard SD qui permet de mettre une carte SD dans la GBA.Cela permet outre de jouer avec ses copies de sauvegarde d'exécuter facilement ses homebrew.

Bref quelques heures d'amusement en perspectives :)

Notes

[1] Ce n'aurait pas été le cas pour le Mac Classic qui lui aussi me cherchait quelques stands plus loin ;) Mais j'ai résisté !

[2] Je suis particulièrement attiré par le projet GbaGps


Commentaires du post original

lundi 11 juin 2007

Logiciels d'electronique sous linux

Je vais essayer de vous présenter dans ce billet les logiciels d'électronique disponibles dans les dépots Ubuntu. Nous allons faire un tour d'horizon en essayant d'être le plus complet possible.

Capa En effet j'ai eu récemment l'envie de me remettre à  l'electronique[1]. J'ai donc décidé de chercher un logiciel pour réaliser les schémas de circuit. Mon cahier des charges est le suivant :

  • Logiciel libre[2]
  • Présent dans les dépots ubuntu
  • Facile à  utiliser
  • Permettant de réaliser de jolis schémas
  • Intégrant des fonctions de simulation analogique[3]

Voici donc la liste des logiciels que j'ai testé avec mes remarques. Notez quand même que :

  • ça fait des années que je n'ai pas fait d'électronique[4] donc j'ai surement loupé des trucs
  • je ne cherche pas à  être exhaustif, si vous connaissez d'autres softs dispo pour Ubuntu, n'hésitez pas à  en parler
  • certains tests ont été fait sur une Dapper (ce sera précisé), certaines choses seront alors surement différentes en Feisty
  • pour les simulations, je prendrais comme exemple un circuit très simple, le Pont de Diodes qui permet de redresser un signal sinusoà¯dal.

Back-ends de simulation

Chip Dans le monde libre il existe principalement deux back-ends qui permettent la simulation de circuits électroniques :

  • gnucap : le projet de GNU
  • spice et dérivés : le plus ancien et répandu. Il a aussi donné naissance à  beaucoup de dérivés (ngspice ...)

Gnucap est le seul disponible dans les dépots Ubuntu. ngSpice était disponible en Hoary mais ne l'est plus depuis. Ces programmes sont en ligne de commande et nécessitent un apprentissage de leurs formats d'entrée (nommé netlist) et de sortie avant de pouvoir en faire quoi que ce soit. Nous n'allons pas les étudier ici.

Oregano

Oregano est un logiciel assez jeune mais dont le développement semble plutôt actif. Si vous êtes sous KDE, vous ne couperez pas à  l'installation de beaucoup de dépendances Gnome.

Il permet de dessiner des circuits et de les simuler de manière très simple. Il n'intègre pas de simulateur mais se base sur les back-ends gnucap ou ngspice. Il génère la netlist nécessaire, appelle le back-end et met en forme les résultats. Traduit en français, il propose une interface très intuitive et simple d'utilisation. Vous pouvez réaliser votre 1er circuit en quelques minutes.

Par contre c'est un logiciel encore jeune à  qui il manque quelques fonctions. Quelques bugs plus ou moins génant sont aussi présents. On ne peut non plus pas exporter d'image du circuit dessiné (mais on peux l'imprimer)

/!\ Cette astuce fonctionnait avec Dapper, mais semble ne plus marcher en Feisty :(
Dans cette version il n'y pas d'inclusion de composants extérieurs pour la simulation (pour les composants qui ne sont pas de base dans gnucap). On peut quand même s'en sortir :

  • une fois le circuit dessiné, afficher la netlist
  • ajouter une ligne comme .include /data/documents/Electronique/lm317.sub
  • cliquez sur le bouton Simuler

Pour finir regardez comme il est beau[5] : Capture

qucs

qucs semble avoir aussi un développement très actif. Il est fournit avec son propre simulateur et n'utilise donc pas gnucap. Son interface (traduite) est encore plus facile à  utiliser que Oregano et très puissante. Il semble être pas mal utilisé et il est relativement facile de trouver de la documentation ou des tutoriaux.

Mais gros problème. Impossible de simuler quoi que ce soit avec la version disponible dans Ubuntu ! Même l'exemple tout simple de la documentation plante chez moi. Visiblement, je ne suis pas le seul, voir ce bug sur Launchpad ou ce fil dans les forums officiels.

Heureusement, grà¢ce au commentaire de C. Joubert j'ai trouvé un contournement. Il suffit de lancer qucs en changeant la locale numérique :

LC_NUMERIC=C qucs

Voici donc une capture d'écran : Capture

Pour avoir un aperçu plus complet, regardez par exemple ce tutorial

gEDA / gscheme

gEDA est la suite de logiciels du projet GNU. Son but est d'offrir un environnement complet pour réaliser les circuits, les simuler et dessiner les circuits imprimés. Je n'ai pas cherché à  tester cette dernière fonction. gEDA est donc juste une interface pour accéder aux autres applications.

Celle destinée au dessins de schémas est gscheme. Son interface est principalement basée sur des raccourcis clavier. Cela semble déroutant au début mais avec un peu d'entrainement ce fonctionnement devient très pratique. Les schémas réalisés sont d'un rendu très professionel et la bibliothèque de composants disponibles est impressionnante. Il semble très utilisé et il est donc facile de trouver de la documentation. Par exemple sur le wiki gEDA ou même ces très bons tutoriaux traduits en francais.

En ce qui concerne la simulation, il se base aussi sur gnucap ou spice. Mais il n'y a pas d'interface intégrée permettant de simuler en 3 clicks[6]. Vous devez alors utiliser plusieurs logiciels pour affecter les valeurs aux composants, générer la netlist, simuler puis afficher les résultats. De plus si l'intégration de spice est très documentée, gnucap semble aux abonnés absents :(

Pour finir, une capture et un export en PNG du désormais habituel pont de diodes :
Capture Export

kicad

kicad est une suite logicielle déstinée à  la réalisation de shémas et circuits imprimés. Il n'est dans les dépots ubuntu que depuis la sortie de feisty. Sachez tout de suite que c'est un logiciel de très grande qualité qui plus est développé par le Français J-P Charras enseignant chercheur.

D'une ergonomie parfaite, il ne permet pas la simulation mais génère des fichiers netlist que vous pouvez donner à  manger à  spice. Il dispose en outre d'un module de visualition 3D de vos circuits de toute beauté. Inutile donc absolument indispensable :)

Notez quand même un petit bug dans ubuntu, les fichiers d'aide ne sont pas accessible à  partir de l'interface de kicad. Vous les trouverez dans /usr/share/doc/kicad/help/fr si vous avez installé le paquet kicad-doc-fr.

Enfin une capture d'écran un peu chargée car j'ai voulu tout vous montrer : Capture

Autres logiciels

Voici quelques autres logiciels que j'avais testé sous Dapper mais qui ne m'ont pas emballé pour diverses raisons. Je ne les ai donc pas ressayé en Feisty mais les cite quand même pour mémoire.

Electric

electric est un logiciel assez ancien mais très (trop ?) puissant. Son interface est ... rustique. Il permet de dessiner des schémas de circuits, des circuits imprimés mais aussi des circuits intégrés ! C'est le seul que j'ai essayé capable de faire cela.

Il permet la simulation via plusieurs moteurs externes ou un moteur interne. Je n'ai pas réussit à  en tirer grand chose mais c'est surement un logiciel qui ravira ceux qui ont ces besoins particuliers.

Capture

XCircuit

XCircuit propose une approche un peu différente des autres logiciels. Il est beaucoup plus orienté dessin que juste placement de composants. Son interface et son ergonomie paraissent un poil antédiluviennes. Il permet d'exporter des netlists et des fichiers postcript[7]

Capture

Dia

Dia est un logiciel permettant de dessiner des diagrammes. Il dispose de nombreuses bibliothèques de symboles que vous pouvez intégrer dans vos schémas et parmi celles-çi, des composants électroniques. Il ne dispose d'aucune fonction propre à  l'électronique comme l'export de netlist, mais si vous cherchez juste à  dessiner quelques schémas il peut tout à  fait vous suffire.

Capture

Conclusion

Voila pour ce petit tour des logiciels d'électronique sous Linux. Il resterai beaucoup à  dire sur d'autres logiciels tels que ceux spécifiquement destinés à  la création de PCB. Il en existe aussi beaucoup permettant de faire de l'électronique numérique[8]. Je pense d'ailleurs bientôt m'attaquer aux logiciels destinés aux microcontroleurs.

Voila, pour finir, félicitations à  ceux qui ont tenu jusqu'au bout ;) et n'hésitez pas à  me signaler les logiciels que j'aurais pu oublier.

Notes

[1] comme si j'avais pas déjà  assez galéré à  l'école

[2] Je ne parlerai donc pas de Eagle ni de faire tourner quoi que ce soit avec Wine

[3] l'électronique numérique reviendra peut-être en deuxième semaine

[4] en particulier analogique

[5] Hum le résultat de la simulation est assez étrange

[6] oui, je suis un gros fainéant

[7] J'avais noté deux bug en dapper et edgy : #42976 et #75456

[8] je ne résiste d'ailleurs pas à  linker ce joli compteur à  bascule que je me suis amusé à  faire avec KLogic


Commentaires du post original

lundi 21 mai 2007

Données météo

Comme je me remet doucement à  la voile, j'éprouve le besoin de consulter les horaires de marée et la météo marine assez fréquemment. Mais aller sur les différents sites du SHOM puis de météo france est assez consommateur. Je me suis donc amusé à  faire un petit script qui récupère les données intéressantes et les compile sur une seule page.

On peut voir le résultat sur la page compilation des données météo en plus de celles prises de ma station personnelle.

Le port de référence est Trébeurden et les données sont actualisées 3 fois par jour en fonction des heures prévues de sortie des bulletins.

Je peux mettre le script à  disposition si ça intéresse quelqu'un.

Edit: Le script est maintenant disponible


Commentaires du post original