You are browsing as a guest. Sign up (or log in) to start making projects!

louisd

@louisd

Joined July 11th, 2026

  • 19Devlogs
  • 2Projects
  • 1Ships
  • 0Votes
Hi there! I'm Louis from France. I just got started on electronics and have been coding since a young age. My latest passion project, Tiny Jarvis, has been but an idea for over a year! So happy to be finally able to work on it, now that school's finished.
Open comments for this post
Reposted by @louisd

1h 1m 12s logged

Upgraded the cooking helper + critical bug fixes

  • Translated the recipes to english - will add more later
  • Fixed a critical issue with initializing and importing different python files, now main.pyhas the real control of initialization thanks to a listener.init_listener() function.
  • Added a speak(['Ingredients']) in main.py so Tiny_Jarvis will speak the ingredients of the chosen recipe out loud
  • Switched from hardcoding random.randint(0,33) to random.choice(list) way simpler and easier to read, and created a format_cooking_sentence(recipe_object) function so that main.py doesn’t have to manage that, way better
  • Future changes I might implement: apparently Raspberry Pi OS manages audio through the Advanced Linux Sound Architecture (ALSA) which is responsible for the hardware drivers, the audio routing and control, and the low-level utilities such as the commands I often use, such as alsamixer, aplay and arecord
  • So when two python libraries that need to either record audio or output audio call ALSA to do so, it can lead to conflicts.
  • In this case, sounddevice and pyaudio which are both wrappers of the C library PortAudio. So a future change would be only using sounddevice for example, or vice versa.
  • This has another hidden advantage: removing a possibly finnicky dependency and making the whole process smoother, since compiling C on a Raspberry Pi can be difficult at times.
0
1
40
Open comments for this post

1h 1m 12s logged

Upgraded the cooking helper + critical bug fixes

  • Translated the recipes to english - will add more later
  • Fixed a critical issue with initializing and importing different python files, now main.pyhas the real control of initialization thanks to a listener.init_listener() function.
  • Added a speak(['Ingredients']) in main.py so Tiny_Jarvis will speak the ingredients of the chosen recipe out loud
  • Switched from hardcoding random.randint(0,33) to random.choice(list) way simpler and easier to read, and created a format_cooking_sentence(recipe_object) function so that main.py doesn’t have to manage that, way better
  • Future changes I might implement: apparently Raspberry Pi OS manages audio through the Advanced Linux Sound Architecture (ALSA) which is responsible for the hardware drivers, the audio routing and control, and the low-level utilities such as the commands I often use, such as alsamixer, aplay and arecord
  • So when two python libraries that need to either record audio or output audio call ALSA to do so, it can lead to conflicts.
  • In this case, sounddevice and pyaudio which are both wrappers of the C library PortAudio. So a future change would be only using sounddevice for example, or vice versa.
  • This has another hidden advantage: removing a possibly finnicky dependency and making the whole process smoother, since compiling C on a Raspberry Pi can be difficult at times.
0
1
40
Open comments for this post
Reposted by @louisd

25m 59s logged

Added a cool silkscreen logo

  • Made an entry for the 23rd of July in JOURNAL.md
  • Found and added this logo from The Noun Project.
  • Really cool website btw. This icon clicked with me bc it really represents what Jarvis (or AI chatbots are in general) is, that being SIMULATED intelligence, and makes us remember that’s its all just complex math equations and not real intellect.
  • Fixed some DFM issues, and rerouted a lot of traces, some were going over the mounting holes
  • Tried to make more space for the logo but broke the whole thing and had to Ctrl+z my way out of there (help)
  • Looks cool no?
0
1
42
Open comments for this post

25m 59s logged

