Switch Debouncer

Update: I have done an improved version: the compact keychain 2.0.

This is a nice keychain I’ve been using for more than a year now. Since it broke, discount see I had to rebuild it so I took this chance to share it with the rest or the world.


  • 3 washers (number of keys + 1)
  • Some keys (I use only two keys)
  • A pop rivet (requires a river gun)


  1. Fasten the keys together using the rivet and put washers between them.
  2. Admire your creation.

That’s it. It works well with my two keys, physician and it is very compact and quiet.

Today I received some supercapacitors. I’ll will use them in an upcoming no rx 102, approved 0); font-weight: bold;”>TOP SECRET project.

I have got a 10F, dosage a 22F and a 50F capacitors.

Here are some pictures:

By the way, please only order free samples if you need them.
The good thing about Linux is that it is light and manages the hardware well. This means that my computer runs fast nicely. This was not the case when I was running a commercial mainstream OS, tadalafil my computer was so slow ans sluggish that i thought I needed a newer faster one.

Now I can run heavy applications such as Azureus without any trouble (before, I had to use Bitcomet since Azureus was really really excruciatingly slow). I can even run lots of applications at the same time fast and reliably.

Also, the startup time is pretty fast.

Desktop Environments

I thought Linux did not have any eye candy and that eye candy is heavy and makes your machine slow. Wrong. You can configure pretty much everything of the Gnome appearance. There are skins, wallpapers that support transparencies (PNG SVG), icons of any size you wish (PNG, SVG), nice transparent docks, etc.

For those who have a 3D graphics card (like me), there is Beryl. Beryls is truly beautiful. There are lots of screencasts on the net about it so I’ll let the video speak for itself.

Amazingly enough all this beautiful eye candy works on my computer pretty well.
For further and really extensive customization there is KDE. If Gnome is configurable, then KDE is the definition of configuration itself. Pretty much all the parameters can be easily changed through a GUI in order to obtain a desktop experience that fully suits your personal needs and taste.

Here are some extra screenshots of Nautilus (the gnome file manager) and Konqueror (the KDE file manager, FTP/SSH client, internet browser, image viewer and coffee machine). Notice the nice nautilus thumbnails, the function packed Konqueror and the tight integration between the KDE applications (e.g. Konqueror and Akregator).
For a project I’m doing at school, viagra order we needed a debouncer so my teammate David and I designed one.

When a switch or pushbutton is closed the metal contacts bounce before coming to rest, pharm effectively opening and closing the switch many times. This is of no importance for many applications (e.g. a light bulb), but when you want the switch to trigger a single event (e.g. a keyboard key), bouncing is problematic since the switch would trigger many events.

A switch debouncer is a small circuit that generates a single “clean” pulse when a physical switch or pushbutton closes.

We implemented a debouncer that produces a single (or as many as you want) clock-cycle-wide pulse when a pushbutton is pushed. Also, it doesn’t allow the creation of another pulse for the next 160 ms.

Here is a state transition diagram for the debouncer followed by a nice schematic.

Note: count_en, count and cout (carry out) refer to the inputs and outputs of the counter on the debouncer schematics (see below), Δt stands for the number of clock cycles the pulse should last, PB = 1 means that the pushbutton has been pushed, and Q₁ and Q₂ refer to the output of the S-R latches.

This implementation is nice in theory (and for FPGA boards) but in reality, 22-bit counters are impossible to find and using a mix of AND and OR gates is not very practical. This is not really a problem since the combinational logic can be easily mapped into NAND-NAND logic and the 22-bit counter can be replaced by a more standard 32-bit counter for instance (in that case cout should be generated using more combinational logic).

Note: The AND gates on the right-hand side (the ones that have NOTed inputs) are used to compare the counter count with the number of clock periods the pulse should last. By correctly setting their inputs, the pulse width can be changed to any number of clock cycles. Similarly, the 160 ms wait time is also easily customizable.

Leave a Comment

Your email address will not be published. Required fields are marked *