2025-11-16 08:00:00
I really like to walk. Let me tell you why.
Eight years ago I injured my knee. The following 2 months I could hardly walk 10 meters. It took me 6 arduous months to fully recover. Even though I had done several types of physical activities up until that injury, like surfing, biking, rock climbing, running, etc, the only capability I wanted to regain was walking, nothing else.
Walking to the grocery store. Walking to the subway without having to rely on elevators and ways to avoid stairs1. Walking around the city. Walking to work. Walking in nature. This made me realise how important it is to have this ability, for the freedom, independence and health benefits it provides.
Progressively I’ve improved. 10 meters turned into 100 meters. 100 meters to 1km. 1km to 5km. 5km to 10km. 10km to 20km. I vividly remember all of these milestones, and every time I surpassed one, I was rejoiced. The more I walked, the more I recovered.
I’ve made a pact with myself during this journey that I would do everything under my control to not lose this ability again.
All those sports I did before? Scrapped. I was asked if I missed running, surfing and all those sports. I do, but no way am I going to risk injuring my knee again for some short term gratification.
This simplified my life greatly.
Walking was the only option, which led me to discover a whole world of depth that was not immediately apparent. It gave me immense focus and showed me how powerful it can be.
Ever since I recovered, I’ve started doing at least one long walk every week. No matter if I’m abroad, on vacation, if it’s raining, scorching heat or I’m feeling under the weather. I will find a way to walk somewhere, somehow. This has become a deeply entrenched habit and a part of my identity.
Turns out that the most difficult thing about maintaining a good exercise routine, is actually maintaining that routine. I need to walk, so that’s sorted.
A natural consequence is its positive effect on health.
For the past 5 years I’ve been employed as a software engineer, meaning that I tend to spend a lot of time in front of a computer. Exercise2 for such a “butt in the chair” kind of job is not only crucial for maintaining my health, but also gives me the fortitude to consistently perform in a demanding high stakes environment.
Since walking became an unconditional and non-negotiable part of my life, soon I’ve started inviting friends to join me.
I realized how powerful it was to go for a walk and just have a chat. The quality, depth and focus of conversations surpassed any other I’ve had through other means. I love deep conversations, so this was a balsam.
I’ve then made several friends during these walks, and created stronger bonds with the ones I already had. This beats by a mile the type of interactions in places like pubs.
Turns out that London has an incredibly active walking and hiking scene. I first discovered this when searching for ways to get to Seven Sisters, and found a wealth of walking groups that not only did this walk, but also others around London. “I’m in heaven”, I thought.
After attending several of these organized hikes I’ve realized: why not organize them myself?
I’ve then picked some of the routes I enjoyed the most and prepared them by mapping them out and repeating them several times. Soon I started organizing walks in my company (at one point, more than 40 people joined), in my local urbanization, with groups of friends. Gratifying experiences, with all the benefits of shifting away from consuming into producing.
I’ve lost count of how many audiobooks and podcasts I’ve finished while walking. Listening to these in peaceful places like somewhere in the woods, is an experience I thoroughly enjoy. Several places where I’ve walked tend to be associated with memorable sections of audio contents that struck me the most.
Walking is one of the best ways to explore a city or surroundings. Even if it takes longer than other means.
Within reason, it is essential for me to walk around in any new city or place I visit, to absorb the environment, the vibes, the random sentences. It gives me time to decide which places I want to explore further, since I’m not tethered to any external transport mechanisms. This explains why I ended up walking 180km in New York in 4 days.
Same for my local surroundings. In case I don’t have better ideas, my default activity is to get out of my house, pick a direction, and then start walking towards it. The mapy.com app is pretty good in these situations3, since it has an impressive coverage of all possible paths, even the most remote places imaginable.
I’ve discovered several gems hidden in plain sight just by doing this. This also helps fight my natural tendency to take local surroundings as granted, ending up knowing more about foreign places rather than my own.
Walking helps not only getting acquainted with the external world, but also with my internal world. It is my favorite way to think long and hard about problems and strategies, hence why I used long walks at length when thinking about ideas for Survival Ball’s game levels and dynamics.
I don’t think I’m alone here. Charles Dickens for example, was known to be a prodigious walker, who was estimated to walk about 19km per day. He did so because walking time was thinking time, or perhaps more accurately dreaming time. I understand that. This becomes ever more important in today’s world, where we are constantly flooded with information and stimuli. Walking is grounding.
There is a physical component of walking that makes it deeply enjoyable. I don’t know what it is for sure, but likely it is related with our evolution.
Two years ago I found another layer of enjoyment: barefoot walking. Or at least, barefoot shoe walking, when I tried my first pair of Vivos. I was hooked from the first time I tried them.
The connection with the ground, especially when walking around nature, and how it felt in my body, is something that I have expressiveness limitations on how to describe. You need to try out for yourself.
And it makes sense right? It’s been relatively recent in our human history that shoes started being widely used. My father still tells me stories of how good it felt to just go around barefoot in the fields, while taking care of the land.
Yes, hard city floors are also novel, and it helps having something in our feet to diminish their impact on us, but still, our feet have natural shock absorbers (the tips of our feet), and having some minimal padding by barefoot shoes plus the immediate feedback will make you more aware of your stride, forcing you to adapt your walking technique.
Mainstream trainers go too far by having too much support, too much padding, too much. That comes at a price, because our body then needs to adapt to whatever structure the shoe manufacturer chose. It makes our bodies crooked by unsettling the balance we were designed for, and shifts more work to muscles, joints and bones that are not made for such loads, while other structures get lazier and underused. These shoes also have little space for our toes, leaving them crooked and warped, in the name of a toebox style that was originally meant to distinguish wealthy classes from peasants, since peasants could not afford to have their feet crammed into small little shoe coffins when doing hard physical labour.
I can tell you from personal experience that my biodynamics are for sure better. I’ve only used barefoot shoes for these past two years, be it walking around, at work, or even weddings. I just can’t stand wearing other types of shoes at this point. I’ve never walked so much in my life, and still feel nowhere near the pains I felt before in my hips, knees and other parts of the body. Pure bliss.
Of course, years from now things might change, but that is not the direction of travel I see. I feel much better walking with barefoot shoes than otherwise.
The main message is: go out there and enjoy one the greatest gifts you have been given, and walk to your heart’s desire.5
I was pleasantly surprised by how many people took walking as their main activity during COVID, but once that faded away, many went back to their old ways. Don’t wait for the next crisis to remember the gifts you’ve been given. Use them while you can.
Driving with a manual clutch was a challenge. Every bump, stair and incline was a pain, which made me value accessible sidewalks and transports.↩
Due to another incident (a story for another time), I also have an (almost) daily upper body exercise routine that keeps me more holistically balanced, even though walking and hiking tend to work my entire body↩
Alltrails is also an interesting app for discovery, since it offers several user-made paths for you to browse, but it is more clunky than happy. I use alltrails mostly to track existing paths and have a record of them, since it’s trail coverage is inferior when compared to mapy.com↩
Wondering why the header picture’s walker and scenary look that way they do? Think happy trees and happy clouds.↩
Unfortunately, many people suffer conditions that debilitate or completely negate their ability to walk. Some things are just outside our control, and we cannot do anything about them, but if you can (still) walk, do it.↩
2025-09-16 08:00:00
If you had a video call with me, if you happened to see my videos, or if you visited my flat, odds are that a question came up to your mind. The same question that I’ve been asked at least 8 times (and counting) over these past years: “How do you keep your kitchen so clean?” With a possible follow up of “Do you even cook?” or “Have you just moved in?”, amongst others.

