Nabaztag : un peu de technique

Un peu de technique… sur le Nabaztag, pour justifier le nom de ce blog. C’est sur le site de Sylvain Huet (un des concepteurs du lapin) qu’on trouve quelques informations sur le côté technique. On commence avec le Nabaztag, premier du nom.

nab-la-geekette

Le premier lapin contient donc un microcontrôleur 8 bits, 3,5 ko de RAM, 48 ko de ROM (programmable) et 1 Mo de mémoire flash pour stocker certaines données.

La carte Wi-Fi est un modèle PCMCIA (16 bits) de l’époque, qui effectue la majorité des calculs matériellement, ce qui explique d’ailleurs son énervante limitation à la protection WEP. Elle est compatible 802.11b uniquement, le bus ne permettant pas réellement de tirer parti du 802.11g, plus courant actuellement.

Le fonctionnement interne du lapin est intéressant : c’est une machine virtuelle. En gros, le firmware accepte un langage de type ASM (VASM) qui est exécuté dans la machine virtuelle et permet d’activer les fonctions du lapin. Quand le lapin se connecte, il va donc récupérer son « OS » sur le site, qui est programmé dans l’assembleur et qui est exécuté dans la machine virtuelle. Il est donc assez simple de modifier les fonctions du lapin en modifiant le code envoyé depuis le serveur, qui est documenté en partie.

La machine virtuelle limite les programmes à 64 ko en capacité et à 256 octets de RAM, ce qui est parfois un problème. Une documentation sur l’assembleur utilisé est d’ailleurs disponible sur le site de Sylvain Huet.

Globalement, le lapin manque de puissance et l’utilisation de la machine virtuelle limite les performances tout en simplifiant en partie le développement, ce qui est un mal pour un bien.

L’utilisation d’une carte effectuant les calculs matériellement est aussi un problème : si les performances sont correctes, les fonctions sont limités. Le lapin est sorti en 2005, quelques années après la sortie des premières bornes Wi-Fi (1999 chez Apple), et il a été rapidement obsolète sur ce point à cause de sa limitation au 802.11b et surtout au chiffrement WEP.