2023
2024
Today’s Progress: #100DaysOfHardware
Day 1
I’ve set up a @docusaurus
site to gather my knowledge over there.
Thoughts: It’s nice to get started with a clear state of mind, with some goals in mind of what I want to achieve. I have the base building blocks, I’m looking forward to see what I can make out of them.
Today’s Progress: #100DaysOfHardware
Day 2
📚 I spent time revisiting the basics from what I’ve learned in Electronics class in high school
🧠 I added a Theory tutorial section
🩹 I embedded a plain simple Resistor Band Color calculator into the site
🛠️ I revisited how to use the multimeter
Thoughts: I spent way too much time implementing that calculator, but now I have better sections, and I can add any react code from now on.
Today’s Progress: #100DaysOfHardware
Day 3
📚 I finished going through my inventory and added a page for all items
🖋️ I started to look into how to connect the eink display to raspberry pi
💾 I collected and reviewed some demo source code for testing it out later
Thoughts: It was a loooong day
Today’s Progress: #100DaysOfHardware
Day 4
🗺️ I’ve started to put together a simpler project to practice how I’ll work through my ideas
🚦 This project is just going to check status info from the network and light up LEDs accordingly
🛹 I’ve sketched the code and planned the circuit diagram
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 5
🚨 As a practice I’ve blinked a LED again to get astarted
👋 I connected the PIR for movement detection, blinked the lights on that
🙄 I connected the eInk display to refresh data based on movement, but sadly I see many people were struggling as well
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 6
🔧 At last I figured out the problem with the e-ink Display. The wiring was too loose
🍞 I added an extra layer on the breadboard between the 2 sets of wires to fix them together
🖼️ I played around with the PIL library to display text and images
Thoughts: I had an idea that it could be a problem, and so it was. It works flawlessly. 2 of my wires broke in the process, and I set up remote development with raspberry VSCode remote SSH.
Today’s Progress: #100DaysOfHardware
Day 7
📏 My app’ll have a display, and I’ll debug image positions a lot. I don’t want to develop on hardware
🤓 I’ve set up a dev env. I’ve configured ssh with X11 forwarding, rsync for code sharing
🎁 VScode remote plugin doesn’t give enough benefits yet
Thoughts: I thought VSCode remote will be the way, but I like X11 way more. I collect my knowledge and might even post a blog about my setup
Today’s Progress: #100DaysOfHardware
Day 8
⏭️ Today I wanted to learn more about what could be the next steps of a prototype
👨🎓 I refreshed my high school knowledge on how to draw the circuit, what is a PCB protoboard, what is a PCB
👨🔧 Looked into how to solder, what equipment do I need for it
Thoughts: bunh of reading, some knowledge management
Today’s Progress: #100DaysOfHardware
Day 9
🍓 Today I’ve tried out my Raspberry PI Pico W
🐍 I set up micropython on it via CLI from my rpi4. Later I used Thonny via X Window for development
🔋 I loaded the code into the device and ran it from a battery pack
🤓 I’m sooo excited!🤩
Thoughts: WOOOOW
Today’s Progress: #100DaysOfHardware
Day 10
☀️ Summer is here, and I have to prepare for the heat
🌪️ I’ve dusted off my micro:bit and put together a circuit to have a button-controlled fan
🌊 Finally (after ~3 years) I tested my submersible water pumps, to see if all of them work fine with 5V
Thoughts: I was happy to see that the pumps work. 3V is not enough for them/
Today’s Progress: #100DaysOfHardware
Day 11
🙄 I looked for inspiration for useful projects around home
🐰 I’d be happy to build a a scheduled pet feeder with refill notifications
🍽️ I looked into how our LED strips work, whether I could utilize them as an extra light source in the kitchen
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 12
🚦 Got a green light for the kitchen LED strip project
📋 I planned the final layout
🛒 I ordered the missing pieces 🤩
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 13
🛒 I got the ordered pieces
👨🔧 I joined the wires while properly sealing them
🎉 I connected the led strip to the prepared cables
📼 I glued it to its final location
It may be plain simple but it’s my first usable home improvement project so far 🎊
Thoughts:
Today’s Progress: #DaysOfHardware
Day 14
🏍️ I wired up the servo and my 5V motor to the raspberry and ran them from external battery
🌉 I started to look into how the L9110 motor driver module works
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 15
👨🏻💻 Finally I set up the pi HAT development board with my raspberry pi pico
🔀 The cable is twisted compared to what I expected
✨ I hope it’ll make prototyping easier
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 16
🚨 I’ve tried the mini PIR motion detector (U1 HW-740)
👨🏻💻 I can use the same code and it works from 3V
⌚ It’s duration and sensitivity is not configurable, it’s slower and had less range
🏃🏻♂️ For my motion sensing use-case it seems fine
Thoughts:
Today’s Progress: #100DaysOfHardware
day 17
I started to work on my custom picture frame that’ll have LED background lighting, it can have motion sensors and a light sensor.
My custom black and white images will come into life by the backlighting
(Inspired by Hwang Seontae)
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 18
👨🔧 Finally I had some time to tinker a bit
💡 I’ve tried out my PioLED display
🍓 My raspberry dev environment needed some upgrades
📄 I’ve spent some timpe updating my docs to make my life easier later
Thoughts:
Today’s Progress: #100DaysOfHardware
day 19
New batch of parts have arrived, now I can dive into sound playing and radiofreq 🎉
Though I did not check properly the connection types of the parts so I got some SMD parts, that are not immediately suitable for my breadboard.
I’ve learned my lesson
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 20
I’ve played around with my epaper module with raspberry pi pico to display quotes from a shuffled list
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 21
Today I tried out my joystick component with my raspberry pi pico.
I got the right values without an external ADC.
Thoughts:
Today’s Progress: #100DaysOfCode
Day 22
I’ve tried out my new DFPlayer mini with my raspberry pi pico H to play music from an SD card
Shoutout and thanks for mannbro github user for the easy to use library he put together
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 23
🎨 I got started with prototype drawing, to make my experiments easier to reproduce
🗃️ What I love in the opensource community is that if something is not available, there could be someone who uploaded it somewhere just to make the components available
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 24
💻 I spinned up an mqtt server and started to learn (best) practices using it for IoT projects
🏁 We assembled our team for the upcoming hackathon where we’ll build an AI powered cloud connected gadget.
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 25
🐍 I’ve installed micropython on the ESP32
🎛️ I set up a proper dev environment for it
🎲 I can send random data to the MQTT broker
Thoughts:
Today’s Progress: #100DaysOfHardware
day 26
🐍 Tried out my new nodemcu ESP-32S with micropython
🌈 Connected an RGB led with PWM
🙋♂️ Handled button interruptions
#100DaysOfCode
#cablePorn
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 27
📺 I’ve added an LCD screen to yesterday’s code
🗣️ Dove deeper into I2C communication protocol
Thoughts:
Today’s Progress: #DaysOfHardware
Day 28
☸️ Today I connected a joystick to control 2 servos
⚡ By accident I learned more about analog to digital conversion. I had an issue with ESP32 not seeing the whole range of the joystick, apparently by default it only reads a fraction of the whole range
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 29
📶 We connected all i2c sensors to the microcontroller, validated their addresses and started to get data out of them
🧭 We connected a gps sensor through UART and got surprised about the bad quality of the signal inside the building
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 30
👷 I’ve improved my pipeline to only upload code that has changes. I use ampy with my relatively large (more than 2 files) codebase
🌪️ I also added a smoke test to see whether the code starts up properly and reaches the end of the 1st iteration
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 31
I’m starting to get desperate and demotivated by the readings of this sensor so much that I switched from esp to arduino to test other libs
I have no idea whether it works correctly or my calibration is bad
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 32
🔧 Turns out my problem was with the calibration and smoothing the data
♾️ After I used slow infinity shaped rotation, to make sure I get proper values for the calibration, North appeared where I expected
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 33
🔦 Today I’ve tried out different photoresistors on how well they would fit my usage needs
🌞 I struggled with which pins shall I use. When I tried Pin 4 it made the internal led bright as the sun
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 34
🚘 I haven’t found a micropython driver for INA3221 that works with my ESP32 via I2C, so I started to port one from arduino
📚 I dove deeper into its datasheet and progressed slowly not to fry it unintentionally
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 35
🧸 I had some fun with my new toys
💊 I created an animated text scrolling through the famous quote of Morpheus
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 36
🏁 We participated in an internal IoT hackathon
🌻 We made a custom sun tracker solar panel with sensors and a data pipeline to measure its efficiency
📚 Stack: Micropython, Telegraf, Influxdb v2, Grafana, React.js, 3D Printing
🥉 We got 3rd place 🎉
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 37
🪖 Today made my very first soldered circuit
💡 Of course it’s a LED!
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 38
🛵 Today I tried out my new L298N, to see how it drives my motors.
🐍 Sadly I had problems with Thonny even in this simple configuration… it resetted my ESP32 after few iterations, I guess I have a problem with the circuit or some hardware
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 39
🪖 I’ve tried out a different soldering iron. I’m pretty happy with the heating speed and the control I have over temperature
🧑🏭 I’ve fixed my previous mistakes in the dev board
🧑🍳 I still need a lot of practice, I possibly cooked another component
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 40
📌 I practiced soldering on pin connectors
😊 I’m not completely ashamed of my connections. Though I think I still use too much tin
⌚ I start to get used to the time it takes to heat everything up
✒️ I’m afraid I’m close to ruining my soldering tip
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 41
💡I tried out a relay to act as a switch for circuits with higher voltage
🛗 I elevated it using a spacer, it’s better than when the wires control its location
🤦 I used 9V for this 12V bulb because I could not find my 12V adapter
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 42
🌃 I got some tin last night for trial
🌡️Now I completely get why people say it’s harder to work with lead-free tin, I see almost 80°C diff in the effective temperature
🦿 I soldered legs to different components. This is what I’ve been waiting for! 🎉
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 43
🌿 Today I decided to start a small smart garden project
💪 I felt more confident than ever, only used 2 new components out of 6
🔎 I took extra time to double-check the wire connections, not to mess up any component
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 44
📝 I drafted an IoT device to collect temperature and humidity data based on ESP32 D1 mini, DHT-22 and BME-280
🧰 I don’t have all my cables nearby so the POC is pretty basic
📜 Its micropython code sends data via WiFi through REST to influx/grafana
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 45
Finally I figured out how to reliably update python code on my ESP32 from script
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 46
📻 I played a bit with wireless transmission
🖇️ I tried a few paths to get data from this sensor. Now it connects to the device and polls the data
📢 It might broadcast its values without connecting, but I haven’t yet figured it out if that’s true
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 47
🔋I was able to read data from BLE without connecting to the sensor
📖 I figured out how to read the BLE advertisement data from the sensor
🤖 I made a poc with D1Mini
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 48
⚒️ I created a prototype from my pcb design
🪖 I soldered the wires and connected the relevant parts
🔔 It passed the continuity test
🤩 I’m proud of how it turned out! Even if it has its bad parts, looking forward to doing this more
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 49
🔀 I revisited the parallel programming concepts in micropython
📻 I updated my ble advertisement collector code to pass the data properly with atomic operations in the shared memory
🤖 PoC is put into action and collects the data into influxdbv2
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 50
🛹 I soldered 2 more boards
🛣️ I played around a little to make the wiring nicer while keeping it compatible with the first device
☯️ I really loved how I organized the steps so that I didn’t need to go back and forth
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 51
🧙 I installed the devices, and put them into battle mode to monitor the rooms
📃 I documented the process so I’ll remember the next time I need to do this.
☑️ I added a checklist not to miss a step
🏷️ Printed “pretty” labels for identification
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 52
🏁 Today I participated in the company hackathon. I decided to make a device.
🖼️ We made smart picture frame that generates an image from voice input
⚙️ We used ESP32, micropython, and a chainlit assistant
🥇 We got first place with it
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 53
🛠️ I got my new Dupont connector crimper, started to learn how to create my own cables
🪞 I took a look back at how far I’ve come with this challenge
✨ I updated my progress chart, and changed the API-based approach
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 54
🦈 I read a tip, that it helps with protecting sensitive parts if we add a layer on the clips of the helping hand
🚉 I’ve tried out shrink tubes for a valid usecase
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 55
🚠 I tried out creating my own dupont cables
📈 At first I created a single connection, then levelled up to 4 pins
🔔 They passed the continuity test
📏 I need to measure more precisely next time
📹 I love how many teaching material is available
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 56
🤖 I got started with Arduino programming via Arduino Uno R4
🔌 The plug and make kit is more fun than I thought
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 57
🎨 Today I’ve tried out my GC9A01 round TFT display with my ESP32
👋 I was able to display an example code via SPI interface
🫗 Sadly the code I used run into memory allocation issues
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 58
🏎️ I created a @monkeytype
speedometer with @arduino
Plug and Make kit
🧩 UNO R4 collects the speed info from MQTT then prints into the led matrix and calculates a percentage in Modulino Pixels
🐢 80wpm = 100%
⏩ The video is 3x faster than reality
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 59
🌡️Nowadays the weather is pretty unpredictable
⏰ I aim to overview the weather forecast from my bed upon waking up
📐 I put together a simple layout for the 5 day forecast
☁️ I collect data from #OpenWeatherMap
API once a day
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 60
⚒️ I continued my weather display
🔍 I needed to simplify the welcome screen. The screen is too small to have a quick overview upon waking up
✍️ I changed the rendering to support different fonts
🔁 Struggled a bit with rotating the screen
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 61
✨ I updated my MVP code, I simplified it and added my deploy script for simpler updates
🔤 I switched to a monospace a font, kudos to those who know which one
🐛 I hunted request errors and layout issues
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 62
📐 I feel more confident about working with the framebuffer, I calculate the positions with less magic number positioning
🐰 The 0.0 in this monospace font looks like a bunny
⏰ I made the code aware whether it woke up from deep sleep
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 63
🔮 I added support for multiple layouts
🎨 I figured out how to render png images, need to enhance them for monochrome display e. g. pouring rain
🛠️ Optimized the code to fit in memory
💤 I started to work on btn handler & to wake up from deep sleep
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 64
🎨 I’ve updated the images for monochrome display (see rain)
⏰ I added a button for waking up the device to get fresh data
🕒 I updated the screens to have 3-hour, 6-hour, daily views
🔤 I played with font sizes to fit more info into the screen
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 65
🪲 Over the weekend I collected all my modules that missed legs and soldered them on
🦀 I tried out a smaller helping hand
🪖 I reached a milestone with soldering. It was my dream to add pins to my pico W. Finally I was able to do it effortlessly
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 66
📐 I revisited the use of the multimeter
🚥 I tried out smaller lamps and switches
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 67
🎮 I experimented with joystick controller connection via bluetooth
🤖 I tried out esp32 and arduino uno with different tutorials
👷 I haven’t yet been able to make it function as I imagined
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 68
🐍 I built and flashed my first micropython firmeware from scratch
🐋 I understand now why there is no dockerized env
🔧 I added the modification I found yesterday
🪫I experimented with bluetooth simple and bluetooth le
💡 It still does not click
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 69
🎁 The custom cases have arrived
🪖 I soldered the last protoboard
🚢 We can deploy the prototypes for home automation
📚 I reassured myself tat documentation and proper marking are keys to success
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 70
🧲 I tried out my new digital hall effect sensor CC6201TO TO-92S
🔦I connected a modulino led to show if I’ve visited a sensor with the magnet
🔘 I used modulino button to reset the lights
🍟 I tried it with Arduino UNO R4 and ESP D1 mini as well
Thoughts:
Today’s Progress: #100DaysOfHardware
Day 71
🪖 I soldered a few more D1 minis
🖼️ I’m experimenting with different desk layouts
❌ Using a breadboard as helping hand is not a good idea, but it looked good for the picture
Thoughts: