Desarrollado en La-Tecnologia: Primera versión del hardware

Los escritores y lectores de La-Tecnologia están trabajando actualmente de la mano en un guardián de contraseñas fuera de línea, el mooltipass (haga clic para ver la descripción del proyecto).

Más adelante en nuestra serie Desarrollado en La-Tecnologia, presentamos la primera versión de nuestros esquemas. Ya ha habido mucha discusión en nuestro grupo dedicado de Google, especialmente sobre la funcionalidad básica del proyecto. Debido a que nuestros desarrolladores de firmware querían comenzar, decidimos enviar la primera versión de nuestro hardware a producción hace unos días. Antes de ver los esquemas, revisemos la lista requerida de los componentes principales del mooltipass:

  • pantalla fácil de leer
  • tarjeta inteligente protegida contra lectura
  • gran memoria flash para almacenar contraseñas cifradas
  • Microcontrolador compatible con Arduino con conexión USB
  • Nos ahogamos en sugerencias compuestas de aficionados motivados, por lo que asumimos que haríamos el mooltipass v1 lo más simple posible y luego seguiríamos desde allí. Dado que este dispositivo se está desarrollando en La-Tecnologia, también queríamos que los futuros usuarios lo modificaran, creando proyectos completamente nuevos basados ​​en estos componentes clave. Sigue leyendo para conocer nuestros esquemas...

    Para el núcleo de la plataforma, elegimos el ATmega32U4 de Atmel. Es el mismo microcontrolador que se usa en Arduino Leonardo, lo que nos permite usar las muchas bibliotecas que se han desarrollado para él. En los diagramas finales, agregaremos un conector de expansión para que los usuarios puedan conectar periféricos adicionales (podemos cambiar a una PCB de 4 capas en este punto). Las líneas USB del microcontrolador están protegidas contra ESD por IP4234CZ6 de NXP.

    Para almacenar contraseñas encriptadas, encontramos el económico FLASH AT45DB011D de 1 Mbit que también tiene versiones compatibles con pines de 2/4 / 16 Mbits. Si nuestros probadores beta encuentran que 1 Mbit no es suficiente, sería fácil actualizar el mooltipass. Es posible que algunos lectores ya lo sepan, pero al elegir una memoria flash, se debe prestar especial atención a la cantidad mínima de datos que se pueden borrar en el chip. Si el rayo no tiene un búfer interno (como el que hemos elegido tener), el microcontrolador debe leer un dato completo, modificar la parte relevante y devolver la parte modificada a la memoria. Teniendo en cuenta que el ATmega32U4 solo tiene 2,5 KBytes de RAM, eso puede haber sido problemático.

    Encontrar una tarjeta inteligente que pudiera proporcionar las funciones de seguridad deseadas no era el problema, pero sí lo era encontrar un proveedor que pudiera enviarnos cantidades relativamente bajas (

    Un tema candente en el grupo de Google fue la selección de espectáculos. Aunque las opiniones diferían, coincidimos en el límite básico de que la pantalla seleccionada debería ser de al menos 2,8 ″ y fácil de leer bajo una luz brillante. No se requería necesariamente alta resolución y RGB, así que como primer intento elegimos la pantalla OLED que se muestra en la imagen de arriba (imagen tomada de YouTube). Después de varias semanas de buscar pantallas OLED alternativas viables sin ningún éxito, actualmente estamos considerando hacer otra versión mooltipass con IPS LCD. Además, la inusual diagonal actual de 3,12″ hace que tengamos que tener un panel táctil de resistencia a medida: los presupuestos que recibimos de los capacitivos eran demasiado caros.

    Estas opciones de componentes hicieron que los voltajes electrónicos fueran bastante simples. Toda la solución está alimentada por ~ 5 V provenientes del USB, y los ~ 3,3 V requeridos tanto por el rayo como por la pantalla los proporciona el regulador LDO interno ATmega32U4 (~ 55 mA a 3,0 a 3,6 V). Los + 12V requeridos por la pantalla también son generados por un convertidor DC-DC de bomba de carga regulada de $ 1. Si tuviéramos que utilizar un paso convencional, el cálculo de componentes (y coste) sería mucho mayor. Tenga en cuenta que ponemos P-MOSFET en serie con este último porque el voltaje de salida cuando el DC-DC no está funcionando no es 0V sino VCC (aquí + 5V). También usamos otro P-MOSFET para cambiar la fuente de alimentación a la tarjeta inteligente.

    Usamos dos rejillas de resistencias R6 y R7 (más fáciles de soldar) como separadores de voltaje para convertir nuestras señales de 5V a 3.3V. Afortunadamente, el ATmega32U4 puede recibir señales LVTTL, por lo que no necesitamos cambiadores de nivel para obtener los datos provenientes de la memoria flash alimentada por 3.3v.

    Esto implica la descripción general de los esquemas mooltipass. Si tiene alguna sugerencia, puede ponerse en contacto con el equipo en nuestro grupo dedicado de Google. Por supuesto, nos encantaría escuchar comentarios generales, por favor compártalos a continuación.

    • mike szczys dice:

      ¿Alguien sabe dónde conseguir una pantalla OLED de este tipo? Me encantaría tener uno solo para jugar, pero no puedo encontrar ninguno tan bueno en los lugares habituales (eBay, proveedores de repuestos).

      Todavía tengo que usar Alibaba o AliExpress... ¿es este el camino a seguir?

      • Mathieu Stephan dice:

        De hecho, olvidé mencionar que el que se muestra arriba será suministrado directamente por el fabricante (Densitron)

        • Juan cansado dice:

          Aunque anteriormente dije "Odiaría las fuentes de eBay", algo como: http://www.ebay.com/itm/3-2-inch-TFT-LCD-module-Display-with-touch-panel-SD -card -240 × 320-than-128 × 64-lcd- / 200908823757?Pt = LH_DefaultDomain_0 & hash = item2ec7195ccd no es la peor idea (Nota: parece necesitar más IO que el 32u4)

          • Mathieu Stephan dice:

            ¡Gracias! Una vez encontré esta pantalla, pero no pude volver a encontrarla. Sin embargo, es TFT y la resolución es un poco grande para lo que necesitamos 🙂

            • Juan cansado dice:

              http://www.ebay.com/itm/2-4-inch-TFT-LCD-module-Display-touch-panel-SD-card-240×320-than-128×64-lcd-/400373179957?pt = LH_DefaultDomain_0 & hash = item5d3819e635 ¿2,4 pulgadas tal vez? Sigue siendo TFT y parece tener la misma resolución. Simplemente creo que esas pantallas OLED son un poco caras, especialmente si necesitas tener un panel táctil resistente personalizado. (Los "escudos" en serie también están disponibles para estos)

      • fernando keil dice:

        Puede obtenerlo desde aquí: http://www.buydisplay.com/default/oled-display/3-2-inch-oled-display.html
        ¡Incluso tienen diferentes colores!

      • Tomás dice:

        Los obtuve de los principales proveedores de mt 3, RS, Digikey y Farnell, todos los llevan. Aquí está el enlace para pantallas similares en Farnell:

        http://uk.farnell.com/jsp/search/browse.jsp?N=2031+202990+110199437&Ntk=gensearch&Ntt=oled&Ntx=mode+matchallpartial&No=0&getResults=true

        • Tomás dice:

          de mis 3 proveedores principales *

    • Tomás dice:

      ¿Sabe que el capacitor C1 de 10 µF es en realidad solo 2 µF con una polarización de 12 V? De manera similar, C9 es 1,9 µF y C12 es 5,5 µF.

      • kalfjd dice:

        ¿Sabe que hay un sitio de grupo de Google específicamente para este tipo de discusión? Idiota.

        • Mathieu Stephan dice:

          ninguna llamada de nombre. este comentario es muy informativo e importante.

          • estático dice:

            Estoy de acuerdo de forma anónima Vs. una llamada de nombre anónima puede arrastrar una cosa hacia abajo. Sin embargo, aunque preferiría que se usaran los grupos de Yahoo o los foros de la-tecnologia para crear un foro, estoy de acuerdo con la implicación de que se debe mantener una discusión de los detalles en el foro/grupo seleccionado. Primero porque se difundirá buena información sobre varios artículos de La-Tecnologia. La segunda es la forma en que se encadenan los comentarios a los artículos. Cuando ambos se combinen, te quedará un pobre archivo del progreso del proyecto. Entiendo que habrá quienes se resistirán a cualquier requisito de registrarse para seguir o contribuir al proyecto, pero no estoy seguro de por qué se les permitiría dictar cómo otros administran un proyecto. Respetuosamente, esa es mi opinión.

      • Mathieu Stephan dice:

        Hola Tomás,

        ¡Gracias por notarlo! Nos olvidamos de mirar las especificaciones detalladas... cambiaremos a otro labio para las próximas revisiones.

        • kevinjkrieger dice:

          Hola, ¿puedes explicar por qué esto es así? ¿Para los que no sabemos mucho de detalles?

          Gracias.

          • Mathieu Stephan dice:

            En resumen, la capacitancia real de un capacitor varía con el voltaje de CC aplicado... cuanto mayor sea el voltaje, menor será la capacitancia.

      • Willsender dice:

        ¿Puede decirme más acerca de por qué sucede esto? Pensé que los condensadores solo serían sus valores impresos a menos que en condiciones de calor extremo o si estuvieran por encima de su voltaje máximo.

        • Tomás dice:

          La capacitancia de los MLCC depende de muchos factores, como la temperatura, la polarización de CC, la amplitud de CA, la edad, la frecuencia y la fase de la luna. La más sorprendente es la polarización de CC, lo que significa que puede tener condensadores con una clasificación de 25 V pero que solo tengan alrededor del 5 % de su capacitancia a la tensión nominal (p. ej., CL10A106MA8NRNC). El capacitor de 10 µF en la lista de materiales es GRM21BR61C106KE15. No siempre es fácil encontrar hojas de datos detalladas para MLCC, pero Murata es bastante bueno en eso y de hecho obtienes la hoja de datos vinculada por un mouser (digikey solo tiene un catálogo sin marca, que no es muy útil).

          http://psearch.murata.com/capacitor/product/GRM21BR61C106KE15%23.pdf

          Si observa la curva de polarización de CC, verá que tiene una polarización de -80% a 12 V, lo que significa específicamente que si el voltaje a través del capacitor es la suma de la señal de 12 V CC y 0,5 Vrms CA. señal de frecuencia de 1 kHz, la capacitancia medida es de 2 µF.

          • kevinjkrieger dice:

            ¡Gracias Thomas, no estaba al tanto de este efecto! Supongo que por eso siempre es importante conocer su hoja de datos.

            Saludos,
            -Kevin

          • Indyaner dice:

            Buena explicación. Quiero que hagas un video donde revises todos esos diagramas en una hoja de datos y simplemente expliques con gran detalle lo que puede decir sobre una parte. Porque soy un maldito principiante y necesito gente como tú 😀

      • marca dice:

        Solo si son Y5V u otro dieléctrico desagradable como este. Las cosas buenas como X7R solo perderán un pequeño porcentaje. Sin embargo, no veo el voltaje dieléctrico o incluso nominal declarado en ninguna parte ...

        • El verdadero Stickman dice:

          Eso tampoco es del todo cierto. Ver este artículo de Maxim -

          http://www.maximintegrated.com/app-notes/index.mvp/id/5527

          También se publicó en EDN y no recuerdo dónde encontré el enlace... ¿El Amp Hour, tal vez?

    • x3n0x dice:

      Porque solo tienes 2.5K SRAM disponibles en total, menos después cuando las cosas se ejecutan debido al entorno, todos sus gráficos, etc., deberán generarse sobre la marcha o cargarse prefabricados por un rayo sin un búfer de cuadro. ¿Qué tan gráficamente planeas ir? Con toque, los gráficos se integrarán en la forma y función del dispositivo. Es concebible que pueda usar el flash de datos incorporado para almacenar gráficos, pero probablemente necesitará más de 1 mBit si quiere el resto de la habitación para otras cosas, ¡especialmente si usa la función de escala de grises de esa pantalla!

      • Mathieu Stephan dice:

        Afortunadamente, tenemos un búfer de cuadros en el controlador de pantalla. Aún no se dice nada sobre los gráficos que generaremos. Sin embargo, es posible que no necesitemos usar toda la escala de grises 🙂

        • x3n0x dice:

          ¡No debería ser demasiado difícil entonces! ¿Alguna vez tuvo una idea de un precio objetivo para la lista de materiales? Sospecho que las pantallas tienen una cantidad mínima, viniendo rectas así… Ni hablar del panel táctil…

          ¡Suena como un gran proyecto! Si no estuviera tan ocupado con el trabajo y la consultoría, ¡me encantaría ayudar! Los seguiré de cerca y estaré atento a las actualizaciones...

          Solo una palabra de advertencia: un tablero de cuatro niveles seguramente duplicará sus fabulosos costos. ¡Aléjate si puedes evitarlo!

          • Mathieu Stephan dice:

            Ojala :). El precio actual de BoM ronda los $28 sin el panel táctil ($20 por el oled... así que todavía estamos buscando otras pantallas).
            Cuando seeedstudio comenzó a fabricar tableros de 4 capas, descubrimos que los precios habían bajado bastante. Teniendo en cuenta que la PCB no debería ser demasiado grande, esperamos que la diferencia de precio no sea demasiado grande. Me preocupa un poco poner demasiadas huellas en el avión :/

        • M.J. dice:

          No estoy seguro acerca de este controlador en particular, pero tenga en cuenta que la mayoría de los pequeños controles LCD / OLED con los que he trabajado son compatibles con ESCRITURA SOLAMENTE cuando se ha utilizado la interfaz serial / tipo SPI. Para obtener un acceso L/E normal completo al búfer de trama integrado, debe utilizar las interfaces paralelas 8080 o 6800 de 8 bits.

          Con un FB de solo escritura, necesitará algo de sombreado en la uC SRAM interna de todos modos, o siempre tendrá que reemplazar bytes completos (por ejemplo, dos píxeles de 4 bits u ocho píxeles de 1 bit) en lugar de actualizaciones de un píxel.

          Las desventajas del paralelo si son obvias: requieren unos pocos pines de E/S 11-12 para el bus en comparación con 3-4 para el serial, pero además de eso, un ancho de banda mucho mayor para actualizaciones de pantalla y, a menudo, acceso R/W deseado al FB externo. . .

    • jessie wan dice:

      Parece que estás atascado en la publicación.
      ¿Aquí hay uno en el que estás apuntando tu teléfono a la pantalla?
      ¿No sería este un mejor enfoque si pudieras entenderlo?
      http://bits.blogs.nytimes.com/2013/12/18/new-clef-plug-in-let-you-forget-about-your-password/

      ¿Dónde se necesitan las bibliotecas Kicad para abrir sus archivos de proyecto kicad, por favor?
      La dirección de correo electrónico no aparece cuando voy a los comentarios en el navegador Linux Mozilla Seamonkey

      • Mathieu Stephan dice:

        Este proyecto es bastante diferente (no es de código abierto, tienes que confiar en tu teléfono...).
        Podrías usar la biblioteca de caché en el directorio del proyecto, pero solo empujé mi biblioteca a github :).

    • Pablo Stoffregen dice:

      Sé que es complicado, pero realmente quiero que más personas intenten escribir sus esquemas como, bueno, esquemas reales. Este impresionante estilo de simplemente dejar caer todas las partes y luego dibujar pequeños cables en cada pin para simplemente adjuntar un nombre de red es lo menos escrupuloso posible.

      Bueno, se acabó...

      • F dice:

        Este estilo es aceptable si las partes del esquema están diseñadas para representar su forma física, con los pines dispuestos en orden numérico. Pero cuando las partes se diseñaron lógicamente (como lo son en este esquema), entonces solo tiene sentido que el circuito realmente se extraiga, después de todo, ¿cuál era el significado de reorganizar los pines de alguna manera lógica?

    • anónimo dice:

      ¿"mooltipass" como Leeloo llamó a su tarjeta Multi Pass en la película "El quinto elemento"? Estoy bien

      • omegas dice:

        Si. Que es mi culpa.

        • Mathieu Stephan dice:

          xD

    • F dice:

      ¿Qué significa "arduino compatible"? ¿Cuenta Teensy? ¿Se debe Arduino? ¿Cuenta Teensy 3.x?

    • Paul dice:

      El proyecto GitHub sugirió mostrar el código QR como una opción. Esto puede ser inseguro porque algunas implementaciones de lectores QR envían códigos a servicios de terceros para decodificar el QR en lugar de almacenar todo localmente en un teléfono/dispositivo. Por otro lado, hay algunos lectores de códigos de barras y QR integrados que podrían funcionar con esta función.

    • Andrés dice:

      ¡Sí! ¡Kicad!

    • Andrés dice:

      Está bien, eso suena genial. He tenido algo así por un tiempo, pero está armado por attiny2313 y 64KiB i2c EEPROM con pila VUSB, así que es hora de cambiar.
      Estaré encantado de ayudarte con un módulo pam.
      Solo una pequeña sugerencia:
      NO haga que las bibliotecas de arduino sean un disco duro para su código de firmware, solo haga C, que luego puede envolver en una biblioteca de arduino o dos para los * adictos a duino allí.

    • Sólo yo dice:

      ### Sugerencia ###

      ¿Por qué no poner botones debajo de una pantalla más cuadrada como https://la-tecnologia.com/2010/01/27/nanotouch-a-tiny-avr-media-thing/ y soltar la pantalla táctil... es demasiado pequeña para usarla correctamente? correctamente de todos modos y prefiero tener una pantalla más agradable.

      • Mathieu Stephan dice:

        de hecho, publicamos una encuesta sobre este tema en el grupo de Google 🙂

    • kizifree dice:

      De hecho, olvidé mencionar que el que se muestra arriba será suministrado directamente por el fabricante (Densitron)

    • John dice:

      Con un proyecto comunitario como este, creo que probablemente alguien intentaría colarse por la puerta trasera en el desarrollo del proyecto. ¿Quizás alguien (o mucha gente) debería revisar todo el código y el hardware para tratar de detectar las vulnerabilidades de seguridad ocultas por los desarrolladores de la comunidad? Solo una idea. Sin embargo, me encanta el proyecto y desearía poder contribuir más ahora mismo.

      • John dice:

        ^ En esa nota, tal vez un concurso para hackear el mooltipass ayudaría más tarde a la comunidad a descubrir cualquier vulnerabilidad de seguridad. Bien, dejaré de publicar ahora 🙂

Óscar Soto
Óscar Soto

Deja una respuesta

Tu dirección de correo electrónico no será publicada.