Geometrías de circuitos impresos en KiCAD

En la siguiente entrada de mi blog alternativo te muestro los pasos necesarios en el programa #KiCAD para crear de manera correcta las geometrías y que tu fabricante no tenga problemas cuando las fabrique. Aunque la mayoría de nuestros circuitos impresos tienen geometrías cuadradas o rectangulares, a veces tenemos que romper la tradición, ya sea …

Objectifying the FreeRTOS timers using static polymorphism through the CRTP pattern (source code included)

Here I showed you how to objectify the FreeRTOS' timers using dynamic polymorphism, and it works! At the end of the post I made a promise, to objectify the FreeRTOS timers using static polymorphism. For such endeavor I'll use the CRTP pattern. What's wrong with dynamic polymorphism? It introduces codebloats due to the use of …

My view on static polymorphism through the CRTP pattern (source code included).

The CRTP pattern is one of those obscure and esotheric things in C++, yet very useful. One of its uses is as static polymorphism. Traditional polymorphism uses virtual functions (and, under the hood, pointers, indirections, and a table of pointers, the so called vtable), which turns the objects more complex. Static polymorphism resolves its calls …

Watchdog con el 555

Razones para utilizar watchdogs (supervisores) en nuestras aplicaciones embebidas son muchísimas, pero todas tienen como objetivo que los programas se recuperen en caso de haber perdido la ruta, y que el sistema quede en un estado seguro. ¿Qué es y qué necesito? Un watchdog (perro guardían o supervisor) es un dispositivo de hardware que cuenta …

Compilando avrdude desde los fuentes

Hasta hace unos días había podido grabar mis chips ATMEGA328 utilizando los programadores USBASP y AVR Dragon sin ningún inconveniente, pero de un momento a otro ya no fue posible. Investigué pero no hallé una respuesta que solucionara el problema. Y el problema era (es), en parte, los fusibles, ya que cada vez avrdude arrojaba …

Arduino de tiempo real: Curso gratuito en español

Hola, Quiero invitarte a que visites mi curso gratuito en español donde te muestro, paso a paso, cómo obtener un Arduino de tiempo real, a través del sistema operativo FreeRTOS. El curso está alojado en el blog de mi sitio profesional: Curso de Arduino en tiempo real. El curso está en construcción y estoy intentando …

Primeros pasos PWA/Angular en Linux Mint

Esta entrada está dedicada a la instalación y primeros pasos para la creación de Progressive Web Apps con Angular en Linux Mint. Instalación Instalar node.js y npm En una consola escribir: $ sudo apt install nodejs npm Visual Studio Descargar e instalar la imagen .deb de Visual Studio (opcional, pero recomendable por el autocompletamiento y …

How not to code a state machine in C++ for an embedded system

The premise is simple: try to write a state machine in C++ for embedded systems following the State Pattern. But before you start coding there's a catch: you cannot use dynamic memory: Embedded systems based on low resources microcontrollers might not have support for malloc()/free() functions.A safe embedded system should not use dynamic memory.Just for …