Adding Off-Screen Buffer to Serial LCD Display

Since the current Arduino tools do not support in-circuit debugging, you will have to rely heavily on the serial print outs when tracking down those hard-to-find bugs unless you are one of those few elites whose code just works 100%…

Read More →

Using FRAM as Nonvolatile Memory With Arduino

One of the biggest advantages of FRAM (or FeRAM, Ferroelectric RAM) over EEPROM is that FRAM has a much higher write speed and typically can operate at bus speed. This means that no delay instructions are needed when performing write…

Read More →

Interfacing MMA8453Q With Arduino

MMA8453Q is a rather inexpensive accelerometer. It is significantly cheaper than many other 3-axis accelerometers (such as the popular LIS3LV02DL) and yet it offers a reasonably high 10 bits resolution and packs a rich set of features that simplifies designs…

Read More →

An 8-Digit 7 Segment Display

I built a 4-digit 7 segment display last year. In that design, I used four 74HC595 shift registers to drive the four individual 7 segment displays, with one for each digit. So when I wanted to build an 8-digit display,…

Read More →

AD7705/AD7706 Library

AD7705 and AD7706 are two 16-bit Sigma Delta ADCs. Equipped with on-chip digital filters and programmable gain front ends, these chips are ideal for low frequency multi-channel signal measurements. The main difference between AD7705 and AD7706 is that AD7705 has…

Read More →

Interfacing DS7505

The DS7505 digital thermometer and thermostat is a very versatile temperature sensor. It offers 9 to 12-bit digital temperature readings between -55 and +125 Celsius with an accuracy of 0.5 degree. It can be used with any MCUs that has…

Read More →

TCA9555 Library for Arduino

TCA9555 is a 16-bit I2C I/O expander from Texas Instruments. It allows the easy addition of 16 I/O ports on any device that supports the I2C bus. This makes it attractive for expanding the number of I/O pins on the…

Read More →

Arbitrary Waveform Generation with Arduino

Arbitrary waveform generators come in handy when troubleshooting digital and analog circuits. Most commercial arbitrary waveform generators are very expensive due to the functionality and very high bandwidth they offer. But for typical uses among hobbyists, the requirements are generally…

Read More →

Building a Robotic Platform

I started this project a while ago. My intention was to adapt a toy remote controlled vehicle into a generic robotic platform, which would enable me to do some experiments with robotics. To make the platform more generic, I came…

Read More →

Modified Sine Wave Generation With AVR

Modified sine wave is essentially just a pulse width modified square wave. It is a very useful waveform for power inverters. Compared with the simplest inverters with square waveform, inverters using modified sine wave can compensate the output voltage by…

Read More →

4KHz-170MHz Wide Band RF Signal Generator – I

A signal generator can come in handy when working with digital and analog circuits. While most commercial grade signal generators offer more than just outputting a sinusoidal waveform, they are quite pricey for casual use. In this article, I will…

Read More →

RF Data Link Using Si4021 And Si4311

Among the many commercial ISM band RF transmitter and receiver ICs, I have found that Silicon Labs‘ Si4021 (transmitter IC) and Si4311 (receiver IC) are surprisingly easy to work with. Only a few commonly available external components are needed to…

Read More →

AVR LC Meter With Frequency Measurement

I have been thinking about building an LC meter for a while since I do not have a multimeter that is capable of measuring inductance and while the multimeters I have can measure capacitance, they are not able to give…

Read More →