Blog


How much current can the 74HC595 shift register provide?

The 74HC595 is one of the most common logic ICs out there, especially in the Arduino community. It is often utilised to drive multiple LEDs with serial input. A project of mine used it drive multiple LEDs. I found that the LED brightness reduces when too many of them are on. This made me wonder how much current can this IC actually supply. I measured the IV curve of the output of the 74HC595 last year. But I found that the measurement was kind of flawed. Therefore, I measured it again in this blog and documented the details in my setup.

How to un-brick an STM32?

I accidentally bricked my STM32 when uploading compiled binaries to it. I used a Raspberry Pi Pico 2 and the official CMSIS-DAP firmware with OpenOCD. After some messing around, I found the way to un-brick it and how to prevent bricking.

Driving a stepper motor with STM32's timer peripheral.

I was working on controlling some stepper motors on a robot. I wanted to control them with an STM32. The STM32 is controlled by a Raspberry Pi 5 with SPI. To generate the periodic signal for the stepper driver, I used the timer peripheral on the STM32. I this blog, I will go through the basics of the timer peripheral and how I set it up for this usage.

STM32, Arduino environment, ST7735 screen. Bugs and workarounds.

I was working with the ST7735 screen in a project at NTHUEE 822 Maker Space. We were controlling the screen with an STM32F103C8T6 Blue Pill and Adafruit's ST7735 & ST7789 library. And we ran into a very interesting bug, which was caused by the value of "pins" in the STM32 Arduino core. In this article, I will explain the cause of the bug and the workaround for current version of the libraries.

Testing the driving capability of the 74HC595 shift register

The 74HC595 shift register is one of the most popular 74 series IC these days. It is often used to convert serial data into parallel and drive LEDs. A project of mine used it drive multiple LEDs. This made me wonder how much current can this IC actually supply. Therefore, I did some testing on the driving capability of the 74HC595 shift register.

Fixing blurry VSCode, Microsoft Edge on Ubuntu with fractional scaling

New laptops with 2880x1800 OLED screens look great. However, I prefer setting the fractional scaling to 175% to fit more content on the screen. Currently on Ubuntu(22.04 & 24.04 in my case), the fractional scaling process cause some applications to become blurry. In this article, I will show you the workarounds to get VSCode and Microsoft Edge look sharp again. However, there are still other apps that I unfortunately don't have a fix(Kicad, Rawtherapee to name a few). Also, I'll show you how to modify the laucher .desktop file so that the flags we added later will be applied when you click the icon in the laucher.

Posted by Liang-Yu Chen on in Blog. updated

Operating the ADS1115 ADC in continuous mode with Arduino

ADS1115 is a 16-bit delta-sigma analogue to digital converter(ADC) designed by Texas Instruments. It has a maximum sampling rate of 860 samples per second. However, the maximum sampling rate can only be achieved in continuous mode. This article provides an Arduino example of how to interface the ADS1115 in continuous mode.

SPICE simulation with Kicad

Kicad is an open-source electronics design suite, mainly used in PCB design. It also has built-in Ngspice simulator to simulator circuit behaviours. In this article, we will go through the basic setup of SPICE simulation in Kicad and how to find extra SPICE models.

TMAG5170 3D Hall-effect sensor

TMAG5170 is a 3-axis precision Hall effect sensor designed by Texas Instruments. On top of the Hall effect sensor, there is a temperature sensor and angle calculator integrated in the IC. The functions of the IC can be interfaced with SPI. There are two variant of this IC, A1 and A2, the two variants differ in measuring range.