Quentin Santos

Obsessed with computers since 2002

Image

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 [email protected].

Latest articles

  • 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
  • The serial TX path seems to be down
    The previous series of articles about UART was initially motivated by an error I was getting when using the ESP-Prog. I could have jumped straight to the conclusion, but I took the time to really understand what was going on, and we are finally reaching the end of this investigation. Connecting to “real” UART again I already used the ESP-Prog in previous articles, but this part was written before any of them, so it goes back to some fundamentals. The main change from the first article is that we will be using the ESP-Prog (~13 € on AliExpress) instead of any… Read more: The serial TX path seems to be down

All articles