The humble car alarm has been around almost as long as the car itself, first being developed by an unknown prisoner in Denver, circa 1913. To the security-conscious motorist, they make a lot of sense. The noise of a car alarm draws attention which is the last thing a would-be thief wants, and the in-built immobilizers generally stop the car being moved at all without a time-consuming workaround. Both are a great deterrent to theft.
It may then surprise you to know that I, dear readers, consider the aftermarket car alarm to be one of the most heinous devices ever fitted to the modern automobile. Combining the unholy trifecta of being poorly designed, cheaply made, and fitted by only the most untalented or uncaring people to wield a soldering iron, they are a blight that I myself refuse to accept.
It was my very own Mazda that suffered at the hands of a car alarm system. Two days after purchasing the car, the keyfob died, and thus the car would no longer start. My other car was already out of action due to bent valves, and I needed to get to work, so I figured as a competent hacker, I’d be able to quickly disable it.
It’s nice to take a break from hacking together the newest bleeding-edge technology, relax, and enjoy a beverage. It’s no surprise that hacks devoted to beer and coffee roasting are popular. We’ve also seen a few projects helping brew the perfect cup of tea, but none involving the actual production of tea. Today we’re going to take a short recess from modernity and explore this ancient tradition.
Consumption of tea is about equal to all other manufactured beverages, such as coffee and alcohol, combined. It is hands-down the most popular manufactured beverage in the world, and we thought it would be interesting to make some ourselves. Also the local tea is so bitter that it’s used to clean things, and it works alarmingly well. To each their own!
I started by driving into Vietnam’s Central Highlands, down what Google simply refers to as ‘unnamed road’, to about 11°52’59.3″N 108°33’49.5″E. I asked around until I found a street vendor that knew a farmer at the nearby tea plantation, and would sell us five kilograms of fresh tea. I carried it 330 kilometers back to the city, because I’m a sane person that does normal things.
When we think of relays, we tend to think of those big mechanical things that make a satisfying ‘click’ when activated. As nice as they are for relay-based computers, there are times when you don’t want to deal with noise or the unreliability of moving parts. This is where solid-state relays (SSRs) are worth considering. They switch faster, silently, without bouncing or arcing, last longer, and don’t contain a big inductor.
An SSR consists of two or three standard components packed into a module (you can even build one yourself). The first component is an optocoupler which isolates your control circuit from the mains power that you are controlling. Second, a triac, silicon controlled rectifier, or MOSFET that switches the mains power using the output from the optocoupler. Finally, there is usually (but not always) a ‘zero-crossing detection circuit’. This causes the relay to wait until the current it is controlling reaches zero before shutting off. Most SSRs will similarly wait until the mains voltage crosses zero volts before switching on.
If a mechanical relay turns on or off near the peak voltage when supplying AC, there is a sudden drop or rise in current. If you have an inductive load such as an electric motor, this can cause a large transient voltage spike when you turn off the relay, as the magnetic field surrounding the inductive load collapses. Switching a relay during a peak in the mains voltage also causes an electric arc between the relay terminals, wearing them down and contributing to the mechanical failure of the relay.
Text-based Linux and Unix systems are easy to manipulate. The way the Unix I/O system works you can always fake keyboard input to another program and intercept its output. The whole system is made to work that way. Graphical X11 programs are another matter, though. Is there a way to control X11 programs like you control text programs? The answer to that question depends on exactly what you want to do, but the general answer is yes.
As usual for Linux and Unix, though, there are many ways to get to that answer. If you really want fine-grained control over programs, some programs offer control via a special mechanism known as D-Bus. This allows programs to expose data and methods that other programs can use. In a perfect world your target program will use D-Bus but that is now always the case. So today we’ll look more for control of arbitrary programs.
There are several programs that can control X windows in some way or another. There’s a tool called xdo that you don’t hear much about. More common is xdotool and I’ll show you an example of that. Also, wmctrl can perform some similar functions. There’s also autokey which is a subset of the popular Windows program AutoHotKey.
To describe the constraints on developing consumer battery technology as ‘challenging’ is an enormous understatement. The ideal rechargeable battery has conflicting properties – it has to store large amounts of energy, safely release or absorb large amounts of it on demand, and must be unable to release that energy upon failure. It also has to be cheap, nontoxic, lightweight, and scalable.
As a result, consumer battery technologies represent a compromise between competing goals. Modern rechargeable lithium batteries are no exception, although overall they are a marvel of engineering. Mobile technology would not be anywhere near as good as it is today without them. We’re not saying you cannot have cellphones based on lead-acid batteries (in fact the Motorola 2600 ‘Bag Phone’ was one), but you had better have large pockets. Also a stout belt or… some type of harness? It turns out lead is heavy.
Rechargeable lithium cells have evolved tremendously over the years since their commercial release in 1991. Early on in their development, small grains plated with lithium metal were used, which had several disadvantages including loss of cell capacity over time, internal short circuits, and fairly high levels of heat generation. To solve these problems, there were two main approaches: the use of polymer electrolytes, and the use of graphite electrodes to contain the lithium ions rather than use lithium metal. From these two approaches, lithium-ion (Li-ion) and lithium-polymer (Li-Po) cells were developed (Vincent, 2009, p. 163). Since then, many different chemistries have been developed.
For the penny-pinching basement hacker, McMaster-Carr seems like a weird go-to resource for hardware. For one, they’re primarily a B2B company; and, for two, their prices aren’t cheap. Yet their name is ubiquitous among the hacker community. Why? Despite the price, something makes them too useful to ignore by everyday DIY enthusiasts. Those of us who’ve already been enlightened by the McMaster-Carr can design wonders with a vocabulary of parts just one day away at the click of a button.
Today, this article is for those of us who have yet to receive that enlightenment. When used wisely, this source of mechanical everything brings us a world of fast parts at our fingertips. When used poorly, we find nothing but overpriced stock components in oversized shipping boxes.
Since we, the McMaster-Carr sages, are forever doomed to stuff our desk drawers with those characteristic yellow baggies till the end of time, we thought we’d give an intro to the noobs that are just beginning to flex their muscles with this almighty resource. Grab another cup of coffee as we take you on a tour of the good and good-grievances of McMaster-Carr.
The Raspberry Pi is an incredibly versatile computing platform, particularly when it comes to embedded applications. They’re used in all kinds of security and monitoring projects to take still shots over time, or record video footage for later review. It’s remarkably easy to do, and there’s a wide variety of tools available to get the job done.
However, if you need live video with as little latency as possible, things get more difficult. I was building a remotely controlled vehicle that uses the cellular data network for communication. Minimizing latency was key to making the vehicle easy to drive. Thus I set sail for the nearest search engine and begun researching my problem.
My first approach to the challenge was the venerable VLC Media Player. Initial experiments were sadly fraught with issues. Getting the software to recognize the webcam plugged into my Pi Zero took forever, and when I did get eventually get the stream up and running, it was far too laggy to be useful. Streaming over WiFi and waving my hands in front of the camera showed I had a delay of at least two or three seconds. While I could have possibly optimized it further, I decided to move on and try to find something a little more lightweight.