If you search through an electrical engineering textbook, you probably aren’t going to find the phrase “gimmick capacitor” but every old ham radio operator knows about them. They come in handy when you need a very small capacitor of unknown value. For example, if you are trying to balance the stray capacitance in a circuit, you might not know exactly what value you need, but you know it won’t be very much. That’s when you want a gimmick capacitor.
A gimmick capacitor is made by taking two strands of insulated wire and twisting them together; the length and the tightness of the twist determine the capacitance. Tightening or loosening the twist, or trimming some of the wire off, makes it tunable.
These are most commonly found in RF equipment or high-speed logic because of the small capacitance involved — usually about 1 to 2 pF per inch of twist or so. The thicker the insulation, the less capacitance you’ll get, so it is common to use magnet wire or something else with a thin insulating layer. You can take this one step further and decrease the spacing by stripping down one wire as long as it isn’t going to touch anything else.
Obviously, the insulation needs to be good enough for the voltage on them, an important consideration in tube circuits, for instance. But other than that, a gimmick capacitor is a straightforward tool to have in your box of design tricks. Can we take this further? Continue reading “These Capacitors Are A Cheap Gimmick”→
Octoprint is a household name for anyone into 3D printing and anyone regularly reading Hackaday. Described by creator Gina Häußge as “the snappy web interface for your 3D printer”, Octoprint allows you to control effectively any desktop 3D printer over the local network or Internet. It even has webcam support so you can watch your printer while it works, meaning you can finally put that video baby monitor back into the crib with Junior.
While the core functionality of Octoprint is fantastic alone, its true power is unlocked through the plugin system and the community that’s sprung up around it. With plugins, Octoprint can do everything from control RGB light strips in your printer’s enclosure to sending status messages via Discord. One particularly popular plugin that has been making the rounds lately is Octolapse by [FormerLurker]. This plugin provides a comprehensive intelligent system for creating time-lapse videos of prints.
What does that mean? Well, instead of simply taking a picture every few seconds like you’d do traditionally, Octolapse actually keeps track of the printer’s motions while its running. It can then take a picture at the opportune moment to create a number of user-selected effects. More importantly, it can even take control of the printer directly; moving the hotend away from the print before taking a picture. The effect is that the print simply “grows” out of the bed.
I thought it would be interesting to take a closer look at Octolapse and see just what it takes to create one of those awesome time-lapse videos. It turned out to be somewhat trickier than I anticipated, but the end results are so fantastic I’d say it’s a technique worth mastering.
Temperature is one of the most frequently measured physical quantities, and features prominently in many of our projects, from weather stations to 3D printers. Most commonly we’ll see thermistors, thermocouples, infrared sensors, or a dedicated IC used to measure temperature. It’s even possible to use only an ordinary diode, leading to some interesting techniques.
Often we only need to know the temperature within a degree Celsius or two, and any of these tools are fine. Until fairly recently, when we needed to know the temperature precisely, reliably, and over a wide range we used mercury thermometers. The devices themselves were marvels of instrumentation, but mercury is a hazardous substance, and since 2011 NIST will no longer calibrate mercury thermometers.
A typical Pt100 RTD probe
Luckily, resistance temperature detectors (RTDs) are an excellent alternative. These usually consist of very thin wires of pure platinum, and are identified by their resistance at 0 °C. For example, a Pt100 RTD has a resistance of 100 Ω at 0 °C.
An accuracy of +/- 0.15 °C at 0 °C is typical, but accuracies down to +/- 0.03 °C are available. The functional temperature range is typically quite high, with -70 °C to 200 °C being common, with some specialized probes working well over 900 °C.
It’s not uncommon for the lead wires on these probes to be a meter or more in length, and this can be a significant source of error. To account for this, you will see that RTD probes are sold in two, three, and four wire configurations. Two-wire configurations do not account for lead wire resistance, three-wire probes account for lead resistance but assume all lead wires have the same resistance, and four-wire configurations are most effective at eliminating this error.
In firmware-land we usually refer to colors using RGB. This is intuitively pleasing with a little background on color theory and an understanding of how multicolor LEDs work. Most of the colorful LEDs we are use not actually a single diode. They are red, green, and blue diodes shoved together in tight quarters. (Though interestingly very high end LEDs use even more colors than that, but that’s a topic for another article.) When all three light up at once the emitted light munges together into a single color which your brain perceives. Appropriately the schematic symbol for an RGB LED without an onboard controller typically depicts three discrete LEDs all together. So it’s clear why representing an RGB LED in code as three individual values {R, G, B} makes sense. But binding our representation of color in firmware to the physical system we accidentally limit ourselves.
The inside of an RGB LED
Last time we talked about color spaces, we learned about different ways to represent color spatially. The key insight was that these models called color spaces could be used to represent the same colors using different groups of values. And in fact that the grouped values themselves could be used to describe multidimensional spacial coordinates. But that post was missing the punchline. “So what if you can represent colors in a cylinder!” I hear you cry. “Why do I care?” Well, it turns out that using colorspace can make some common firmware tasks easier. Follow on to learn how!
The first program anyone writes for a microcontroller is the blinking LED which involves toggling a general-purpose input/output (GPIO) on and off. Consequently, the same GPIO can be used to read digital bits as well. A traditional microcontroller like the 8051 is available in DIP packages ranging from 20 pins to 40 pins. Some trade the number of GPIOs for compactness while other devices offer a larger number of GPIOs at the cost of complexity in fitting the part into your design. In this article, we take a quick look at applications that require a larger number of GPIOs and traditional solutions for the problem.
A GPIO is a generic pin on an integrated circuit or computer board whose behavior, including whether it is an input or output pin, is controllable by the user at runtime. See the internal diagram of the GPIO circuit for the ATmega328 for reference.
Simply put, each GPIO has a latch connected to a drive circuit with transistors for the output part and another latch for the input part. In the case of the ATmega328, there is a direction register as well, whereas, in the case of the 8051, the output register serves as the direction register where writing a 1 to it sets it in output mode.
The important thing to note here is that since all the circuits are on the same piece of silicon, the operations are relatively fast. Having all the latches and registers on the same bus means it takes just one instruction to write or read a byte from any GPIO register. Continue reading “General Purpose I/O: How To Get More”→
The 2N3819 is the archetypal general-purpose N-channel FET. (ON Semiconductor)
Over the recent weeks here at Hackaday, we’ve been taking a look at the humble transistor. In a series whose impetus came from a friend musing upon his students arriving with highly developed knowledge of microcontrollers but little of basic electronic circuitry, we’ve examined the bipolar transistor in all its configurations. It would however be improper to round off the series without also admitting that bipolar transistors are only part of the story. There is another family of transistors which have analogous circuit configurations to their bipolar cousins but work in a completely different way: the Field Effect Transistors, or FETs.
In a way it’s less pertinent to look at FETs in the way we did bipolar transistors, because while they are very interesting devices that power much of what you will do with electronics, you will encounter them as discrete components surprisingly rarely. Every CMOS device you deal with relies on FETs for its operation and every high-quality op-amp you throw a signal at will do so through a FET input, but these FETs are buried inside the chip and you’d be hard-pressed to know they were there if we hadn’t told you. You’d use a FET if you needed a high-impedance audio preamp or a low-noise RF amplifier, and FETs are a good choice for high-current switching applications, but sadly you will probably never have a pile of general-purpose FETs in the way you will their bipolar equivalents.
That said, the FET is a fascinating device. Join us as we take an in-depth look at their operation, and how and where you might use one.
FET basics
A diagram of an n-channel JFET. As the negative gate voltage on the p-type silicon decreases in the lower diagram, its electric field restricts the area through which electrons can flow in the n-type channel. Chtaube,(CC BY-SA 2.0 DE)
A basic FET has three terminals, a source (the source of electrons), a gate (the control terminal), and a drain (where electrons leave the device). These are analogous to the terminals on a bipolar transistor, in that the source fulfills a similar role to the emitter, the gate to the base, and the drain to the collector. Thus the three basic bipolar transistor circuit configurations have equivalents with a FET; common-emitter becomes common-source, common-base becomes common-gate, and an emitter follower becomes a source follower. It is dangerous to stretch the analogy between bipolar transistors and FETs too far, though, because of their different mode of operation. A closer similarity exists between a FET and a triode tube, if that helps.
The simplest FET for demonstration purposes has a piece of N-type semiconductor with source and drain connections at opposite ends, and a zone of P-type semiconductor deposited in its middle. This is referred to as an N-channel junction FET or JFET, because the channel through which current flows is N-type semiconductor, and because a diode junction exists between gate and channel. There are equivalent P-channel devices, just as there are PNP and NPN bipolar transistors.
Were you to bias an n-channel JFET as you would a bipolar transistor with a positive bias on its gate, the diode between gate and source would conduct, and the transistor would remain a diode with two cathode terminals. If however you give the gate a negative bias compared to the source, the diode becomes reverse-biased, and no current to speak of flows in the gate.
A characteristic of a reverse-biased diode is that it has a depletion zone between anode and cathode, an area in which there are no electrons. This is what causes the diode to no longer conduct, and the size of the depletion zone depends upon the size of the electric field that exists across it. If you’ve ever used a varicap diode, the capacitance between the two sides of this variable-width zone is the property you are exploiting.
In a FET, the depletion zone stretches from the gate region into the channel, and since its size can be adjusted by the gate voltage it can be used to “pinch” the remaining conductive region within the channel. Thus the area through which electrons can flow is controlled by the gate voltage, and thus the current that flows between drain and source is proportional to the gate voltage. We have an amplifier.
A simple FET radio receiver circuit showing FET biasing. The gate is biased at ground potential through the inductor, and the source is held above ground by the current in the 5K resistor. Herbertweidner [Public domain].In the JFET diagram above, the negative gate bias is represented by a battery. Tube enthusiasts may have encountered equipment that derives negative grid bias from a power supply, and you will find tube power units that include a -150 V rail for this purpose. In general though this is inconvenient in a FET circuit even though the voltage is lower, because of the extra cost of a negative regulator.. Instead the gate is held at a lower potential than the source by careful selection of a source resistor such that the current flowing through it brings the source up above ground, and a gate bias circuit that holds the gate close to ground. The base resistor chain from the bipolar circuit is for this reason often replaced with either a single resistor to ground, or a gate circuit with a very low DC resistance to ground such as an inductor.
MOSFETs, where the FET becomes more useful
Internal structure of an N-channel MOSFET. Fred the Oyster [Public domain].The JFET we have described is the simplest of field-effect devices, but it is not the one you will encounter most frequently. MOSFETs, short for Metal Oxide Semiconductor FETs, have a similar source, gate, and drain, but instead of relying on a depletion zone in a reverse-biased diode, they have a thin layer of insulation. The electric field from the gate acts across this insulation and pinches the conductive region in the channel through repulsion of electrons, with the same effect as it has in the JFET. It is beyond the scope of this piece to go into their mechanisms, but you will encounter two types of MOSFET: depletion mode devices that require the same negative bias as the JFET, and enhancement mode MOSFETS that require a positive bias.
Why would you use a FET?
So we’ve described the FET, and noted that while its mode of operation is different to that of a bipolar transistor it does a substantially similar job. Why would we use a FET then, what advantages does it offer us? The answer comes from the gate being insulated either by a depletion region in a JFET or by an insulating layer in a MOSFET. A FET is a voltage amplifier rather than a current amplifier, its input impedance is many orders higher than that of a bipolar transistor, and thus you will find FETs used in many applications that require a high impedance small-signal amplifier. The input of a high-performance op-amp will almost certainly be a FET, for example.
This half-bridge power MOSFET driver circuit uses a specialist gate driver IC with a pair of Schmidt buffers to deliver the initial surge required for a fast-turn-on time. Wdwd (CC BY 3.0).
The high input impedance has another effect less coupled to small signal work. Where a bipolar transistor requires significant base current to turn itself on, the corresponding FET requires almost none. Thus almost all complex integrated circuit logic devices are FET-based rather than bipolar because of the huge power saving that can be made by not needing to supply the base current demands of many thousands of bipolar transistors.
The same effect influences the choice of FETs for power switching, while a bipolar transistor’s base current is proportional to its collector current and thus it will need a significant driver, by contrast a power MOSFET requires virtually no standing gate current after an initial surge. A MOSFET power switch can thus be built requiring much less in the way of drive electronics and much more efficiently than a corresponding bipolar switch, and makes possible some of the tiny driver boards you might be used to for driving motors in your 3D printer, or your multirotor.
Through the course of this series you should have acquired a solid grounding in basic bipolar transistor principles, and now you should be able to add FETs to that knowledge base. We suggested you buy a bag of 2N3904s to experiment with in one of the previous articles, can we now suggest you do the same with a bag of 2N3819s?
The UNIX Way™ is to cobble together different, single-purpose programs to get the effect you want, for instance in a Bash script that you run by typing its name into the command line. But sometimes you want the system to react to changes in the system without your intervention. For example, you might like to watch a directory and kick off some program automatically when a file appears from a completed FTP transaction, without having to sit there and refresh the directory yourself.
The simple but ugly way to do this just scans the directory periodically. Here’s a really dumb shell script:
#!/bin/bash
while true
do
for I in `ls`
do cat $I; rm $I
done
sleep 10
done
Just for an example, I dump the file to the console and remove it, but in real life, you’d do something more interesting. This is really not a good script because it executes all the time and it just isn’t a very elegant solution. (If you think I should use for I in *, try doing that in an empty directory and you’ll see why I use the ls command instead.)