Welcome to abs!
If you're following my blog, you must have noticed that I like writing about ideas and projects which I develop from the drawing board to the finished product. This is a similar story, but this time it's about a real thing on the market, and this post is a behind-the-scenes of its creation. So - let's dive in!
It all started from a thread in HardwareBG. I was a huge fan of the nixie tubes even before that:
These indicators were manufactured in huge quantities during the sixties and seventies, until LEDs made them obsolete shortly after. In this post you'll understand part of the reasons for that.
Determined to make my own nixie clock, I joined forces with other similar-minded people, went to a local electronics shop which happened to have 4 tubes Mullard ZM1080 in stock and bought them.
At first glance, the nixie tube is a glass bulb, which contains about ten naked conductors; the impression from a working one is somewhere in-between an incandescent light bulb and a neon sign. Its Bulgarian name - "gas discharge indicators" - hint at their true nature: the air from the bulb is drawn out (like in a vacuum tube), and there's partial pressure of neon (and other helping gasses). The voltage between the terminals is too low to cause the familiar luminescence and you get glow discharge in characteristic yellow-amber colour, surrounding the negative cathodeBTW, a luminescent tube that has run its course and no longer emits light will have the same tell-tale yellowish glow near the ends. (in this case we have 10 cathodes: naked wires, shaped like digits). The similarity with incandescent bulb is illusory - the nixie tubes don't emit any significant heat.
Besides the cathodes, the bulb contains a single anode (a positively-charged eclosing grid, which needs to be 160-180 volts more positive than the cathodes). In order to display a specific digit, you need to connect the anode to a high-voltage supply, and ground the respecitve cathode. If the high-voltage supply is just right, you'll get a pleasant lit digit:
In practice it's necessary to limit the current through the nixie tube, as otherwise it may burn out. This necessitates the 10k resistors you'll see in the schematics below. Gather 6 nixie tubes in a row, and you can make a digital nixie clock.
The need to provide high voltage is a mild nuisanceand probably №1 reason for the downfall of the technology, which takes some googling to resolve. I found out how to make a HV supply out of a 555, MOSFET and an inductor, and after soldering it I went on to think how to multiplex the nixie display.
What does multiplexing mean in this case? (advanced readers: you may skip the following explanations)
If two computers needed to communicate, and for some reason only light signalling was available, that wouldn't be much of a problem. One of them would have a light emitter, e.g. a LED, and the other would posses a light detector, e.g. a photodiode. With the use of a suitable serial interface that blinks the LED, the communication is all set. However, if a computer needs to communicate with a human ... nooo, a single LED is far from sufficient. You'd need tens and hundreds of light-emitting elements, of various shapes and arrangements... you, dear reader, are probably seeing these words displayed on an arrangement of such kind having at least half a million pixels.
And the problem is that when a computer processor needs to command a complex of light-emitting elements, their large number always complicates the design. Let's visualize this with 6 nixie tubes:
What we have here is a microcontroller with 60 commandable "grounding" pins (open drain outputs). We can light up any digit on any lamp.
There a couple of issues with that design, the smaller of them being that we'd need a MCU with at least 60 pins and 60 PCB traces, which would be a pain to route. The bigger issue is that such a MCU doesn't exist because of the high-voltage tolerance requirement - most MCUs these days employ low-voltage semiconductor processes, and can rarely withstand more than 20 volts, and most commonly the limit is even lower at 5.5V. And we're dealing with 160V... If you wired a normal MCU here, it would blow up immediately.
This necessitates the use of HV-capable transistors (e.g., BS108), which you command via TTL outputs of the MCU:
Now that's one ugly schematic: the number of PCB traces increased threefold, and just placing the transistors would require soldering 180 joints. Including the MCU and nixie tubes that's more than 300. Soldering such a PCB would be an incredibly dull and cumbersome deal.
To our rescue we can notice that the scheme above grants a lot of freedom on which digits we can light up, and most of that isn't terribly useful. For example, we can light both cathodes "2" and "6" in a single nixie tube, which would work, but would just look ... strange. What we really want from one indicator is to show any of the digits 0-9, or nothing at all. These 11 options can be conveniently encoded into 4 bits, which are decoded by a specialized IC like 74141:
74141 is a really useful chipthis is hardly surprising: it has been created specifically to drive nixie tubes: the four inputs (labeled A, B, C, D) accept a binary number between 0 and 15. Each of the ten outputs (Q0-Q9) is the open collector of a high-voltage transistor inside. If you choose a number in 0..9 (e.g., you put 5 volts on C, and 0 volts on A, B, and D), the decoder will interpret the number ("4") and connect the respective output ("Q4") to ground. Input codes 10-15 are interpreted as empty - the nixie tube is unlit.
Using 6 pcs of 74141 (or their Soviet counterparts, К155ИД1), the number of solder joints decreases to 198 in total, the MCU needs only 24 I/O pins and the design looks more approproate. We haven't multiplexed anything yet, though.
Let's divide the nixie tubes into two groups of 3: odd and even. We'll put a diverting element on the anodes, which commands which group is active:
If the switch S1 lets the HV supply to the odd group only, we have a complete control over lamps #1, 3 and 5: the decoders command the cathodes of lamps 1+2, 3+4 and 5+6, respectively, but the even-numbered won't lit up as they lack anode voltage. If we want to show "18:33:40" on the display, we send "1", "3" and "4" to the decoders and the actual display would be "1_:3_:4_".
After that we switch S1 to supply the even group and simultaneously send "8", "3" and "0" to the decoders: the display would show "_8:_3:_0":
As you can see, if you switch between the two options fast enough, a human won't notice the flicker and would assume the display shows "18:33:40" with half of the normal brightness.
In fact, we can multiplex even more! 6 can be divided by 3:
Of course we can do a full multiplexing, too:
Are there any in drawbacks here? For one, the brightness diminishes: at full multiplexing it is just one-sixth of the nominal. Of course, we can compensate that by increasing the nixie tube voltage, but this puts the nixies into tougher operationThe nixie tubes aren't eternal (yet another reason for their demise), because in their normal operation, a small amount of the cathode material is sputtered and deposits on the nearby surfaces. If you aim for longer service life, it's advisable to run them on the lowest voltage possible..
Another issue is that whatever you gain by simplifying the low-side drivers (at the cathodes) you lose back by complicating the high-side drivers (at the anodes). It's actually worse, since the switch S1 requires discrete transistors - two per group - there isn't a convenient IC like 74141 for the high-side drive. A balance has to be made; look at this comparison table:
The 2x3 and 3x2 options seemed the best. To help me decide between the two I knocked up a quick prototype to check what % duty cycle looks OK as brightness when the lamps are supplied with 160 volts. Here's how it looked like:
In the end I chose the 2x3 scheme: 50% max brightness and three decoders were required in total.
So after that I was ready to transfer the high-voltage supply and the commanding logic to a PCBstarting with the first prototype this time, as it would have been unwise to use perfboards, considering the dangerous high voltageswell, the inconvenience of that approach is that several takes are needed in order to get all the details right and figure out all the bugs.
This was the first revision (v1.00):
As I wanted the PCBs to be compact, I used the "two-storey" design from the battery level meter. The bottom PCB holds the HV circuit, the MCU, buttons and the timer chip. The top board has the nixie tubes, the decoders and the odd/even switch (S1).
I was also quickly introduced to the struggle of finding nixie tubes: I had 4 pcs only. For a complete clock you need six; luckily, Private from the HardwareBG boards had some, and practically gave away 2 of them so the set was completed:
Try guessing which ones are Private's :)
v1.00 was soon abandoned, as I definitely haven't provisioned enough space between the pairs of bulbs. I also bought these russian guys:
The prolem here was that their pins were at the bottom, while the display part was at the top; i.e., they required to be mounted on a vertical piece of PCB, in order to be compatible with the ZM1080 design. The solution was to place them on a small slotket boards, like this:
The main board has holes for both the ZM1080, as well as a 12-pin connector to the slotkets:
Let's see whether that works:
Up next was to put something to act as the colons separating the pairs of digits. There are some glim bulbs specially made for that, but I was able to find these: MTX-90. They aren't meant to be used for indication (they are a semiconductor device), but had pretty much the same colour and intensity, and the size was good, so I added them here:
During this time, the PCBs went through two revisions: 1.01 had a bunch of fixes to bugs, improper element layouts and pinouts... v1.02 saw the PCBs enlarged to their proper dimensions and the capability to host both types of nixie tubes. Revision 1.03 carried only minor fixes.
The bottom board also had a lot going on:
- I made the timing function of the clock based on DS1307 (carrying on my experience with the DS1302). Just like the case with the plant grow light, I wanted to abstain from timekeeping in the MCU - I wanted the external chip to handle it, and keep the correct time if the main power went out. This time the backup power was provided by a lithium coin cell:
- Three tactile switches are used to set the clock and toggle between various display settings:
- I wanted to have the temperature and humidity measurements, just like those chinese home clocks. The temperature is easy, I could have used a thermistor, I had the code ready. Humidity is more difficult. After some research I found out the cheap chinese sensors, DHT-22, which had suitable specs - at least on paper:
- I implemented various schemes which should, at least in theory, prolong the life of the nixie tubes. One of them is the "screensaver" function. The display only needs to be lit when you're looking at it - otherwise, after 10 minutes of idle it automatically turns off. To wake it up you can just clap hands, and a sound detector would pick it upInitially I used a µA741 op-amp, since this was my jelly-bean amp I had stocked (judging from its legendary history). Only later did I found why the Rail-to-Rail I/O features of modern op-amps are that important. Since I already had laid out the circuit for a 741, I substituted a pin-compatible modern equivalent, MCP601.The pot commands the sensitivity.:
Alas, the functionality of the clock was there. Next task was making it more safe. Even though the two PCBs were just fine laid out one above the other, the design is not solid and also exposes a bunch of wires and conductors that carry the high voltage, so it was unsafe. Instead of looking for a suitably sized box and later on wondering how to cut the necessary holes, the isolation was achieved with suitably cut acryllic sheets:
My first idea was to use steel fasteners between the four surfaces, as shown above. What I didn't like was how the shiny metal contrasted with the otherwise black design, so I tried oxidizing them with acid to turn them black. However, the resulting effect (as above) wasn't looking too good, as it was more like genuine rust, and not really black:
Plan B: let's put a simple stud, affix it with several nuts at the end, and hide it behind plastic round spacers. Sadly, I needed some oddly uncommon lengths, and the only supplier that had them in white:
This worked, but I still wanted black and turned to ebay. There I found a length of black nylon tubing with the suitable inner diameter. You just need to cut it to lengths required. The spacers fabricated in this manner had two tell-tale signs of their origin: the labels, and the inherent curvature. And while the label paint is soluble in alcohol, straightening the pieces is all but impossible. Try finding it here:
The cutting of studs and spacers was an arduous and boring job:
Thus I finally made two complete clocks: one per each nixie tube type. As I suspected others could want to solder one themselves using the same design, we (including the colleagues) decided to create a soldering kit.
The first job was to accumulate some more serious quantities of nixie tubes and 74141 decoders, as they are no longer manufactured and are rare finds (new old stock). Their prices also fluctuate quite a bit. Looking through dozens of online shops, local offers, repair forums and various bulgarian and russian websites, at some point I had more than 100 nixies of various types and state:
The decoders proved more difficult to find, but luckily I was able to find a guy from Bulgaria, which apparently had some amount stocked; even better, the ones he had were practically new:
As both the nixie tubes and the 74141s are very old and, for that reason, unreliable, I had to devise a way to test them en masse. For the lamps I just repurposed the HV board from the first prototype, added an aligator clip for the anode and a DMM probe for the cathodes. With that arrangement you can quickly test all digits.
The decoders were more complicated and I made the following contraption:
It's a very simple scheme which is powered through the button and quickly tests out all outputs of the decoder.
Statistics from the tests was that most NOS components (miraclously) worked. The defective lamps tended to be completely gone, I haven't yet met a partially working one. The decoders are the reverse, and the bad ones tended to have only one faulty output, while the others worked fine. But in the end they also went to the trash bin.
The huge assortiment of elements of various sources led me to categorize and bin them into the following boxes:
Up next was packaging. The soldering kit isn't very big and after some short search through my computer junkyard I was able to find the following suitable box from a video card:
I measured its dimensions and went to a cardboard box manufacturer, where we had to find a template with similar dimensions. In theory, they can create a template speicifcally tailored to your requirements. But that was an expensive deal, so we went to choose a template that some other client had used for his own boxes and was quite similar to ours. The cardboard is cut there and you get a pack of 50-100 unfolded sheets:
which you need to fold afterwards into boxes. Here's how a populated box looks like:
Packaging the insides wasn't anything hard, as only the nixie tubes require special care, in the form of cardboard or bubble-wrap. For the resistors, transistors and the like, we used just some regular zip-lock slipswhich, like any other thing that's polluting the crap out of the environment, are absurdly cheap: you get 100 pcs for about a beer's worth. The last thing was to figure out how to place ICs and sockets. When you get them from the electronic shop, they pack them in a tube, or a on a styrofoam pad. It turns out that Dynacord (an audio systems suppler) has some styrofoam sheets which they sell by the square meter and is quite cheap (it's used for soundproofing though, so our purpose is totally different). The big sheets are easily cut with an office knife into the smaller pads that were required.
After a while I became highly proficient in "aligning the Tetris", wasting less and less amounts of the material:
And thus the first bigger batch was manufactured:
As the production grew, it became harder and harder to keep track of all items, so, to that end (and to help us with the other products as well) I created a small internal system to account it all and automate generation of PDFs with barcodes and delivery-and-acceptance forms:
Up next was getting some well written documentation - an integral part of any "solder it yourself" kit. The long doc was heavily helped with corrections and clarifications by Alex, and thus the Assembly and User Manual was born.
Release was drawing near and I engaged in making a small webpage, showcasing the product, and I needed some promo materials. I didn't have much experience in product photography, but after some reading I knocked up a lightbox from spare sheets I had lying around and now I had the beautiful white background:
An important aspect here is the lighting. The CFLs emit a cool daylight, 6500K. This contrasts a lot with the normal warm-white 2700K lights I had everywhere else in the apartment; however when you apply the white balance for 2700K, the colour of the nixie cathodes turns into an unpleasant cold and violet hue.
With the pictures ready, I went on to see how those big, flashy full-screen websites are made (yes, the appearance is key here). Turns out that is simple - using Supersized I created a minimalistic page to showcase the product.
Up next was distribution and sales. To that end, our friends from Robotev jumped in, we agreed on terms and prices, I brought one batch to their office and the product entered their catalogue. We were up to wait for the first sales.
In order to prop up the popularity of this otherwise unknown product, I did two things; first of them being to spend my Google AdWords credit I was given as a present years ago.
While it is trivial to make a Google Ads campaign, targeting the right customers is tricky. If your keywords are the reasonably specific ones (nixie clock, gas-discharge lamps, nixie clock), then the visitors are really a tiny trickle.
Google was offering the keyword "clock", all by itself. I followed that advice, but it turned out to be a bad one - this stole away from the huge traffic of people looking for wrist watches. In that case, people were just not looking for this, and although the impressions increased a lot, the click-through rate fell dramatically. Soon I abandoned the campaign, it was definitely not heling.
The other thing which proved more successful is to give one demonstrational clock for display in Robotev's office. Do you remember the nice ZM1080 nixie tubes from the first prototype? Well, they ended up here:
Even though most of our clients wanted to solder the kits themselves, it turned out there's some interest into ready-made ones. I went to the packaging company again to look for bigger boxes:
The white colour of the boxes made it possible to create larger and flashier labels:
To support the product (on a tip from Robotev) I put up a forum. Also, I continued to try new elements and ideas. Here's one clock I crafted specifically for the round anniversary of a good friend of mine, this time using the ИНС-1 indicators for colon separators:
And another one, which I used to experiment with a different colour scheme:
What did I learn:
- Supply chains! Even though the product is not complicated, the assembly of a single kit requires sourcing elements and materials from 14 different suppliers, and that doesn't even include the New Old Stock parts. If you consider them as well, the count is usually 17, and the NOS items were the hardest to source, as we've dealed with 27 different places to get them. If a fire was to burn our warehouse to the ground, I would need to go to/speak with 17 different entities in order to get even a single new kit done. And this, of course, is only level one. God only knows how many suppliers does our main electronics distributor (Comet Electronics) have; I bet each of the four transistor types used in the kit is manufactured in a different place. And you get this for a humble bookshelf clock. I can only imagine what the supply chain of an auto manufacturer is like ...;
- Prepare instructions for the idiots, especially if the idiot may be you :) I thanked myself at least ten times that I had written the Nixie Clock Packer's Guide right at the start (it describes the process of assembling a single Nixie Kit step-by-step). This is just a wall of details, which happens to always end up in the short-term memory :);
- Simplifying the manufacture. At some point I got fed up of cutting studs and nylon tubes, and changed the spacing between the PCBs just so that I can use standard spacers. Other changes were in, too: in v1.03 the kit included 4 resistors 10K, ⅛W and 6 pcs ¼W. Why... ? I'm not really sure. That were the engineering requirements. In v1.04 all of them are ¼W;
- Foolproofness can help in unexpected ways... I hold the belief that each device powered by a coaxial DC connector should include some form of reverse polarity protection. In the Nixie clock that is a schottky diode. Simple. But works.
I had assembled a demo clock for our office, up until one day the colleague tells me - "our office clock doesn't work - it lights up, but doesn't display time and instead spits out an incomprehensible babble". Astonished, I went to check up on it (it worked days ago), and just to be sure I connected it to the bench power supply. It suddenly worked as expected. The thing was that the old wall-wart was needed somewhere else, and my colleague inadvertently substituted a bulkier AC wall-wart; and thanks to the bypass capacitor and the diode, that formed a crude rectifier, but, apparently, not good enough for stable operation...;
- Price! As a guy of engineering background, I am always annoyed by products that were evidently cost-cut to the point they lack important features. See my previous post about the combo audio port for example.
The sad truth is that the price has an enormous effect on the customers. We know, since we experimented with the price of the kits, and the different discounts were met with immediate reactions. Another fact is that I believe a lot of people wouldn't go through the hassle of DIY soldering the kits, and would prefer ready-made devices, but bought the kits just because they're cheaper!
- The people that want DIY are a minority :( The main goal of having the kits offered was to give the customers the absolute freedom in styling their contraption in unique and creative ways. As far as I know, most people didn't do anything like that and instead punctually follow the instructions. We only received this variant:
- The devil's in the details The saying is very true, and getting all the details just right is really hard, as you can only think of so many of them. In 9 of 10 cases when people don't buy a product, it is because they don't like a particular detail, but won't tell you that (this applies to basically everything in the world). In the rest 10% you get lucky and you get feedback. Citing one example: did you notice the pink isolation rings that separate the cathodes/digits of the ИН-12 nixies? Turns out there are different batches of otherwise identical lamps, and on some of them the rings are white. Our client had recieved his nixies in a mix of both types. The appearance is otherwise identical in their main function... but here's one detail, which I would never, never notice. Clients are very important :)
- We need to find a way to export this kit from Bulgaria, since the market for these very geekish products here is very tiny. By the way, if somebody would like to cater for selling these over ebay - please contact me;
- Add a PIR sensor, so the wakeup from the screensaver happens on movement too, not just on loud noise;
- Tranfer the code to AVR, since it's definitely the platform for DIY enthusiasts, and most people have experience (and programmers) for that;
- Throw in a GPS for automatic time sync;
- and much more...
As with any other big project, this one could be expanded more ad infinitum. However, this post got overly long already, so I have to wrap it up. Congrats to all who reached here:) I must pay my HUGE thanks to the dozens of people which helped me to get traction with this project and turn it into reality. I won't enumerate them, the list is long - you guys know who you are! Thanks for helping my dream come true!
As it is well known, technologies can be helpful, but can also be just as annoying, as today's rant will show.
In the old days, PC and laptops provided 2 audio ports: an output one (for headphones), and an input one (for a mic). You can hardly make this simpler, but more importantly it worked well:
Well, in the last 4 years the trend is to combine these two ports into a single, four-pin (TRRS) one:
I can't for life understand why the laptop manufacturers thought this is a good idea - but the fashion came out from the smartphone world, where the space budget is tight and that sort of tricks actually make a lot of sensenotwithstanding the recent iPhone7 audio port fiasco, which I think is dumb (and I just pray that the competition, for a change, will spare just a bit of thought and won't follow suit blindly). Anyway, the result of combining those two ports into one is that questions like this or this arise, and people are wondering how to connect their good ol' microphones to the laptops. The problem is that the combo port works for normal headphones, or for headphone+mic combos (and only if your specific combo has the correct pinout at the jack, as there are two competing standards for that). But just a plain mic doesn't work, as its pinout is completely incompatible.
The standard solution to this problem, as far as these threads on the web go anyway, smells of the characteristic 21st-century obtuseness: just buy a new USB microphone! It connects so easy and just works, etc.
That's great, but in my case I'm not connecting a mic. I'm connected a DIY light-to-sound converter, which I'm using to download the data from my Battery level meter. It connects via a 3-pin audio jack, but that's where the similarities with a mic end.
Of course, you can buy splitters like this one:
I had the necessary jacks so I crafted my own splitter, but it didn't work. Turns out, the laptop requires to sense that you have headphones connected, otherwise it'll assume the audio port is not occupied.
This was a bit too much. Out of spite, and led by a bout of OCD, I crafted the following scheme:
The 15-ohm resistors simulate the headphones :)
It fits on a very small perfboard:
The cable from the 4-pin jack arrives here; the other side of the board houses the resistors and the female 3-pin receptacle. The latter accepts a regular mic jack, whereas the 4-pin is for the stubborn laptop, which now "sees" a headphone+mic combo.
As I wanted the whole adapter to be a bit more rugged and safe, I crafted a box. The picture above was actually taken to provide a convenient way to sketch out the required sizes. After some CAD-ing on Blender:
Then I 3D-printed it and forced the board inside:
These thin wires would be a fragile spot in the future, so I fixed innards with a hot glue gun:
Which completed the adapter - the microphone circuitry in the laptop finally yielded and was happy to record. I still wonder if it was worth knocking up this contraption; it probably isn't, but I was furious about the shortsightedness of the Lenovo engineers. So this eccentric response serves them some poetic justice :)
Recently, on 07.07.2016, the battery tests site served its 100 000-th visitor! Huge thanks to everyone, I didn't imagine this pet project turning into something that big :)
Around the same time I uploaded the tests for 6 more battery models, as well as a second test of the Raymax AAA. The newly tested are:
In other news, this blog got a bit of a different looks (R.I.P., Verdana), as well as some rudimentary spambot protection additions :)
One of my tiny teenage victories was convincing my parents to buy me The hacker's manual book. I was obsessed with becoming a hacker, and as these things usually go, I was just trying to be cool - we had a hacker at high school, and a well-rounded one: the black glasses, the op status in the local IRC channels, the incomprehensible technical dialect, and a 55.6k modem filled the picture. Retrospectively, this wasn't a particularly good book: it contained mostly poorly-written, typo-laden C code, intended for god-knows-which incompatible gcc version, and demonstrated exploits which the world has usually long forgotten and patched against. If it taught me anything, it was that becoming a hacker is a long journey and I had tons to read more, before I could join the league. And that there were several definitions for hacker, which people regularly misused.
I have to warn you: this post contains some self-flattery. It's not much, but... you've been warned.
To the point: what defines a hacker? In a nutshell, the hacker is just an extremely curious technical person. He's focused on experimentation and loves to tinker. He has a very large and wide expertise in computers, networks, telephony, hardware, mechanics, and so on. He's always hungry for more knowledge, and likes to inspect other people's creations in order to learn from them. He's not afraid to disassemble his brand new $3000 oscilloscope to see how it's made. He feels perverse pleasure in using systems and products in ways their original creators didn't anticipate. You'd see a hacker use GMail as a file system. He'd run Doom on a iPod. He'd mount a webcam over his front door and will write a system to notify him for suspicios persons wandering in there. A good hacker can grasp a large and new system, and recognize known patterns, so in the end he could have some vague understanding of how it works, and, more importantly, where its weak spots may be.
Well, in that description you'd also find the people who bypass computer security systems and manage to steal your passwords, infect your computer with malware or spyware - because somebody didn't really pay attention while writing that OS or website. The "good" hackers insist on calling these people "crackers" - to make it clear that they intentionally crack computer systems for personal gain. Or differentiate between "white hats" and "black hats" (a dubious naming, since I can't imagine a hacker who isn't at least a bit "gray"). And besides, a lot of "hacks" don't necessarily rely on technical prowess - the "I love you" e-mail virus exploited the fact that a lot of people on the internet have unsatisfactory personal lives.
Anyway, the point of writing this article is to provide a good, non-mainstream example of how a hacker thinks, reasons, and works. Holywood is particularly bad at depicting hackers, and you'd see movie after movie, with the big fat budgets they have, but they never come close to a realistic hacking scene. I think they just don't want to do that. That hackers work mostly at night is but the only think they get right. Here the example goes:
The task at hand was to buy a wireless doorbell for a partially deaf granny. It had to have one transmitter (the little box you put near the front door), and not one, but two receivers, one per room. This turned out to be a not well explored area in the wireless doorbell business, as none of the products The Hacker saw had multiple receivers. The offerings mainly differed in external design and boasted how many melodies they supported and how you could set the loudness level.
The hacker thinks: how typical of Marketing! They would make their point about insignificant details like number of melodies, or colors, but woudn't, for a change, mention at what radio frequency do the units operate, what type of error-correcting code is employed, and how many walls can the signal penetrate. Yes, one of them states the maximal workable distance, but of course doesn't mention under what circumstances...
The Hacker got two pieces of the cheapest variant and asked to unpack them at the counter:
The backsides of the transmitters and receivers had a label with a numeric barcode thing - it was the same for a transmitter/receiver pair, but differed between the two pairs. It was obviously not a serial number. The label also stated the frequency, the same for both pairs:
The hacker thinks: if they operate on the same frequency, then they transmit a specific code to differentiate, so that a receiver only rings up when it hears "its" transmitter. Otherwise what would happen if two people bought the same model wireless bell in the same block? You wouldn't expect one to ring them both, right?
Now The Hacker would hope to be able to change the expected code of one of the receivers. To be honest, The Hacker wasn't sure he could do it, but his intuition was urging him to try.
... well, I intentionally picked up the cheapest model out there. They can't be using anything too complicated inside. It should be cheap and easy, like a DIP-switch or configurable wiring. But definitely a simple and dirt cheap thingy.
When he got home, The Hacker found out that the receivers had something configurable indeed - a row of cut traces on the circuit board, some of which were connected with solder:
and, of course, the positions of the solder joints was differing between the two units:
The hacker thinks: We have some numbers here, with pluses and minuses. There must be a mapping between those numbers and the barcodes on the transmitters. But for the purpose of this task I don't need to figure out the scheme - it suffices to make the solder pattern identical on both units.
5 minutes later, the two receivers were ringing in unison, and there, two walls apart, was The Hacker, with a big, happy grin on his face.
In conclusion... the next time when you'd want to explain somebody what a hacker is - send him here. Please. I'm fed up of these unshaven weeps in glasses, who hack multi-billion-dollar systems using novel, futuristic GUI systems, mumbling faux l33tsp34k. Correct portrayal of hackers must triumph!
I'm with a broken wrist this month and I took upon the opportunity to clear off the backlog I had accumulated for the battery tests website, a total of 29 models, mostly rechargeables:
- PowerGenix Ni-Zn,
- Activ Energy,
- Tronic EnergyEco 2300,
- Duracell 2650,
- GP 2100,
- Varta 2100 Ready to use,
- LADDA 2000,
- Carrefour 2000,
- K-Classic Accu 2.500,
- Tronic Professional 2500 (2014) and
- Tronic EnergyEco 2300 (2015).
Thanks to all the great people, who turned them in for testing!
- Activ Energy,
- Eneloop XX,
- Eneloop (2gen),
- Duracell Duralock 750,
- K-Classic Accu 750,
- LADDA 750,
- Tronic Professional 900 and
- Tronic EnergyEco 950.
Today I'll describe a tiny project that I did dome time ago, which finds a connection between TVs, infrared and some mints.
Introduction (sort of)
I'm thinking that school programmes, especially with regard to natural sciences, could be taught in a more intresting manner. The theory is often fine by itself, but the teachers miss to address some questions which are invariably going to occur to the kids (maybe not to all kids; just the more curious ones) and puzzle them later. xkcd has a very good example with the physics lesson where we learn about the "bird-inspired" airfoil shape, and how it manages to generate lift. Yet nothing is done to address the obvious question: airshows regularly feature fighter aircraft flying upside-down — but the plane doesn't fall down despite the wrong orientation. What's more, the explanation (regarding the angle of attack) can be trivially tested by any sixth-grader waving his hand outside the side window of a moving car!
It's probably expected that these questions are addressed after classes, but in our schools that generally doesn't happen, or, at least, very few ask the teacher questions outside the curriculum. And it's better if everyone is trained to ask questions and locate potential problems in the theory. The airfoil is not an isolated exaple - many times, the theory given is at least shallow, or there are obvious defects sticking out of it.
A similar experience of mine was the explanation of infrared rays. They told us that all things emit IR, amount depending on temperature. We were also told (but probably in a different class) that TV remotes also work with IR. What they didn't explain is how the TV-set differentiates between the former and the latter types of IR. Yes, in a calm room, the "background" IR are more or less static and I imagined, that the TV can differentiate that easily. But what will happen, if you put your TV opposite to a well-kindled fireplace? I've seen this thing happen and I imagined that the TV will change channels or enters menus or otherwise go awry. Nope.
It was after I got into electronics that I found out this powerful pattern of digital circuits. It's easy to generate a signal, a short one (from human point-of-view), yet sophisticated and specific enough that the nature has no chance to emit it ever, even in millions of years. What's more, these signals, at least for IR remotes, are well described and categorized, in tabular form. From there, some smart guy had taken upon the idea of creating an universal device, which can turn off any TV. You press a button, and, in the span of one minute, the codes for "On/Off" in all possible IR encoding schemes for every known TV are sent (there are more than 60 variants, as each manufacturer apparently created his own). The device is discreet enough to be hidden in a purse or a pocket, so you can surreptitiously turn off that annoying TV in the bar, because you've come here for an intellectual discussion while eating, and watching football (for example) just doesn't qualify...
So at some point I ordered the TV-B-Gone kit from Adafruit (there are ready-made units, but I wanted a custom one). Assembled, it comprises of a small circuit board with 4 protruding LEDs (with slightly different spectrum and sreading characteristics), a button, and a holder for 2xAA cells. However, this way it can't be easily carried arround. The protruding part would easily break off, and the gentle conductors to the holder wouldn't last long. So I thought about an enclosure - either polymer clay, or a ready-made from Farnell... Finally, a coworker saved me from wondering further by giving me one tin box from Altoids mints, which he apparently brought from the US. His exact words were - "I see that you do some electronics, this will help".
I had previously seen a lot of american hobby electronics sites and I wondered somewhat about their obsessive fixation on these boxes. As if there was nothing else with that purpose on the market! You made an emergency phone charger out of a nine-volt battery and 7805? Put it in an Altoids box. Headphone preamp? Altoids. Guitar Effect? Altoids.
It was after I fooled some with it that I realized how good it was. It has a lid. And it's held shut tight, the hinges are not some feeble plastic. You want to show what's inside? No problem:
And here's how it looks when shut closed:
What's more, the 2xAA holder fits exactly to the width of the box. The circuit board then fits just tight to the remaining length. Coincidence? I don't think so:
You might be wondering why the microcontroller (in this case, an 8-bit Atmel) doesn't command the LEDs directly, why there's a transistor per each. The reason is that the LEDs are powerful (that's why it's powered by AA, not AAA cells) - the idea being that the device can turn off a TV 50 meters away. It packs quite a punch, unlike a regular TV remote. Even more, if you look straight at the LEDs, in a dark room, you can even see how they blink. Who said humans cannot see IR?
Drilling holes for the LEDs and the switch is trivial, and in the end you have a wicked device, inconspicuously hidden in a box of breath mints:
I could hardly thought of a more treacherous device — victory for science (with a hint of cinnamon)!