Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

Quentin Santos

Quentin Santos
Overanalyzing a minor quirk of Espressif’s reset circuit The mystery In the previous article, I briefly mentioned a slight difference between the ESP-Prog...
6 days ago
7
6 days ago
The mystery In the previous article, I briefly mentioned a slight difference between the ESP-Prog and the reproduced circuit, when it comes to EN: Focusing on EN, it looks like the voltage level goes back to 3.3V much faster on the ESP-Prog than on the breadboard circuit. The...
Quentin Santos
Transistors in reverse and redundant circuits The mystery In the previous article, I briefly mentioned a slight difference between the ESP-Prog...
6 days ago
7
6 days ago
The mystery In the previous article, I briefly mentioned a slight difference between the ESP-Prog and the reproduced circuit, when it comes to EN: Focusing on EN, it looks like the voltage level goes back to 3.3V much faster on the ESP-Prog than on the breadboard circuit. The...
Quentin Santos
The missing part of Espressif’s reset circuit In the previous article, we peeked at the reset circuit of ESP-Prog with an oscilloscope, and...
a week ago
114
a week ago
In the previous article, we peeked at the reset circuit of ESP-Prog with an oscilloscope, and reproduced it with basic components. We observed that it did not behave quite as expected. In this article, we’ll look into the missing pieces. An incomplete circuit For a hint, we’ll...
Quentin Santos
Reproducing Espressif’s reset circuit I recently discussed how Espressif implements automatic reset, a feature that lets users easily...
a week ago
13
a week ago
I recently discussed how Espressif implements automatic reset, a feature that lets users easily update the code on an Espressif microcontroller. There are actually more subtleties than a quick look would suggest, and I spent a fair bit of time investigating them. This article and...
Quentin Santos
The ESP32-S2 reset pin RST defaults to high This is an addendum to the article about Espressif’s automatic reset. In that...
a month ago
22
a month ago
RST defaults to high This is an addendum to the article about Espressif’s automatic reset. In that article, we observed the effect of the RST pin on the ESP32-S2-Saola-1RI board: I skipped over this topic quickly, so I am now taking the time to explain how the RST pin manages to...
Quentin Santos
Talking to Espressif’s Bootloader In my article about Espressif’s Automatic Reset, I briefly showed UART output from the bootloader,...
a month ago
27
a month ago
In my article about Espressif’s Automatic Reset, I briefly showed UART output from the bootloader, but did not go in more details. In this article, I want to go just a bit further, by showing some two-way interactions. We’ll use the initial basic “real” UART setup. Note that I...
Quentin Santos
Espressif’s Automatic Reset In previous articles, we saw how to use “real” UART, and looked into the trick used by Arduino to...
2 months ago
28
2 months ago
In previous articles, we saw how to use “real” UART, and looked into the trick used by Arduino to automatically reset boards when uploading firmware. Today, we’ll look into how Espressif does something similar, using even more tricks. “Real” UART on the Saola As usual, let’s...
Quentin Santos
Linux always toggles DTR & RTS In my previous article, I explained how Arduino makes the life of its users easier by automatically...
2 months ago
15
2 months ago
In my previous article, I explained how Arduino makes the life of its users easier by automatically resetting the board when the UART pin DTR (or RTS) transitions from electrically high to low. This exploits the fact that this transition happens automatically when someone or...
Quentin Santos
Arduino’s Automatic Reset As mentioned in my previous article, I am planning to publish a long-form article on UART. I am...
2 months ago
16
2 months ago
As mentioned in my previous article, I am planning to publish a long-form article on UART. I am doing a series of shorter articles to lay the groundwork. This is one of these “short” articles; this one about how Arduino uses UART. Of course, I still went way too deep in this...
Quentin Santos
How to use “real” UART I recently went into a deep dive on “UART” and will publish a much longer article on the topic. This...
3 months ago
34
3 months ago
I recently went into a deep dive on “UART” and will publish a much longer article on the topic. This is just a recap of the basics to help put things in context. Many tutorials focus on using UART over USB, which adds many layers of abstraction, hiding what it actually is. Here,...
Quentin Santos
IndexedDB is Weird Why? Well: The IndexedDB API is callback-based. With JavaScript being single-threaded, a blocking...
4 months ago
36
4 months ago
Why? Well: The IndexedDB API is callback-based. With JavaScript being single-threaded, a blocking API would mean fully blocking the page, render and basic user interaction included, while the request is being processed. Although this is apparently good-enough for JSON.parse(),...
Quentin Santos
Rust Gotcha: last() on DoubleEndedIterator tl;dr: don’t call last() on a DoubleEndedIterator How do you efficiently get the last part of a...
6 months ago
66
6 months ago
tl;dr: don’t call last() on a DoubleEndedIterator How do you efficiently get the last part of a space-separated string in Rust? It will be obvious to some, but the obvious answer of s.split(' ').last() is wrong. The mistake is easy to make; I encountered it in a recent MR I...
Quentin Santos
Rust Strings for C Programmers This article will quickly explain the Rust types [T; N], &[T; N], &[T], Vec<T>, &Vec<T> with C code,...
7 months ago
77
7 months ago
This article will quickly explain the Rust types [T; N], &[T; N], &[T], Vec<T>, &Vec<T> with C code, and what the str, &str, String, OsString and CString add. Arrays and Slices Rust C [T; N] (array)Example: [i32; 100]Allocated on the stack T[N]Example: int[100]Allocated on the...
Quentin Santos
You can move !Unpin Although I am now mostly comfortable with Rust, some concepts still elude me. One of them is the...
7 months ago
74
7 months ago
Although I am now mostly comfortable with Rust, some concepts still elude me. One of them is the exact meaning of Unpin. The documentation says: The documentation of Unpin says: Types that do not require any pinning guarantees. Where pinning is described as: From this, you could...
Quentin Santos
On-Die ECC This article will be pretty short. When I built my new desktop computer, I considered ECC memory....
8 months ago
47
8 months ago
This article will be pretty short. When I built my new desktop computer, I considered ECC memory. So, I looked around for DDR5 ECC memory. Surprisingly, DDR5 memory sticks that mentioned ECC was not significantly more expensive than other DDR5 memory sticks. Sometimes, they were...
Quentin Santos
AMD CPUs, CCDs and CCXs When researching for my article about Linux pipes and for other upcoming articles, I had to get more...
9 months ago
45
9 months ago
When researching for my article about Linux pipes and for other upcoming articles, I had to get more familiar with how my CPU works. I thought I knew quite a bit, with L1/L2/L3 caches, ISA extensions, branch predictors, register renaming and so much more. But, it turns out, even...
Quentin Santos
Upgrading to Debian Trixie I had been running Bookworm for quite a while. It has now been stable for more than a year. In other...
9 months ago
27
9 months ago
I had been running Bookworm for quite a while. It has now been stable for more than a year. In other words, Trixie has now been testing for more than a year, and will most likely become the new stable in less than a year. In the past, I encountered a few surprises with unstable …...
Quentin Santos
Beware Rust Buffering This article is about a small pitfall I stumbled uopen Rust. Since it took me relatively too much...
9 months ago
25
9 months ago
This article is about a small pitfall I stumbled uopen Rust. Since it took me relatively too much time to figure it out, I made this article as a reminder. Also, there is a post scriptum, also about buffers, but not about Rust. While writing my article about Linux pipes, I needed...
Quentin Santos
Interactive Flamegraphs In my latest article, I made heavy use of flamegraphs. To makes things clearer, flamegraphs are...
10 months ago
28
10 months ago
In my latest article, I made heavy use of flamegraphs. To makes things clearer, flamegraphs are visualizations of how much time is spent in each function in a program: ./write –write_with_vmsplice –huge_page –busy_loop | ./read –read_with_splice –busy_loop Profiling of ./write...
Quentin Santos
Linux Pipes are Slow Errata: Some significant mistakes were pointed out to me by email by Brendan MacDonell. I have...
10 months ago
23
10 months ago
Errata: Some significant mistakes were pointed out to me by email by Brendan MacDonell. I have included errata, but the results might not be reliable, so take this with pinch of salt! vmsplice is too fast Some programs use a particular system call “vmsplice” to move data faster...
Quentin Santos
Git Super-Power: The Three-Way Merge tl;dr: git config --global merge.conflictstyle diff3 In my previous post, I preached about the one...
a year ago
23
a year ago
tl;dr: git config --global merge.conflictstyle diff3 In my previous post, I preached about the one true way to merge MRs in a git workflow. The answer is obviously to rebase for conflicts, and a merge commit for posterity of the MR. What I did not talk about is that there is a...
Quentin Santos
Merging Responsibly tl;dr: I do not like merging the main branch into feature branches, and I do not like squashing...
a year ago
26
a year ago
tl;dr: I do not like merging the main branch into feature branches, and I do not like squashing MR/PRs git commit git has emerged as the obvious choice for SCCS (Source Code Control System). The consensus is that it is unambiguously better than the previous standard, SVN. There...
Quentin Santos
ViHN: Vim for Hacker News tl;dr: I made ViHN to read Hacker News without having to move my hands away from the keyboard. It’s...
a year ago
26
a year ago
tl;dr: I made ViHN to read Hacker News without having to move my hands away from the keyboard. It’s freely available on Firefox and Chrome. This is about yet another Hacker News extension. But other people with my obsession for killing the mouse might enjoy it. Most of the...