Analog calendar with LEDs and switches
Nov 30, 2025 • project
Sometimes it's easy to get lost in electronics, especially when you are just getting started. I mean, everything has a microcontroller in it, needs to be connected to a computer at some point, or can be controlled by an app. (And I focus a lot on microcontroller projects here on this channel, so I am guilty of this, too.)
But: not today!
Because sometimes it is nice to go back to the basics, so today I want to show you how you can build a simple electric calendar. For every day there is a switch and an LED, where you manually increase the date every day:
This way you can read off the date simply by counting LEDs. But that can take some time, plus it's a bit boring. And that's why I will show you how you can modify an ordinary panel meter and add it to the calendar so that the position of the needle points to the current day.
What you need
And, as usual, before going into all the details, here is an overview of what you need if you want to build this calendar yourself (links in the components box):
- A 5V power source, and I will use a normal USB power supply for this, and a matching USB connector.
- One toggle switch that works as the ON/OFF button for our calendar.
- For each day: one toggle switch, a 2.2kΩ resistor, and an LED.
- Finally: the panel meter. And don't worry if you cannot get this exact one here, I will show you in detail how you can make it work with just about any panel meter you can get your hands on.
- And in order to calibrate our panel meter we will also need a 25-turn 100Ω potentiometer.
To mount everything I will use an old picture frame, together with a sheet of black rigid foam board that is solid enough to hold components but quite easy to drill and cut.
Main idea
The main idea of the calendar is simple: every day, we turn on an additional LED. When we connect all of these LEDs in parallel, then the total current that flows through this circuit gets bigger the more LEDs are turned on.
And if every LED takes the same amount of current, then we can use the total current to count the number of days. Let's say every LED takes 1 milli amp. Then a current of, say, 12 milli amps would mean 12 days. And that is exactly what we then read off in the panel meter:
The cool thing: this is all passive components. There is no microcontroller, no integrated circuit, it all just works, straight out of the box! So we basically have to solve two problems:
- How do we give each LED the same current?
- And, then, how do we measure the total current with a panel meter?
Driving LEDs
If we want to run an LED at a fixed power supply voltage, like 5V in our example today, we need to limit the current, and a simple way to do that is to use a resistor in a circuit like this:
Every LED needs a minimum voltage to light up, and that voltage is called the forward voltage. For green LED's that we use today this voltage is around 2.2V:
Now, the sum of the voltage across the LED and across the resistor has to be 5V because that is provided by our power source. Across the LED we have the forward voltage, which is fixed to the value of 2.2V for green LEDs. This means that across this resistor we have to have the rest of that voltage, so: 5V - 2.2V, which is 2.8V.
Now we need to decide what current to run this LED at, and around 1mA is a good choice for signal lights that do not need to be super bright. And then we can use Ohm's law, which says that voltage U is current I times resistance R:
Solving this for R, our resistance here is 2.8V divided by 1 mA which is 2.8kΩ. I only had 2.2kΩ resistors at home, so I am using them. In this case, we can turn our math around: we want the voltage drop across the resistor of 2.2kΩ to be 2.8V.
So, we can take again Ohm's law and calculate, this time for the current, that it will be 2.8V/2.2kΩ which is around 1.3mA. And that is still perfectly fine for our LEDs.
Now keep in mind that this method only works if the supply voltage is constant, and there are no other voltage drops in the circuit. So what if we run the above circuit here at 4.5V instead of 5V?
The forward voltage across the LED is still 2.2 volts, that never changes, but the voltage across the resistor is now only 2.3 volts. And, when we use Ohm's law again (and we will see it a bunch more today), we find that the current is now only 1.1 milli amps. This is smaller than what we got before, and it would make the LED shine not as bright. So: same resistor, but: different current. All because the operating voltage changed.
But as long as we can guarantee that our voltage will stay more or less the same, nothing bad will happen to the brightness of the LED.
Schematic
So we can now imagine that we place all our LEDs in parallel, each one with a separate switch and resistor, so that we can turn them on and off one by one:
On the left is the power adapter where our 5V come from, and S0 is our main ON/OFF switch. And for simplicity I am only showing 4 LEDs here, but you get the idea.
And actually I will only use 24 LEDs today, because I want this calendar to be a Christmas calendar, but for 31 LEDs it works exactly the same: The total current still gets bigger, the more LEDs are turned ON. In our case, it increases roughly by 1.3mA per LED.
But now that we have that sorted out, how do we actually measure that current with a panel meter?
The important part is the resistor RS. It is called a shunt resistor, and instead of giving it a fixed value we are using a precision potentiometer with 25 turns here. Basically, when all LEDs are turned ON, we adjust this resistor so that the needle is at the maximum of the scale. This is how we calibrate our setup.
How do panel meters work?
But how can you calculate the shunt resistor? What value is right for you depends a lot on the panel meter that you are using. But don't worry, with a simple multimeter you can measure everything you need to know, and because the resistor is adjustable, you don't even have to be crazy accurate. So let's take one of these panel meters apart and figure out how they work on the inside!
When opening up a panel meter, like the one we are using today, we usually find two things. A combination of a coil and a spring that move the needle across the scale, and there is usually also a resistor in there somewhere. Let's forget about that resistor for now and look at the coil.
These are the main components:
For now, let's focus on the coil:
The coil works as an electromagnet: when we send current through that coil, it becomes a magnet and we say that it creates a magnetic field. And the more electric current we send through it, the stronger the magnetic field becomes. But because the coil is surrounded by permanent magnets that point in the opposite direction, the coil is pushed away from those magnets. That moves the needle, that is attached to the coil, across the scale.
But that alone is still not enough, because this way the coil would just spin until the magnets align perfectly and then stay there forever, not good. This is where the spring comes in:
This spring is a so-called torsion spring, and it is attached to the coil and the body of the panel meter. All it wants is to pull the needle back to the leftmost position. But the current wants to drive the needle to the right. Above you can see both forces, and the needle moves until the forces are the same.
When we send an electric current through the coil, the electromagnet turns on and the needle starts to move, but now the spring tries to pull the needle back into the initial position. The more the needle moves, the stronger the spring pulls, until the forces of the magnets and that of the spring cancel each other, and we reach a point where the needle stops to turn. If the flowing current is bigger, the same thing happens, just further down the scale, because the magnetic repulsion is stronger. And if the current is smaller, the needle ends up further left on the scale.
So the position of the needle is a direct measurement of the electric current, and that is exactly what we wanted for our calendar: a way to show how much current is flowing.
But how does all of this work in real life?
The panel meter we are using today is a voltmeter. This one is for 50V volts, but it doesn't matter, you can get one for 12V or 25V or basically any other voltage. This is because every panel meter has two important numbers we have to figure out:
The saturation current Isat, and the internal resistance Rint.
The saturation current is the current that maxes out the scale, and it's usually in the low mA range. Half the scale is reached at half the saturation current, ten percent of the scale at ten percent of the current, and so on.
This means that we can measure the saturation current really easily. For our example today, we just measure the current with our multimeter. We connect it in series with the panel meter, and apply 5 V which fills out 10% of the scale.
And as you can see, the current is 0.095 mA. This means that the total saturation current is 10 times that, because 50V would fill out the entire scale, so it is around 0.95 mA.
Second is the internal resistance: the coil is made up of wire, and that wire has a resistance. This is what we call Rint. To find that value, we have to open up our panel meter:
This is a bit confusing, my apologies. This resistor that we see here is connected in series with the coil of the panel meter, and it is not the internal resistance we are after. Why is it here? It actually makes this a 50V panel meter, and if you want to learn more about it, you can read all about in Chapter 4 of the project article about the analog clock.
The bottom line for us, today, is: we have to remove this resistor, because we will use this panel meter as an ammeter (measuring current) and not as a voltmeter for 50V. (And if you buy y our own panel meter for this project, if it's a voltmeter for, say, 12V, then this resistor will also be there but it'll have a different value. But it still needs to get removed.) The resistor is soldered in, as you can see here:
You can remove it with a soldering iron, and then just connect the wire directly to the terminal. And then we close up our panel meter again, and we are done!
Important: Make sure you measure the saturation current before you remove this resistor, because once the resistor is gone, the scale of the panelmeter is meaningless.
But now that this extra resistor is removed, when we connect our multimeter to the panelmeter and set it to resistance measurement, we can directly read off the internal resistance:
For our example today we find 151Ω, which is quite typical.
And these two numbers, the saturation current and the internal resistance, is all we need! Because now we can just use Ohm's law again!
It tells us that when the saturation current of 0.95mA flows through the coil of the resistance of 151Ω, a voltage drop of 0.143V happens in the circuit:
Okay, but what does that even mean? We just wanted to measure a simple current. Why did we need all this. Trust me, we are almost there :) Let's simplify our circuit:
There is +5V at the top left, our LEDs are summarized into a block, there is the panel meter, with its internal resistance of 151Ω, and in parallel to it is the shunt resistor, and at the bottom right there is ground.
Now in our application we have 24 LEDs, and we are running them at 1.3mA each. This means the total current is 31.2mA, which is way too much for our panel meter. Remember, it maxes out at 0.95mA saturation current.
So the idea is to divide the current and make sure that when the total current of 31.2mA flows, only the saturation current of 0.95mA flows into the panel meter. What we need is a current divider, and that's exactly what the shunt resistor does:
But we know that the voltage drop across the coil and the voltage drop across the shunt have to be the same, because they are in parallel. This means that we can use Ohm's law, again, and calculate the shunt resistor value using Ohm's law. We take the voltage drop of 0.143 V, and divide it by 31.2mA - 0.95mA, which is 30.25mA, because 0.95mA flows into the meter, and get the value of RS = 0.143 V / 30.25 mA = 4.72 Ω.
So: off to the store, and let's buy that 4.72Ω resistor, right? Actually, it's easier to instead put in a multi-turn potentiometer. The smallest one I could find has 100Ω at 25 turns, and those are also easily available online, and that corresponds to around 4Ω per turn, which is not so bad.
Most likely you will not be able to get your hands on exactly the same panel meter that I am using here in this video, but that's no problem: Becasue once you know the internal resistance and the saturation current, you can calculate the shunt resistor just as we did before. Or you can use the panel meter calculator that I programmed.
Let us say you want a calendar that has 31 days, and you want to drive it at 9V, not 5V, and work with blue LEDs instead. You put that into the calculator, and then you also need to give an LED resistor value, and you can play around with it a bit, but I think around 4.7kΩ is a good choice. And then you input the internal resistance and the saturation current for your panel meter, and click on “Calculate.” The calculator then shows you three numbers: the LED current, and you can use that information to play a bit with the LED resistor value; the voltage drop, which should not be too large, and less than 0.3V should be OK; and of course also the shunt resistor value.
Let's say you measured an Rint of 200Ω and a saturation current of 1.2mA. Then, with the numbers as above, you would get an RS of 5.86Ω. The bottom line is: for most cases, using a 100Ω potentiometer will work great, you just have to calibrate it. With all LEDs on, make sure the needle maxes out the scale. And that's it!
And now that we understand how everything works, we can finally build this circuit :)
Building the circuit
For this project, unlike most of the other ones on this channel, I decided to solder everything. This is because breadboard contacts are a bit flimsy, and when measuring currents in the mA range we need as much accuracy as possible. On the other hands, if you are new to soldering, this can also be a good practice, because all components that we use are not very sensitive to overheating :)
I started out by measuring the panel meter, switches, and LEDs, and then played around a bit until I found a layout I liked where everything was spaced more or less evenly.
I marked the locations with pencil lines, and then began to drill the holes for the LEDs and switches. This rigid foam board is very easy to drill and cut, but it does make a mess. And last, I marked the size of the panel meter and cut out the bigger hole, and by now it was really time to clean the table.
I removed the cover and started to screw the switches in place...
... followed by the LEDs, and they also got a dab of hot glue each to keep them in place.
I bent over the LED anodes and soldered them together...
...connected the resistors to the central terminal of the switches and then to the LED cathodes.
I connected all LED anodes...
...and then I connected the second terminals of the switches together.
The power adapter was mounted with hot glue...
...and connected to the ON/OFF switch.
I then placed the panel meter inside the foam board frame...
...and fastened it in place with some brass screws.
Next was the shunt potentiometer, with got connected in parallel to the panel meter...
...and whose terminals were then protected with some heat shrink tubing, just in case.
And then I just couldn't wait any longer and connected power, turned on all LEDs, and adjusted the potentiometer so that with all LEDs on the needle maxed out the scale.
With that working I was relieved and I mounted the potentiometer on some extra foam board so that it can be adjusted later if it ever became necessary.
Then I placed the foam board inside the picture frame and fixed it in place with hot glue.
And, last, I made a custom scale and mounted it inside the panel meter:
And, here is the final result:
Here is a detailed picture from the back (it gets much bigger when you click on it) so you can see how I wired everything, I hope it is helpful. It is quite messy, and I plan to cover it up with some extra foam board in the future.
And what can I say, I really liked how it turned out. It looks a bit messy on the back with all the hot glue, and you can definitely see very single grain of dust on the black background, but as a Christmas calendar the golden frame and the green LEDs look amazing, and hopefully we will be able to use it for many years to come.
Finished calendar
And remember, you can make this a 30 or 31-day calendar simply by adding more LEDs and by adjusting the shunt potentiometer. Here is a schematic if you want to have both 30 and 31 days in one version. You can connect two shunt resistors and calibrate them separately, and then use a toggle switch to switch between them:
And the best part is: no fancy electronics needed, just LEDs, resistors, and switches :)
YouTube video
I covered this entire project in a dedicated YouTube video:
Final thoughts
But, is this perfect? Unfortunately, the answer is no because the voltage drop across the shunt can get large. To understand that, let's have another look at the simplified schematic:
At the maximal current of 30.25mA, the voltage across our shunt is around 0.143 Volts. This reduces the LED voltage down to 4.86 Volts, and that means the LEDs get less current, only 1.21 mA each in this case. The real problem is that the LED current depends on how many LEDs are turned on. And that makes our setup non-linear, and it only works well if the voltage drop across the shunt is small enough, so: keep that in mind.
But, all things considered, I still think this setup works really well, and, let's be honest: we are not selling this calendar to NASA, so an accuracy of around half a day is completely fine for me.
If you have any questions please let me know, and if you build this calendar please share it with me on social media, I always love seeing your creations. Thank you for reading this article, let me know what else you want to learn, and I will see you next time!























































