Showing only posts by Liang-Yu Chen. Show all posts.

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.

Breadboard Hexadecimal Display

It always bothers be to connect a row of LEDs and current limiting resistors on a breadboard. Therefore, I came up with the idea of making a display module to display 8-bit buses on a breadboard. Also, sometimes it makes life a lot easier if the bus data is displayed in hexadecimal. In the end, I decided to make a 8-bit hexadecimal display that will fit on a breadboard.

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.

page 1 | older articles »