I’m of the opinion that once you get asked multiple times the same question, then it’s time to document it and have it available for the next person.
It’s time to address it.
This is how my kitchen stand looks on an average work day. I didn’t prop it up for the picture.
In case you are wondering, the container in the center is soaking buckwheat groats, which after a day of soaking I grind, mix condiments and sometimes small vegetables, put in the oven, resulting in a delicious loaf of buckwheat bread that I use as a replacement for bread. I highly recommend it.
That should answer the question that yes, I do cook.
There are 3 reasons why my kitchen looks virtually the same, every time.
2025-07-27 08:00:00
One’s life can very easily be wasted away on non-consequential, “time passing”, filler, short-term hedonistic experiences.
It’s a blessing to enjoy life’s little pleasures, but it’s perilous to lead a life consisting of only discrete pleasures and experiences that are not, or cannot be chained together in any way shape or form. Essentially, a life spent as a passive spectator through and through, observing the years scroll by.
That feels like an egregious squandering of the most precious gift we’ve been given: life. Chaining experiences together and compounding them into a product that amounts to much more than the sum of its parts is one of the most intriguing, addicting, but most of all, rewarding parts of life.
Building up years of study to land to land a job that takes one out of poverty, raising a child into a full grown adult, building relationships consciously into heartwarming friendships or a loving family, writing a book or article that not only helps oneself but also many others, building a successful company based on years of networking and experiences.
They require considerable amounts of deliberate actions where different experiences are aggregated, chained and combined in novel ways that add value to a system. Value is produced.
Best of all, society rewards you for that! If something you produced is deemed to be of value and (directly or indirectly) consumed by a fellow human being, you can get compensated in currency, recognition, access, friendship, amongst others. As the products of your labor expand and compound, an even more interesting non-trivial effect starts to happen that could not have been predicted in the first place. Personally, both articles and a presentation I did resulted in interesting job offers that I didn’t plan for, nor could I have predicted.
Discipline, self reflection and the hard work to plan and aggregate different actions and experiences, are the most important ingredients to consistently produce value.
If this would be easy, everyone would be doing it by default. That’s why self help books are such a profitable business. This difficulty stems from our inherited hardwired behaviours that optimize towards immediate gratification, which served our late ancestors to such success that these traits got selected and filtered through the ages as an essential part of our species.
However, in the context of our modern societies where resources and entertainment are abundant, these traits backfire and when left to their own devices, can easily stray one into a life of misery and value bankruptcy1.
Just like any other muscle in our body, self-discipline requires consistent and intentional work to stay strong, but relying solely on will power, a scarce and fleeting resource, is often not enough. In order to protect this precious resource, one can set up an environment to block out frivolous distractions and non-consequential instant gratifications. In my case, I don’t have video streaming subscriptions (since I’ve come to realise that most series and movies add little to no value to my life), I have blocked distracting websites and videogames on my computer and expelled junk and sugary foods from home2.
Remember, any time spent in over-indulging consumption, is time not spent producing value.
Instead, create the habit of self reflection and journalling, organize events (at work, with your friends or loved ones), write articles and publish videos that can be seen and judged by others (like this article), welcome accountability and reposability, clean your room. These actions are very likely accessible to you now, at (close to) zero cost. 3
Replace non-consequential consumption with fruitful production. Start anywhere, start now.
Drug abuse, over-eating, alcohol abuse, gambling, over-indulging, instantaneous and inconsequential sexual gratification are some examples of how one’s life could be filled with perceived pleasures that when summed together amount to close to nothing.↩
This is done via the Cold Turkey app, a mac app that I fully recommend, where a long phrase needs to be written before I can unlock these features, which helps me give pause and stop from mindless content consumption. ↩
Extremes touch. Leading a life or pure restrictions where there is no space for exploration of new experiences that at the time don’t serve a higher purpose is not advisable, since there will be no raw material to draw from when producing. But given that it is much harder to go from pure consumption to a healthy balance rather than from a pure production starting point, it is best to target over-producing and then re-balance.↩
2025-07-20 08:00:00
I’ve recently finished reading Napoleon: A Life, a well researched book by Andrew Roberts about the full and well travelled life of Napoleon Bonaparte, his rises and falls, and glimpses of what made the famous soldier-statesman tick. These are my main takeaways:
2025-07-15 08:00:00
Earlier this year I saw a Tech Ingredients episode where a laser gimbal automatically tracks drones and shoots them down. I was fascinated by their motion control mechanism, specially the usage of a PI Controller, a high-frequency clock Teensy microcontroller, and their integration with custom hardware and a machine vision powered tracker.
Soon after I was researching the underlying electronics and how to experiment upon their concepts. The most obvious microcontroller to drive these would be an Arduino, but several recommendations pointed towards acquiring a kit rather than a single microcontroller, and the Elegoo Arduino Uno R3 Starter Kit seemed the best.
The kit contains over 200 components and an extensive guided tutorial, which I’ve completed (except for the last section using an extra expansion shield). In this article, I’ll go through the highlights of this journey, delightful deviations along the way, and exploration of core electronics concepts. Let’s dive in!

