Archives par mot-clé : linux

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é!

Linux sur la calculatrice Nspire

Depuis de nombreuses années, beaucoup d’enthousiastes s’affairent autour des calculatrices de Texas Instruments, car elles permettent des formes évoluées de programmation en C et en assembleur (c’est avec ces calculatrices que j’ai débuté la programmation dans ces langages, pendant mes années de prépa…). De nombreux jeux et programmes utilitaires ont été développés, malgré les nombreuses restrictions mises en place par Texas.

Plus récemment, Texas Instruments a cessé de développer sa gamme de TI-89 et TI-92+ pour sortir un nouveau modèle, bien plus puissant que l’ancien: la gamme des TI-Nspire. Cette calculatrice est restée longtemps hors d’accès de la communauté des développeurs indépendant, jusqu’à ce que le voile se lève peu à peu, aboutissant au projet Ndless, qui permet d’écrire des programmes en C et assembleur sur cette calculatrice.

TI-68k TI-Nspire
Apparence  TI-89v200 ti-nspire
CPU  68000 @ 16 MHz  ARM926 @ 90 MHz
Mémoire RAM  256 kB  32 MB
Mémoire Flash  2/4 MB  32 MB

Table: Comparaison des générations de calculatrices TI programmables

 

Avec ces capacités nettement plus évoluées, des projets de plus grande envergure ont pu alors voir le jour, tels que des centaines de jeux et utilitaires de grande qualité, mais également un émulateur de Game Boy, sublimé par la version couleur de la NSpire, et plus récemment: Linux.

C’est effectivement Linux qui a pu être porté par “tangrs” en Novembre 2012, un des développeurs les plus actifs de la communauté NSpire.

Aujourd’hui, j’apprends que nspire-linux va supporter l’architecture “device tree” qui vise à créer un Linux universel pour tous les ARM (de la manière à ce qui existe aujourd’hui dans le monde du PC), et que le prochain but est l’intégration officielle de la version nspire dans le Linux “Standard” (mainline).

Mes plus grandes félicitations à tous ces développeurs passionnés et acharnés. Pour les avoir suivi, je sais que la route a été longue.

Revue de Presse – 3 Décembre 2012

Raspberry Pi

Le jeu de construction MineCraft atterrit sur le Raspberry Pi.

Arduino

le goDuino, un arduino que vous pouvez brancher sur une plaque à trous.

et le Smartduino, une plate forme très modulaire pour et encore plus portable! Le projet kickstarter a largement été financé, ils ont leur propre site, ça m’a l’air vraiment bien, y’a encore moins de fils à connecter qu’avec un arduino!

Radio

Une vidéo très ancienne qui explique le comportement des ondes. C’est très éducatif, et pas besoin d’écouter le son de la vidéo pour tout comprendre!

Technologies

Un chargeur de batterie Lithium ion à base d’un simple amplificateur opérationnel… Quand on a déja vu une telle batterie exploser, on regarde cet article avec prudence!

Etonnant

Linux possède une infrastructure pour piloter des coprocesseurs. Ainsi il a été possible de piloter un antique 6502, celui qui se trouvait dans vos premiers ordinateurs (ou ceux de vos parents)!

 

Bonne semaine!

Revue de presse – 12 Novembre 2012

Raspberry Pi

Un rack pour 4 raspberry pi en lego peut servir à plein de choses, notamment à gérer un stockage distribué chez soi. Si un disque casse, il reste les autres! Des plans de construction de la structure en Lego sont fournis, ça me rappelle ma petite enfance!

Source: http://www.giaceccosdigitalcontraptionsimaginarium.com/post/34442735088/modular-rack-for-four-raspberry-pis-in-pcsl-adafruit (mention spéciale au nom de domaine!)

Via: http://www.adafruit.com/blog/2012/11/09/modular-rack-for-four-raspberry-pis-in-pcsladafruit-case-usb-hdd-switch-piday-raspberrypi-raspberry_pi/

Stellaris Launchpad

Après avoir réussi à faire fonctionner le débugage sur openocd, un tutorial a été écrit sur la programmation de la bête sous linux!

Source: http://recursive-labs.com/blog/2012/10/28/stellaris-launchpad-gnu-linux-getting-started/

Via: http://forum.stellarisiti.com/blog/6/entry-29-stellaris-launchpad-development-using-linuxgcclm4tools/

A noter également que Texas Instruments m’a contacté pour me prévenir de l’envoi de mes cartes. Les choses sérieuses vont commencer!

Arduino

Un nouvel arduino est né, c’est un mini micro! Il tient sur un support DIL large, comme un basic stamp, ce qui est très pratique pour l’intégrer dans vos bricolages! C’est l’arduino nano!

Source: http://arduino.cc/en/Main/ArduinoBoardNano

Acheter sur amazon

Radio

L’Electrolab s’intéresse au sdr-widget, une carte son usb particulière qui est plutôt une platine d’acquisition de signaux issus d’une carte SDR (radio logicielle). Cette carte a une très bonne dynamique de 153 dB, ce qui signifie qu’elle peut digitaliser simultanément des signaux très différents (très forts et très faibles) C’est plutôt rare pour ce genre d’appareil, et très important pour faire de la radio… Mais aussi pour les audiophiles!

Source: http://wiki.electrolab.fr/Projets:Lab:2011:SDR_Widget

Etonnant

Les lignes à retard sont des appareils plutôt anciens, qui servaient dans les appareils vidéo à faire fonctionner le décodage de la couleur, surtout pour les systèmes PAL et SECAM. Le but de ces circuits est donc de retarder un signal, généralement de quelques microsecondes. Et que fait le signal pendant ce temps? Eh bien il est “stocké” sous forme d’onde dans le matériau, que ce soit dans un long fil émaillé ou dans une lame de verre. Dans les applications vidéos, cela sert à stocker une ligne d’image pour l’ajouter à la suivante, c’est nécessaire pour décoder correctement les couleurs. Mais en informatique, il suffit de boucler la sortie sur l’entrée pour que le signal se propage en boucle, et on obtient… une mémoire!

J’avais déja vu ces appareils utilisés dans des ordinateurs grâce au blog de  Bunnie Huang. Pour avoir une plus grande capacité mémoire, on utilise alors un fil en nickel de grande longueur bouclé et légèrement maintenu pour ne pas affaiblir l’onde qui s’y propage.

Mais dans cet article, le hack est plus prononcé, puisqu’il s ‘agit d’une récupération provenant d’une vieille caméra vidéo!

Source: http://www.youtube.com/watch?v=-qerYLM-eEg

Via: http://hackaday.com/2012/11/09/storing-32-bytes-of-data-in-a-piece-of-glass/