Buenas, como buena noticia referente a un GPIO que su estado inicial con el router apagado sea 0 (no lógico) en el HG556a Atheros tenemos el GPIO 4, una vez se enciende pasa de 0 (no lógico) a 0,28v lo cual es insuficiente para accionar ningún led y espero que ningún optoacoplador.
Aquí detallo los voltajes de cada GPIO en cada uno de sus estados --> 1º desde apagado a encendido el router, 2º una vez exportardo, 3º asignada la dirección como salida, 4º enviando un 1 y 5º enviando un 0:
======
GPIO 4: --> Router de OFF a ON --> 0,28 v======
echo 4 > /sys/class/gpio/export -->
0,28 vecho "out" > /sys/class/gpio/gpio4/direction --> 0,00 v
echo 1 > /sys/class/gpio/gpio4/value --> 3,29 v
echo 0 > /sys/class/gpio/gpio4/value --> 0,00 v
=====
GPIO 5: --> Router de OFF a ON --> 1,00 v al iniciar luego oscila entre 0,79 v y 0,62 v
=====
echo 5 > /sys/class/gpio/export --> sigue oscilando entre 0,79 v y 0,62 v
echo "out" > /sys/class/gpio/gpio5/direction --> 0,00 v
echo 1 > /sys/class/gpio/gpio5/value --> 3,30 v
echo 0 > /sys/class/gpio/gpio5/value --> 0,00 v
======
GPIO 24: --> Router de OFF a ON --> 3,31 v
======
echo 24 > /sys/class/gpio/export --> 3,31 v
echo "out" > /sys/class/gpio/gpio24/direction --> 0,00 v
echo 1 > /sys/class/gpio/gpio24/value --> 3,31 v
echo 0 > /sys/class/gpio/gpio24/value --> 0,00 v
======
GPIO 25: --> Router de OFF a ON --> 3,27 v
======
echo 25 > /sys/class/gpio/export --> 3,27 v
echo "out" > /sys/class/gpio/gpio25/direction --> 0,00 v
echo 1 > /sys/class/gpio/gpio25/value --> 3,31 v
echo 0 > /sys/class/gpio/gpio25/value --> 0,00 v
======
GPIO 29: --> Router de OFF a ON --> 3,30 v
======
echo 29 > /sys/class/gpio/export --> 3,30 v
echo "out" > /sys/class/gpio/gpio29/direction --> 0,02 v
echo 1 > /sys/class/gpio/gpio29/value --> 3,31 v
echo 0 > /sys/class/gpio/gpio29/value --> 0,02 v
======
GPIO 32: --> Router de OFF a ON --> 3,27 v
======
echo 32 > /sys/class/gpio/export --> 3,27 v
echo "out" > /sys/class/gpio/gpio32/direction --> 0,00 v
echo 1 > /sys/class/gpio/gpio32/value --> 3,31 v
echo 0 > /sys/class/gpio/gpio32/value --> 0,00 v
======
GPIO 14: --> Router de OFF a ON --> Relé en posición (N.O.) --> 1º Continuidad y al encender es N.O.
======
echo 14 > /sys/class/gpio/export --> N.O.
echo "out" > /sys/class/gpio/gpio14/direction --> Continuidad
echo 1 > /sys/class/gpio/gpio14/value --> N.O.
echo 0 > /sys/class/gpio/gpio14/value --> Continuidad
======
GPIO 14: --> Router de OFF a ON --> Relé en posición (N.C.) --> 1º Sin continuidad y al encender es N.C.
======
echo 14 > /sys/class/gpio/export --> N.C.
echo "out" > /sys/class/gpio/gpio14/direction --> Sin continuidad
echo 1 > /sys/class/gpio/gpio14/value --> N.C.
echo 0 > /sys/class/gpio/gpio14/value --> Sin continuidad
Por otra parte, he estado localizando (de muy fácil averiguación) en PCB los puntos donde soldar en la zona de los LEDs (DSL, HSPA y MESSAGE que están sin uso al menos en la 14.07 RC3 "parte frontal del router") con lo que sumaríamos 3 GPIOs más, con el añadido de que tienen el LED que nos sirve de chivato de estado del GPIO correspondiente. También he localizado (algo más lioso para soldar la verdad pero posible) los 4 leds bicolor de los puertos LAN "obviamente en la parte trasera del router" (sumarían otros 8 GPIOs más, con un total solamente en LEDs de 11 GPIOs). Si le sumamos los 7 GPIOs que están "libres" o que podemos reutilizar hacen un total de 18 GPIOs (11 de ellos con leds de estado), que no es poco.
En estos días subo unas fotos de los puntos en placa de los 8 GPIOs de los leds bicolor LANS (rojos y verdes).
Para poder usar los LEDs como GPIOs de forma sencilla como detalló danitool en el 2º mensaje de este hilo. No hace falta ni abrir el router para probarlos, ponemos estos comandos y listo:
===========
LEDs a controlar:
===========
HW556:red:message
HW556:red:hspa
HW556:red:dsl
HW556:red:lan1
HW556:red:lan2
HW556:red:lan3
HW556:red:lan4
HW556:green:lan1
HW556:green:lan2
HW556:green:lan3
HW556:green:lan4
=============
1º izq --> message:
=============
echo 1 > /sys/class/leds/HW556:red:message/brightness
echo 0 > /sys/class/leds/HW556:red:message/brightness
==========
2º izq --> hspa:
==========
echo 1 > /sys/class/leds/HW556:red:hspa/brightness
echo 0 > /sys/class/leds/HW556:red:hspa/brightness
============
2º derecha --> dsl:
============
echo 1 > /sys/class/leds/HW556:red:dsl/brightness
echo 0 > /sys/class/leds/HW556:red:dsl/brightness
=====================
LAN1 (1º en rojo y 2º en verde):
=====================
echo 1 > /sys/class/leds/HW556:red:lan1/brightness
echo 0 > /sys/class/leds/HW556:red:lan1/brightness
echo 1 > /sys/class/leds/HW556:green:lan1/brightness
echo 0 > /sys/class/leds/HW556:green:lan1/brightness
Resto de LANs para activar: con sustituir lan1 por el lanX que se desee.
Bueno, hasta aquí todo por esta noche...no se como me lo monto pero casi siempre escribo en la nocturnidad.
PD1: Creía haber localizado en placa el GPIO 14 desde su raiz de 3,3v, pero me confundí donde lo hallé el punto es a 5v, de todas formas puede servirnos de igual modo si le ponemos un simple divisor de tensión de 5v a 3,3v.
PD2: Ya tengo suficientes GPIOs para controlar motores paso a paso (para los bipolares hacen falta 4, para los unipolares 5 ó 6), no tengo en mente ningún proyecto con ellos, pero si que quiero hacerlo funcionar con el router en vez de con un PIC, Arduino, Raspberry, etc... ya pedí el driver para el motor en nuestro maravilloso Ebay por un simple €, y como no podía ser de otra forma, si vale a €, envíame 2 que nunca se sabe:
http://www.ebay.es/itm/272272743977?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT