He estado haciendo montajes con el router 54-GL y GS de Linksys, pero me incomoda el andar soldando y desmontando el router para obtener la salida serial que ofrecen estos routers, además el resultado final no era muy bonito que digamos.
Así que decidí comprarme un ASUS WL-500Gp que tiene 2 puertos USB y conectar ahí mi Arduino, a primera vista acepto que es absurdo un arduino con USB que precisa del chip FTDI para transformar la señal a serial y el correspondiente hard y soft del router para pasar de serial a UBS (Serial-USB + USB-Serial), pero me es muy cómodo arduino con USB para programarlo con mi MAC.
Instalé openwrt en el ASUS, añadí webif (me parece muy cómodo)
ipkg update
ipkg install haserl
ipkg install http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm-2.4/webif_latest.ipk
Ahora a través del navegador accedo al webif e instalo los paquetes (seguramente no sean todos necesários)Pinch
kmod-usb-core
kmod-usb-serial
kmod-usb-serial-ftdi
Edito /etc/modules.d/60-usb-serial y pongo
usbserial vendor=0x403 product=0x6001
vendor y product son los valores resultantes de hacer un dmesg
Conecto mi arduino en el conector usb.
Reboot y con ejecutando este script (copiado de matandoeltiempo) consigo comunicarme para enviar y recibir datos de Arduino.
#!/bin/sh
variable=0
#echo > nivel
rm nivel
cat < /dev/usb/tts/0 > nivel &
echo $1 > /dev/usb/tts/0
until test -s nivel ||test $variable -ge 200
do
variable=$(($variable + 1))
done
sleep 1
cat nivel |head -1
kill -0 $! && kill $!
La comunicación del serial de Arduino la establezco a 9600
Al final un montaje más limpio y aunque el Asus es algo más caro que el linksys, creo que vale la pena.
Gracias al foro por vuestras aportaciones