Si puedes usar open source, también puedes construir hardware
(redeem-tomorrow.com)- Aunque el hardware sigue siendo complicado por las limitaciones físicas, la capacidad de aprovechar código open source y el ecosistema de componentes han hecho que incluso los desarrolladores de software puedan crear dispositivos prácticos por su cuenta con mayor facilidad
- Desde Arduino, las placas de microcontroladores se han diversificado mucho, y placas como ESP32 y Pico W incluyen hasta WiFi y Bluetooth, permitiendo implementar y repetir lógica personalizada sobre componentes baratos
- Los componentes basados en I2C y StemmaQT/Qwiic permiten conectar sensores y dispositivos de entrada sin soldadura, para poder concentrarse más en combinar librerías y código de ejemplo que en diseñar circuitos
- Con impresoras 3D y herramientas CAD, incluso se pueden fabricar carcasas personalizadas para alojar los circuitos, y con bajo costo de materiales y tiempos de impresión rápidos se pueden corregir iterativamente problemas de distribución y temperatura
- A medida que la capacidad de combinación estilo open source, la documentación y el soporte de la comunidad han llegado también a la fabricación de hardware, se ha creado un entorno en el que una persona puede hacer productos físicos para resolver sus propios problemas
Por qué fabricar hardware sigue siendo difícil, pero se ha vuelto más fácil
- El hardware tiene una fuerza que es difícil obtener solo con software, porque produce resultados físicos que se pueden tocar, pero por eso mismo también implica mucha complejidad
- Depurar circuitos puede ser más difícil que depurar código, y aunque la lógica y el voltaje sean correctos, también hay que lidiar con limitaciones físicas como cableado, distribución del espacio y disipación térmica
- El desarrollo de productos de hardware es una forma de desarrollo de producto general a la que se le suman las restricciones del mundo físico
- El proyecto ThermTerm se creó para cambiar la UI difícil de leer y la experiencia de programación incómoda del control remoto de una bomba de calor existente, e integrar la bomba de calor en un sistema de automatización del hogar
- Se instalaron 5 dispositivos terminados dentro de la casa
- El desarrollador no es ingeniero electrónico, pero completó el dispositivo aprovechando código open source y el ecosistema de componentes
- Usar código open source implica explorar repositorios, entender código ajeno, resolver problemas, buscar ayuda en la comunidad y hasta distinguir entre proyectos buenos y malos
- Esa experiencia puede expandirse más allá del mundo de los bits hacia el mundo de los electrones y los átomos
Microcontroladores y ecosistema de software
- Arduino fue un punto de inflexión en la experiencia de desarrollo, al permitir que principiantes escribieran código C simple y tuvieran una experiencia de computación física en minutos
- Después de eso, el ecosistema de placas de microcontroladores se amplió enormemente
- Hay placas de distintos tamaños y configuraciones, desde tamaño sándwich hasta tamaño sello postal
- Los microcontroladores se convirtieron en la base para repetir continuamente lógica personalizada sobre componentes baratos
- Cada placa tiene conectores, accesorios y arquitecturas de chip diferentes
- Las placas basadas en ESP32 o Pico W incluso incluyen funciones de WiFi y Bluetooth
- El eje que unifica a tantas placas distintas es el ecosistema de software
- Existe código Arduino open source que resuelve muchos problemas, como redes o manejo de botones
- Aunque la arquitectura de las placas sea distinta, normalmente hay un port del entorno Arduino, así que el código existente se puede reutilizar en un proyecto
- Si se prefiere Python en lugar de C/C++, se pueden usar MicroPython y CircuitPython como alternativas
I2C y StemmaQT/Qwiic: proyectos electrónicos modulares
- I2C es un estándar de datos seriales de 2 hilos lanzado en 1982, y al sumarle 2 líneas de alimentación y tierra permite conectar varios dispositivos a un mismo bus
- Para quienes hacen hardware como hobby, la parte más difícil suele ser el diseño de circuitos
- La electrónica es un campo atravesado por leyes físicas y por décadas de conocimiento sobre componentes
- Hay que considerar regulación de voltaje, manejo de resistencias y también una configuración físicamente robusta y fácil de mantener
- Así como en el desarrollo moderno de software se combinan bases de datos, frameworks de UI y librerías HTTP, en hardware también se ha vuelto posible una forma similar de composición
- StemmaQT de Adafruit y Qwiic de Sparkfun son estándares de cableado basados en I2C que permiten conectar rápidamente varias placas sin soldar
- En el controlador de la bomba de calor, los siguientes componentes se conectan por I2C
- Microcontrolador con pantalla integrada basado en ESP32
- Sensor de luz: para atenuar automáticamente una iluminación brillante
- Sensor de temperatura y humedad: para obtener datos reales de temperatura de la habitación
- Placa con encoder rotatorio: para crear una perilla de ajuste de temperatura y cambio de energía
- Cada placa oculta los detalles internos de implementación igual que una librería bien hecha
- No hace falta manejar directamente detalles como la gestión de energía o la interpretación de señales del encoder rotatorio
- Después de cablear, basta con encontrar el código de ejemplo de cada componente y adaptarlo al proyecto
- Los vendedores de componentes mantienen activamente sus librerías de soporte y su documentación, y Adafruit ofrece cientos de placas útiles y peculiares que respaldan esta forma de combinación
Convertir un circuito en un objeto físico terminado
- Después de crear un circuito funcional, también se puede diseñar y fabricar una carcasa personalizada propia
- Con unos $500 se puede comprar una impresora 3D de Prusa
- Las impresoras Prusa funcionan bien apenas se sacan de la caja
- Se integran bien con el software slicer multiplataforma de Prusa
- La comunidad de usuarios es muy activa, así que es fácil conseguir ayuda
- El volumen de impresión en este rango de precio no es grande, pero alcanza para proyectos electrónicos
- Los vendedores de hardware abierto suelen ofrecer modelos 3D de sus productos, lo que permite diseñar carcasas precisas en programas CAD
- La impresión 3D tiene bajo costo por iteración y es rápida
- Probar un diseño nuevo solo requiere unos cuantos centavos en material y tiempo de impresión
- En el controlador de la bomba de calor, el calor residual del microcontrolador sesgaba el valor del sensor de temperatura, y eso se resolvió con un rediseño iterativo que movió ambos sensores a la parte superior de la carcasa
- La impresión 3D tiene una curva de aprendizaje
- Hay que considerar las limitaciones del calor y la gravedad
- La forma en que se acumulan las capas afecta la resistencia y durabilidad de la pieza, y la orientación de impresión puede influir en el resultado
- La elección del material también es importante
- PETG resultó adecuado para este tipo de trabajo porque es fácil de manejar y duradero
- PLA es más común, pero se quebraba con demasiada facilidad
CAD y comunidad: barreras de entrada más bajas
- También se necesitan habilidades de CAD, pero puede ser menos doloroso y más entretenido de lo que parece
- Trabajar en CAD se parece más a dibujar figuras planas simples, empujarlas o estirarlas para convertirlas en objetos 3D, y recortar pequeños detalles
- Varios programas CAD de escritorio económicos se sentían incómodos, como usar una vieja app de Flash en IE6, pero Shapr3D para iPad permite un modelado intuitivo con Apple Pencil
- Al aprender tecnologías nuevas como la impresión 3D, la comunidad cumple un papel muy importante
- Los aficionados participan muy activamente en la impresión 3D
- Se puede encontrar ayuda desde la planificación del modelo hasta la depuración de problemas térmicos durante la impresión
- En el entorno actual de fabricación de hardware ya están presentes el ahorro de trabajo, la capacidad de combinación y la diversión del open source
- Incluso una persona por sí sola puede fabricar el dispositivo que necesita y lograr resultados como automatizar y controlar de forma remota el equipo de mayor consumo energético del hogar, como el controlador de la bomba de calor
1 comentarios
Opiniones de Hacker News
Preferiría decirlo de una forma un poco más compleja: “si puedes usar open source, también puedes hacer un prototipo de hardware”.
Hacer hardware también incluye construirlo lo bastante robusto como para aguantar en el mundo real durante mucho tiempo. Hay que considerar cómo afecta el entorno a un sensor de humedad, incluso hasta la bolsa de empaque, y de hecho ya me pasó que me perjudicó por eso. También tiene que haber un plan de recalibración cuando el drift aumenta. Los conectores para arneses de cables deben soportar la cantidad esperada de conexiones/desconexiones durante la vida útil del producto, y la longitud del arnés debe estar ajustada para que no se dañe al abrir el enclosure, por ejemplo para cambiar una batería.
También hay que pensar en el impacto del entorno sobre el resto del diseño. Por ejemplo, en un ambiente húmedo conviene evitar una situación en la que haya que limpiar periódicamente los contactos por no haber usado contactos dorados tanto en el arnés como en el conector.
Por supuesto, la mayor parte de todo esto lo aprendí por mi cuenta, y un desarrollador hobbyista puede llegar perfectamente a ese nivel. Pero hay una gran diferencia entre reemplazar un controlador de relé inteligente por otro y hacer un controlador de relé inteligente que sea lo bastante bueno como para regalárselo a tu cuñada en Navidad.
Incluso al llegar a la etapa de prototipo, el hardware open source suele tener muchas probabilidades de ser útil solo para la persona que lo hizo.
Hay una gran diferencia entre hacer un prototipo y documentar el proceso de construcción con suficiente detalle para que otros hobbyistas puedan replicarlo, modificarlo y usarlo. Documentar hardware es mucho más difícil que documentar software, y si el proyecto es interesante, se van a sumar personas sin ninguna experiencia soldando o encargando piezas cortadas con láser, y es difícil darles soporte.
Un paso más allá, aunque sea vender unas pocas unidades más en Tindie, ya significa venderle el diseño a otros hobbyistas; y si quieres vender al público general, necesitas certificación de interferencia de la FCC, y si por una falla de diseño se incendian varias casas, la empresa pasa a ser responsable. Hay una razón por la que las empresas de hardware contratan ingenieros de verdad que siguen estándares profesionales. Cuando el costo marginal por unidad no es de menos de 1 centavo como en software, también aparecen problemas de flujo de caja y de negocio.
En cada una de estas etapas a menudo hay que iterar el hardware varias veces, y eso implica lead times y costos.
Si se rompe, no puedes simplemente comprar uno nuevo ni llamar a un técnico a un precio razonable. Si tiene software, probablemente también necesite mantenimiento. Si querías uno, también es muy probable que necesites otro para ampliar el proyecto.
Puedes diseñar un dispositivo de hardware confiable, pero si no tienes un gran presupuesto no puedes hacerlo resistente a que lo golpeen con un bate de béisbol o a que se derrame epoxi sobre los conectores. Por eso, cuando alguien me pide que le construya algo, intento resolverlo con componentes comerciales listos para usar siempre que sea posible.
Los proyectos de electrónica son muy divertidos, pero al final te queda un objeto completamente único e irremplazable, y eso le quita algo de gracia. Si se usa para algo importante, se vuelve una responsabilidad; normalmente queda atado a un solo uso y, cuando ya no hace falta, se convierte en basura, a diferencia de un producto comercial genérico.
ESPHome y los módulos de Amazon, junto con la impresión 3D, ofrecen un equilibrio bastante bueno en muchos casos. Son reconfigurables, dan confiabilidad de nivel de soldadura industrial y un stack de software ya hecho, pero siguen teniendo suficiente flexibilidad para crear cosas nuevas.
El diseño de hardware es la última línea de defensa antes de causar daño en el mundo real.
Fusibles, protección contra descargas electrostáticas y sobretensiones, temporizadores watchdog: elementos así suelen faltar incluso en proyectos hobbyistas o diseños open source. Saber cuándo son necesarios a veces requiere experiencia adquirida a golpes.
Intenté evitar ayudarle con el diseño, pero insistió tanto que le sugerí conectar en paralelo varios 7812 en encapsulado TO-3. En la prueba de banco funcionó, y se fue.
Años después aprendí que no se debe hacer eso, porque un regulador puede terminar cargando con la mayor parte de la carga y sobrecargarse. En su lugar, hay que hacer que un solo regulador haga el trabajo mediante transistores de paso u otro mecanismo. Todavía me pregunto si el avión de esa persona no habrá terminado cayendo envuelto en llamas.
Intenté investigar cómo hacer algo que fuera más allá de lo que puede hacer una pequeña placa de desarrollo MCU en formato compacto, y no logré entenderlo bien. Había demasiadas cosas que no se me daban bien.
En estos comentarios hay mucho gatekeeping y cinismo. Cada vez que algo difícil se vuelve más fácil, aparecen los puristas que más sufrieron para decirte que lo que ahora haces fácilmente no es tan bueno como aquello difícil que ellos llevan haciendo desde muy jóvenes.
El enfoque de combinar módulos es excelente para prototipos y producción a pequeña escala. A medida que mejores y aprendas optimización de BOM y diseño para fabricación (DFM), empezarás a reemplazar placas MCU por diseños propios. También verás que un encoder rotatorio I2C de 10 dólares puede reemplazarse por 1 dólar en componentes: resistencias, capacitores, diodos Schottky e inversores hex.
Como empresas como JLBPCB o PCBWay ofrecen servicios de impresión 3D y CNC, ni siquiera necesitas comprar una impresora 3D para empezar.
Además, con https://wokwi.com/ puede que ni siquiera necesites componentes de prototipado.
El mercado de software para ingenieros de hardware no se siente tan creativo ni ambicioso como el de software puro, DevOps o infraestructura.
Hay una gran oportunidad.
Interesante; estoy en la misma situación que el autor. Últimamente empecé a meterme más con dispositivos embebidos y estoy haciendo un sensor de nivel de agua para un pozo.
Al principio intenté usar una placa basada en NRF, pero me quedé trabado con el ecosistema del SDK. Daba mucho la impresión de estar orientado a ingenieros embebidos con experiencia en empresas. Así que volví a una placa ESP32-C3/S3, mucho más simple: es excelente, tiene amplio soporte, es fácil de configurar y bastante estable. La conecté a un sensor de distancia HC-SR04 y logré que funcionara el cálculo de distancia. Para alimentarlo con batería, como el sensor requiere 5 V, también hay que agregar un convertidor de voltaje; después de leer un poco y fallar algunas veces, resultó ser bastante sencillo.
Después de eso, la placa y los cables quedan hechos un desastre, y hay que soldar cosas a la placa, lo que requiere herramientas y algo de prueba y error. Luego me encontré con que no tenía una carcasa; probé algunas cajas de conexión comerciales, pero no eran perfectas, así que al final decidí comprarme una impresora 3D. El futuro ya llegó: uno imprime sus propias cosas y aprende a modelar.
La impresora 3D, comparada con todo lo demás, fue bastante fácil. Menos de una hora después de recibirla ya estaba imprimiendo mi primer modelo, y tanto OpenSCAD programático como CadQuery, que ahora prefiero, son fáciles de aprender con unas horas de práctica. Hace exactamente una semana que tengo la impresora, ya hice casi una docena de impresiones exitosas y diseñé algunas piezas utilizables y funcionales.
No hay que tenerle miedo a las impresoras 3D. También se puede comprar una buena impresora por bastante menos de 500 dólares. Compré una Sovol SV06 usada, con poco uso, por 150 euros; nueva cuesta 220 euros y funciona muy bien.
Como no encontré un sensor de nivel de pozo existente que sirviera para mi caso, lo estoy haciendo yo mismo. El costo final de la BOM probablemente ronde los 20 euros. El tiempo de aprendizaje y experimentación son cientos de horas, y el costo de las cosas que compré para esto —impresora, crimpadora de conectores, cables, MCU, placas para soldar, sensores, portapilas, componentes electrónicos, filamento, cautín, etc.— ya ronda los 500 euros. Aun así, todo valió la pena.
La impresión 3D tiene una curva de aprendizaje, y puede que sea el componente más empinado de todo esto.
Me gusta CAD, pero de verdad odio la impresión 3D. Parece un aparato inventado para explicar la ley de Murphy: “todo lo que puede salir mal, saldrá mal”.
La boquilla de impresión se tapa cada vez. El filamento se rompe en el peor lugar posible y para sacarlo hay que desmontar parte de la máquina. En medio de una impresión larga se detiene sin motivo. La cama nunca está perfectamente nivelada. Si no dejás que el carrete de filamento gire con suficiente libertad, la máquina tira del filamento, hace caer el carrete y ese carrete, como vengándose, termina arrastrando toda la máquina al piso.
Por supuesto, todo tarda horas.
Me fue mucho mejor usando servicios externos a los que les mandás el archivo y te envían el objeto. Es más caro y muchas veces tarda más que hacerlo en casa, pero la tranquilidad no tiene precio.
Por ejemplo, una solución industrial para algunos problemas sería revisar la impresora con una checklist antes de cada trabajo, pero en casa eso se vuelve terriblemente tedioso.
El software que toca la realidad de forma directa también sufre estos problemas.
En metalurgia, la fundición es una técnica antiquísima. No diría que sea la más simple, pero el hecho de que incluso personas preindustriales pudieran descubrirla dice algo sobre su complejidad.
El trabajo en torno empieza desde cilindros o poliedros.
Pero nosotros solo usamos métodos en los que se talla una forma a partir de un poliedro, o se construye desde la nada. Para objetos complejos, cóncavos o enredados, parecería más razonable combinar impresión aditiva de baja resolución con mecanizado sustractivo de alta resolución.
Tal vez una máquina CNC necesite un grado de libertad más. Sin llegar a una “cola prensil” completa, si el cabezal de corte pudiera inclinarse unos 45 grados, se reduciría bastante la brecha entre las formas que pueden producir la fabricación aditiva y la sustractiva.
Como alguien que solo ha hecho software, este artículo me da mucho ánimo para intentar proyectos de hardware en el futuro.
Para ser sincero, el problema más grande quizá sea que no tengo un caso de uso claro que resolver con un proyecto de hardware hecho por mí. No siento que en mi vida o en mi casa haya una carencia que tenga que arreglar con un proyecto de hardware.
Además, normalmente quiero la mejor solución dentro de lo que puedo pagar. Hasta ahora, los productos comerciales me han resultado suficientemente satisfactorios. Si puedo pagar y comprar un producto que resuelva el problema, con gusto haría eso en vez de romperme la cabeza haciéndolo yo mismo, porque considero que mi tiempo es lo más valioso.
Al final, para meter un pie en el hardware, creo que tendría que tener un problema suficientemente molesto que no se resuelva con productos existentes del mercado. Es decir, que los productos disponibles sean pésimos o directamente no existan.
Suena como el contenido típico de internet de hoy: suficientes palabras de moda como para que lo encuentre un buscador, pero demasiado abstracto como para ser realmente útil.
Decir “no se puede superar a Prusa; la impresora funciona perfectamente apenas la sacás de la caja” tiene el costo de que son viejas y lentas.
Después de que Prusa prácticamente le cedió el mercado a otros fabricantes, es difícil limitarse a elogiarla.
Por 200 dólares podés comprar una Sovol SV06, una iteración más inteligente de la MK3/MK3S, y tanto el hardware como el software son open source. Por 500 dólares podés comprar una Bambu P1P, mucho más rápida y con una integración vertical incluso mejor hasta el slicer. Y si pagás 100 dólares más, podés comprar la P1S, que hace lo mismo que la P1P pero ya viene preparada para impresión a alta temperatura.
Creo que yo no podría hacerlo
En el ejército reparaba equipos de comunicación por microondas. La parte más dolorosa de la capacitación fue la soldadura básica. Simplemente no podía soldar, y mi destreza con los dedos era del nivel de un ladrillo
Hace unos años hice una evaluación integral de aptitud laboral que incluía una prueba de destreza con los dedos. Después del examen pensé que me había ido bastante bien, pero me dijeron que estaba en el 5% inferior. Si me hubiera convertido en cirujano, el seguro por mala praxis médica me habría costado más que mi salario
Eso no es crear hardware, sino conectar e interfazar componentes de hardware existentes
Para la mayoría de los usos, es probable que eso tenga más sentido que diseñar directamente componentes de hardware
Pero no es lo mismo que el diseño de circuitos y, en ese sentido, el título es un poco engañoso
Si meto madera en una máquina CNC para procesarla, considero que hice algo. Aunque no haya cultivado el árbol, ni lo haya talado, ni lo haya secado, ni lo haya cortado al tamaño exacto para meterlo en la CNC
Si necesitan ayuda para llevar a la realidad un proyecto o producto de hardware y sacarlo al mercado, pueden contactarme cuando quieran. Mis datos de contacto están en mi perfil