Added a cool silkscreen logo

  • Made an entry for the 23rd of July in JOURNAL.md
  • Found and added this logo from The Noun Project.
  • Really cool website btw. This icon clicked with me bc it really represents what Jarvis (or AI chatbots are in general) is, that being SIMULATED intelligence, and makes us remember that’s its all just complex math equations and not real intellect.
  • Fixed some DFM issues, and rerouted a lot of traces, some were going over the mounting holes
  • Tried to make more space for the logo but broke the whole thing and had to Ctrl+z my way out of there (help)
  • Looks cool no?
0
1
42
Open comments for this post
Reposted by @louisd

51m 50s logged

PCB + updates on the cooking feature

  • Wrote an entry in JOURNAL.md for today’s work
  • Worked a lot on the PCB in EasyEDA Pro, mostly clearance issues but also a lot of struggling with the GND pour.
  • Updates on the cooking feature:
    • Thought it would be cool to be able to show the ingredients on the OLED screen
    • So updated the AssistantDisplay class and created a neat function to show text using the python library luma.oled
    • Problem is it would go off screen, so I implemented the built-intextwrap module and it can now display 5 lines.
    • Will get to translating everything to english later, promised
  • Anyways if anyone has any recommendations for the PCB don’t hesitate to leave a comment!
0
1
38
Open comments for this post
Reposted by @louisd

1h 23m 27s logged

Added a cooking recipes feature for no reason

  • Created a cooking_helper.py in a cooking/ folder
  • OCR’d half of a cooking book with help from Gemini and put everything in a beautiful recipes.csv
  • Used the csv.DictReader object to access the info and organize it into a list, very useful.
  • Updated main.py so that when the user’s prompt starts with “Cooking”, it takes a random recipe from the csv file (using the random.randint(a, b) function) and returns a formatted sentence with all the info for cooking that recipe.
  • Made this cos I’m really bad at cooking and it could also benefit others, you never know.
2
1
39
Open comments for this post

51m 50s logged

PCB + updates on the cooking feature

  • Wrote an entry in JOURNAL.md for today’s work
  • Worked a lot on the PCB in EasyEDA Pro, mostly clearance issues but also a lot of struggling with the GND pour.
  • Updates on the cooking feature:
    • Thought it would be cool to be able to show the ingredients on the OLED screen
    • So updated the AssistantDisplay class and created a neat function to show text using the python library luma.oled
    • Problem is it would go off screen, so I implemented the built-intextwrap module and it can now display 5 lines.
    • Will get to translating everything to english later, promised
  • Anyways if anyone has any recommendations for the PCB don’t hesitate to leave a comment!
0
1
38
Open comments for this post

1h 23m 27s logged

Added a cooking recipes feature for no reason

  • Created a cooking_helper.py in a cooking/ folder
  • OCR’d half of a cooking book with help from Gemini and put everything in a beautiful recipes.csv
  • Used the csv.DictReader object to access the info and organize it into a list, very useful.
  • Updated main.py so that when the user’s prompt starts with “Cooking”, it takes a random recipe from the csv file (using the random.randint(a, b) function) and returns a formatted sentence with all the info for cooking that recipe.
  • Made this cos I’m really bad at cooking and it could also benefit others, you never know.
2
1
39
Open comments for this post

46m 10s logged

Tour de France Slack bot devlog #1

  • Followed the tutorial step-by-step
  • Initially wanted to do a Jarvis bot, but turns out one already exits, so I had to redo the whole thing
  • Learnt about Parse.bot and used it to find some Tour de France APIs. Really cool bot ngl
  • I might add other features if needed
0
0
4
Open comments for this post
Reposted by @louisd

24m 14s logged

Schematic and PCB tweaking

  • Made an entry for today in JOURNAL.md
  • I’ll keep this short, but basically: huge issues with my schematic, electrically incorrect for the most part, some useless components, which then translated into the actual PCB, having to rewire traces manually, making tons of mistakes along the way and spending waay too much time repairing them.
  • Still waiting for the funding request to be approved before I can order these.
  • Huge thanks to M-Mrk in the Slack electronics channel for all his help, he saved me
0
1
53
Open comments for this post

24m 14s logged

Schematic and PCB tweaking

  • Made an entry for today in JOURNAL.md
  • I’ll keep this short, but basically: huge issues with my schematic, electrically incorrect for the most part, some useless components, which then translated into the actual PCB, having to rewire traces manually, making tons of mistakes along the way and spending waay too much time repairing them.
  • Still waiting for the funding request to be approved before I can order these.
  • Huge thanks to M-Mrk in the Slack electronics channel for all his help, he saved me
0
1
53
Open comments for this post
Reposted by @louisd

1h 0m 39s logged

Error handling time! + bug and dependency fixing

  • Now that I have a clean slate to test my project on, I ran python main.py and somwhow got three errors in a row.
  • Spent an hour adding trys and except Exception as e everywhere to prevent this.
  • Now debugging is way easier and more user-friendly.
  • Fixed some bugs such as ssd1106 not being a real OLED screen part name
  • As well as gpiozero missing the rpi-lgpio library, which needs system-wide packages swig and liblgpio-dev so yh dependency hell.
  • Almost everything should be error-proof now. I tested it, and no errors popped up, just friendly reminders that I2C wasn’t enabled, or that my buttons weren’t detected, or no screen.
  • Update install.sh with these changes, now works perfectly.
0
1
64
Open comments for this post

1h 0m 39s logged

Error handling time! + bug and dependency fixing

  • Now that I have a clean slate to test my project on, I ran python main.py and somwhow got three errors in a row.
  • Spent an hour adding trys and except Exception as e everywhere to prevent this.
  • Now debugging is way easier and more user-friendly.
  • Fixed some bugs such as ssd1106 not being a real OLED screen part name
  • As well as gpiozero missing the rpi-lgpio library, which needs system-wide packages swig and liblgpio-dev so yh dependency hell.
  • Almost everything should be error-proof now. I tested it, and no errors popped up, just friendly reminders that I2C wasn’t enabled, or that my buttons weren’t detected, or no screen.
  • Update install.sh with these changes, now works perfectly.
0
1
64
Open comments for this post
Reposted by @louisd

1h 14m 23s logged

RPI5 OS Switch + Tiny_Jarvis easier to put in place

  • Worst day in my life. Tried to flash a Raspberry Pi OS Lite (64-bit) on the raspberry pi 5 (which btw has an NVMe SSD), and it did NOT go well:
    • First flash using the Imager: didn’t work, nothing happened, the Pi started speaking in freaking morse code
    • Spent an hour trying to decode that morse code according to documentation, thought it was an EEPROM bootloader issue, made a diagnostic card, made a factory reset card, nope.
    • Realized I could plug it through HDMI to my projector; did that: it was asking me for a username.
    • Didn’t have a USB keyboard so couldn’t type it in. Almost threw the Pi out of the window cos I configured all that in the fricking Imager.
    • Realized I was using the Imager from Flathub and not rpi-imager
    • Retried the whole thing with that Imager: still didn’t work.
    • Spent two hours doing the same thing over and over: flashing the card with the Imager, going into the files, editing user-data, cloud-init-ouput.log, etc… realized the Imager wasn’t writing the information in those files but others, booting it up into HDMI, checking the logs, managing to bypass username but not keyboard layout, etc… I EVEN TRIED LEGACY VERSIONS OF THE OS AND CREATING A wpa_supplicant.conf.
    • Atp I was going to crash out but then I checked my rpi-imager version (even though I had updated it) and turns out my laptop just couldn’t get the latest version : it was 1.8.0, not 2.1.0 (the latest one).
    • Downloaded the newest version, ran it, and it worked. I have officially lost faith in humanity.
  • Anyways I read my README.md and decided that it was getting way too complicated (the installation part) so I pasted that whole part into Kimi K3 and he made me a install.sh which is basically fire since you just run
chmod +x install.sh
./install.sh

