Quentin Santos

Obsessed with computers since 2002

I have always been fascinated with computers. Nowadays, I mostly use Rust, but I started out with a QuickBASIC book from the local library when I was in elementary school. I also got a Master in computer science from ENSL and a PhD in cryptography from ENS.

Contact me at qsantos@qantos.fr.

Latest articles

  • The RP2350 is too fast
    I had a few hours of “fun” figuring out why my RP2350 could use my ILI9341 display, but not the ST7796 one. To be more specific, displaying stuff with the first display worked flawlessly, while the ST7796 would display a single frame correctly, and then glitch. Depending on the exact code running, the glitches would include: Changing completely unrelated code would change the exact glitch, most likely because it slightl y changed the timing at which the display code ran, making diagnostic more difficult. On the opposite, just displaying the output of time_us_64() help significantly, since I could immediately tell… Read more: The RP2350 is too fast
  • Asynchronous I²C in C
    Context I have a RP2350 and an SSD1306 module. I want to use the former to display stuff on the latter. The most common modules are connected over I²C: The simple way to use such a display looks like this: Basically, to refresh the SSD1306, we need to send an I²C message with a command (first byte) and data (the rest of the buffer). The command 0x40 is “Set Display Start Line”. Specifically, 0x40 means “draw from line 0”, 0x41 means “draw from line 1”, and so on until 0x7F which means “draw from line 63”. Each byte that follows… Read more: Asynchronous I²C in C
  • (No) alternatives to the RP2350-USB-A
    Following my adventures (part 1, part 2) with the RP2350-USB-A, I took another look at the alternatives. Specifically, I am looking for a cheap dev board with two full USB ports (1 device, 1 host), that could be easily programmable, and would be production-ready for hobbyist projects (if you’re a professional, you’ll just manufacture your own board). First, I want to clarify that strikes out the boards that expose UART-over-USB as one of the two USB ports, such as the Arduino Due, or the ESP32-S3-DevKitC. In these cases, the MCU (MicroController Unit) only supports USB, but also has UART for… Read more: (No) alternatives to the RP2350-USB-A
  • The RP2350-USB-A cannot see devices disconnect
    What’s better for New Year’s Eve than debugging some USB hardware issues? In my previous article, I explained how the design of Waveshare’s RP2350-USB-A can make the USB-A host connector incapable of detecting certain USB devices, and of any hot-plugging. The solution was to desolder R13, a pull-up resistor on D+: With this fix, my RP2350-USB-A was able to detect when I connected a keyboard to the USB-A port, and to receive keypresses. However, I noticed another issue: when disconnecting the keyboard, the board would not detect that it happened. When connecting the keyboard again, it would often not work… Read more: The RP2350-USB-A cannot see devices disconnect
  • Fixing the RP2350-USB-A not working as USB host
    tl;dr: you need to desolder R13, the resistor closest the pin 6 of the board, as indicated by the red arrow in the cover picture of this article Context I am currently toying around with emulating a USB device. However, I also wanted to be able to plug a keyboard in, so I needed a second USB port. Since I am not at the stage where I would design my own boards, I only use dev boards. I found exactly what I needed for my purposes with the RP2350-USB-A: It is still relatively cheap at ~5 €, features a USB-C port… Read more: Fixing the RP2350-USB-A not working as USB host

All articles