See the video version of the article here.
I’ve been involved with electronics in different ways throughout my life, but surprisingly I hadn’t yet done its Hello World equivalent, which is to light up a LED. This simple exercise it by itself incredibly interesting that opened a series of questions:

RGB LEDs package a red, green and blue LED inside it that can be controlled independently, allowing for wide range color representation using three pulse width modulation (PWM) outputs from the Arduino.
PWM is a technique used to control the average power delivered to an electrical device by varying the width of pulses in a digital signal, which when done fast enough in a visual output such as a LED, is perceived to the human eye as being of a smooth continuous amplitude, instead of a stream of single bursts.
Progressively changing the colors of a RGB LED
We can attach an 74HC595 IC to extend the number of outputs possible by an Arduino, at the cost of some latency.
When writing the desired values for each of the inputs into 74HC595, they won’t be externalized until its latch is activated. Once the latch is triggered, all of the stored inputs will be externalized in one go. Very similar purpose of double buffering in video. A flicker free experience.
We are essentially controlling a piece of very limited external memory.
8 LEDs controlled via 74HC595
Capacitors are essentially energy stores (i.e. batteries) that with consistent charge and discharge times. By placing a condenser (or two, as in this video, so that their capacitance is summed up) in parallel with a LED, when powering the circuit both the LED immediately lights up and the condenser(s) charge in tandem. Once the main power source is removed, the condenser(s) start to smoothly discharge into the LED, creating a smooth fade out of their intensity.
Smooth LED intensity variation using Capacitors
We can control this single unit seven segment display at the segment level, and in this example we sequentially write a set of segment sets that we perceive as digits.
Digit Countdown
We can also create any patterns, in whichever sequence and timing we so desire. Here are three examples of some custom patterns.
Rotation Pattern
Figure Eight Pattern
Alternating Pattern
Expanding on the above, if we write the same patterns as above on a four unit segment display, we see these replicated on all units.
Same Character for All
In order for each of the units to present their specific segment pattern, we need to write the pattern and then select which of the units should have this pattern written to, wait for a short amount of time, and then move to the next unit, where we will do the exact same thing, only this time selecting the unit(s) that should have this pattern written.
Distinct Characters
This LED Matrix accepts an explicit bitmap, where each of the pixels is either enabled or disabled. To achieve a scrolling effect we set an offset based on value received via the potentiometer.
Scrolling through a bitmap
The scrolling effect is achieved by leveraging a functionality from the LiquidCrystal library. Here we are using a string of normal characters, but custom characters can also be used.
Scrolling through a long string
From the guide: “We should be careful not to use the UNO R3 board analogWrite() function to generate a pulse to the active buzzer, because the pulse output of analogWrite() is fixed (500Hz)”. I’ve used analogWrite(), and this is the result:
Varying the pitch of a buzzer
By adjusting the frequency in which the buzzer is discretely triggered, we can achieve a perceived effect similar to PWM used above for controlling LEDs intensity, only this time to allude to a certain sound pitch, which in this case is quite similar to the sonority from older computer / console games.
“8bit” engine sound using a buzzer
I’ve burned the on-board LED (13) while voice fiddling with this integration, since one of the dupont wires touched a wrong spot of the board while going through this.
The red LED represents audio peaks, the yellow LED represents audio troughs.
Detecting snapping of fingers and voice
This component consists of a very conductive sphere that is free to move inside the component’s cylindrical shape. One face of the cylinder conducts electricity, and the opposite does not.
Tilting the component to elicit its change of state
I wondered why an external module was required to calculate distances, so I’ve implemented an algorithm from scratch that took into account the speed of sound and the time taken by an ultrasonic pulse to be received back by the sensor. I’ve validated the measurements using a real life ruler, and they were actually accurate! No external code modules required.
Distance measurement using custom algorithm built from scratch
This is a sensor commonly used to detect movement from heat emitting, like people, and then trigger a side-effect, such as a hall light. Its output is a simple binary HIGH or LOW.
Detecting motion via PIR sensor
Used the Arduino’s Serial Plotter Tool to visualize the inputs from the MPU-6050 module that bundles an accelerometer, gyro and temperature sensor.
Accelerometer and Gyroscope Plotting
Going through the datasheets of the gyro module, I’ve noticed that the module could be commanded to dispatch an interrupt signal whenever a certain threshold of movement was detected. This could be useful for low power systems for example, where this interrupt would signal that relevant movement data is starting and the main controller should be fully active.
The objective of this experiment was to make the blue LED blink whenever the gyro was disturbed, but this resulted in a mostly unpredictable output, where the root cause is likely to lie on the incorrect combination of commands needed to set up the module. Further exploration would be needed here.
Attempting to get an interrupt signal when movement starts
A photoresistor is a light-sensitive resistor whose resistance decreases when light falls on its surface, if we place wire in connected from one of Arduino’s analog inputs between the photoresistor and another fixed value resistor, we are able to detect the resulting voltage caused the photoresistor’s variable resistance.
Light intensity shown on LCD display
With the exact same setup as above (save from the slight tweak of the script), by replacing the photoresistor with a thermistor (which yet another variable resistor, only this time changing its resistance based on temperature) we are able to measure ambient temperature, which I manipulate by using my hand’s warmth and the cooling it off by blowing air into the thermistor.
Temperature shown on LCD display
This consisted of some nervous plunging of the water level sensor into a tea mug, near my computer 😬
Water level sensor change as it is further submerged under water
The Arduino is made to drive logical circuits with low output currents, so when we want to control a high power circuit, we want our Arduino microcontroller to control the “valve”, but not the “pipes” themselves. This is a perfect application for a transistor (or relays, as we’ll see below), where the transistor functions as a “valve” that either lets current flow through freely, or block it completely.
The kit comes included with two models of NPN bipolar junction transistor (BJT) transistors: the PN2222 and S8050. Both are often used interchangeably (as seen in this video), but the PN2222 has a higher voltage rating for collector-to-emitter voltage (60V vs 25V), which in this case is not relevant, since we are not surpassing the 5V barrier. In these, the base is the “valve”, and collector and emitter function as the “pipes”.
Note here I am not using a flyback diode to protect the circuit from back EMF voltage spikes caused when the DC motor is switched off, which is not the wisest idea when performing multiple tests. I was not aware of that effect at the time, and fortunately no harm was done.
DC Motor controlled via On/Off Button
Same setup as above, only this time we are driving a LED instead of a DC motor.
LED controlled via Potentiometer
DC motor controlled via Potentiometer
L293D is a neat IC that packs inside everyone one needs to drive inductive loads such as relays, solenoids, DC and bipolar stepping motors, along with bidirectional drive and overcurrent and kickback protection (so no flyback diode needed).
Notice that when attempting to drive the DC motor at low power it struggles to start its rotation, but once power is increased of a slight nudge is given, it quickly starts to rotate freely.
L293D driven DC Motor using battery power
Relays are larger and have slower switching speeds when compared to transistors, but handle higher currents and voltages and provide good electrical isolation.
As a fun fact, in older cars, “tick-tock” heard when activating the turn signal are actually the sound of the respective relay closing and opening the circuit to light up the blinker. Those relays are very similar to the one used here, and a similar noise can be heard in the video, as the relay closes and opens the circuit that powers the DC motor
L293D + Relay driven DC Motor
When setting up a Resistor and Capacitor (RC) circuit, we can take advantage of its predictable charging curve to delay the activation of a transistor, which in turn can activate another set of components. Depending if the transistor is a BJT (current-controlled) or a MOSFET (voltage-controlled), they would have different current or voltage thresholds at which they allow current to flow between the collector and emitter (BJT), or drain and source (MOSFET).
In this case, a bipolar junction transistor (BJT) has its base connected to RC circuit, and upon its activation a LED and/or a DC motor are activated. Notice that the DC motor either does not have enough power to start, or barely has a delay once a smaller resistor is placed on the RC circuit, which I think to be caused by having low capacitance capacitors, and not having the ideal resistor being used on RC circuit, but this would warrant further exploration and a deeper understanding of the problem.
Delayed LED lighting via RC Circuit + BJT Transistor
Delayed LED lighting and DC Motor via RC Circuit + Single BJT Transistor
Delayed LED lighting and DC Motor via RC Circuit + Two BJT Transistors
Servo motors are used in applications requiring precise and controlled movement, where the motor’s position, speed, and torque need to be accurately controlled. In this example a button is used to switch between the state where the servo’s position is synced position defined by the potentiometer, and the state where a default servo motor position is set.
Notice as well how the slight voltage noise created when manipulating the detached potentiometer input wire, and the effect it has on the servo that is attempting to sync with these received values.
Servo Motor controlled via Potentiometer
The stepping motor is a clever piece of engineering that enables precision movement without the need of external feedback.
In this setup the motor is controlled fully by an automated script, and since the 9V battery was starting to die, it was powered via power adapter.
Stepper Motor: Automatic Control
To the above we add a rotary encoder to send precise commands of how much we want the stepper to move. This rotary encoder is the same you’ll find in several appliances such as mouse wheels, car radio knobs and washing machines.
Notice that the movement is quite jerky, and no matter how much we move the rotary encoder, only the most recent movements are actually accounted for.
Stepper Motor: Rotary Encoder Control, using ELEGOO script
To fix the above behaviour, this script takes into account all the movements from the rotary encoder to establish a target rotation angle that every cycle the stepper motor is correcting itself towards.
Notice that in the beginning of the video the two LEDs are lighting up as the rotary encoder is manipulated, so that we can see which are the signals captured by our script. These signals consist of a predictable gray code sequence that lets us perceive with high accuracy whether it is rotating right or left.
Once the two demonstration LEDs are disconnected, we’ll have signals coming through our Arduino inputs, that we interpret leveraging the above concepts, plus we also make sure to trigger device interrupts not only for one of the inputs (as in the script above), but for both inputs, so that we can capture all movements.
Stepper Motor: Rotary Encoder Control, with Extra Precision
Combining the IR sensor and remote above, we can also control this stepper motor using this remote control mechanism.
Stepper Motor: IR Remote Control
One of the peripherals you can provide as input to Arduino is a 16 button keypad that provides a useful human interface component for microcontroller projects.
This keypad module comes included in the Elegoo UNO R3 Starter Kit, which also comes with its respective tutorial and library that helps facilitates its usage.
In this video we will code from scratch an implementation that will use this keypad module, without using extra libraries, and we will go through the respective concepts and circuits, including how pull-up resistors work (which are accessible via INPUT_PULLUP)
How Arduino Keypad Works under the hood
Supporting code:
Note that the code resorts to a fair amount of duplication, but this is explicitly show how the entire mechanism works, without occluding via abstractions
While exploring how common infrared communication protocols are used in every day appliances, I wondered if it was possible punch in custom light pulses via a red LED source that could be interpreted as valid signals by the IR receiver, and started by pulsing it in 25ms intervals in order comply with the 38khz signal modulation expectation on the IR receiver (1 second / 38000 Hz ~= 25ms).
Turns out this would never work with a normal red LED, since its wavelength sits around the 640nm peak, whereas we would need a 900nm to 1000nm wavelength for an IR receiver to pick that signal.

