HT1621B Display controller Breakout Board


As a part of my work, I needed to drive an LCD segment display. Now, these displays are somewhat of a mixed breed between LCDs and 7 segment displays. They look sleek like LCDs, and are structured like 7 segment displays. However, they cannot be controlled just by toggling the segment pin of a particular segment high. They actually expect something of an “AC” signal to keep them on.

There are Arduino libraries that allow you to do this : You can find it here . However, if you are going to need 8-9 pins to control one character, you’ll find you will quickly run out of pins. Thankfully, these segments are very common, and so of course, there are controller ICs that will drive these displays, and let you offload the cumbersome task of generating the AC signals to drive those LCDs. The HT1621B is the perfect LCD segment controller IC for this job.

You just have to send messages serially to the HT1621B (in the right format of course), specify the necessary parameters, and the controller will take care of the rest. You can use the Arduino library for the HT1621B here.

HT1621B Breakout board

While working on this, I found it rather difficult to find an existing breakout board for the HT1621B, which is in the SOP48 package. I designed a board for it so that I could test it out. You can order the board with HT1621B controller ( if you are in India ) at the Amazon link here : .

If you want to get just the SOP48 breakout board, you can head over to OSHPark (link below).

Order from OSH Park

I hope this is useful !


Social Injustices and PID


Social injustices are widespread, in every country of the world, be they in the form of economic, gender or class inequalities. Governments try to do away with some of them, and they sometimes work, but they almost always have some unintended and unfavourable consequences, documented or undocumented.

One (of the many possible) reasons why this might happen is because the intervening agencies overlook a basic principle, something that is sadly, taught mostly in engineering schools. The PID controller principle, a control system principle, is as much applicable to society as to mechanical, electronic and other engineered systems. Lost ? Let me explain.

A system is one that gets input, the input is processed to give an output. This is also called an open-loop system. A closed loop system is one that takes the output, uses it as feedback to improve the system processes, and thus improve the output, like a continuously self-improving, “closed loop” process.

So, how is any of this relevant ? Let’s get right to it, by relating PID processes to society.

PID stands for Proportional – Integral – Derivative. You don’t need to know calculus to understand, you just need to understand English to comprehend.

Imagine a social inequality, say an economic inequality between the rich and the poor. If the politicial ideology of a government in power of that country tends to be towards socialism, they might try to create “equality” in the economic conditions of the people. The measures that they take to bring this about is what we call a “process”.

Now, let’s assume that the government is smart, and understands the concept of PID. This is how they would shape their process:


P (Proportional) : The difference between the current condition and the desired condition would be what we call as the ‘difference; or the ‘error’. Now, the bigger the error, the bigger the correction you would need to bring it back on track, right ? Right. This is what is called the ‘proportional’ component. This components deals with the “immediate” nature of corrective measures required. This is good to start with, but not enough. Here’s why.

When the errors are corrected by applying “proportional” corrective action, they start going back towards the desired state. However, after they have gone back to the desired state, they will keep on going in the same direction, and start having negative consequeunces in the other direction. Why this would happen is because corrective action is taken to correct the error at that moment, and does not include the errors or corrective measures from the past, that also contribute to the present state and must also be corrected. Simply put, if you try to correct for undesired conditions, at some point it will reach the desired condition and then shoot onwards in the opposite direction, and will lead to a reversal of the initial problem.

I (Integral) : That’s where the “integral” component comes in. This components has to take corrective action based on the accumulation of previous errors. Integral basically means “a sum of all”. We corrected for instantaneous errors previously, but the errors _were_ caused, and they cannot be ignored. They must all be included, or summed up, and corrective action must be taken to fix them as well.



Sounds better ? Yes, but we’re not quite there yet. While doing all this, it’s easy to keep on going forever, because errors will always occur, and neutralizing them will contribute to some more error, and so on. However, it is necessary to keep an eye on the big picture, the overall scheme of things.


D (Derivative) : This is where the “derivative” component kicks in. Simply put, “derivative” means “rate of change of”. We must keep the results from the use of the previous components, P and I in mind, we must take a look at the overall state of the system, and the rate of change of decrease in errors, and see the rate at which the system is approaching the desired stable condition. We must then make some fine tweaks and corrections to help the system come to stability sooner, faster. The “derivative” part helps us do exactly that, by adding a component of corrective action that will help us bring equlibrium sooner using a general overview of things.

This is rather a simplistic model of things, but I believe this helps us understand a lot more about why immediate corrective action might not be good enough in itself, about what other components are involved, and what to demand of our governments and agencies. Also of course, I hope you understood PID controller ; )