and the whole system-wide-packages-and-dependencies are all installed in the right order, easily.

  • This is tested and proved (i did it with the newly flashed OS).
0
1
41
Open comments for this post

1h 14m 23s logged

RPI5 OS Switch + Tiny_Jarvis easier to put in place

  • Worst day in my life. Tried to flash a Raspberry Pi OS Lite (64-bit) on the raspberry pi 5 (which btw has an NVMe SSD), and it did NOT go well:
    • First flash using the Imager: didn’t work, nothing happened, the Pi started speaking in freaking morse code
    • Spent an hour trying to decode that morse code according to documentation, thought it was an EEPROM bootloader issue, made a diagnostic card, made a factory reset card, nope.
    • Realized I could plug it through HDMI to my projector; did that: it was asking me for a username.
    • Didn’t have a USB keyboard so couldn’t type it in. Almost threw the Pi out of the window cos I configured all that in the fricking Imager.
    • Realized I was using the Imager from Flathub and not rpi-imager
    • Retried the whole thing with that Imager: still didn’t work.
    • Spent two hours doing the same thing over and over: flashing the card with the Imager, going into the files, editing user-data, cloud-init-ouput.log, etc… realized the Imager wasn’t writing the information in those files but others, booting it up into HDMI, checking the logs, managing to bypass username but not keyboard layout, etc… I EVEN TRIED LEGACY VERSIONS OF THE OS AND CREATING A wpa_supplicant.conf.
    • Atp I was going to crash out but then I checked my rpi-imager version (even though I had updated it) and turns out my laptop just couldn’t get the latest version : it was 1.8.0, not 2.1.0 (the latest one).
    • Downloaded the newest version, ran it, and it worked. I have officially lost faith in humanity.
  • Anyways I read my README.md and decided that it was getting way too complicated (the installation part) so I pasted that whole part into Kimi K3 and he made me a install.sh which is basically fire since you just run
chmod +x install.sh
./install.sh

and the whole system-wide-packages-and-dependencies are all installed in the right order, easily.

  • This is tested and proved (i did it with the newly flashed OS).
0
1
41
Open comments for this post
Reposted by @louisd

1h 2m 29s logged

Major software update + PCB testing

  • Found out yesterday that Ollama is just the whole UI and simplificator of use for the C library llama.cpp
  • And turns out there’s a python wrapper for that library, llama-cpp-python, which has two advantages over Ollama:
    • Faster
    • Way more flexible, we can get every last bit of performance from the rpi5
  • So I updated ai.py with this new feature, there are more settings than Ollama for optimizing performance for CPU-only (4 cores) which is great, however I had to download a .gguf from Hugging Face and accidentally ended up being given access to a repository for the model?! so i can now propose changes to that repo, for some reason…
  • Fixed a typo which would’ve raised a TypeError in main.py
  • Made it so the second button shuts down the Pi safely
  • Wrote another entry in JOURNAL.md, where I soldered and tested the prototype PCBs I ordered from JLCPCB
0
1
28
Open comments for this post

1h 2m 29s logged

Major software update + PCB testing

  • Found out yesterday that Ollama is just the whole UI and simplificator of use for the C library llama.cpp
  • And turns out there’s a python wrapper for that library, llama-cpp-python, which has two advantages over Ollama:
    • Faster
    • Way more flexible, we can get every last bit of performance from the rpi5
  • So I updated ai.py with this new feature, there are more settings than Ollama for optimizing performance for CPU-only (4 cores) which is great, however I had to download a .gguf from Hugging Face and accidentally ended up being given access to a repository for the model?! so i can now propose changes to that repo, for some reason…
  • Fixed a typo which would’ve raised a TypeError in main.py
  • Made it so the second button shuts down the Pi safely
  • Wrote another entry in JOURNAL.md, where I soldered and tested the prototype PCBs I ordered from JLCPCB
0
1
28
Loading more…

Followers

Loading…