In this attempt, I am comparing the continuous pulsing by the red LED vs the pulsing generated by a standard IR remote. An interesting follow up would be to attempt the same setup, but with a IR LED emitter instead.
IR Signal Replication Attempt
This video shows what the MIFARE content dump from the two cards included with the kit, but the setup is able to read minimal information from other sources, like credit cards or electronic passports.
Note that this module reference voltage works best when connected to the Arduino’s VIn output, instead of Arduino’s 3.3v power output.
Content dump of the information read from the two cards included with the kit
This joystick module is essentially the same used in several game controllers, and its usage is fairly straighforward using an Arduino.
Joystick module demonstration
This might come as obvious to many, but only after using Serial.print() on different Arduino scripts as a debugging mechanism, did I realize that this command actually sends structured information not only to the host via USB (computer), but also via Arduino’s TX output.
This video/script are very simple: they write very long strings and individual bytes to the serial interface, using a very low baud rate, so that their individual bits can be roughly seen upon the right yellow LED that is attached to the TX output. The left green LED stays enabled before we start sending commands to the serial interface, and is disabled once the writing phase is completed.
Notice that even after all writes were committed, there are still bits flowing through the TX output. This goes on until Arduino’s internal serial communication buffer is completely flushed.
Left green LED stays enabled during writing phase. Yellow LED represents single bits in the TX communication stream
Building up on the above, if we write individual bits by carefully timing the a normal pin output’s LOW and HIGH to comply with the UART standard to form 8 bit packets, feed these through a wire to the Arduino’s Rx pin, read the resulting serial communication receive buffer, and then finally write these contents into the serial port, we are able to see these logged into the serial monitor.
This was one of the most 🤯 while fiddling around with the Arduino.
Writing individual bits and feeding them back via RX input
Using the Serial Monitor, we can easily send packets of information to the Arduino via Serial communication. In this script, Arduino reads from the serial communication buffer an enables or disables a LED if the corresponding received information is a zero or a one.
Sending information from the host to Arduino
Building on the above setup, we integrate ATmega’s integrated EEPROM to persist information. This means that even after a power outage that information is still available, as seen in the video below.
Using internal EEPROM to persist information
We can attach an 74HC595 IC to extend the number of outputs possible by an Arduino, and do the same as above but for extra outputs. The setup supports 7 different LEDS, but only 3 are shown in the video, and for this specific example there is no real gain from using 74CH95 IC, other than demonstrating its usage.
Serial read side effects using 3 LEDs and 74HC595
I was curious about the RTC module’s square wave output, and found a YouTube video on how to send a command to the module that forces the square wave pin (SQW) to output a 1Hz square wave, meaning that the cycle of this wave repeats every second.
In the video, this signal is first connected to a LED, which leads it to blink every second, and then the output is directed towards Arduino’s pin 8, thus showing this cycle’s result on the serial output.
Square Wave Output visible first on LED, then on serial output logs
The time project is the opus maximus of the provided tutorials provided by Elegoo, but there were components which were not working directly, namely the interrupt library, so I’ve adapted the provided example to use the built in Arduino interrupt library, and changed some of the connections, leading to a beautiful culmination of all the the lessons from above.
Timer Integration
2025-02-22 08:00:00
After nearly 4 years of continuous usage at work, taking calls and listening to audiobooks during long walks, my wired in-ear Bose QuietComfort 20 MK2 Active Noise Cancelling Earphones are finally starting to become faulty1, so I went on a search for a replacement.
To my surprise, not only have these types of earphones been discontinued by Bose, but the selection of wired in-ear active noise cancelling headphones is incredibly slim. After an extensive search, I’ve found Asus ROG Cetra II and Bang Olufsen B4, which appear to offer inferior quality in terms of Active Noise Cancelling (ANC), when compared to recent highly rated Bose, Sony or Apple headphones, which are either wireless or are over-ear / on-ear. Quality in-ear2 ANC earbuds are almost exclusively wireless.
I understand the popularity of wireless earbuds. They are extremely practical and neat. It is not surprising that penetration of bluetooth headphones has jumped considerably in recent years, but given that I use my headphones for several hours each day, it is not an enticing proposition to have two wireless devices extremely close to my brain, even if they output a low amount of EMF radiation. The (cumulative) dose makes the poison.
Several experts 345 claim there is no danger in prolonged usage of these devices, because they don’t emit ionizing radiation, but it has been reported both in studies and anecdotally that exposure to high levels of EMF radiation might have detrimental effects long term.
I’ve found it challenging to uncover quality studies that correlate the usage of bluetooth headphones and health effects. I assume this correlation is hard to experiment upon with statistically significant results, due to how long this exposure needs to happen, and other confounding environmental and behavioural factors. Regardless, one of these studies draws a significant link between the usage of bluetooth headset and thyroid nodules.
Widespread adoption of these devices is still relatively recent, and we should be humble enough to acknowledge that we don’t have the full picture clearly laid out of the all repercussions related to their long term usage, especially when in close proximity to one of the most valuable organs of our body, our brain.
It’s not what is known that concerns me, but rather what is not known. Until proven the contrary, I will continue to play it safe, and avoid using wireless earbuds.
Hopefully a larger swath of the population will increasingly exercise caution and awareness on this issue, signalling manufacturers to drive the supply of competitive good quality wired in-ear ANC headphones that empower the consumer to make the best choice for their use case, and their health.
The battery is still pristine, but the left earbud started to give out a random noise when active noise cancelling is enabled.↩
I’m exclusively looking for in-ear headphones because of how challenging it is to find over-ear or on-ear headphones that doesn’t cause discomfort after several hours, when using glasses. I also appreciate the style of in-ears, although that is secondary.↩
Effect of Bluetooth headset and mobile phone electromagnetic fields on the human auditory nerve - Marco Mandalà, Vittorio Colletti, Luca Sacchetto, Paolo Manganotti, Stefano Ramat, Alessandro Marcocci, Liliana Colletti↩
Are Bluetooth Headphones Safe? - Dr. Matt MacDougall & Dr. Andrew Huberman↩
How Unhealthy Are Your AirPods? - Doctor Mike↩