Let’s Code ESP8266: The SI7021 Temperature and Humidity Sensor

The SiliconLabs SI7021 is a very popular sensor for measuring temperature and humidity. It uses the I2C bus and is easily accessed from the ESP9266 or ESP32. Some breakout boards use different variants of the chip, namely the measurement Specialties HTU21D or even the Sensirion SHT21. These chips are more or less compatible to one another, but some don’t implement all the commands. However temperature and humidity can be used on all those chips. Today I’ll walk you through a tutorial of accessing the SI7021 via the Arduino Wire library.

Upgrading The VGA RAMDAC

The VGA cards for historic PCs have an analog video output that is being driven by a so called RAMDAC. This is an IC that converts the digital framebuffer information into analog VGA signals. Modern PCs don’t need this anymore since they use digital output (like HDMI and DisplayPort) and digital displays. But our old retro machines use this to drive either an LCD or a traditional CRT. There are good RAMDACs out there and bad ones. One problem some RAMDACs have is noise when the VGA palette registers are written. This happens in games and demos for example when the screen is fading in or out. I found a supplier of new old stock INMOS RAMDACs, and I hope that replacing the cheap ADV RAMDAC on my Tseng ET4000 will remove the noise that I am seeing.

Let’s Code MS DOS 0x16: Fire Exclamation Mark!

It’s summer and it’s hot. And what better to code than another classic demo scene effect: the ubiquitous fire. But we will do it with a twist. The naive implementation is slow, very slow. Especially on older 286-486 computers. We will optimize the actual algorithm a bit and utilize a hidden VGA function that gives us scaling in the X-direction by a factor of 4 for free.