Editing Sensorino
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
= Sensorino = | = Sensorino = | ||
− | + | ESTADO: PRIMERAS PRUEBAS | |
Miembros: [[User:Dario_Salvi]], [[User:Bozo]], [[User:Roberto Zabala]], Andrew Zaborowski | Miembros: [[User:Dario_Salvi]], [[User:Bozo]], [[User:Roberto Zabala]], Andrew Zaborowski | ||
Line 14: | Line 10: | ||
construir una red de sensores compatibles con el IDE de Arduino y que cuesten menos que 5 € con todo incluido. | construir una red de sensores compatibles con el IDE de Arduino y que cuesten menos que 5 € con todo incluido. | ||
− | == Milestone 0 == | + | == Milestone 0== |
− | Fecha: 15 Mayo | + | Fecha: 15 Mayo |
* '''HW''': | * '''HW''': | ||
Line 55: | Line 51: | ||
** Mega demonstrador en Makespace | ** Mega demonstrador en Makespace | ||
− | = Motivación = | + | == Motivación == |
− | Hay muchas aplicaciones donde lo que queremos es simplemente un medio de enviar y recibir información sencilla sin tener | + | Hay muchas aplicaciones donde lo que queremos es simplemente un medio de enviar y recibir información sencilla sin tener pero que cablear toda el entorno. Un ejemplo es la casa, por ejemplo nos interesa saber que puertas o ventanas están abiertas, queremos apagar o encender tal luz o electrodoméstico etc. |
− | = Antecedentes = | + | |
+ | === Antecedentes === | ||
Hay muchos proyectos para redes de sensores y productos comerciales, pero ninguno hasta ahora verdaderamente barato (es decir <5€), ver [[Plataformas IOT]]. | Hay muchos proyectos para redes de sensores y productos comerciales, pero ninguno hasta ahora verdaderamente barato (es decir <5€), ver [[Plataformas IOT]]. | ||
Line 66: | Line 63: | ||
Otro proyecto muy parecido es [http://geekboy.it/projects/home_automation/home-automation-design este]. | Otro proyecto muy parecido es [http://geekboy.it/projects/home_automation/home-automation-design este]. | ||
− | = Métodos y técnicas utilizadas = | + | === Métodos y técnicas utilizadas === |
Requisitos: | Requisitos: | ||
Line 74: | Line 71: | ||
* se tiene que poder alimentar con una pila de tipo botón o dos AA por un año | * se tiene que poder alimentar con una pila de tipo botón o dos AA por un año | ||
+ | Estamos buscando alternativas, abajo hay una recopilación de posibilidades. | ||
− | + | === Detalles === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | ====Low power==== | ||
* https://www.sparkfun.com/tutorials/309 | * https://www.sparkfun.com/tutorials/309 | ||
* http://www.gammon.com.au/forum/?id=11497 | * http://www.gammon.com.au/forum/?id=11497 | ||
Line 100: | Line 82: | ||
** http://www.kerrywong.com/2012/02/19/atmega328-fuse-bit-setting-for-3-3v-vcc/ | ** http://www.kerrywong.com/2012/02/19/atmega328-fuse-bit-setting-for-3-3v-vcc/ | ||
** http://www.engbedded.com/fusecalc | ** http://www.engbedded.com/fusecalc | ||
+ | |||
* buck-boost | * buck-boost | ||
** http://www.ti.com/product/tps63036 | ** http://www.ti.com/product/tps63036 | ||
+ | ====Ideas para el Hardware==== | ||
− | ===MCU=== | + | =====MCU:===== |
De momento nos centramos en un [[ATmega328]]. El coste puede llegar a ser inferior a 1 €. | De momento nos centramos en un [[ATmega328]]. El coste puede llegar a ser inferior a 1 €. | ||
Placas micro compatibles Arduino (de donde poder copiar el diseño): [http://www.femtoduino.com/spex/femtoduino femtoduino], [http://arduino.cc/en/Main/ArduinoBoardProMini Arduino mini pro] | Placas micro compatibles Arduino (de donde poder copiar el diseño): [http://www.femtoduino.com/spex/femtoduino femtoduino], [http://arduino.cc/en/Main/ArduinoBoardProMini Arduino mini pro] | ||
Line 114: | Line 98: | ||
* Hay un [http://nerdralph.blogspot.ca/2014/01/nrf24l01-control-with-3-attiny85-pins.html tipo] que ha conseguido conectar un ATTiny85 dejando tres pins libres ! Perfecto para hacer llaveros o super mini sensores. | * Hay un [http://nerdralph.blogspot.ca/2014/01/nrf24l01-control-with-3-attiny85-pins.html tipo] que ha conseguido conectar un ATTiny85 dejando tres pins libres ! Perfecto para hacer llaveros o super mini sensores. | ||
− | + | =====Radio:===== | |
− | + | ||
− | ===Radio=== | + | |
Apostamos para el chip [[nRF24L01]] de Nordic. | Apostamos para el chip [[nRF24L01]] de Nordic. | ||
Nos gusta porqué es lo mas barato que hay en el mercado. | Nos gusta porqué es lo mas barato que hay en el mercado. | ||
Line 130: | Line 112: | ||
* VCC -> VCC | * VCC -> VCC | ||
− | ==== | + | =====Consejos para sensores:===== |
− | + | ||
− | + | '''Presencia:''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
* PIR versión 3V | * PIR versión 3V | ||
** [http://www.aliexpress.com/item/Lastest-Smart-PIR-Sensor-module-SB00422A-1/1179012332.html este modelo] es una posibilidad: Supply current:DC3V-15V, Current drain :< 1mA, Voltage Output: High/Low level signal :3V | ** [http://www.aliexpress.com/item/Lastest-Smart-PIR-Sensor-module-SB00422A-1/1179012332.html este modelo] es una posibilidad: Supply current:DC3V-15V, Current drain :< 1mA, Voltage Output: High/Low level signal :3V | ||
− | |||
− | + | '''Otras cosas:''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
* Una [http://www.atmel.com/images/doc2508.pdf Application Note] de Atmel sobre deteccion de zero-crossing en la corriente AC - se usaria si quisiesemos graduar el brillo de luces, y es un esquema muy simple comparado con el tipico basado en los TRIAC. | * Una [http://www.atmel.com/images/doc2508.pdf Application Note] de Atmel sobre deteccion de zero-crossing en la corriente AC - se usaria si quisiesemos graduar el brillo de luces, y es un esquema muy simple comparado con el tipico basado en los TRIAC. | ||
− | ==Ideas para el SW== | + | ====Ideas para el SW==== |
Queremos la compatibilidad con Arduino, por eso nos centramos en chips AVR. | Queremos la compatibilidad con Arduino, por eso nos centramos en chips AVR. | ||
Line 188: | Line 145: | ||
A esto podemos añadir: | A esto podemos añadir: | ||
− | * [http:// | + | |
− | * [http:// | + | * enrutamiento (VER [[Apuntes sobre enrutamiento con nrf24l01]]): |
+ | ** [http://cnm.tagus.inesc-id.pt/software/simple-ant-routing-algorithm-sara SARA] | ||
+ | ** [http://maniacbug.github.io/RF24Network/index.html algoritmo hecho para nrf24 de maniacbug] con [http://maniacbug.wordpress.com/2012/03/30/rf24network/ su entrada de blog] | ||
+ | ** [http://forum.arduino.cc/index.php?topic=187692.0 este otro] que parece mas prototipal | ||
+ | ** [https://github.com/mattibal/meshnet este] que parece muy bueno! | ||
+ | ** [http://www.atmel.com/tools/LIGHTWEIGHT_MESH.aspx?tab=overview la librería de ATmel?] | ||
* algoritmo de encriptación: [http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm TEA] o su version mas avanzada [http://en.wikipedia.org/wiki/XTEA XTEA] | * algoritmo de encriptación: [http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm TEA] o su version mas avanzada [http://en.wikipedia.org/wiki/XTEA XTEA] | ||
* IP en Arduino con [http://playground.arduino.cc/Code/SerialIP SLIP]? | * IP en Arduino con [http://playground.arduino.cc/Code/SerialIP SLIP]? | ||
Line 203: | Line 165: | ||
* [www.souliss.ne Souliss] aunque parece suportar solo Ethernet o Wifi | * [www.souliss.ne Souliss] aunque parece suportar solo Ethernet o Wifi | ||
− | |||
− | + | '''Funcionalidades que queremos:''' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | * recibe mensajes de la red de sensores a través de un nrf24 (probablemente conectado a través de un Arduino) | |
− | + | * almacena historial de datos (BBDD) | |
− | + | * permite controlar dispositivos actuadores (encender/apagar etc...) | |
− | + | * lanza reglas del tipo if(...) then... mejor si definidas con un lenguaje alto nivel interpretado | |
− | + | * almacena "escenarios de uso", por ejemplo: "escenario me voy de vacaciones": todo se apaga y se activa al alarma | |
− | * | + | * que se conecte a servicios web externos tipo "enviar SMS" o "hacer un tweet" |
− | + | * la interfaz: | |
− | + | ** mejor si web, aunque se pueden pensar alternativas (movil, PC) etc. | |
− | + | ** que permita ver el estado de los dispositivos | |
− | + | ** que tenga gráficos para ver tendencias, explorar patrones etc. | |
− | * | + | ** que permita "actuar los actuadores" (pulso ON y se enciend la luz) |
− | * | + | ** que permita crear escenarios de uso y activarlos |
− | + | ** que permita definir reglas | |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | * | + | |
− | ** | + | |
− | + | ||
− | + | ||
− | + | ||
− | ** estado | + | |
− | + | ||
− | + | ||
− | * | + | |
− | * | + | |
− | ** | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ** | + | |
− | + | ||
− | * | + | |
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | ===Pruebas 14/9/2013=== | + | ===Avances=== |
+ | ====Pruebas 14/9/2013:==== | ||
Hemos testeado 4 módulos [[nRF24L01]] con dos Arduinos, uno ha fallado, pero los otros tres se ha conectado etnre si. | Hemos testeado 4 módulos [[nRF24L01]] con dos Arduinos, uno ha fallado, pero los otros tres se ha conectado etnre si. | ||
Line 289: | Line 201: | ||
− | ===Pruebas 26/9/2013=== | + | ====Pruebas 26/9/2013:==== |
Hemos montado el Atmega328p en la breadboard. | Hemos montado el Atmega328p en la breadboard. | ||
Line 320: | Line 232: | ||
Todos: resolver el problema de los 8MHz. Comprar socket para los chips. Construir primer prototipo. | Todos: resolver el problema de los 8MHz. Comprar socket para los chips. Construir primer prototipo. | ||
− | ===Pruebas 3/10/2013=== | + | ====Pruebas 3/10/2013==== |
A veces el ATMega cuando envía un paquete imprime dos tipos de mensajes distintos: | A veces el ATMega cuando envía un paquete imprime dos tipos de mensajes distintos: | ||
Line 369: | Line 281: | ||
− | ===Pruebas 26/10/2013 === | + | ====Pruebas 26/10/2013:==== |
Hemos probado a alimentar el ATMega con 3.3 V -> no funciona. A partir de 4.5 parece que funcione. | Hemos probado a alimentar el ATMega con 3.3 V -> no funciona. A partir de 4.5 parece que funcione. | ||
Line 375: | Line 287: | ||
− | ===Pruebas 27/10/2013=== | + | ====Pruebas 27/10/2013:==== |
Bozo consigue enviar datos por serial a partir de una tensión de 2.3 voltios. | Bozo consigue enviar datos por serial a partir de una tensión de 2.3 voltios. | ||
Line 389: | Line 301: | ||
− | ===Pruebas 28/10/2013=== | + | ====Pruebas 28/10/2013:==== |
Roberto también consigue hacerlo funcionar. No he identificado el problema del otro día. Probado con dos pilas AA a 2.8v sin ningún problema. Con la salida de 3.3v de Arduino también funciona. | Roberto también consigue hacerlo funcionar. No he identificado el problema del otro día. Probado con dos pilas AA a 2.8v sin ningún problema. Con la salida de 3.3v de Arduino también funciona. | ||
Line 400: | Line 312: | ||
− | ===Pruebas 23/11/2013=== | + | ====Pruebas 23/11/2013:==== |
Line 460: | Line 372: | ||
000225652886a777078500125b5755bb87d967762000000000000000010054330000000000000000000000000000000000000000000000000000000000000000 | 000225652886a777078500125b5755bb87d967762000000000000000010054330000000000000000000000000000000000000000000000000000000000000000 | ||
− | ===Pruebas del 11/12/2013 al 17/12/2013=== | + | ====Pruebas del 11/12/2013 al 17/12/2013:==== |
He hecho una larga serie de pruebas con distintas combinaciones inlcuyendo: | He hecho una larga serie de pruebas con distintas combinaciones inlcuyendo: | ||
Line 487: | Line 399: | ||
* un condensador de capacidad mayor no mejora las cosas, de hecho las empeora | * un condensador de capacidad mayor no mejora las cosas, de hecho las empeora | ||
− | ===Pruebas 23/1/2014=== | + | ====Pruebas 23/1/2014:==== |
Despues de haber perdido la cabeza con la librería de Maniacbug, y con la variante de Copeland, probé la [http://www.airspayce.com/mikem/arduino/NRF24/ librería de Mike] y me funcionó perfectamente. | Despues de haber perdido la cabeza con la librería de Maniacbug, y con la variante de Copeland, probé la [http://www.airspayce.com/mikem/arduino/NRF24/ librería de Mike] y me funcionó perfectamente. | ||
Line 503: | Line 415: | ||
* analizando la traza en el puerto serie del Arduino se puede ver que alrededor de 1/3 o 1/4 de los paquetes no reciben ACK | * analizando la traza en el puerto serie del Arduino se puede ver que alrededor de 1/3 o 1/4 de los paquetes no reciben ACK | ||
− | ===Pruebas 26/1/2014=== | + | ====Pruebas 26/1/2014:==== |
Pruebas de Andrés (Andrew) tras recibir unos clones de Arduinos Pro Mini y módulos nRF24L01+ de China y soldar las conecciones entre los módulos y los Arduinos. Los Arduinos son de 5V y no tienen salidas 3.3V, se han usado 3 diodos en cada modulo para que este pueda ser alimentado con 5V, el voltaje baja unos 1.9V. Los demas pines del nRF24 son compatibles con 5V. | Pruebas de Andrés (Andrew) tras recibir unos clones de Arduinos Pro Mini y módulos nRF24L01+ de China y soldar las conecciones entre los módulos y los Arduinos. Los Arduinos son de 5V y no tienen salidas 3.3V, se han usado 3 diodos en cada modulo para que este pueda ser alimentado con 5V, el voltaje baja unos 1.9V. Los demas pines del nRF24 son compatibles con 5V. | ||
Line 515: | Line 427: | ||
En otra ocasion corrijo algo en el codigo y empiezo a meter en github. El objetivo por ahora es que ese mismo codigo lo pueda usar el programa de arranque optiboot, para poder flashear las placas por radio. | En otra ocasion corrijo algo en el codigo y empiezo a meter en github. El objetivo por ahora es que ese mismo codigo lo pueda usar el programa de arranque optiboot, para poder flashear las placas por radio. | ||
− | ===Pruebas 4/2/2014=== | + | ====Pruebas 4/2/2014:==== |
Andres consigue subir por radio el programa "Blink" de los ejemplos de Arduino mediante una version modificada de optiboot. Importante: La comunicacion todavia no es fiable y la mayoria de la veces la programacion falla en algun momento del proceso. | Andres consigue subir por radio el programa "Blink" de los ejemplos de Arduino mediante una version modificada de optiboot. Importante: La comunicacion todavia no es fiable y la mayoria de la veces la programacion falla en algun momento del proceso. | ||
Line 529: | Line 441: | ||
El problema de resetear el controlador "remoto" es complicado porque cada programa subido tendra que tener la posibilidad de reiniciar la placa por radio. Si en algun momento se sube codigo que no lo puede hacer (p.e. se cuelga), habra que reiniciarlo posiblemente con el interruptor general de la luz, en caso de alimentacion de la red, y en caso de alimentacion por bateria, a mano. Se puede usar el Watchdog Timer del AVR para reducir la probabilidad de que pase eso. | El problema de resetear el controlador "remoto" es complicado porque cada programa subido tendra que tener la posibilidad de reiniciar la placa por radio. Si en algun momento se sube codigo que no lo puede hacer (p.e. se cuelga), habra que reiniciarlo posiblemente con el interruptor general de la luz, en caso de alimentacion de la red, y en caso de alimentacion por bateria, a mano. Se puede usar el Watchdog Timer del AVR para reducir la probabilidad de que pase eso. | ||
− | ===Pruebas 5/2/2014=== | + | ====Pruebas 5/2/2014:==== |
He subido el código a mi repositorio github: https://github.com/dariosalvi78/Sensorino | He subido el código a mi repositorio github: https://github.com/dariosalvi78/Sensorino | ||
Line 547: | Line 459: | ||
* hay tres tipos de "servicios": los en broadcast, para cuestiones de configuración de la red, los en unicast hacia la base, para enviar datos de medidas, y los unicast hacia los sensorinos, para activar cosas (tipo interruptores, actuadores etc.) | * hay tres tipos de "servicios": los en broadcast, para cuestiones de configuración de la red, los en unicast hacia la base, para enviar datos de medidas, y los unicast hacia los sensorinos, para activar cosas (tipo interruptores, actuadores etc.) | ||
− | ===Pruebas 7/2/2014=== | + | ====Pruebas 7/2/2014:==== |
Corregidos los problemas con fallos aleatorios durante programacion de Arduino por nRF24L01 pero hace falta comprobar si otros modulos se comportan de la misma manera ya que uno de los errores era muy raro - ocurria siempre que habia exactamente tres transmisiones seguidas y luego recepcion. | Corregidos los problemas con fallos aleatorios durante programacion de Arduino por nRF24L01 pero hace falta comprobar si otros modulos se comportan de la misma manera ya que uno de los errores era muy raro - ocurria siempre que habia exactamente tres transmisiones seguidas y luego recepcion. | ||
Line 557: | Line 469: | ||
* a 9m a traves de dos paredes fallaba en promedio en el momento de haber subido 30-40% del programa, que seria despues de haber transmitido ~150-200 paquetes sin fallo, o sea que la tasa de error todavia debe ser baja (~1%). | * a 9m a traves de dos paredes fallaba en promedio en el momento de haber subido 30-40% del programa, que seria despues de haber transmitido ~150-200 paquetes sin fallo, o sea que la tasa de error todavia debe ser baja (~1%). | ||
− | ===Pruebas 13/2/2014: | + | ====Pruebas 13/2/2014:==== |
Estoy intentando poner el PIC a dormir y despertarlo con el watchdog o los interrupts externos. | Estoy intentando poner el PIC a dormir y despertarlo con el watchdog o los interrupts externos. | ||
Line 566: | Line 478: | ||
En principio podríamos llegar a tener un consumo de solo [https://www.sparkfun.com/tutorials/309 1uA] ! | En principio podríamos llegar a tener un consumo de solo [https://www.sparkfun.com/tutorials/309 1uA] ! | ||
− | '''Wakeup con watchdog''': hay | + | '''Wakeup con watchdog''': hay que programar una ISR |
− | + | ISR( WDT_vect ) { | |
− | + | //codigo aquí | |
+ | } | ||
+ | y habilitar el watchdog y su interrupción y que no resetee el PIC: | ||
MCUSR &= ~(1 << WDRF); | MCUSR &= ~(1 << WDRF); | ||
WDTCSR |= (1 << WDCE) | (1 << WDE); | WDTCSR |= (1 << WDCE) | (1 << WDE); | ||
− | WDTCSR = (1<< | + | WDTCSR = (1<< WDP0) | (1 << WDP3); |
WDTCSR |= _BV(WDIE); | WDTCSR |= _BV(WDIE); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
en la ISR conviene deshabilitar el watchdog para que no toque los huevos hasta que nos durmamos otra vez | en la ISR conviene deshabilitar el watchdog para que no toque los huevos hasta que nos durmamos otra vez | ||
Line 684: | Line 575: | ||
14-19 -> 8-13 -> 1 | 14-19 -> 8-13 -> 1 | ||
− | ===Pruebas 18/2/2014=== | + | ====Pruebas 18/2/2014:==== |
− | + | ||
Intentando desesperadamente usar mi board FTDI con una placa con ATMega 328 que he preparado. | Intentando desesperadamente usar mi board FTDI con una placa con ATMega 328 que he preparado. | ||
Mi board FTDI es como [http://www.miniinthebox.com/es/programa-ftdi-basico-downloader-usb-a-ttl-ft232-para-arduino_p903425.html?currency=EUR&litb_from=paid_adwords_shopping&gclid=COje3dfj1rwCFSEHwwoddUoAIg esta], está basada en el chip FT232 como la de Sparkfun, pero tiene que puedo elegir 5 y 3 voltios (por eso la preferí a otras). | Mi board FTDI es como [http://www.miniinthebox.com/es/programa-ftdi-basico-downloader-usb-a-ttl-ft232-para-arduino_p903425.html?currency=EUR&litb_from=paid_adwords_shopping&gclid=COje3dfj1rwCFSEHwwoddUoAIg esta], está basada en el chip FT232 como la de Sparkfun, pero tiene que puedo elegir 5 y 3 voltios (por eso la preferí a otras). | ||
Line 692: | Line 582: | ||
Que estará pasando? | Que estará pasando? | ||
− | ===Pruebas 23/2/2014=== | + | ====Pruebas 23/2/2014:==== |
[[File:Lights.png|thumb|Diseño de base de un sensorino con reles listo para la cortadora laser del espacio]] | [[File:Lights.png|thumb|Diseño de base de un sensorino con reles listo para la cortadora laser del espacio]] | ||
[[File:Sensorino-acrilico.jpg|thumb|Base para montar placas de reles, arduino, nRF24, alimentador 220VAC -> 5V y regletas para coneccion de cables]] | [[File:Sensorino-acrilico.jpg|thumb|Base para montar placas de reles, arduino, nRF24, alimentador 220VAC -> 5V y regletas para coneccion de cables]] | ||
Line 704: | Line 594: | ||
Hoy implemente la opcion FORCE_WATCHDOG=1 en el optiboot con la cual el watchdog queda habilitado antes de arrancar la aplicacion de usuario, con el timeout de 4s. Esta opcion es la ultima que considero necesaria para desarrollo remoto. La aplicacion puede deshabilitar o reconfigurar el watchdog si lo necesita para otros usos, pero es recomendable que no lo toque, para que la placa automaticamente vuelva al bootloader en caso de que la aplicacion falle/muera/no responde etc. para no tener que reiniciarla a mano lo que podria ser dificil o imposible si es empotrada (si se alimenta de la red, se puede reiniciar con el interruptor general de casa). La implementacion fue dificil porque optiboot internamente usa el watchdog y se tiene que distinguir entre un reinicio del watchdog dentro de bootloader (el normal) y dentro de aplicacion (el no deseado) y mi primera idea no funciono por un truco que usa GCC para reducir el tamaño de codigo. | Hoy implemente la opcion FORCE_WATCHDOG=1 en el optiboot con la cual el watchdog queda habilitado antes de arrancar la aplicacion de usuario, con el timeout de 4s. Esta opcion es la ultima que considero necesaria para desarrollo remoto. La aplicacion puede deshabilitar o reconfigurar el watchdog si lo necesita para otros usos, pero es recomendable que no lo toque, para que la placa automaticamente vuelva al bootloader en caso de que la aplicacion falle/muera/no responde etc. para no tener que reiniciarla a mano lo que podria ser dificil o imposible si es empotrada (si se alimenta de la red, se puede reiniciar con el interruptor general de casa). La implementacion fue dificil porque optiboot internamente usa el watchdog y se tiene que distinguir entre un reinicio del watchdog dentro de bootloader (el normal) y dentro de aplicacion (el no deseado) y mi primera idea no funciono por un truco que usa GCC para reducir el tamaño de codigo. | ||
− | ===Reunión 24/2/2014=== | + | ===='''Reunión 24/2/2014''':==== |
Hemos hablado del proyecto en general y hemos acordado que merece la pena lanzar primero una comunidad open source y luego plantearse lo del Kickstarter. | Hemos hablado del proyecto en general y hemos acordado que merece la pena lanzar primero una comunidad open source y luego plantearse lo del Kickstarter. | ||
Line 758: | Line 648: | ||
** 4 Demonstradores en casas | ** 4 Demonstradores en casas | ||
** Mega demonstrador en Makespace | ** Mega demonstrador en Makespace | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |