<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.1">Jekyll</generator><link href="https://shiko.nl/feed.xml" rel="self" type="application/atom+xml" /><link href="https://shiko.nl/" rel="alternate" type="text/html" /><updated>2024-11-08T22:33:34+01:00</updated><id>https://shiko.nl/feed.xml</id><title type="html">Shiko</title><subtitle>Just one of my many random project</subtitle><author><name>Lan Hu</name></author><entry><title type="html">Review: Sinocare continuous glucose monitor</title><link href="https://shiko.nl/life/review/cgm_sinocare/" rel="alternate" type="text/html" title="Review: Sinocare continuous glucose monitor" /><published>2024-11-08T00:00:00+01:00</published><updated>2024-11-08T00:00:00+01:00</updated><id>https://shiko.nl/life/review/cgm_sinocare</id><content type="html" xml:base="https://shiko.nl/life/review/cgm_sinocare/">&lt;h1 id=&quot;why-a-continuous-glucose-monitor-cgm&quot;&gt;Why a Continuous Glucose Monitor (CGM)?&lt;/h1&gt;

&lt;p&gt;Even as someone who does not suffer from diabetes, knowing your glucose is a good way to learn your body.
Every body reacts a bit different to certain foods, it is then good to know if your body deals nicely with your current diet.
Although there are many factors to oversee, your blood glucose level is an important indicator for diabetes and can affect your health.
According to the &lt;a href=&quot;https://www.who.int/health-topics/diabetes#tab=tab_1&quot;&gt;WHO&lt;/a&gt;, 1 in 12 of the adult people have diabetes.
An early indicator to diabetes, is pre-diabetes which is a form &lt;a href=&quot;https://diabetes.org/about-diabetes/diagnosis&quot;&gt;heightened blood glucos&lt;/a&gt;.
The CGM is a perfect way to keep track how your blood glucose varies throughout the day, due to drinking or eating but also resting giving your body a moment to normalize the blood sugar.&lt;/p&gt;

&lt;h1 id=&quot;the-types-of-cgm-on-the-dutch-market&quot;&gt;The types of CGM on the Dutch market&lt;/h1&gt;
&lt;p&gt;Now you might think of getting one, but which one should you get?
That is the same question I had couple days ago.
On the Dutch market, mainly the Freestyle Libre 2 and the Dexcom G7 are available.
They have always been considered over the last year, but the cost of the Freestyle is about 5 euro per day and the Dexcom is about 9 euro per day.
The Freestyle CGM being a tad out of my budget for diagnosing my blood sugar.
However recently, Sinocare launched their iCan CGM sensor which came to an average cost of about 3 euro per day.
This was a price that got me intrigued.&lt;/p&gt;

&lt;h1 id=&quot;the-sinocare-ican-cgm&quot;&gt;The Sinocare iCan CGM&lt;/h1&gt;
&lt;h2 id=&quot;specifications-of-i3-cgm&quot;&gt;Specifications of i3 CGM&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://shiko.nl/assets/images/posts/2024-11-08-cgm_sinocare/image.png&quot; alt=&quot;Specifications&quot; /&gt;
Are the main take-aways.
The specs are very similar to its competitors but a little bit better!
Since this is a product you need to buy about 24 per year, costs was a huge factor for me.
The combination of these two convinced me to try this device.&lt;/p&gt;

&lt;h2 id=&quot;unboxing&quot;&gt;Unboxing&lt;/h2&gt;
&lt;p&gt;The box is nicely designed, and the components consists of:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Sensor appplicator&lt;/li&gt;
  &lt;li&gt;Sensor
It was easy to take them out and the instructions were straightforward.
&lt;img src=&quot;https://shiko.nl/assets/images/posts/2024-11-08-cgm_sinocare/image-2.png&quot; alt=&quot;Open box&quot; /&gt;
    &lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;
    &lt;p&gt;Although I wanted to monitor it, I got it as a present for my aunt.
She has type-2 diabetes and actually has a need to monitor her blood glucose.
Although she was the user, I will still go over the process as I helped her.
&lt;img src=&quot;https://shiko.nl/assets/images/posts/2024-11-08-cgm_sinocare/image-3.png&quot; alt=&quot;Applicator&quot; /&gt;
After downloading the included app, the setup was quite easy to follow.
You have to click the sensor into the applicator, charge up the applicator by turning the wheel and place it near your abdomen.
The application was quite easy and pain free.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;experience-after-a-week&quot;&gt;Experience after a week&lt;/h2&gt;
&lt;p&gt;After a week we spoke again and she was quite happy and statisfied with the product.
No longer did she have to prick daily in her finger to only get one single measurement per day.
She also gets 480 measurements a day for 3 euro.
If you would calculate the equivalent cost using glucose strips, it would be about 100 euros a day!
The process is also much faster, the time you take to apply the CGM is the same as using the blood strip once.
Saving the time and achieving a much more accurate trend of the blood glucose over the day.
The main usage I suggested her was to see how her blood sugar varies after eating various food.
This such that she can learn what foods to avoid at what moments of the day.
This can severly improve her health, as having too much or too little blood sugar is bad for the body.
&lt;img src=&quot;https://shiko.nl/assets/images/posts/2024-11-08-cgm_sinocare/image-1.png&quot; alt=&quot;i3 CGM applied&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;will-i-buy-one-now&quot;&gt;Will I buy one now?&lt;/h1&gt;
&lt;p&gt;I think the experiment was succesfull, Sinocare came to market with a competitive product.
It is priced after a new user discount of 25% at €43,50.
I will try one soon and post an update with my personal thoughts.&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="life" /><category term="review" /><summary type="html">Why a Continuous Glucose Monitor (CGM)? Even as someone who does not suffer from diabetes, knowing your glucose is a good way to learn your body. Every body reacts a bit different to certain foods, it is then good to know if your body deals nicely with your current diet. Although there are many factors to oversee, your blood glucose level is an important indicator for diabetes and can affect your health. According to the WHO, 1 in 12 of the adult people have diabetes. An early indicator to diabetes, is pre-diabetes which is a form heightened blood glucos. The CGM is a perfect way to keep track how your blood glucose varies throughout the day, due to drinking or eating but also resting giving your body a moment to normalize the blood sugar. The types of CGM on the Dutch market Now you might think of getting one, but which one should you get? That is the same question I had couple days ago. On the Dutch market, mainly the Freestyle Libre 2 and the Dexcom G7 are available. They have always been considered over the last year, but the cost of the Freestyle is about 5 euro per day and the Dexcom is about 9 euro per day. The Freestyle CGM being a tad out of my budget for diagnosing my blood sugar. However recently, Sinocare launched their iCan CGM sensor which came to an average cost of about 3 euro per day. This was a price that got me intrigued. The Sinocare iCan CGM Specifications of i3 CGM Are the main take-aways. The specs are very similar to its competitors but a little bit better! Since this is a product you need to buy about 24 per year, costs was a huge factor for me. The combination of these two convinced me to try this device. Unboxing The box is nicely designed, and the components consists of: Sensor appplicator Sensor It was easy to take them out and the instructions were straightforward. Usage Although I wanted to monitor it, I got it as a present for my aunt. She has type-2 diabetes and actually has a need to monitor her blood glucose. Although she was the user, I will still go over the process as I helped her. After downloading the included app, the setup was quite easy to follow. You have to click the sensor into the applicator, charge up the applicator by turning the wheel and place it near your abdomen. The application was quite easy and pain free. Experience after a week After a week we spoke again and she was quite happy and statisfied with the product. No longer did she have to prick daily in her finger to only get one single measurement per day. She also gets 480 measurements a day for 3 euro. If you would calculate the equivalent cost using glucose strips, it would be about 100 euros a day! The process is also much faster, the time you take to apply the CGM is the same as using the blood strip once. Saving the time and achieving a much more accurate trend of the blood glucose over the day. The main usage I suggested her was to see how her blood sugar varies after eating various food. This such that she can learn what foods to avoid at what moments of the day. This can severly improve her health, as having too much or too little blood sugar is bad for the body. Will I buy one now? I think the experiment was succesfull, Sinocare came to market with a competitive product. It is priced after a new user discount of 25% at €43,50. I will try one soon and post an update with my personal thoughts.</summary></entry><entry><title type="html">Why Now? The Question That Unlocked My Journey to Purpose</title><link href="https://shiko.nl/growth/travel/why_now/" rel="alternate" type="text/html" title="Why Now? The Question That Unlocked My Journey to Purpose" /><published>2024-02-04T00:00:00+01:00</published><updated>2024-02-04T00:00:00+01:00</updated><id>https://shiko.nl/growth/travel/why_now</id><content type="html" xml:base="https://shiko.nl/growth/travel/why_now/">&lt;h1 id=&quot;unlocking-my-ikigai-could-it-be-more-than-just-feeling-good&quot;&gt;Unlocking My Ikigai: Could It Be More than Just “Feeling Good”?&lt;/h1&gt;

&lt;p&gt;Ever stop and wonder, “What’s the point of it all?” Lately, I’ve been grappling with that question, exploring the concept of Ikigai – the Japanese philosophy of finding your “reason for being.” You know, the sweet spot where your passion, mission, profession, and vocation all overlap. 
&lt;img src=&quot;assets/images/posts/2024-02-04-why_now/image-1.png&quot; alt=&quot;ikigai&quot; /&gt;&lt;/p&gt;

&lt;p&gt;While life feels pretty good right now, a nagging feeling persists: Is this it? Have I found my Ikigai? Maybe in another post. But what got me thinking is, what if happiness and fulfillment come with asking a different question: “Why now?”&lt;/p&gt;

&lt;p&gt;Think about it. We often make life choices on autopilot, without questioning the timing. But what if the “when” matters just as much as the “what”?&lt;/p&gt;

&lt;h1 id=&quot;investing-in-yourself-experiences--time---why-now-matters&quot;&gt;Investing in Yourself: Experiences &amp;amp; Time - Why Now Matters&lt;/h1&gt;
&lt;p&gt;Ever feel stuck in a rut, yearning for something more meaningful? 
You’re not alone. 
We all have areas of life where the answer to the &lt;em&gt;“Why now?”&lt;/em&gt; question can unlock hidden potential. 
Imagine waking up excited for the future, knowing you’re actively pursuing your dreams. 
The answer to &lt;em&gt;“Why now?”&lt;/em&gt; can be your guiding principle to that reality. 
What’s one area of your life where by asking “Why do -something- now?” could open doors to joy, fulfillment, or a fresh start? 
Share your honest answer in the comments below – maybe we can help each other take that leap!&lt;/p&gt;

&lt;h2 id=&quot;example-1-why-start-saving-money-now&quot;&gt;Example 1: “Why start saving money now?”&lt;/h2&gt;
&lt;p&gt;Take saving money, for example. Remember my post about values vs. money? /growth/values_vs_money/ Starting at 25 instead of 35 can double your retirement savings, even after accounting for the initial investment! Why wait? The power of compounding works the same way for experiences. Early adventures build memories, skills, and wisdom that pay off later.&lt;/p&gt;

&lt;h2 id=&quot;example-2-why-travel-now&quot;&gt;Example 2: “Why travel now?”&lt;/h2&gt;
&lt;p&gt;I have a long-term ambition to visit every country in the world. 
To be CLEAR (Concise, Limited, Elaborate, Attainable, Relevant), my first milestone towards this goal, is exploring all countries with a population exceeding the Netherlands’ by my 30th birthday.&lt;/p&gt;

&lt;p&gt;To prioritize safety, I focus on destinations deemed relatively secure by the Dutch government, avoiding “red” zones (&lt;a href=&quot;https://www.nederlandwereldwijd.nl/reisadvies/marokko&quot;&gt;Example of zones.&lt;/a&gt;). This approach feels sensible at this stage in my life, considering I am young. Additionally, I believe maturity and experience gained with age will equip me to navigate potentially trickier situations during future travels.&lt;/p&gt;

&lt;p&gt;So, why travel now?
To achieve this goal, you just need a lot of time, money and energy.
 &lt;img src=&quot;assets/images/posts/2024-02-04-why_now/image-2.png&quot; alt=&quot;Triangle of life&quot; /&gt;
This “triangle of life” illustrates the point. While your money and time fluctuate, your energy is a precious, limited resource. It fuels experiences that at a older age are just not possible.&lt;/p&gt;

&lt;h2 id=&quot;example-3-why-spend-energy-now&quot;&gt;Example 3: “Why spend energy now?”&lt;/h2&gt;
&lt;p&gt;Just like compounding interest, experiences accumulate value over time. This wisdom gained through, for example early travels will equip me for crucial life decisions down the road.
Some life decision examples:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Move to a new city? &lt;em&gt;Why now?&lt;/em&gt; Is it chasing a dream job, or seeking a closer connection to nature?&lt;/li&gt;
  &lt;li&gt;Switch careers? &lt;em&gt;Why now?&lt;/em&gt; Are you stagnating, or has anew passion ignited?&lt;/li&gt;
  &lt;li&gt;Invest in a relationship? &lt;em&gt;Why now?&lt;/em&gt; Are you ready forsomething deeper, or is it time to let go?&lt;/li&gt;
  &lt;li&gt;Travel or save? &lt;em&gt;Why now?&lt;/em&gt; Do the compounding experiences outweigh the financial implications?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please remember, &lt;em&gt;“Why now?”&lt;/em&gt; isn’t a call to reckless haste. It’s a powerful lens to examine present opportunities and make conscious choices aligned with your goals and values.&lt;/p&gt;

&lt;h1 id=&quot;embrace-the-moment-your-why-now-journey-starts-now&quot;&gt;Embrace the Moment: Your “Why Now?” Journey Starts Now&lt;/h1&gt;

&lt;p&gt;This simple question was a game-changer for me. It pushes us to examine our choices, identify opportunities, and seize the moment. So, whether it’s pursuing a passion, strengthening a bond, or embarking on an adventure, ask yourself &lt;strong&gt;why now?&lt;/strong&gt;&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="growth" /><category term="travel" /><summary type="html">Unlocking My Ikigai: Could It Be More than Just “Feeling Good”? Ever stop and wonder, “What’s the point of it all?” Lately, I’ve been grappling with that question, exploring the concept of Ikigai – the Japanese philosophy of finding your “reason for being.” You know, the sweet spot where your passion, mission, profession, and vocation all overlap. While life feels pretty good right now, a nagging feeling persists: Is this it? Have I found my Ikigai? Maybe in another post. But what got me thinking is, what if happiness and fulfillment come with asking a different question: “Why now?” Think about it. We often make life choices on autopilot, without questioning the timing. But what if the “when” matters just as much as the “what”? Investing in Yourself: Experiences &amp;amp; Time - Why Now Matters Ever feel stuck in a rut, yearning for something more meaningful? You’re not alone. We all have areas of life where the answer to the “Why now?” question can unlock hidden potential. Imagine waking up excited for the future, knowing you’re actively pursuing your dreams. The answer to “Why now?” can be your guiding principle to that reality. What’s one area of your life where by asking “Why do -something- now?” could open doors to joy, fulfillment, or a fresh start? Share your honest answer in the comments below – maybe we can help each other take that leap! Example 1: “Why start saving money now?” Take saving money, for example. Remember my post about values vs. money? /growth/values_vs_money/ Starting at 25 instead of 35 can double your retirement savings, even after accounting for the initial investment! Why wait? The power of compounding works the same way for experiences. Early adventures build memories, skills, and wisdom that pay off later. Example 2: “Why travel now?” I have a long-term ambition to visit every country in the world. To be CLEAR (Concise, Limited, Elaborate, Attainable, Relevant), my first milestone towards this goal, is exploring all countries with a population exceeding the Netherlands’ by my 30th birthday. To prioritize safety, I focus on destinations deemed relatively secure by the Dutch government, avoiding “red” zones (Example of zones.). This approach feels sensible at this stage in my life, considering I am young. Additionally, I believe maturity and experience gained with age will equip me to navigate potentially trickier situations during future travels. So, why travel now? To achieve this goal, you just need a lot of time, money and energy. This “triangle of life” illustrates the point. While your money and time fluctuate, your energy is a precious, limited resource. It fuels experiences that at a older age are just not possible. Example 3: “Why spend energy now?” Just like compounding interest, experiences accumulate value over time. This wisdom gained through, for example early travels will equip me for crucial life decisions down the road. Some life decision examples: Move to a new city? Why now? Is it chasing a dream job, or seeking a closer connection to nature? Switch careers? Why now? Are you stagnating, or has anew passion ignited? Invest in a relationship? Why now? Are you ready forsomething deeper, or is it time to let go? Travel or save? Why now? Do the compounding experiences outweigh the financial implications? Please remember, “Why now?” isn’t a call to reckless haste. It’s a powerful lens to examine present opportunities and make conscious choices aligned with your goals and values. Embrace the Moment: Your “Why Now?” Journey Starts Now This simple question was a game-changer for me. It pushes us to examine our choices, identify opportunities, and seize the moment. So, whether it’s pursuing a passion, strengthening a bond, or embarking on an adventure, ask yourself why now?</summary></entry><entry><title type="html">Enabling comments</title><link href="https://shiko.nl/website/enabling_comments/" rel="alternate" type="text/html" title="Enabling comments" /><published>2024-01-04T00:00:00+01:00</published><updated>2024-01-04T00:00:00+01:00</updated><id>https://shiko.nl/website/enabling_comments</id><content type="html" xml:base="https://shiko.nl/website/enabling_comments/">&lt;h1 id=&quot;being-social-to-connect-and-grow&quot;&gt;Being social to connect and grow&lt;/h1&gt;
&lt;p&gt;Enabling comments has been for over a year on my to do list, but I never got to it.
The need wasn’t very high as I didn’t get that many, if any website visits at all.
Now I see spurious people visiting -or bots scraping- my website, I thought it is time to connect.
My posts are just some random thoughts I have and want to write down.
But it is always good to look back or reflect on it.
One thing I have learned from working at a company is how good we humans are in working together.
It enables us to go much farther than other animals.
Furthermore it makes us grow and it is time to make that possible by letting others comment.&lt;/p&gt;

&lt;h1 id=&quot;bots-and-spam&quot;&gt;Bots and spam&lt;/h1&gt;
&lt;p&gt;The main deterrant was that I didn’t want bots spamming on my website.
I hope the algorithms are good enough to prevent this these days.
Proof is in the pudding so let’s see!&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="website" /><summary type="html">Being social to connect and grow Enabling comments has been for over a year on my to do list, but I never got to it. The need wasn’t very high as I didn’t get that many, if any website visits at all. Now I see spurious people visiting -or bots scraping- my website, I thought it is time to connect. My posts are just some random thoughts I have and want to write down. But it is always good to look back or reflect on it. One thing I have learned from working at a company is how good we humans are in working together. It enables us to go much farther than other animals. Furthermore it makes us grow and it is time to make that possible by letting others comment. Bots and spam The main deterrant was that I didn’t want bots spamming on my website. I hope the algorithms are good enough to prevent this these days. Proof is in the pudding so let’s see!</summary></entry><entry><title type="html">Island Harmony: Exploring Challenges and Creativity in Limited Competition</title><link href="https://shiko.nl/travel/competition_islands/" rel="alternate" type="text/html" title="Island Harmony: Exploring Challenges and Creativity in Limited Competition" /><published>2023-12-21T00:00:00+01:00</published><updated>2023-12-21T00:00:00+01:00</updated><id>https://shiko.nl/travel/competition_islands</id><content type="html" xml:base="https://shiko.nl/travel/competition_islands/">&lt;h1 id=&quot;discovering-harmonies-a-stroll-through-madeiras-musical-christmas&quot;&gt;Discovering Harmonies: A Stroll Through Madeira’s Musical Christmas&lt;/h1&gt;
&lt;p&gt;As I strolled through the heart of Madeira’s city center, the melodic strains of the island’s light orchestra wafted through the air.
It was two weeks till christmas, a bit chillier than usual for Madeira.
The Christmas market was packed with people.
Many of those listening to the orchestra which played harmonious tunes.
Somehow I found it lacked the elusive “wow” factor.
This triggering a memory of a  discussion with one of my closest friends. 
A while back I had a conversation with my friend, a seasoned table tennis player of over a decade. 
In their world, there is a fascinating correlation: the South of the Netherlands is better than the North.
My friend had a simple reason for it, simply due to the sheer number of players in the South.
The more competitors, the higher the level of competition, and consequently, the elevation of skill.&lt;/p&gt;

&lt;h1 id=&quot;connecting-dots-music-and-sports-parallels&quot;&gt;Connecting Dots: Music and Sports Parallels&lt;/h1&gt;
&lt;p&gt;I couldn’t help but draw parallels to the world of music and sports. 
In many Dutch cities, it has various smaller clubs and typically one larger club. 
Some of those large club even ascend to play on the grand stage, competing in prestigious tournaments like the UEFA Cup.
But let’s not digress.
Returning to the island’s light orchestra, I contemplated whether the size of the island influenced the perceived quality of their music.&lt;/p&gt;

&lt;h1 id=&quot;global-challenges-local-perspectives&quot;&gt;Global Challenges, Local Perspectives&lt;/h1&gt;
&lt;p&gt;Madeira, with a modest population of just over 100k, presents a unique challenge. 
Drawing a statistical parallel to my friend’s insight on table tennis, the chance of a group of individuals achieving world-class musical prowess on a smaller island seems inherently slimmer than in more populous countries like The USA. 
Yet, I hesitate to label this as a problem. 
Rather, I consider it as a matter of perspective.&lt;/p&gt;

&lt;h1 id=&quot;local-excellence-a-proud-feat&quot;&gt;Local Excellence: A Proud Feat&lt;/h1&gt;
&lt;p&gt;Focusing on a local scale can yield its own set of remarkable achievements. 
While dreaming of international recognition is enticing, being the best on the island is no small feat. 
The limited pool of talent fosters a sense of community, where the pursuit of excellence resonates within the confines of the island’s embrace. 
In the end, it’s not just about the size of the stage but the depth of passion that emanates from those who call Madeira home. 
The music I heard that day in Madeira had its own unique cadence that, when appreciated within its context, carries its own harmonious melody.&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="travel" /><category term="music" /><category term="life" /><category term="culture" /><summary type="html">Discovering Harmonies: A Stroll Through Madeira’s Musical Christmas As I strolled through the heart of Madeira’s city center, the melodic strains of the island’s light orchestra wafted through the air. It was two weeks till christmas, a bit chillier than usual for Madeira. The Christmas market was packed with people. Many of those listening to the orchestra which played harmonious tunes. Somehow I found it lacked the elusive “wow” factor. This triggering a memory of a discussion with one of my closest friends. A while back I had a conversation with my friend, a seasoned table tennis player of over a decade. In their world, there is a fascinating correlation: the South of the Netherlands is better than the North. My friend had a simple reason for it, simply due to the sheer number of players in the South. The more competitors, the higher the level of competition, and consequently, the elevation of skill. Connecting Dots: Music and Sports Parallels I couldn’t help but draw parallels to the world of music and sports. In many Dutch cities, it has various smaller clubs and typically one larger club. Some of those large club even ascend to play on the grand stage, competing in prestigious tournaments like the UEFA Cup. But let’s not digress. Returning to the island’s light orchestra, I contemplated whether the size of the island influenced the perceived quality of their music. Global Challenges, Local Perspectives Madeira, with a modest population of just over 100k, presents a unique challenge. Drawing a statistical parallel to my friend’s insight on table tennis, the chance of a group of individuals achieving world-class musical prowess on a smaller island seems inherently slimmer than in more populous countries like The USA. Yet, I hesitate to label this as a problem. Rather, I consider it as a matter of perspective. Local Excellence: A Proud Feat Focusing on a local scale can yield its own set of remarkable achievements. While dreaming of international recognition is enticing, being the best on the island is no small feat. The limited pool of talent fosters a sense of community, where the pursuit of excellence resonates within the confines of the island’s embrace. In the end, it’s not just about the size of the stage but the depth of passion that emanates from those who call Madeira home. The music I heard that day in Madeira had its own unique cadence that, when appreciated within its context, carries its own harmonious melody.</summary></entry><entry><title type="html">A Culinary Odyssey from the Canaries</title><link href="https://shiko.nl/travel/meat_in_canaries/" rel="alternate" type="text/html" title="A Culinary Odyssey from the Canaries" /><published>2023-12-18T00:00:00+01:00</published><updated>2023-12-18T00:00:00+01:00</updated><id>https://shiko.nl/travel/meat_in_canaries</id><content type="html" xml:base="https://shiko.nl/travel/meat_in_canaries/">&lt;h1 id=&quot;why-i-escape-the-cold&quot;&gt;Why I escape the cold&lt;/h1&gt;
&lt;p&gt;Ever since I tossed my graduation cap into the air, I’ve made a habit of escaping the chilly winters of The Netherlands. 
The Canary Islands swiftly became my haven, it is a readily accessible retreat offering affordable, visa-free flights. 
On my latest expedition, I embarked on a culinary adventure in Tenerife, where I sought to explore the unexpected interplay of tastes, cultures, and culinary traditions. 
Join me as I delve into the vibrant streets of Tenerife and the enchanting landscapes of Madeira.&lt;/p&gt;

&lt;h1 id=&quot;no-cow-no-beef&quot;&gt;No cow, no beef&lt;/h1&gt;
&lt;p&gt;Upon landing, my mate and I were on a mission: find the perfect steak tartare restaurant. 
Rumor had it that somewhere on Tenerife a great steak tartare is served. 
After some searching, we discovered &lt;a href=&quot;https://maps.app.goo.gl/X6H1d7h7JT25ngkp6&quot;&gt;it&lt;/a&gt;. 
Obviously, the entre was already set in stone, the steak tartare. 
Now we were faced with the delightful dilemma of choosing our mains. 
Opting for a succulent rib eye, I eagerly cut into the medium-rare beef and was met with a strangely familiar taste, one that transported me back to Western Europe.&lt;/p&gt;

&lt;h1 id=&quot;canarian-beef-or-argentinean-beef&quot;&gt;Canarian beef or Argentinean beef&lt;/h1&gt;
&lt;p&gt;Curiosity piqued and I decided to inquire about the origin of the beef. 
The restaurant staff, friendly and accommodating, confirmed my suspicions with a casual, “Anywhere between the UK and Poland. Depends on the season, really.” 
This unexpected revelation triggered reflections on a recent post I penned about the intricate &lt;a href=&quot;https://shiko.nl/travel/why_travel/&quot;&gt;interplay of culture and food&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unlike my previous experience with Canarian beef in Gran Canaria, this time the meat had a familiar taste. 
The local cows, it seemed, had given way to imports. 
This observation actually became a recurring theme throughout my holiday; each bite of beef was a reminder of the interconnectedness of global food trade.&lt;/p&gt;

&lt;p&gt;I couldn’t help but marvel at the economic intricacies that made this possible, particularly the timely delivery of perishable goods like Argentine beef via ships. It’s a phenomenon made feasible by the affordability of oil, a topic I delved into in a &lt;a href=&quot;https://shiko.nl/growth/pricing_of_oil/&quot;&gt;previous post&lt;/a&gt;. 
The popularity of imported beef in Tenerife and even in Madeira (my next destination) underscored the resilience of global food export patterns.&lt;/p&gt;

&lt;h1 id=&quot;a-global-tapestry-of-flavors&quot;&gt;A Global Tapestry of Flavors&lt;/h1&gt;
&lt;p&gt;As I reflect on the succulent bites savored in Tenerife, the unexpected connection between local tastes and global influences has left me both satisfied and intrigued. 
The intricate dance between economics, accessibility, and culinary preferences paints a captivating picture of how our world has evolved into a global tapestry of flavors.
From the vibrant streets of Tenerife to the enchanting landscapes of Madeira, the journey through diverse palates has opened my eyes to the rich interplay between local traditions and the global food stage.
As I linger over the last memories of the steak tartare, my palate tingling with the lingering taste, I find myself unable to resist the allure of the unknown. 
The culinary surprises that await in the next corner of my travels are a tantalizing prospect, promising more revelations about globalization, food and culture.&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="travel" /><category term="food" /><category term="life" /><category term="culture" /><summary type="html">Why I escape the cold Ever since I tossed my graduation cap into the air, I’ve made a habit of escaping the chilly winters of The Netherlands. The Canary Islands swiftly became my haven, it is a readily accessible retreat offering affordable, visa-free flights. On my latest expedition, I embarked on a culinary adventure in Tenerife, where I sought to explore the unexpected interplay of tastes, cultures, and culinary traditions. Join me as I delve into the vibrant streets of Tenerife and the enchanting landscapes of Madeira. No cow, no beef Upon landing, my mate and I were on a mission: find the perfect steak tartare restaurant. Rumor had it that somewhere on Tenerife a great steak tartare is served. After some searching, we discovered it. Obviously, the entre was already set in stone, the steak tartare. Now we were faced with the delightful dilemma of choosing our mains. Opting for a succulent rib eye, I eagerly cut into the medium-rare beef and was met with a strangely familiar taste, one that transported me back to Western Europe. Canarian beef or Argentinean beef Curiosity piqued and I decided to inquire about the origin of the beef. The restaurant staff, friendly and accommodating, confirmed my suspicions with a casual, “Anywhere between the UK and Poland. Depends on the season, really.” This unexpected revelation triggered reflections on a recent post I penned about the intricate interplay of culture and food. Unlike my previous experience with Canarian beef in Gran Canaria, this time the meat had a familiar taste. The local cows, it seemed, had given way to imports. This observation actually became a recurring theme throughout my holiday; each bite of beef was a reminder of the interconnectedness of global food trade. I couldn’t help but marvel at the economic intricacies that made this possible, particularly the timely delivery of perishable goods like Argentine beef via ships. It’s a phenomenon made feasible by the affordability of oil, a topic I delved into in a previous post. The popularity of imported beef in Tenerife and even in Madeira (my next destination) underscored the resilience of global food export patterns. A Global Tapestry of Flavors As I reflect on the succulent bites savored in Tenerife, the unexpected connection between local tastes and global influences has left me both satisfied and intrigued. The intricate dance between economics, accessibility, and culinary preferences paints a captivating picture of how our world has evolved into a global tapestry of flavors. From the vibrant streets of Tenerife to the enchanting landscapes of Madeira, the journey through diverse palates has opened my eyes to the rich interplay between local traditions and the global food stage. As I linger over the last memories of the steak tartare, my palate tingling with the lingering taste, I find myself unable to resist the allure of the unknown. The culinary surprises that await in the next corner of my travels are a tantalizing prospect, promising more revelations about globalization, food and culture.</summary></entry><entry><title type="html">The weird pricing of consumer goods in comparison with oil</title><link href="https://shiko.nl/growth/pricing_of_oil/" rel="alternate" type="text/html" title="The weird pricing of consumer goods in comparison with oil" /><published>2023-07-29T00:00:00+02:00</published><updated>2023-07-29T00:00:00+02:00</updated><id>https://shiko.nl/growth/pricing_of_oil</id><content type="html" xml:base="https://shiko.nl/growth/pricing_of_oil/">&lt;h1 id=&quot;the-prize-puzzle&quot;&gt;The prize puzzle&lt;/h1&gt;
&lt;p&gt;Have you ever wondered why soft drinks, such as Coca-Cola or Fanta, seem to carry a hefty price tag? As I pondered this question, I decided to delve deeper into the world of consumer pricing. 
What I found was truly surprising and thought-provoking.&lt;/p&gt;

&lt;h1 id=&quot;petrol-vs-soft-drinks&quot;&gt;Petrol vs soft drinks&lt;/h1&gt;
&lt;p&gt;In the Netherlands, we are fortunate to have access to affordable and clean tap water (which arguably is even cleaner than bottled water) is about &lt;a href=&quot;https://gemiddelden.nl/prijzen/gemiddelde-prijs-per-liter-water/&quot;&gt;1 cent per 7 liters&lt;/a&gt;!
To put this in perspective, let’s compare it to another vital fluid: oil. 
The startling revelation was that a bottle of Coca-Cola, priced at &lt;a href=&quot;https://www.ah.nl/producten/product/wi130874/coca-cola-regular&quot;&gt;€1.99&lt;/a&gt;, is more expensive than petrol RON 95 (E10), which costs &lt;a href=&quot;https://www.anwb.nl/vakantie/reisvoorbereiding/brandstofprijzen-europa&quot;&gt;€1.97&lt;/a&gt;&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.
Yes, you read that correctly; oil is cheaper than branded soft drinks!&lt;/p&gt;

&lt;h1 id=&quot;the-luxury-factor&quot;&gt;The luxury factor&lt;/h1&gt;
&lt;p&gt;Perhaps this pricing paradox can be attributed to human desires for luxury and the willingness to pay more for things we like or believe we need. 
I am not one to advocate for consuming less, as I, too, enjoy the occasional soft drink or beer. However, it is truly remarkable to contemplate how something extracted from 2-6 km beneath the Earth’s crust can be priced similarly to flavored water.
Moreover, the comparison extends beyond soft drinks.
Here in the Netherlands a bottle of water costs (&lt;a href=&quot;https://www.ah.nl/producten/product/wi198956/spa-reine-fles&quot;&gt;€1.05&lt;/a&gt;), this is more expensive than petrol in the US (&lt;a href=&quot;https://nl.globalpetrolprices.com/USA/gasoline_prices/&quot;&gt;€1,00&lt;/a&gt;)&lt;sup id=&quot;fnref:1:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;!&lt;/p&gt;

&lt;p&gt;Such a realization is baffling.
No, I am not comparing the oil rich middle east countries that have challenges getting fresh purified water.
No, I both are two rich western countries.
Remarkable.
How pricing of consumer goods can be.
Instead, you could also say how cheap oil is.&lt;/p&gt;

&lt;h1 id=&quot;environmental-consideration&quot;&gt;Environmental consideration&lt;/h1&gt;
&lt;p&gt;Perhaps it is time to consider the environmental impact of our choices. 
While oil might seem cheap in terms of monetary value, we must also account for its environmental cost. 
This includes factors like carbon emissions, environmental degradation, and the depletion of natural resources. 
Should there be an environmental tax on oil to address these issues? 
Such a discussion is complex, but it demands our attention as we contemplate the future of our planet and the cost of our lifestyles.&lt;/p&gt;

&lt;h1 id=&quot;a-pricing-paradox&quot;&gt;A pricing paradox&lt;/h1&gt;
&lt;p&gt;As we reflect on the weird pricing of consumer goods in comparison with oil, it becomes apparent that there’s more to pricing than meets the eye. 
The luxury factor and environmental considerations play crucial roles in shaping the costs we see on the price tags. We must be mindful of the choices we make and the impact they have on our world.&lt;/p&gt;

&lt;p&gt;Next time you reach for that soft drink or fill up your car with petrol, take a moment to contemplate the story behind the price. 
Only then can we begin to shape a future where luxuries are sustainable and our choices reflect a deeper understanding of their true costs.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;At the time of writing 29-07-2023. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt; &lt;a href=&quot;#fnref:1:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;</content><author><name>Lan Hu</name></author><category term="growth" /><category term="finance" /><category term="life" /><summary type="html">The prize puzzle Have you ever wondered why soft drinks, such as Coca-Cola or Fanta, seem to carry a hefty price tag? As I pondered this question, I decided to delve deeper into the world of consumer pricing. What I found was truly surprising and thought-provoking. Petrol vs soft drinks In the Netherlands, we are fortunate to have access to affordable and clean tap water (which arguably is even cleaner than bottled water) is about 1 cent per 7 liters! To put this in perspective, let’s compare it to another vital fluid: oil. The startling revelation was that a bottle of Coca-Cola, priced at €1.99, is more expensive than petrol RON 95 (E10), which costs €1.971. Yes, you read that correctly; oil is cheaper than branded soft drinks! The luxury factor Perhaps this pricing paradox can be attributed to human desires for luxury and the willingness to pay more for things we like or believe we need. I am not one to advocate for consuming less, as I, too, enjoy the occasional soft drink or beer. However, it is truly remarkable to contemplate how something extracted from 2-6 km beneath the Earth’s crust can be priced similarly to flavored water. Moreover, the comparison extends beyond soft drinks. Here in the Netherlands a bottle of water costs (€1.05), this is more expensive than petrol in the US (€1,00)1! Such a realization is baffling. No, I am not comparing the oil rich middle east countries that have challenges getting fresh purified water. No, I both are two rich western countries. Remarkable. How pricing of consumer goods can be. Instead, you could also say how cheap oil is. Environmental consideration Perhaps it is time to consider the environmental impact of our choices. While oil might seem cheap in terms of monetary value, we must also account for its environmental cost. This includes factors like carbon emissions, environmental degradation, and the depletion of natural resources. Should there be an environmental tax on oil to address these issues? Such a discussion is complex, but it demands our attention as we contemplate the future of our planet and the cost of our lifestyles. A pricing paradox As we reflect on the weird pricing of consumer goods in comparison with oil, it becomes apparent that there’s more to pricing than meets the eye. The luxury factor and environmental considerations play crucial roles in shaping the costs we see on the price tags. We must be mindful of the choices we make and the impact they have on our world. Next time you reach for that soft drink or fill up your car with petrol, take a moment to contemplate the story behind the price. Only then can we begin to shape a future where luxuries are sustainable and our choices reflect a deeper understanding of their true costs. At the time of writing 29-07-2023. &amp;#8617; &amp;#8617;2</summary></entry><entry><title type="html">Unveiling the Value of Time and Money: Pondering Life’s Priorities through Books and Reflection</title><link href="https://shiko.nl/growth/values_vs_money/" rel="alternate" type="text/html" title="Unveiling the Value of Time and Money: Pondering Life’s Priorities through Books and Reflection" /><published>2023-06-14T00:00:00+02:00</published><updated>2023-06-14T00:00:00+02:00</updated><id>https://shiko.nl/growth/values_vs_money</id><content type="html" xml:base="https://shiko.nl/growth/values_vs_money/">&lt;h1 id=&quot;finding-serenity-in-reading-during-holidays&quot;&gt;Finding Serenity in Reading During Holidays&lt;/h1&gt;
&lt;p&gt;While I’m not an avid reader in my day-to-day life, I find solace in reading during my holidays. It’s a time when I can unwind and indulge in the joy of relaxation or knowledge acquisition, unburdened by my usual array of activities such as working on my PC, riding my motorcycle, experimenting in the kitchen, or engaging in my engineering pursuits.&lt;/p&gt;
&lt;h1 id=&quot;exploring-the-significance-of-time-and-money-through-rich-dad-poor-dad-by-robert-kiyosaki&quot;&gt;Exploring the Significance of Time and Money through “Rich Dad, Poor Dad” by Robert Kiyosaki&lt;/h1&gt;
&lt;p&gt;During my recent holiday reading, I came across an intriguing concept that I’d like to focus on in this blog post. One key aspect that resonated with me is the power of exponential growth, and I wholeheartedly agree with its importance. When someone is young, time becomes one of the most valuable cards they hold. Without even taking significant actions, a young person with ample time ahead can rapidly grow their wealth simply by starting early.&lt;/p&gt;

&lt;h1 id=&quot;the-explosive-power-of-exponential-growth&quot;&gt;The Explosive Power of Exponential Growth&lt;/h1&gt;
&lt;p&gt;Let me illustrate the significance of time when it comes to your savings account. Assuming a conservative annual growth rate of 7% (the &lt;a href=&quot;https://tradethatswing.com/average-historical-stock-market-returns-for-sp-500-5-year-up-to-150-year-averages/&quot;&gt;average&lt;/a&gt; return of the S&amp;amp;P 500 over the last 30 years, adjusted for inflation) and a monthly savings contribution of $100, the impact is astounding.
&lt;img src=&quot;https://github.com/shikon/cloudimg/blob/master/typora/compound.jpg?raw=true&quot; alt=&quot;compound&quot; /&gt;
If you were to retire at the age of 65, the difference between starting early at age 25 and starting 10 years later is more than double. Even after accounting for the disparity in the total amount saved, with the later start resulting in less money invested, the mathematical comparison is roughly $25,000 / $12,200 &amp;gt; 2!&lt;/p&gt;
&lt;h1 id=&quot;embracing-nuances-the-value-of-experiences-and-life-lessons&quot;&gt;Embracing Nuances: The Value of Experiences and Life Lessons&lt;/h1&gt;
&lt;p&gt;While the theory of exponential growth is well-known among financially savvy individuals, as the book describes it, people with a high financial IQ, I’ve come to realize that maximizing happiness, at least for me, does not entail penny-pinching and saving every dollar when I’m young. In my perspective, the money required to live an enjoyable and fulfilling life is highest during youth. These experiences hold significant value to me and, I believe, should hold a similar value for you as well.&lt;/p&gt;
&lt;h2 id=&quot;seizing-opportunities-in-youth&quot;&gt;Seizing Opportunities in Youth&lt;/h2&gt;
&lt;p&gt;Allow me to provide a few examples to illustrate this point. When you travel to a foreign country, isn’t it more valuable to do so while you’re young? While this may decrease your savings, the experiences and memories gained are immeasurable. Additionally, youth allows for engaging in physically demanding activities such as hiking, canoeing, and mountain biking, taking full advantage of your physical fitness. This is the natural way of things!&lt;/p&gt;
&lt;h2 id=&quot;the-power-of-childhood-lessons&quot;&gt;The Power of Childhood Lessons&lt;/h2&gt;
&lt;p&gt;To make this concept more relatable to those with children, consider the time you spend with your family when your kids are young. These shared moments compound over time, becoming invaluable life lessons. Anything children learn in their early years lays the foundation for their future growth and development, whether they consciously acknowledge it or not.&lt;/p&gt;
&lt;h2 id=&quot;midlife-a-period-of-peaking-costs&quot;&gt;Midlife: A Period of Peaking Costs&lt;/h2&gt;
&lt;p&gt;I’ve created a hand-drawn graph to illustrate a typical life trajectory.
&lt;img src=&quot;https://github.com/shikon/cloudimg/blob/master/typora/costs.png?raw=true&quot; alt=&quot;valuevstime&quot; /&gt;
 As depicted, your costs peak around the age of 40, assuming a conventional lifestyle. During this phase, your children are likely in their teenage years, which can be financially demanding yet rewarding. Alongside providing for your children, you may desire family vacations and perhaps a larger home to accommodate your growing family. However, as your children grow older and become self-sufficient adults, the financial dependence gradually diminishes. By the time you reach retirement age (65), your expenses&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; have decreased significantly compared to your physical prime at ages 20-24. While you may not be as physically capable, many individuals choose to embark on new adventures at a more relaxed pace, given the availability of free time and financial resources.&lt;/p&gt;

&lt;h1 id=&quot;the-changing-value-of-each-dollar-as-you-age&quot;&gt;The Changing Value of Each Dollar as You Age&lt;/h1&gt;
&lt;p&gt;Considering the information presented above, it becomes evident that the value of each dollar changes throughout life. Instead of solely focusing on costs, you can also perceive it as the value per dollar changing based on your age. I want to emphasize that value is subjective, representing the true worth you assign to something rather than a utilitarian, objective measurement in monetary units ($). This perspective resonates with me at present. There is no magical formula for growing money because when saving money matters most, the value of each dollar is significant, whereas when you have the ability to spend most of your money, the value of each dollar diminishes. In simpler terms, this can be expressed as a higher burn rate when young and a lower burn rate when older. I don’t believe this remains constant throughout life.&lt;/p&gt;

&lt;h1 id=&quot;sharing-my-perspective-on-value-with-friends&quot;&gt;Sharing My Perspective on Value with Friends&lt;/h1&gt;
&lt;p&gt;I’ve shared my contrarian view with friends, and while they couldn’t refute it—acknowledging its personal nature—I hope I’ve influenced their innermost thought patterns, perhaps nudging them slightly closer to my point of view.&lt;/p&gt;

&lt;h1 id=&quot;evolving-perspectives&quot;&gt;Evolving Perspectives&lt;/h1&gt;
&lt;p&gt;One of the reasons I write this blog is to chronologically organize my thoughts. It’s possible that my view will change when I actually reach the age of 65. I sincerely hope that my perspective proves accurate and serves as a guiding principle for spending money wisely at the right moments, leading to a happy, successful, and fulfilling life. Time will tell.&lt;/p&gt;
&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;Assuming good health resulting from a balanced lifestyle; in a more pessimistic view, medical expenses could form a substantial portion of costs in later years. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;</content><author><name>Lan Hu</name></author><category term="growth" /><category term="books" /><category term="finance" /><category term="life" /><summary type="html">Finding Serenity in Reading During Holidays While I’m not an avid reader in my day-to-day life, I find solace in reading during my holidays. It’s a time when I can unwind and indulge in the joy of relaxation or knowledge acquisition, unburdened by my usual array of activities such as working on my PC, riding my motorcycle, experimenting in the kitchen, or engaging in my engineering pursuits. Exploring the Significance of Time and Money through “Rich Dad, Poor Dad” by Robert Kiyosaki During my recent holiday reading, I came across an intriguing concept that I’d like to focus on in this blog post. One key aspect that resonated with me is the power of exponential growth, and I wholeheartedly agree with its importance. When someone is young, time becomes one of the most valuable cards they hold. Without even taking significant actions, a young person with ample time ahead can rapidly grow their wealth simply by starting early. The Explosive Power of Exponential Growth Let me illustrate the significance of time when it comes to your savings account. Assuming a conservative annual growth rate of 7% (the average return of the S&amp;amp;P 500 over the last 30 years, adjusted for inflation) and a monthly savings contribution of $100, the impact is astounding. If you were to retire at the age of 65, the difference between starting early at age 25 and starting 10 years later is more than double. Even after accounting for the disparity in the total amount saved, with the later start resulting in less money invested, the mathematical comparison is roughly $25,000 / $12,200 &amp;gt; 2! Embracing Nuances: The Value of Experiences and Life Lessons While the theory of exponential growth is well-known among financially savvy individuals, as the book describes it, people with a high financial IQ, I’ve come to realize that maximizing happiness, at least for me, does not entail penny-pinching and saving every dollar when I’m young. In my perspective, the money required to live an enjoyable and fulfilling life is highest during youth. These experiences hold significant value to me and, I believe, should hold a similar value for you as well. Seizing Opportunities in Youth Allow me to provide a few examples to illustrate this point. When you travel to a foreign country, isn’t it more valuable to do so while you’re young? While this may decrease your savings, the experiences and memories gained are immeasurable. Additionally, youth allows for engaging in physically demanding activities such as hiking, canoeing, and mountain biking, taking full advantage of your physical fitness. This is the natural way of things! The Power of Childhood Lessons To make this concept more relatable to those with children, consider the time you spend with your family when your kids are young. These shared moments compound over time, becoming invaluable life lessons. Anything children learn in their early years lays the foundation for their future growth and development, whether they consciously acknowledge it or not. Midlife: A Period of Peaking Costs I’ve created a hand-drawn graph to illustrate a typical life trajectory. As depicted, your costs peak around the age of 40, assuming a conventional lifestyle. During this phase, your children are likely in their teenage years, which can be financially demanding yet rewarding. Alongside providing for your children, you may desire family vacations and perhaps a larger home to accommodate your growing family. However, as your children grow older and become self-sufficient adults, the financial dependence gradually diminishes. By the time you reach retirement age (65), your expenses1 have decreased significantly compared to your physical prime at ages 20-24. While you may not be as physically capable, many individuals choose to embark on new adventures at a more relaxed pace, given the availability of free time and financial resources. The Changing Value of Each Dollar as You Age Considering the information presented above, it becomes evident that the value of each dollar changes throughout life. Instead of solely focusing on costs, you can also perceive it as the value per dollar changing based on your age. I want to emphasize that value is subjective, representing the true worth you assign to something rather than a utilitarian, objective measurement in monetary units ($). This perspective resonates with me at present. There is no magical formula for growing money because when saving money matters most, the value of each dollar is significant, whereas when you have the ability to spend most of your money, the value of each dollar diminishes. In simpler terms, this can be expressed as a higher burn rate when young and a lower burn rate when older. I don’t believe this remains constant throughout life. Sharing My Perspective on Value with Friends I’ve shared my contrarian view with friends, and while they couldn’t refute it—acknowledging its personal nature—I hope I’ve influenced their innermost thought patterns, perhaps nudging them slightly closer to my point of view. Evolving Perspectives One of the reasons I write this blog is to chronologically organize my thoughts. It’s possible that my view will change when I actually reach the age of 65. I sincerely hope that my perspective proves accurate and serves as a guiding principle for spending money wisely at the right moments, leading to a happy, successful, and fulfilling life. Time will tell. Assuming good health resulting from a balanced lifestyle; in a more pessimistic view, medical expenses could form a substantial portion of costs in later years. &amp;#8617;</summary></entry><entry><title type="html">Exploring the Fascinating Relationship Between Food and Culture While Traveling</title><link href="https://shiko.nl/travel/why_travel/" rel="alternate" type="text/html" title="Exploring the Fascinating Relationship Between Food and Culture While Traveling" /><published>2023-06-07T00:00:00+02:00</published><updated>2023-06-07T00:00:00+02:00</updated><id>https://shiko.nl/travel/why_travel</id><content type="html" xml:base="https://shiko.nl/travel/why_travel/">&lt;h1 id=&quot;why-i-travel-and-the-significance-of-food&quot;&gt;Why I Travel and the Significance of Food&lt;/h1&gt;
&lt;p&gt;Traveling is a true passion of mine, just like cooking. It opens up a world of new experiences and allows me to delve into different cultures, especially through their food. While traveling, I often encounter tastes and culinary practices that differ from what I’m accustomed to. It’s natural for humans to gravitate towards what they are familiar with, which means it’s not unusual to have preferences or dislikes when it comes to food from other cultures. Exploring these culinary differences is what truly captivates me, and I find it fascinating to understand the reasons behind the popularity and preferences of various regional dishes.&lt;/p&gt;
&lt;h1 id=&quot;the-influence-of-history-on-food&quot;&gt;The Influence of History on Food&lt;/h1&gt;
&lt;p&gt;Throughout my travels, I have made some simple yet intriguing observations that highlight the influence of history on the types of food enjoyed in different regions. Here are a few examples:&lt;/p&gt;
&lt;h2 id=&quot;coastal-cities-and-fresh-fish&quot;&gt;Coastal Cities and Fresh Fish&lt;/h2&gt;
&lt;p&gt;Historically, coastal cities have had a strong affinity for fish. In the past, fish could only be enjoyed when it was freshly caught, which was feasible only in locations near the sea or other bodies of water. Nowadays, with efficient trade routes and advanced preservation techniques like ice, any type of fish can be transported across the globe. However, the preference for fish remains rooted in the historical context of coastal cities.&lt;/p&gt;
&lt;h2 id=&quot;the-culinary-impact-of-poverty&quot;&gt;The Culinary Impact of Poverty&lt;/h2&gt;
&lt;p&gt;Poverty often shapes culinary traditions as well. For instance, in Madrid, which was relatively poor in the past, it was challenging to afford premium cuts of meat. This led to the consumption of offal parts such as beef tripe, giving rise to dishes like “Callos” in Spanish cuisine. Similarly, South Korea, having experienced rapid modernization within the last century, still values offal parts due to their historical significance.&lt;/p&gt;
&lt;h2 id=&quot;religious-influence-on-food-choices&quot;&gt;Religious Influence on Food Choices&lt;/h2&gt;
&lt;p&gt;Religious rules and practices have also played a significant role in shaping food preferences. During a recent visit to Romania, a friend and I noticed that beef was relatively expensive compared to pork. After inquiring, we discovered that Romania’s historical association with the Ottoman Empire led to high taxes on beef due to Islamic dietary restrictions. Consequently, beef imports became more common, resulting in fewer local cattle farmers.&lt;/p&gt;
&lt;h2 id=&quot;the-sober-food-culture-of-the-netherlands&quot;&gt;The Sober Food Culture of the Netherlands&lt;/h2&gt;
&lt;p&gt;In the Netherlands, there is a unique perspective on food known as “nuchter.” This concept can be described as having an objective and emotionless view, prioritizing efficiency over taste. The Dutch food culture, often characterized by the “AGV” or “PVM” dinner (Potatoes, Veggies, and Meat), is a result of historical circumstances, including times of scarcity such as the Dutch Famine during World War II. Quantity has often taken precedence over quality in this context.&lt;/p&gt;
&lt;h2 id=&quot;the-influence-of-culture&quot;&gt;The Influence of Culture&lt;/h2&gt;
&lt;p&gt;Culture, in its essence, is a culmination of historical events and factors that shape specific traits, including food preferences&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;. The type of food enjoyed in a particular country is just one aspect of its broader cultural identity. Each country is unique due to a combination of factors such as geography, historical events, and societal customs. The examples I shared merely scratch the surface of the intricate connections between history, culture, and food. I encourage you, as the reader, to embark on your own travel adventures and explore these fascinating relationships firsthand.&lt;/p&gt;

&lt;p&gt;In conclusion, my love for traveling stems from the desire to explore diverse cultures, with food being a significant element of that exploration. Through my experiences, I have come to appreciate the influence of history, poverty, religion,&lt;/p&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;I am in no way a anthropologist or have studied history, it is however a view I have created by experience. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;</content><author><name>Lan Hu</name></author><category term="travel" /><category term="food" /><category term="culture" /><category term="history" /><summary type="html">Why I Travel and the Significance of Food Traveling is a true passion of mine, just like cooking. It opens up a world of new experiences and allows me to delve into different cultures, especially through their food. While traveling, I often encounter tastes and culinary practices that differ from what I’m accustomed to. It’s natural for humans to gravitate towards what they are familiar with, which means it’s not unusual to have preferences or dislikes when it comes to food from other cultures. Exploring these culinary differences is what truly captivates me, and I find it fascinating to understand the reasons behind the popularity and preferences of various regional dishes. The Influence of History on Food Throughout my travels, I have made some simple yet intriguing observations that highlight the influence of history on the types of food enjoyed in different regions. Here are a few examples: Coastal Cities and Fresh Fish Historically, coastal cities have had a strong affinity for fish. In the past, fish could only be enjoyed when it was freshly caught, which was feasible only in locations near the sea or other bodies of water. Nowadays, with efficient trade routes and advanced preservation techniques like ice, any type of fish can be transported across the globe. However, the preference for fish remains rooted in the historical context of coastal cities. The Culinary Impact of Poverty Poverty often shapes culinary traditions as well. For instance, in Madrid, which was relatively poor in the past, it was challenging to afford premium cuts of meat. This led to the consumption of offal parts such as beef tripe, giving rise to dishes like “Callos” in Spanish cuisine. Similarly, South Korea, having experienced rapid modernization within the last century, still values offal parts due to their historical significance. Religious Influence on Food Choices Religious rules and practices have also played a significant role in shaping food preferences. During a recent visit to Romania, a friend and I noticed that beef was relatively expensive compared to pork. After inquiring, we discovered that Romania’s historical association with the Ottoman Empire led to high taxes on beef due to Islamic dietary restrictions. Consequently, beef imports became more common, resulting in fewer local cattle farmers. The Sober Food Culture of the Netherlands In the Netherlands, there is a unique perspective on food known as “nuchter.” This concept can be described as having an objective and emotionless view, prioritizing efficiency over taste. The Dutch food culture, often characterized by the “AGV” or “PVM” dinner (Potatoes, Veggies, and Meat), is a result of historical circumstances, including times of scarcity such as the Dutch Famine during World War II. Quantity has often taken precedence over quality in this context. The Influence of Culture Culture, in its essence, is a culmination of historical events and factors that shape specific traits, including food preferences1. The type of food enjoyed in a particular country is just one aspect of its broader cultural identity. Each country is unique due to a combination of factors such as geography, historical events, and societal customs. The examples I shared merely scratch the surface of the intricate connections between history, culture, and food. I encourage you, as the reader, to embark on your own travel adventures and explore these fascinating relationships firsthand. In conclusion, my love for traveling stems from the desire to explore diverse cultures, with food being a significant element of that exploration. Through my experiences, I have come to appreciate the influence of history, poverty, religion, I am in no way a anthropologist or have studied history, it is however a view I have created by experience. &amp;#8617;</summary></entry><entry><title type="html">A secret BOM tool used for my PCB assembly</title><link href="https://shiko.nl/electronics/pcb_graduation/" rel="alternate" type="text/html" title="A secret BOM tool used for my PCB assembly" /><published>2023-05-29T00:00:00+02:00</published><updated>2023-05-29T00:00:00+02:00</updated><id>https://shiko.nl/electronics/pcb_graduation</id><content type="html" xml:base="https://shiko.nl/electronics/pcb_graduation/">&lt;h1 id=&quot;exploring-pcb-design-tools-a-interactive-bom-tool-for-eagle&quot;&gt;Exploring PCB Design Tools: A interactive BOM tool for EAGLE&lt;/h1&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When it comes to PCB design, choosing the right software tool is crucial for efficiency and productivity. In this blog post, I will share my experience with two popular tools: EAGLE from Autodesk and Altium Designer. Having initially used EAGLE for my master’s thesis, I later had the opportunity to work with Altium Designer, and I can confidently say that Altium is a superior tool overall. However, EAGLE does have its advantages, such as its affordability, ease of learning, and user-friendly interface.&lt;/p&gt;

&lt;h2 id=&quot;my-msc-graduation-thesis&quot;&gt;My MSc. Graduation Thesis&lt;/h2&gt;
&lt;p&gt;During my thesis, I embarked on the design of a PCB to integrate custom readout electronics. The main objective was to convert a current signal into a voltage signal using a transimpedance amplifier. Additionally, I included a voltage source to ensure signal stability, as well as precise voltage control for the target device. The complexity of the design required several chips to be soldered onto the board. While time constraints and the intricate nature of the project led me to outsource the assembly, I did explore an  &lt;a href=&quot;https://github.com/openscopeproject/InteractiveHtmlBom&quot;&gt;open-source tool&lt;/a&gt;.  as a contingency plan.&lt;/p&gt;

&lt;h2 id=&quot;assembly-by-professionals&quot;&gt;Assembly by Professionals&lt;/h2&gt;
&lt;p&gt;Although I ultimately didn’t have to assemble the PCB myself, I still prepared the Interactive BOM tool and made it available online. I informed the professional assemblers about its existence, and they gladly utilized it. Their positive feedback and ease of use with the tool reinforced its effectiveness. Feedback from field experts is invaluable, and their satisfaction with the tool validated my decision to incorporate it. However, it’s worth noting that the tool is not compatible with Altium, but this limitation didn’t hinder my most recent projects as they were relatively less complex than my graduation project.&lt;/p&gt;

&lt;h2 id=&quot;the-power-of-exploration&quot;&gt;The Power of Exploration&lt;/h2&gt;
&lt;p&gt;I encourage you to explore the&lt;a href=&quot;https://shiko.nl/bom/&quot;&gt;&lt;strong&gt;secret BOM tool&lt;/strong&gt;&lt;/a&gt; yourself. It can be a valuable asset in your PCB design journey, particularly for projects similar in complexity to my graduation thesis. Although Altium Designer emerged as my preferred tool due to its comprehensive features, don’t underestimate the advantages that EAGLE offers in terms of cost-effectiveness, ease of learning, and user-friendliness. Each tool has its place depending on the project’s requirements.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Choosing the right PCB design tool is a crucial decision, impacting the efficiency and success of your projects. Through my experience with EAGLE and Altium Designer, I discovered the strengths and weaknesses of each tool. While Altium Designer proves to be a superior choice overall, EAGLE’s affordability and ease of learning make it a viable option for certain projects. Additionally, I highlighted the &lt;a href=&quot;https://github.com/openscopeproject/InteractiveHtmlBom&quot;&gt;open-source tool&lt;/a&gt; and its benefits, urging you to explore its potential for your own endeavors. Remember, every project is unique, so choose wisely and adapt to the tools that best suit your specific needs.&lt;/p&gt;

&lt;p&gt;Feel free to try out the &lt;a href=&quot;https://shiko.nl/bom/&quot;&gt;&lt;strong&gt;tool here&lt;/strong&gt;&lt;/a&gt; and embark on your own exploration of PCB design!&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="electronics" /><category term="PCB" /><category term="graduation" /><summary type="html">Exploring PCB Design Tools: A interactive BOM tool for EAGLE Introduction When it comes to PCB design, choosing the right software tool is crucial for efficiency and productivity. In this blog post, I will share my experience with two popular tools: EAGLE from Autodesk and Altium Designer. Having initially used EAGLE for my master’s thesis, I later had the opportunity to work with Altium Designer, and I can confidently say that Altium is a superior tool overall. However, EAGLE does have its advantages, such as its affordability, ease of learning, and user-friendly interface. My MSc. Graduation Thesis During my thesis, I embarked on the design of a PCB to integrate custom readout electronics. The main objective was to convert a current signal into a voltage signal using a transimpedance amplifier. Additionally, I included a voltage source to ensure signal stability, as well as precise voltage control for the target device. The complexity of the design required several chips to be soldered onto the board. While time constraints and the intricate nature of the project led me to outsource the assembly, I did explore an open-source tool. as a contingency plan. Assembly by Professionals Although I ultimately didn’t have to assemble the PCB myself, I still prepared the Interactive BOM tool and made it available online. I informed the professional assemblers about its existence, and they gladly utilized it. Their positive feedback and ease of use with the tool reinforced its effectiveness. Feedback from field experts is invaluable, and their satisfaction with the tool validated my decision to incorporate it. However, it’s worth noting that the tool is not compatible with Altium, but this limitation didn’t hinder my most recent projects as they were relatively less complex than my graduation project. The Power of Exploration I encourage you to explore thesecret BOM tool yourself. It can be a valuable asset in your PCB design journey, particularly for projects similar in complexity to my graduation thesis. Although Altium Designer emerged as my preferred tool due to its comprehensive features, don’t underestimate the advantages that EAGLE offers in terms of cost-effectiveness, ease of learning, and user-friendliness. Each tool has its place depending on the project’s requirements. Conclusion Choosing the right PCB design tool is a crucial decision, impacting the efficiency and success of your projects. Through my experience with EAGLE and Altium Designer, I discovered the strengths and weaknesses of each tool. While Altium Designer proves to be a superior choice overall, EAGLE’s affordability and ease of learning make it a viable option for certain projects. Additionally, I highlighted the open-source tool and its benefits, urging you to explore its potential for your own endeavors. Remember, every project is unique, so choose wisely and adapt to the tools that best suit your specific needs. Feel free to try out the tool here and embark on your own exploration of PCB design!</summary></entry><entry><title type="html">RGB lights even on your stairs</title><link href="https://shiko.nl/programming/pressure_RGB_stairs/" rel="alternate" type="text/html" title="RGB lights even on your stairs" /><published>2022-05-22T00:00:00+02:00</published><updated>2022-05-22T00:00:00+02:00</updated><id>https://shiko.nl/programming/pressure_RGB_stairs</id><content type="html" xml:base="https://shiko.nl/programming/pressure_RGB_stairs/">&lt;h1 id=&quot;rgb-on-stairs-that-is-boring&quot;&gt;RGB on stairs that is boring&lt;/h1&gt;

&lt;p&gt;Is what you might think. But let’s spice it up a bit by making them user aware. Okay, let’s put a motion sensor nearby and this activated the lights when you are in the vicinity. Well… no it can be even cooler, how about making it stair-step-aware?!&lt;/p&gt;

&lt;h2 id=&quot;stair-step-awareness&quot;&gt;stair-step-awareness&lt;/h2&gt;

&lt;p&gt;Wouldn’t it be cool if the stairs would light up exactly on your current step? I think it would be and that is exactly the goal of today. Towards this, I designed a custom system that adds some flair to your stairs! It consists of three main components,&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Addressable RGB led-strip&lt;/li&gt;
  &lt;li&gt;Step presence detection&lt;/li&gt;
  &lt;li&gt;Controller&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&quot;addressable-rgb-led-strip&quot;&gt;Addressable RGB led-strip&lt;/h1&gt;

&lt;p&gt;To look cool I didn’t opt for just a white led-strip but an RGB one that is individually addressable, because we want to do cool things with it… Such as stair-step awareness (SSA). Our stairs have 12 steps each of approximate length of 1 meter. This means I need 12 meters of LED strip, luckily due to mass fabrication these can be and are quite cheap, but what should one choose? It depends on a few factors but I mainly concentrated on,&lt;/p&gt;

&lt;h2 id=&quot;voltage-drop-on-an-rgb-led-strip-and-my-choice&quot;&gt;Voltage drop on an RGB led-strip and my choice&lt;/h2&gt;

&lt;p&gt;The main factor to consider here is that at 12 meters in length the voltage drop can be quite significant, hence choosing LED chips that work with a higher operation voltage are more convenient to use. Why is this? Consider for similar LED efficiency (the same amount of energy is required to give a certain amount of light), the power is constant then for LED with higher operation voltage less current is required. Then by Ohm’s law \(V_{drop} = I^2R\) is lower for LEDs with higher operating voltage. This means the LED strip will not become dim over its length. Additionally, one could opt to connect the power source at regular intervals on the total LED strip, however this requires additional wire and floor planning. Therefore, it is better to choose a more suitable LED strip. The most common options are, 5 V and 12 V. Since 5 V is the lowest option here, 12 V is preferred because of the lower voltage drop. This made my choice to fall on the WS2811 the higher voltage brother of the WS2812B which is common in &lt;a href=&quot;https://hackaday.io/projects?tag=ws2812&quot;&gt;many projects&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;brightness-trueness-of-color-and-power-consumption-etc&quot;&gt;Brightness, trueness of color and power consumption, etc.&lt;/h2&gt;

&lt;p&gt;In the end there are &lt;a href=&quot;https://www.waveformlighting.com/led-strip-lights&quot;&gt;many more factors&lt;/a&gt; to consider. Some LED strips are better in some of the factors but in the end the &lt;a href=&quot;https://www.aliexpress.com/item/2000165819.html?spm=a2g0o.productlist.0.0.3fe63e9dY7W9gl&amp;amp;algo_pvid=7d31ef6a-f8cb-4983-8fcb-fd3d554a5a0c&amp;amp;algo_exp_id=7d31ef6a-f8cb-4983-8fcb-fd3d554a5a0c-0&amp;amp;pdp_ext_f=%7B%22sku_id%22%3A%2210000000953811077%22%7D&amp;amp;pdp_npi=2%40dis%21EUR%21%2114.66%21%21%21%21%21%402100bdf116538193387373611e2f44%2110000000953811077%21sea&quot;&gt;WS2811&lt;/a&gt; was the cheapest per meter and suited my needs. Some alternatives are, &lt;a href=&quot;https://www.aliexpress.com/item/32476317187.html&quot;&gt;SK6812&lt;/a&gt; and &lt;a href=&quot;https://www.aliexpress.com/item/32322326979.html&quot;&gt;APA102&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;step-presence-detection&quot;&gt;Step presence detection&lt;/h1&gt;

&lt;p&gt;To achieve the SSA, we need to somehow know when someone is on a step. Let’s consider some mechanics and imagine you are standing on a stair-step. When you step on a step, your foot is on the step. This induces pressure but also your foot is physically there. I came up with the two following mechanisms to detect the presence on a certain step.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Light-blocking&lt;/li&gt;
  &lt;li&gt;Pressure&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;light-blocking&quot;&gt;Light-blocking&lt;/h2&gt;

&lt;p&gt;When your foot is on the step it is physically there. This means if there is a light sensor it would be blocked off by your foot. This could be sideways or in the step itself as depicted here. &lt;img src=&quot;C:\Users\draakje\AppData\Roaming\Typora\typora-user-images\image-20220522161715073.png&quot; alt=&quot;image-20220522161715073&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These methods have a few cons, for &lt;em&gt;sideways&lt;/em&gt; you would require an additional light source. For &lt;em&gt;in&lt;/em&gt; you can use your natural lighting such as diffuse light, however, this would not work very well at night. Also, the intensity can vary over the day so you would need some automatic calibration to distinguish between low light or ‘is being stepped on’ conditions.&lt;/p&gt;

&lt;h2 id=&quot;pressure&quot;&gt;Pressure&lt;/h2&gt;

&lt;p&gt;Since the light-blocking method is possible. I deemed it too complex to do, so I thought of an alternative. Where I use pressure sensors and with this in my I went ahead and found two types of pressure sensors&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Strain-gauge&lt;/li&gt;
  &lt;li&gt;Thin-film pressure sensor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The strain gauge required me to glue them on the backside of the stairs. In that way, it can bend together with the wood and hence measure presence. This required a lot of glue and modifications so I did not prefer this.&lt;/p&gt;

&lt;p&gt;Whereas thin films can be placed very unobtrusively onto the stair-step. Since we were planning to use stair nosings profiles, they could be perfectly hidden underneath them. These sensors have huge resistance and once it compresses the resistance decreases. So the controller needs to read the resistance in some smart way to detect presence. More on that below…&lt;/p&gt;

&lt;h1 id=&quot;controller&quot;&gt;Controller&lt;/h1&gt;

&lt;p&gt;In this project I needed two main functionalities to be achieved by this controller.&lt;/p&gt;

&lt;p&gt;1) The controller knows which step I am standing on, SSA
2) Correct color is sent to the RGB led-strip&lt;/p&gt;

&lt;p&gt;One of the most known microcontrollers is the Arduino since it is so popular a lot of libraries are created for it and this makes my life a lot easier. Less time spent on re-inventing the wheel is more time to do cool projects. But, not only software is needed but also hardware since we are using real physical sensors.&lt;/p&gt;

&lt;h2 id=&quot;thin-film-pressure-sensor-readout&quot;&gt;Thin-film pressure sensor readout&lt;/h2&gt;

&lt;p&gt;The circuitry that is used is very simple, there are two states. Either you are on the step or you are not on the step. These two states can be distinguished by looking at the resistance of the sensor, this means we need to distinguish between high and low resistance states. As mentioned before the resistance decreases if it is compressed hence it makes sense to choose everything below a certain threshold, that is the &lt;em&gt;on the step&lt;/em&gt; state and everything above is &lt;em&gt;not on the step&lt;/em&gt; state.&lt;/p&gt;

&lt;h2 id=&quot;comparator-to-sense-the-state&quot;&gt;Comparator to sense the state&lt;/h2&gt;

&lt;p&gt;To achieve state readout we can use a comparator, which can be explained with the following &lt;a href=&quot;https://en.wikipedia.org/wiki/Comparator&quot;&gt;image&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://upload.wikimedia.org/wikipedia/commons/f/f5/Opamp105.gif&quot; alt=&quot;Comparator - Wikipedia&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It basically does what I explained before, if you use a 5 V supply it makes sense to set \(V_{REF} = 2.5V\) and thus choose the resistors equally. However, since I have 12 steps I have to do this 12x?&lt;/p&gt;

&lt;h2 id=&quot;time-multiplexing-is-less-hardware&quot;&gt;Time multiplexing is less hardware&lt;/h2&gt;

&lt;p&gt;Since OPAMPs are not very cheap ~ €1,- a piece and the number of control pins on the Arduino is limited I chose to do time multiplexing. In time-multiplexing I make use of the fact that I don’t need to constantly know whether someone is &lt;em&gt;on the step&lt;/em&gt;, but only once in a while. The Arduino’s clock frequency is 32 MHz so I could read out my stairs at MHz speeds which means million times per second. But I don’t need to know it that often hence I could easily divide this by 12 and read all 12 steps with time multiplexing.&lt;/p&gt;

&lt;h2 id=&quot;electronics-schema-for-led-controller-pcb&quot;&gt;Electronics schema for LED controller PCB&lt;/h2&gt;

&lt;p&gt;To achieve all of the hardware functionalities I created a small PCB that neatly packs everything together, with its schema below&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/shikon/cloudimg/master/typora/image-20220529124522662.png&quot; alt=&quot;image-20220529124522662&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A few things to note from left to right and up to down.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I used a &lt;a href=&quot;https://www.aliexpress.com/item/4000016331112.html&quot;&gt;DC-DC converter&lt;/a&gt; so I could use a single supply for LED and my controller PCB.&lt;/li&gt;
  &lt;li&gt;Some external connector to connect to the LED strip and also control a relay if needed&lt;/li&gt;
  &lt;li&gt;Time multiplexing where W0-W11 are the pressure sensors and IC1 is the multiplexing chip&lt;/li&gt;
  &lt;li&gt;Biasing for the comparator circuit achieved with OPAMP
    &lt;ul&gt;
      &lt;li&gt;R4 series resistor to prevent short circuits of the weight sensor&lt;/li&gt;
      &lt;li&gt;R1 is a pulldown resistor&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;The Arduino, pro mini because it is &lt;a href=&quot;https://www.aliexpress.com/item/1005003822653479.htm&quot;&gt;cheap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;---
**NOTE**
The labels with same name means they are connected together
---
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;arduino-code-for-controller&quot;&gt;Arduino code for controller&lt;/h2&gt;

&lt;p&gt;To make everything work together of course code is needed. So the software has these functionalities, when the presence is detected it turns all the lights on to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CRGB on(122,122,122)&lt;/code&gt;. The step above your current step will be set to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CRGB stepColordown(255,0,0)&lt;/code&gt; and the step below your current step will be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CRGB stepColorup(0,255,0)&lt;/code&gt;. After it turns on and the presence is gone, it will fade to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CRGB bgColor( 122, 122, 122)&lt;/code&gt; and after 15 seconds it will fade to no light &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CRGB off(0,0,0)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The main things to change to your needs is in the first few lines,&lt;/p&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#include &amp;lt;Arduino.h&amp;gt;
#include &quot;FastLED.h&quot;
#include &quot;Mux.h&quot;
&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;using&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;admux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;// Hardware settings CHANGE THIS&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#define NUM_LEDS 16 //number leds per step (16)
#define NUM_STEPS 12 //number of steps
#define STOP_TIME 15000 //after this time turn it off
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;//init mux object&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;Mux&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;mux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;admux&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Pin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;A0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;PinType&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Analog&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Pinset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// need admux:: because pin doubly defined&lt;/span&gt;

&lt;span class=&quot;cp&quot;&gt;#define detectPin 14 // pin connected to output of comparator/OPAMP
#define enPin 17 //pin for relay
#define DATA_PIN 9 //pin that is connected to led strip
&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#define TOT_LEDS NUM_LEDS*NUM_STEPS
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;//time keepers&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;leds&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;TOT_LEDS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;//set your colors&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;stepColordown&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;stepColorup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;122&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;122&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;122&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//white&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;122&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;122&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;122&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// NO CHANGES NEEDED BELOW except color order in setup()&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;detected&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;channelDetected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;// Helper function that blends one uint8_t toward another by a given amount&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;nblendU8TowardU8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;scale8_video&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;scale8_video&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;delta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;// Blend one CRGB color toward another CRGB color by a given amount.&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// Blending is linear, and done in the RGB color space.&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// This function modifies 'cur' in place.&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fadeLedtoColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;nblendU8TowardU8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;red&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;   &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;red&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;   &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;nblendU8TowardU8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;nblendU8TowardU8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;blue&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;blue&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;amount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cur&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// Fade an entire array of CRGBs toward a given background color by a given amount&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// This function modifies the pixel array in place.&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fadeSteptoColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;uint16_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;L&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint16_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fadeAmount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// N is number of leds per step to fade&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fadeLedtoColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;L&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fadeAmount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fadeAllstepsTocolor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;L&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint16_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint8_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fadeAmount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint16_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;noofsteps&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint16_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;noofsteps&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fadeSteptoColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;L&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;N&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fadeAmount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;readChannel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chnl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int16_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;n&quot;&gt;mux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chnl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;delay&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//don't need full speed let it settle&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mux&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Potentiometer at channel &quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chnl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot; is at &quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;double&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1023&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;%%&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;511&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chnl&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;changeSteplight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NUM_LEDS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;leds&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NUM_LEDS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;setAllotherSteps&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mystep&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;myColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mystep&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;NUM_STEPS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;changeSteplight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;myColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;changeSteplight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;j&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;myColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;setAllsteps&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mystep&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CRGB&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;myColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NUM_STEPS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;changeSteplight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;myColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;enPin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detectPin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;INPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;pinMode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LED_BUILTIN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OUTPUT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LED_BUILTIN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LOW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;enPin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LOW&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;FastLED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;addLeds&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WS2811&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DATA_PIN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;BRG&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;leds&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TOT_LEDS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//set your color order for me BRG&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NUM_STEPS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;channelDetected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;readChannel&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channelDetected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;digitalWrite&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LED_BUILTIN&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;HIGH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//T&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;detected&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;start&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;millis&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;setAllsteps&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;changeSteplight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stepColordown&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;channelDetected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;changeSteplight&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stepColorup&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//note that if channeldetected = 1, i = 0&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;detected&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fadeAllstepsTocolor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;leds&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NUM_LEDS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bgColor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;millis&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;start&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;STOP_TIME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;){&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// keep lights on for set time&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;detected&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;//FastLED.clear(); // hard turn off&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fadeAllstepsTocolor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;leds&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NUM_LEDS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;off&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;NUM_STEPS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;//soft turn off&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;FastLED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; 
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;final-words&quot;&gt;Final words&lt;/h1&gt;

&lt;p&gt;Well enjoy that all :)&lt;/p&gt;

&lt;h1 id=&quot;learnings-and-references&quot;&gt;Learnings and references&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;Consider not only the number stair-step but also one more which is even to the floor.&lt;/li&gt;
  &lt;li&gt;It is a pain to make so many long connectors, 12 sensors…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://gist.github.com/kriegsman/d0a5ed3c8f38c64adcb4837dafb6e690&quot;&gt;The blending function&lt;/a&gt;&lt;/p&gt;</content><author><name>Lan Hu</name></author><category term="programming" /><category term="Smart Home" /><category term="Arduino" /><summary type="html">RGB on stairs that is boring Is what you might think. But let’s spice it up a bit by making them user aware. Okay, let’s put a motion sensor nearby and this activated the lights when you are in the vicinity. Well… no it can be even cooler, how about making it stair-step-aware?! stair-step-awareness Wouldn’t it be cool if the stairs would light up exactly on your current step? I think it would be and that is exactly the goal of today. Towards this, I designed a custom system that adds some flair to your stairs! It consists of three main components, Addressable RGB led-strip Step presence detection Controller Addressable RGB led-strip To look cool I didn’t opt for just a white led-strip but an RGB one that is individually addressable, because we want to do cool things with it… Such as stair-step awareness (SSA). Our stairs have 12 steps each of approximate length of 1 meter. This means I need 12 meters of LED strip, luckily due to mass fabrication these can be and are quite cheap, but what should one choose? It depends on a few factors but I mainly concentrated on, Voltage drop on an RGB led-strip and my choice The main factor to consider here is that at 12 meters in length the voltage drop can be quite significant, hence choosing LED chips that work with a higher operation voltage are more convenient to use. Why is this? Consider for similar LED efficiency (the same amount of energy is required to give a certain amount of light), the power is constant then for LED with higher operation voltage less current is required. Then by Ohm’s law \(V_{drop} = I^2R\) is lower for LEDs with higher operating voltage. This means the LED strip will not become dim over its length. Additionally, one could opt to connect the power source at regular intervals on the total LED strip, however this requires additional wire and floor planning. Therefore, it is better to choose a more suitable LED strip. The most common options are, 5 V and 12 V. Since 5 V is the lowest option here, 12 V is preferred because of the lower voltage drop. This made my choice to fall on the WS2811 the higher voltage brother of the WS2812B which is common in many projects. Brightness, trueness of color and power consumption, etc. In the end there are many more factors to consider. Some LED strips are better in some of the factors but in the end the WS2811 was the cheapest per meter and suited my needs. Some alternatives are, SK6812 and APA102. Step presence detection To achieve the SSA, we need to somehow know when someone is on a step. Let’s consider some mechanics and imagine you are standing on a stair-step. When you step on a step, your foot is on the step. This induces pressure but also your foot is physically there. I came up with the two following mechanisms to detect the presence on a certain step. Light-blocking Pressure Light-blocking When your foot is on the step it is physically there. This means if there is a light sensor it would be blocked off by your foot. This could be sideways or in the step itself as depicted here. These methods have a few cons, for sideways you would require an additional light source. For in you can use your natural lighting such as diffuse light, however, this would not work very well at night. Also, the intensity can vary over the day so you would need some automatic calibration to distinguish between low light or ‘is being stepped on’ conditions. Pressure Since the light-blocking method is possible. I deemed it too complex to do, so I thought of an alternative. Where I use pressure sensors and with this in my I went ahead and found two types of pressure sensors Strain-gauge Thin-film pressure sensor The strain gauge required me to glue them on the backside of the stairs. In that way, it can bend together with the wood and hence measure presence. This required a lot of glue and modifications so I did not prefer this. Whereas thin films can be placed very unobtrusively onto the stair-step. Since we were planning to use stair nosings profiles, they could be perfectly hidden underneath them. These sensors have huge resistance and once it compresses the resistance decreases. So the controller needs to read the resistance in some smart way to detect presence. More on that below… Controller In this project I needed two main functionalities to be achieved by this controller. 1) The controller knows which step I am standing on, SSA 2) Correct color is sent to the RGB led-strip One of the most known microcontrollers is the Arduino since it is so popular a lot of libraries are created for it and this makes my life a lot easier. Less time spent on re-inventing the wheel is more time to do cool projects. But, not only software is needed but also hardware since we are using real physical sensors. Thin-film pressure sensor readout The circuitry that is used is very simple, there are two states. Either you are on the step or you are not on the step. These two states can be distinguished by looking at the resistance of the sensor, this means we need to distinguish between high and low resistance states. As mentioned before the resistance decreases if it is compressed hence it makes sense to choose everything below a certain threshold, that is the on the step state and everything above is not on the step state. Comparator to sense the state To achieve state readout we can use a comparator, which can be explained with the following image, It basically does what I explained before, if you use a 5 V supply it makes sense to set \(V_{REF} = 2.5V\) and thus choose the resistors equally. However, since I have 12 steps I have to do this 12x? Time multiplexing is less hardware Since OPAMPs are not very cheap ~ €1,- a piece and the number of control pins on the Arduino is limited I chose to do time multiplexing. In time-multiplexing I make use of the fact that I don’t need to constantly know whether someone is on the step, but only once in a while. The Arduino’s clock frequency is 32 MHz so I could read out my stairs at MHz speeds which means million times per second. But I don’t need to know it that often hence I could easily divide this by 12 and read all 12 steps with time multiplexing. Electronics schema for LED controller PCB To achieve all of the hardware functionalities I created a small PCB that neatly packs everything together, with its schema below A few things to note from left to right and up to down. I used a DC-DC converter so I could use a single supply for LED and my controller PCB. Some external connector to connect to the LED strip and also control a relay if needed Time multiplexing where W0-W11 are the pressure sensors and IC1 is the multiplexing chip Biasing for the comparator circuit achieved with OPAMP R4 series resistor to prevent short circuits of the weight sensor R1 is a pulldown resistor The Arduino, pro mini because it is cheap --- **NOTE** The labels with same name means they are connected together --- Arduino code for controller To make everything work together of course code is needed. So the software has these functionalities, when the presence is detected it turns all the lights on to CRGB on(122,122,122). The step above your current step will be set to CRGB stepColordown(255,0,0) and the step below your current step will be CRGB stepColorup(0,255,0). After it turns on and the presence is gone, it will fade to CRGB bgColor( 122, 122, 122) and after 15 seconds it will fade to no light CRGB off(0,0,0). The main things to change to your needs is in the first few lines, #include &amp;lt;Arduino.h&amp;gt; #include &quot;FastLED.h&quot; #include &quot;Mux.h&quot; using namespace admux; // Hardware settings CHANGE THIS #define NUM_LEDS 16 //number leds per step (16) #define NUM_STEPS 12 //number of steps #define STOP_TIME 15000 //after this time turn it off //init mux object Mux mux(admux::Pin(A0, INPUT, PinType::Analog), Pinset(2,3,4,5)); // need admux:: because pin doubly defined #define detectPin 14 // pin connected to output of comparator/OPAMP #define enPin 17 //pin for relay #define DATA_PIN 9 //pin that is connected to led strip #define TOT_LEDS NUM_LEDS*NUM_STEPS //time keepers unsigned long start=0, stop=0; CRGB leds[TOT_LEDS]; //set your colors CRGB stepColordown(255,0,0); CRGB stepColorup(0,255,0); CRGB bgColor( 122, 122, 122); //white CRGB off(0,0,0); CRGB on(122,122,122); // NO CHANGES NEEDED BELOW except color order in setup() int detected=0; int channelDetected = 0; // Helper function that blends one uint8_t toward another by a given amount void nblendU8TowardU8( uint8_t&amp;amp; cur, const uint8_t target, uint8_t amount) { if( cur == target) return; if( cur &amp;lt; target ) { uint8_t delta = target - cur; delta = scale8_video( delta, amount); cur += delta; } else { uint8_t delta = cur - target; delta = scale8_video( delta, amount); cur -= delta; } } // Blend one CRGB color toward another CRGB color by a given amount. // Blending is linear, and done in the RGB color space. // This function modifies 'cur' in place. CRGB fadeLedtoColor( CRGB&amp;amp; cur, const CRGB&amp;amp; target, uint8_t amount) { nblendU8TowardU8( cur.red, target.red, amount); nblendU8TowardU8( cur.green, target.green, amount); nblendU8TowardU8( cur.blue, target.blue, amount); return cur; } // Fade an entire array of CRGBs toward a given background color by a given amount // This function modifies the pixel array in place. void fadeSteptoColor(uint16_t step, CRGB* L, uint16_t N, const CRGB&amp;amp; bgColor, uint8_t fadeAmount){ for(unsigned int j = 0; j &amp;lt; N; j++){ // N is number of leds per step to fade fadeLedtoColor(L[step*N+j], bgColor, fadeAmount); } } void fadeAllstepsTocolor(CRGB* L, uint16_t N, const CRGB&amp;amp; bgColor, uint8_t fadeAmount, uint16_t noofsteps){ for( uint16_t i = 0; i &amp;lt; noofsteps; i++){ fadeSteptoColor(i, L, N, bgColor, fadeAmount); } } int readChannel(int chnl){ int16_t data; mux.channel(chnl); delay(5); //don't need full speed let it settle data = mux.read(); Serial.print(&quot;Potentiometer at channel &quot;); Serial.print(chnl); Serial.print(&quot; is at &quot;); Serial.print((double) (data) * 100 / 1023); Serial.println(&quot;%%&quot;); if(data &amp;gt; 511) return chnl + 1; else return 0; } void changeSteplight(int step, CRGB&amp;amp; color){ for(int j = 0; j &amp;lt; NUM_LEDS; j++){ leds[step*NUM_LEDS+j] = color; } } void setAllotherSteps(int mystep, CRGB myColor){ int i = mystep; for(unsigned int j = 1; i+j&amp;lt;NUM_STEPS; j++){ changeSteplight(i+j, myColor); } for(unsigned int j = 1; i-j+1&amp;gt;0; j++){ changeSteplight(i-j,myColor); } } void setAllsteps(int mystep, CRGB myColor){ for (int i = 0; i &amp;lt; NUM_STEPS; i++){ changeSteplight(i, myColor); } } void setup() { pinMode(enPin, OUTPUT); pinMode(detectPin, INPUT); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); digitalWrite(enPin, LOW); FastLED.addLeds&amp;lt;WS2811, DATA_PIN, BRG&amp;gt;(leds, TOT_LEDS); //set your color order for me BRG } void loop() { for (int i = 0; i &amp;lt; NUM_STEPS; i++){ channelDetected = readChannel(i); if(channelDetected){ digitalWrite(LED_BUILTIN, HIGH); //T detected++; start = millis(); setAllsteps(i, bgColor); changeSteplight(i,stepColordown); if(channelDetected &amp;gt; 2) changeSteplight(i-2,stepColorup); //note that if channeldetected = 1, i = 0 } } if(detected){ fadeAllstepsTocolor(leds, NUM_LEDS, bgColor, 1, 5); } if(millis() - start &amp;gt; STOP_TIME){ // keep lights on for set time detected = 0; //FastLED.clear(); // hard turn off fadeAllstepsTocolor(leds, NUM_LEDS, off, 1, NUM_STEPS); //soft turn off } FastLED.show(); } Final words Well enjoy that all :) Learnings and references Consider not only the number stair-step but also one more which is even to the floor. It is a pain to make so many long connectors, 12 sensors… The blending function</summary></entry></feed>