There’s a bunch of simple WiFi-enabled outlets on the market today, and all of these blister-pack goodies seem to have something in common – crappy software. At least from the hacker’s point of view; there always seems to be something that you want to do that the app just doesn’t support. Stuck in this position, [scootermcgoober] did the smart thing and reflashed his cheap IoT outlets.
Although [scooter]’s video is very recent, and he says he got his plugs at Home Depot, we were unable to find them listed for sale at any store near us. Walmart lists the same device for a paltry $15, though, so the price is right for repeating his experiment. The video after the break shows his teardown, which locates all the major components, including a mystery module that was revealed to be an ESP8266 upon decapping. Pins were traced, leads were tacked to his serial-to-USB adapter, and soon new firmware was flashing. [scooter]’s new app is simple, but there’s plenty of room for improvement once you’ve got the keys. All the code is up on GitHub.
Filed under: wireless hacks
Inspired by TRON, [lasttraveler] decided to try his hand at building a Balance Board — basically a giant joystick pad you can stand on to control.
Constructed of solid wood, the switches are actually very simple — he’s just using tin foil to make the contacts. By opening up the sacrificial keyboard, he’s taken the up/down/left/right keys and wired the contacts directly to the four tin foil pads. A recess in the bottom of the board allows the rest of the keyboard to remain intact — in case he ever wants to take it apart again. Or add new buttons!
Wooden crossbeams in the shape of an X allow the board to balance in the middle without touching any of the contacts — but as soon as you lean the connections are made and you’re off to the races!
Now strap on a VR headset and play some TRON! Though if you want even more accurate control you might want to pick up a cheap Wii balance board instead.
Filed under: computer hacks, peripherals hacks
Doing some 8-bit ASCII art, but can’t remember where you left your copy of MicroKnight for the Amiga? Or maybe you just need some low-res-but-high-style bitmap fonts to go with your LED pixel array. No fear! Maze.io is cataloguing old text-mode fonts for you.
Textmode.es has a slew of new and old text art from both the Amiga and PC scenes. Rendering some of these correctly really relies on having the right font, so the parser piece reads many different art file formats and renders them with the requested fonts. There’s ASCII, sure, but also ICE Draw, PCBoard, Artworx, and many more. But piece needs the right fonts to do its work, which brings us back to Maze.io.
So whether you’re interested in new or old text-mode art, or just in need of some pixels to push around, have a look at Maze.io. And if you see any ROMs out there with interesting fonts, let them know.
Filed under: classic hacks
The Internet of Things is slowly turning into the world’s largest crappy robot, with devices seemingly designed to be insecure, all waiting to be rooted and exploited by anyone with the right know-how. The latest Internet-enabled device to fall is a Motorola Focus 73 outdoor security camera. It’s quite a good camera, save for the software. [Alex Farrant] and [Neil Biggs] found the software was exceptionally terrible and would allow anyone to take control of this camera and install new firmware.
The camera in question is the Motorola Focus 73 outdoor security camera. This camera connects to WiFi, features full pan, tilt, zoom controls, and feeds a live image and movement alerts to a server. Basically, it’s everything you need in a WiFi security camera. Setting up this camera is simple – just press the ‘pair’ button and the camera switches to host mode and sets up an open wireless network. The accompanying Hubble mobile app scans the network for the camera and prompts the user to connect to it. Once the app connects to the camera, the user is asked to select a WiFi connection to the Internet from a list. The app then sends the security key over the open network unencrypted. By this point, just about anyone can see the potential for an exploit here, and since this camera is usually installed outdoors – where anyone can reach it – evidence of idiocy abounds.
Once the camera is on the network, there are a few provisions for firmware upgrades. Usually, firmware upgrades are available by downloading from ‘private’ URLs and sent to the camera with a simple script that passes a URL directly into the shell as root. A few facepalms later, and [Alex] and [Neil] had root access to the camera. The root password was ‘123456’.
While there’s the beginnings of a good Internet of Camera in this product, the design choices for the software are downright stupid. In any event, if you’re looking for a network camera that you own – not a company with a few servers and a custom smartphone app – this would be near the top of the list. It’s a great beginning for some open source camera firmware.
Filed under: digital cameras hacks, security hacks
You may think you’ve built a power supply for your bench. Heck, we all do. But until you check out [Denis]’s bench power supply build, you may not even know what you’re missing.
[Denis]’s design is nearly entirely modular and targeted to the intermediate builder. It’s built on easily available parts and through-hole components. It’s got an Arduino running as the brains, so you’re going to be able to hack on the code when you feel like tweaking it. But easy doesn’t mean light on features. Let’s walk through the build together.
It starts off with a pre-regulator: a switching MOSFET that gets the voltage down to just a couple volts above the target value. Then it’s off to the post-regulator that includes all of the fine adjustments, the DAC and ADC interfacing to the microcontroller, and some fancy features like a “down-programmer” that turns the output off extra quickly.
On the user end of things, [Denis] made a very sleek board that incorporates a TFT touchscreen for the controls, Arduino connections, and the obligatory banana plug outputs. There’s opto-isolation on the SPI bus, a real-time clock, and a bunch more goodies on board. He’s in his third revision of this module, and that level of refinement shows. It’s even SCPI compliant, meaning you can control remotely using an industry-standard protocol.
So what would you do with a ridiculously fancy power supply under microcontroller control? Test out battery charging algorithms? Program test routines to see how your devices will work as their batteries drain out? We have no idea, but we know we want one!
Filed under: tool hacks
Hackaday and Adafruit have joined forces to present the Raspberry Pi Zero Contest. A great contest is nothing without entries though. This is where the Hackaday.io community is proving once again that they’re the best in the world. The contest is less than a week old, yet as of this Thursday evening, we’re already up to 33 entrants! You should submit your own project ideas now for a chance at one of the many prizes. This week on The Hacklet, we’re going to take a look at a few of these early entrants!
We start with [usedbytes] and Zero Entertainment System [usedbytes] has crammed an entire emulator into a classic Nintendo Entertainment System control pad thanks to the Raspberry Pi Zero. Zero Entertainment System also has something the original NES couldn’t dream of having: An HDMI output. The emulator uses the popular RetroPie front end. We’re happy to say that [usedbytes] knew that hacking up a real Nintendo controller would be sacrilegious, so they grabbed a low-cost USB clone from the far East. A bit of creative parts-stuffing and point-to-point wiring later, ZES was ready to meet the world!
Next up is [Jenny List] with The Australia Project. [Jenny] is a hacker from Europe. She’s hoping to use a Pi Zero to talk to Australia. “Talk” may be pushing it a bit though. The Australia Project will use the Weak Signal Propagation Reporter (WSPR) network to transmit RF straight out of the Pi’s GPIO ports. All that is required is a good filter, an antenna, and a balun. The filter in this case is a 7-pole Chebyshev low-pass filter. The filter keeps the Pi’s harmonic filled square waves from messing up every band from DC to light. [Jenny] normally sells these filters as a kit, but she’s made a special version specifically for the Pi Zero.
[Radomir Dopieralski] has brought his signature walking robots to the Pi Zero world with Tote Zero. Tote Zero is a quadruped walking robot built mainly from 9 gram servos. [Radomir’s] custom tote board interfaces the servos to the Pi Zero itself. The Pi Zero opens all sorts of doors for sensors, vision, and advanced processing. The Arduino board on the original Tote would have been hard pressed to pull that off. Tote is programmed in Python, which will make the code quick and easy to develop. Tote Zero just took its first steps a few days ago, so follow along as a new robot is born!
Finally we have [julien] with PoEPi: Pi Zero Power over Ethernet with PHY. The Raspberry Pi Zero is so tiny, that it’s easy to forget it needs a fair amount of power to run. [Julien] is giving us a way to connect our Pi to a network while ditching the USB power supply using Power Over Ethernet (PoE). PoE has been powering devices like IP cameras for years now. It’s become a standard way of transmitting power and data. For the Ethernet physical interface, [Julien] is using Microchip’s ENC28J60, which has a handy SPI interface. Linux already has drivers in place for the device, so it’s a slam dunk. The “power” part of this system comes with the help of an LTC4267 PoE interface chip, which has a built-in switching regulator.
If you want to see more entrants to Hackaday and Adafruit’s Pi Zero contest, check out the submissions list! If you don’t see your project on that list, you don’t even have to contact me, just submit it to the Pi Zero Contest! That’s it for this week’s Hacklet. As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!
Filed under: contests, Hackaday Columns
Implementing a Bluetooth Low Energy (BLE) device from scratch can be a daunting task. If you’re looking for an incredibly detailed walkthrough of developing a BLE project from essentially the ground up, you’ve now got a lot of reading to do: [Jocelyn Masserot] takes you through all the steps using the ARM-Cortex-M0-plus-BLE nRF51822 chip.
The blog does what blogs do: stacks up in reverse-chronological order. So it’s best that you roll on down to the first post at the bottom and start there. [Jocelyn] walks you through everything from setting up the ARM compiler toolchain through building up a linker script, blinking an LED, flashing the chip, and finally to advertising your device to your cell phone. It’s a lot of detail, but if you’re doing something like this yourself, you’re sure to appreciate it.
Filed under: wireless hacks
Collectively, the Hackaday readers sigh, “Not another Pi Zero hub!!!”. But [Sean Hodgins’] hub is different. It has a new angle, literally. Besides, it’s an entry in the Hackaday and Adafruit Pi Zero Contest .
[Sean Hodgins’] acute approach is orthogonal to most of the other hubs we’ve seen. He’s mating the hub at right angles to the Zero. The hub plugs into both the on-the-go USB port and the USB power port. No extra cables or wiring needed. [Sean] plans to release the design on GitHub after his Kickstarter campaign ends. He’s supplying bare boards for those who like the smell of solder paste.
This project nicely triangulates the issues of adding a hub to the Zero. The physical connection is solid with the boards connecting via the USB connectors. Power is supplied through the hub the way the Pi expects, which means all the protections the Pi Foundation built into the onboard conditioning are left in place. This also reduces surge problems that might occur when back powering through a hub and hot swapping USB devices. Another neat feature is the notched corner leaving the HDMI port accessible. Similarly, the Pi’s GPIO pins are free of encumbrance. One drawback is the hub is fused at 2 amps, just like the Pi. It would be nice to have a little more headroom for power hungry USB devices. Maybe another 0.5 amp to allow for the Zero’s usage.
[Sean] snaps the two together after the break.
The Raspberry Pi Zero contest is presented by Hackaday and Adafruit. Prizes include Raspberry Pi Zeros from Adafruit and gift cards to The Hackaday Store!
See All the Entries || Enter Your Project Now!
Filed under: contests, Raspberry Pi
In the 1970s and 1980s, a lot of us learned to program using good old-fashioned BASIC on machines ranging from Altairs, Commodores, Apple IIs, and the like. Sometime in the 80’s the IBM PC running MSDOS because the de facto standard, but it was still easy enough to launch BASIC and write a simple little program. Of course, there were other programs, some serious like C compilers, some semi-serious like flight simulators, and some pure fun like Wolfenstein 3D.
If you read Hackaday, you’ve probably noticed that a lot of people emulate old computers–including old MSDOS PCs–using a variety of techniques, including Raspberry PI boards running DOSBox or another emulator. Honestly, though, that’s a lot of effort just to run some old software, right? You can load up DOS emulators on your desktop too. That’s a little easier, but you still have to find software. But if you are as lazy as we are, you might want to check out the MSDOS collection at archive.org.
The collection has over 7,000 old MSDOS titles which is impressive. But what is fascinating is that they will all run inside your Web browser. You are two clicks away from running BASIC, Borland C, flight simulators, or even Commander Keen. Be careful, though. Some key strokes (like Control+C) may not work in the browser.
If you are really hardcore, you can even boot some old versions of Windows in your browser. Or, if you want to go further back in time, try emulating DOS in your browser and then emulating a TRS-80 under DOS. There’s even old versions of Microsoft Word and Wordperfect if you want to write blog posts old school.
If you wish to do some hardware hacking, you don’t have to do all this in the browser. There are also plenty of old computers you can emulate in your browser. There’s even a Windows 95 in a browser (see the video below).
Filed under: misc hacks
We’re pretty far away from a world full of wall-warts at this point, and the default power supply for your consumer electronics is either a microUSB cable or lithium batteries. USB ports are ubiquitous enough, and lithium cells hold enough power that these devices can work for a very long time.
USB devices are common, and batteries are good enough for most devices, not all of them. There is still a niche where& extremely long battery lifetimes are needed and tapping into mains power is impractical. Think smoke detectors and security systems here. How do power supplies work for these devices? In one of the most recent TI application notes, TI showed off their extremely low power microcontrollers with a motion detector that runs for ten years with a standard coin cell battery. This is one of those small engineering marvels that comes by every few years, astonishing us for a few minutes, and then becomes par for the course a few years down the road.
The first thing anyone should think about when designing a battery-powered device that lasts for years is battery self-discharge. You’re not going to run a battery-powered device for ten years with a AA cell; the shelf life for an Energizer AA cell is just 10 years. Add in a few nanoAmps of drain, and you’ll be lucky to make it to 2020. The difference here is a CR2032 lithium-ion coin cell. Look at the datasheet for one of these cells, and they can easily sit on a shelf for 10 years, with 90% of the rated capacity remaining.
With the correct battery in the device, you’ll need a microcontroller that runs at a sufficiently low power for it to be useful in the mid-2020s. The product for this is the CC1310, a very, very low power ARM Cortex-M3 and sub 1GHz transmitter in one package.
Once that’s settled, it’s simply a matter of putting a sensor on the board – in this case a PIR sensor – and a few analog bits triggering an interrupt occasionally. Have the microcontroller in sleep mode most of the time, and that’s how you get a low-power device with a battery that will last a decade.
Filed under: misc hacks
It seems [Kevin] has particularly bad luck with neighbors. His first apartment had upstairs neighbors who were apparently a dance troupe specializing in tap. His second apartment was a town house, which had a TV mounted on the opposite wall blaring American Idol with someone singing along very loudly. The people next to [Kevin]’s third apartment liked music, usually with a lot of bass, and frequently at seven in the morning. This happened every day until [Kevin] found a solution (Patreon, but only people who have adblock disabled may complain).
In a hangover-induced rage that began with thumping bass at 7AM on a Sunday, [Kevin] tore through his box of electronic scrap for every capacitor and inductor in his collection. An EMP was the only way to find any amount of peace in his life, and the electronics in his own apartment would be sacrificed for the greater good. In his fury, [Kevin] saw a Yaesu handheld radio sitting on his desk. Maybe, just maybe, if he pressed the transmit button on the right frequency, the speakers would click. The results turned out even better than expected.
With a car mount antenna pointed directly at the neighbor’s stereo, [Kevin] could transmit on a specific, obscure frequency and silence the speakers. How? At seven in the morning on a Sunday, you don’t ask questions. That’s a matter for when you tell everyone on the Internet.
Needless to say, using a radio to kill your neighbor’s electronics is illegal, and it might be a good idea for [Kevin] to take any references to this escapade off of the Internet. It would be an even better idea to not put his call sign online in the future.
That said, this is a wonderful tale of revenge. It’s not an uncommon occurrence, either. Wikihow, Yahoo Answers and Quora – the web pages ‘normies’ use for the questions troubling their soul – are sometimes unbelievably literate when it comes to unintentional electromagnetic interference, and some of the answers correctly point out grounding a stereo and putting a few ferrite beads on the speaker cables is the way to go. Getting this answer relies entirely on asking the right question, something I suspect 90% of the population is completely incapable of doing.
While [Kevin]’s tale is a grin-inducing two-minute read, You shouldn’t, under any circumstances, do anything like this. Polluting the airwaves is much worse than polluting your neighbor’s eardrums; one of them violates municipal noise codes and another is breaking federal law. It’s a good story, but don’t do it yourself.
Editor’s Note: Soon after publishing our article [Kevin] took down his post and sent us an email. He realized that what he had done wasn’t a good idea. People make mistakes and sometimes do things without thinking. But talking about why this was a bad idea is one way to help educate more people about responsible behavior. Knowing you shouldn’t do something even though you know how is one paving stone on the path to wisdom.
Filed under: radio hacks
[thelostspore] was experimenting with resin casting, and discovered that he needed a pressure casting chamber in order to get clear casts. There are commercial solutions for sale, and they are really nice. However, many hackers are on a budget, and if you’re only casting every now and then you don’t need such a fancy set-up.
Re-purposing equipment like this is pretty common in the replica prop making community. Professional painters use a pressurized pot filled with paint to deliver to their spray guns. These pots can take 60-80 PSI and are built to live on a job site. By re-arranging some of the parts you can easily get a chamber that can hold 60 PSI for enough hours to successfully cast a part. Many import stores sell a cheap version, usually a bit smaller and with a sub-par gasket for around 80 US Dollars. [thelostspore] purchased one of these, removed the feed tube from lid and plugged the outlet. He then attached a quick release fitting to the inlet of the regulator.Alternative pressure casting set-up.
We used this guide to build our own pressure casting set-up. Rather than plug up the outlet on ours, we put a ball valve with a muffler in its place to quickly and safely vent the chamber when the casting has set. We recommend putting a female quick connect coupling or another ball valve in combination with the male fitting (if your hose end is female). It is not super dangerous to do it the way the guide recommends, but this is safer, and you can disconnect the compressor from the tank without losing pressure.
All that was left was to test it. He poured an identical mold and it came out clear!
Filed under: misc hacks
News comes from The Guardian that the iPhone 6 will break because of software updates due to non-authorized hardware replacements. Several thousand iPhone 6 users are claiming their phones have been bricked thanks to software updates if the home button – and the integrated TouchID fingerprint sensor – were replaced by non-Apple technicians.
For the last few iPhone generations, the TouchID fingerprint sensor has been integrated into the home button of every iPhone. This fingerprint sensor provides an additional layer of security for the iPhone, and like everything on smartphones, there is a thriving market of companies who will fix broken phones. If you walk into an Apple store, replacing the TouchID sensor will cost about $300. This part is available on Amazon for about $10, and anyone with a pentalobe screwdriver, spudger, and fine motor control can easily replace it. Doing so, however, will eventually brick the phone, as software updates render the device inoperable if the TouchID sensor is not authorized by Apple.
According to an Apple spokeswoman, the reason for the error 53 is because the fingerprint data is uniquely paired to the touch ID sensor found in the home button. If the TouchID sensor was substituted with a malicious TouchID sensor, complete and total access to the phone would be easy, providing a forehead-slapping security hole. Error 53 is just Apple’s way of detecting devices that were tampered with.
In fairness to Apple, not checking the authenticity of the touch ID would mean a huge security hole; if fingerprint data is the only thing keeping evil balaclava-wearing hackers out of your phone, simply replacing this sensor would grant them access. While this line of reasoning is valid, it’s also incredibly stupid: anyone can get around the TouchID fingerprint sensor with a laser printer and a bit of glue. If you ever get ahold of the German Defense Minister’s iPhone, the fingerprint sensor isn’t going to stop you.
This is a rare case where Apple are damned if they do, damned if they don’t. By not disabling the phone when the TouchID sensor is replaced, all iPhones are open to a gaping security hole that would send the Internet into a tizzy. By bricking each and every iPhone with a replacement TouchID sensor, Apple gets a customer support nightmare. That said, the $300 replacement cost for the TouchID sensor will get you a very nice Android phone that doesn’t have this problem.
Filed under: iphone hacks, news, security hacks
I keep up with the trends in 3D printing reasonably well. The other day my friend mentioned that filament thickness sensing had been added to the latest version of the Marlin firmware. I had no idea what it was, but it certainly sounded cool. I had to find out more.
In industrial settings, filament is made by pulling extruding molten plastic at a certain speed into a cooling bath. The nozzle for 2.85mm filament and 1.75 mm filament is actually the same size, but the filament is stretched more or less as it leaves the nozzle. By balancing these three variables the extrusion machine can produce any size filament desired. Like any mechanical system, it needs constant adjustment to maintain that balance. This is usually done by measuring the filament with a laser after it has cooled, and then feeding this information back into the system. The better filament manufacturers have multiple lasers and very fast feedback loops. Some of the best offer +-0.04mm or less variation in thickness between any two points on the filament. Some of the worst have larger errors such as +-.10mm. Because the plastic is fed into the extruder at a fixed linear speed, this makes a variation in the volume of the plastic coming out of the nozzle per second. With the best we see a 4.41% variation in the volume of plastic extruded. With the worst we start to see 10.51% or more.Filament variation showing up as a cosmetic defect.
A printer is dumb. It works under the assumption that it is getting absolutely perfect filament. So when it gets 10.51% more plastic, it simply pushes it out and continues with its life. However, if the filament is off enough, this can actually show up as a visible defect on the print. Or in worse cases, cause the print to fail by over or under extrusion of plastic.
So, what does a filament thickness sensor do to correct this issue? To start to understand, we need to look at how the filament is dealt with by the software. When the slicer is compiling the G-code for a 3D print, it calculates the volume of plastic it needs in order to deposit a bead of plastic of a certain width and of a certain height per mm of movement. That was a mouthful. For example, when a printer printing 0.2mm layers moves 1mm it wants to put down a volume that’s 1.0mm long x 0.4mm wide x 0.2mm high. The filament being pushed into the nozzle has a volume per mm determined by the diameter of the filament.
The volume out per mm of filament in.
The equation we are trying to balance.
Our goal is to integrate the thickness sensor into these functions to see what the thickness sensor is doing. This is a linear equation, so there’s nothing fancy here. Now, the layer height, layer width, and length of the move are determined by settings and model geometry respectively. These are fixed numbers so we don’t care about them. That leaves us the diameter of the filament and the length of filament extruded. As we mentioned before, typically the filament is assumed to be a fixed diameter. So all the software has to calculate is the length of filament that needs to be extruded per mm of combined movement in the x and y so that our volumes match.
But, we know that one of these variables is actually changing per millimeter as well. The filament diameter! So now we have a problem. If the filament diameter is changing all the time, our equation will never balance! In order to fix this we can add a multiplier to our equation. Since we have no control over the width of the filament we can’t modify that value. However, if we know the width of the filament, and we know the value its supposed to be, we can change the length of the filament extruded. This is because unlike the filament, we have control over the stepper motor that drives the extruder. This value is called the extrusion multiplier, and its determination is what the thickness sensor is all about.
So all the filament sensor does is measure the filament’s current diameter. It takes expected diameter and divides it by the value it just measured to get a simple percentage. It feeds that number back into our system as the extruder multiplier and slows or speeds up the stepper motor as needed. Pretty simple.
Shadows on the sensor from [inornate]’s variation.There are a few thickness sensors being toyed with right now. The first, as far as I can tell; let me know if I am wrong in the comments, was by [flipper] on thingiverse. He is in his third version now. The sensor works by casting a shadow of the filament as it passes by onto an optical sensor. The firmware then counts the pixels and works backwards to get the diameter. This value is sent to the Marlin firmware on the printer which does the rest. As is usual and wonderful in the open source community, it wasn’t long before others started working on the problem too. [inoranate] improved on the idea by casting more shadows on the sensor. The technique is still brand new, but it will be interesting to see what benefits it reaps.
Now comes the next question,”Is it worth upgrading my printer with a thickness sensor?” If you typically run poor filament, or if you extrude your own, yes. The current sensors can only measure +- .02mm. So for the best filament, you won’t really see a difference, but for worse stuff, you might. The latest firmware of the Lyman filament extruder, for making your own filament, also supports these sensors, letting you feed back into your production system like the industrial machines. All in all a very interesting development in the world of 3D printers.
Filed under: 3d Printer hacks, Featured
According to this report at FOX News Technology, the FAA may use “deadly force” against your remote-controlled quadcopter, ahem, “drone” if you’re flying within a 36-mile radius of the Super Bowl this weekend. We call shenanigans on using “deadly” for things that aren’t alive to begin with, but we have no doubt that they intend to take your toys away if you break the rules. We are curious to see how they’re going to do it, though.
The actual Notice to Airmen (NOTAM) has the details, and seems pretty comprehensive. You can’t fly your sea plane or go crop dusting either. Model rocketry is off the table within the circle on Sunday afternoon. It tickles our superiority-bone to note that only “drones” made the headlines.
But we also see our loophole! The ban only extends from the ground’s surface up to 18,000 ft (5,500 m) above sea level. (No, we’re not thinking of flying quadcopters in tunnels under the stadium.) They didn’t rule out high-altitude balloon flight over the Super Bowl? Don’t even think about it.
Thanks [Rich] for the tip.
Filed under: drone hacks, news
My DSL line downloads at 6 megabits per second. I just ran the test. This is over a pair of copper twisted wires, the same Plain Old Telephone Service (POTS) twisted pair that connected your Grandmother’s phone to the rest of the world. In fact, if you had that phone you could connect and use it today.
I can remember the old 110 bps acoustic coupler modems. Maybe some of you can also. Do you remember upgrading to 300 bps? Wow! Triple the speed. Gradually the speed increased through 1200 to 2400, and then finally, 56.6k. All over the same of wires. Now we feel short changed if were not getting multiple megabits from DSL over that same POTS line. How can we get such speeds over a system that still allows your grandmother’s phone to be connected and dialed? How did the engineers know these increased speeds were possible?Claude Shannon with his maze running mechanical mouse
The answer lies back in 1948 with Dr. Claude Shannon who wrote a seminal paper, “A Mathematical Theory of Communication”. In that paper he laid the groundwork for Information Theory. Shannon also is recognized for applying Boolean algebra, developed by George Boole, to electrical circuits. Shannon recognized that switches, at that time, and today’s logic circuits followed the rules of Boolean Algebra. This was his Master’s Thesis written in 1937.
Shannon’s Theory of Communications explains how much information you can send through a communications channel at a specified error rate. In summary, the theory says:
- There is a maximum channel capacity, C,
- If the rate of transmission, R, is less than C, information can be transferred at a selected small error probability using smart coding techniques,
- The coding techniques require intelligent encoding techniques with longer blocks of signal data.
What the theory doesn’t provide is information on the smart coding techniques. The theory says you can do it, but not how.
In this article I’m going to describe this work without getting into the mathematics of the derivations. In another article I’ll discuss some of the smart coding techniques used to approach channel capacity. If you can understand the mathematics, here is the first part of the paper as published in the Bell System Technical Journal in July 1948 and the remainder published later that year. To walk though the system used to fit so much information on a twisted copper pair, keep reading.Information Theory in a Nutshell
Let’s start with a diagram to understand the basic problem. We have information sent from a source by a transmitter through a channel. The channel is disrupted by a noise source. A receiver accepts the signal plus noise and converts it back into information. Shannon determined the maximum amount of information you can reliably move through the channel. The maximum rate is determined by the bandwidth of the channel and the amount of noise, and only those two values. We can see intuitively that bandwidth and noise would be limiting factors. What’s amazing is that they are the only two factors.Bandwidth
It is obvious that a channel with more bandwidth will pass more data than a smaller one. The bigger a pipe, the more can be pushed through it. This statement holds true of all communication channels whether radio frequency (RF), fiber optic, or a POTS twisted pair of copper wires.
The bandwidth of a channel is the difference between the highest and lowest frequencies that will pass through the channel. For example, a POTS voice channel has a low frequency of 400 Hz and a high frequency of 3400 Hz. This provides a bandwidth of 3000 Hz. (Some references say the low frequency is 300 Hz which provides a 3100 Hz bandwidth.) In reality, channel limits are not sharp cutoffs. Shannon used a 3 decibel drop in signal strength to determine the limits.
A twisted pair has a larger bandwidth than 3000 Hz so they are not the reason for the narrow POTS bandwidth. Phone companies impose this limited bandwidth so they can frequency multiplex long distance calls on a single line. The bandwidth limit is acceptable because human speech is intelligible using this band of frequencies.Nyquist Rate
Shannon’s theory built on the work of Harry Nyquist and Ralph Hartley. Nyquist, analyzing telegraph systems, took the first steps toward determining channel capacity. He determined that the maximum pulse rate of a channel (PDF) is twice the bandwidth. This is the Nyquist Rate (if you beg to differ, please see my note at end of article about ‘Nyquist’ terminology). In our 3000 Hz POTS channel we can transmit 6000 pulses per second, which is totally counterintuitive.
Let’s send a 3000 hz sine wave signal through the channel. We somehow chop off all the negative lobes of the sine wave. If we designate the remaining lobes as 0s and the missing lobes as 1s we are sending 6000 bits through the channel. Nyquist discussed pulses but we would now call them symbols in communications work. The number of symbols per second is a baud, named after Émile Baudot who created one of the first digital codes. It is incorrect to say “baud rate”, since by definition it is a rate.
The formula for the Nyquist Rate is:
C is the channel capacity in symbols per second, or baud
B is the bandwidth of the channel in hertz
Hartley’s contribution extended this to use more than two signal levels, or multilevel encoding. He recognized that the receiver determined the number of levels that could be detected, independent of all other factors. In our example of the POTS channel, you might use the amplitude of the sine wave to determine multiple levels. With 4 different levels we can send two bits for every symbol. With multilevel encoding the bit rate for a noiseless channel is given by:
C is the channel capacity in bits per second
B is the bandwidth of the channel in hertz
M is the number of levels.
It is obvious that noise is going to limit the amount of data that can be passed. This is analogous to the rough inner surface of a pipe causing friction and slowing the passage of material. The more noise, the slower the error-free data rate. Here’s Shannon’s formula:
C is the channel capacity in bits per second (bps)
B is the bandwidth of the channel in hertz
S is the average received signal power over the bandwidth
N is the average noise or interference power over the bandwidth
S/N is the signal-to-noise ratio (SNR)
Shannon’s result is in bits because he defined ‘information’ using bits. Consider a deck of 52 playing cards with 4 suits and 13 cards in each suit. It takes 2 bits (00b to 11b) to represent the four suits and 4 bits (0000b to 1101b) to represent the cards. In total, it takes 6 bits to represent a deck of cards.
A deck has more data that could be transmitted: color as 1 bit, face card or number card as 1 bit, face card gender as 1 bit, etc. These are redundant since complete information is already available in 6 bits. Based on Shannon’s work this is not information any more than telling someone there were new articles on Hackaday. There are always new articles so that’s not information. Reporting a day without articles? That’s information.
The probability that a bit is received correctly or incorrectly is determined by the Signal to Noise ratio. A higher noise level means fewer error free bit transfers. This relates directly to Hartley’s recognition that the bit rate is determined by the ability of the receiver to correctly detect the multiple signal levels. Errors start to occur when the noise level exceeds the receiver’s ability to differentiate good and bad symbols. The impact of noise on a symbol may actually depend on the specific symbol. Low-level amplitude modulated signals can be overwhelmed by the noise while symbols of higher amplitude are okay. Other modulation methods are impacted by noise in other ways.The Phone Company Cheats
Earlier I asked how DSL works through the same line that handled your Grandmother’s phone. The basic answer is the phone companies cheat. Seriously, the line from your house to the first phone company location is unfiltered allowing DSL to use the full bandwidth of the twisted pair. At the phone company end they split the voice and DSL signals. The voice is limited to the 3000 Hz and the DSL left at its full bandwidth. That little filter you have at your house is a bandpass filter to block the DSL signals from your handset.
I mentioned that Shannon’s theory doesn’t answer the question of how to achieve high throughput. In the next article we’ll look at some of these techniques, which include error detection and correction on a noisy channel.A Comment on Nyquist Terms
There is conflict among references on the meaning of Nyquist Rate versus Limit or Sampling Theorem. The confusion highlights how much Nyquist contributed since if the amount were less there’d be no confusion. A Wikipedia article might not be definitive but the one provided for Nyquist Rate explains the two conflicting meanings of the term.
Filed under: classic hacks, Featured, Network Hacks, slider
What’s the smallest RGB LED cube? A 1x1x1 cube is easy, but it’s a stupid joke and we’ve heard it before. No, to build the smallest LED cube, you’ll have to stuff 64 RGB LEDs into a cubic inch, like [Hari] did with his miniscule LED cube.A single column of Charlieplexed LEDs. Note the resistor for scale.
One might think that individually addressable RGB LEDs are the way to go with an LED cube this small. Anything else would hide the LEDs behind a mess of wires. This isn’t the case with [Hari]’s LED cube – he’s using standard surface mount RGB LEDs for this build. But how is he connecting the things?
The entire build was inspired by the a much earlier project, the Charliecube. This LED cube, like [Hari]’s uses Charlieplexing to condense all the connections for a column of LEDs to only four wires. Repeat that sixteen times, and [Hari] built himself a tiny, one-inch cube of glowey goodness.
The cube itself was built with a PCB backplane designed in Eagle and fabbed at OSHPark. The LEDs are driven by an Arduino Nano. If you’d like to build your own, or you’re a masochist for dead bug soldering, you can grab all the design files over on [Hari]’s hackaday.io project page.
Filed under: led hacks
Kids these days, they have it so easy. Back in the old days, we learned our elements the hard way, by listening to “The Elements” by Tom Lehrer over and over until the vinyl wore out on the LP. Now, thanks to [Karyn], kids can learn the elements by playing “Battleship” – no tongue-twisting lyrics required.
For anyone familiar with the classic “Battleship” game, you’ll wonder why no one thought of this before. [Karyn]’s version of the game is decidedly low-tech, but gets the job done. She printed out four copies of the periodic table, added letters to label the rows, and laminated them. A pair of tables goes into a manila file folder, the tops get clipped together, and dry-erase markers are used to mark out blocks of two to five elements to represent the ships of the Elemental Navy on the lower table. Guesses at the location of the enemy ships can be made by row and series labels for the elementally challenged, or better yet by element name. Hits and misses are marked with Xs and Os on the upper table, and play proceeds until that carrier hiding in the Actinide Archipelago is finally destroyed.
This is pure genius in its simplicity and practicality, but of course there’s room for improvement. The action-packed video after the break reveals some structural problems with the file folders, so that’s an obvious version 2.0 upgrade. And you can easily see how this could be used for other tabular material – Multiplication Table Battleship? Sounds good to us. And if your nippers catch the chemistry bug from this, be sure to take a deeper dive into the structure of the periodic table with them.
Now, if you’ll excuse me: “There’s antimony, arsenic, aluminum, selenium, and hydrogen and oxygen and nitrogen and rhenium….”
[Via the Adafruit blog]
Filed under: chemistry hacks, misc hacks
Brushless motors are everywhere now. From RC planes to CNC machines, if you need a lot of power to spin something really fast, you’re probably going to use a brushless motor. A brushless motor requires a motor controller, and for most of us, this means cheap Electronic Speed Controllers (ESC) from a warehouse in China. [Ben] had a better idea: build his own ESC. He’s been working on this project for a while, and he’s polishing the design to implement a very cool feature – position control.
We’ve seen [Ben]’s work on his custom, homebrew ESC before. It is, by any measure, a work of art. It’s capable of driving brushless and brushed motors with a powerful STM32F4 microcontroller running ChibiOS that’s able to communicate with other microcontrollers through I2C, UART, and CAN bus. If you want to build anything with a motor – from a CNC machine to an RC helicopter to an electric long board – this is the motor controller for you.
[Ben]’s latest update considers position encoders. Knowing how fast a motor is turning is very important to knowing how fast a wheel is turning, how much torque the motor is generating, and an awesome step in building the finest motor controller ever made.
Like the last update, [Ben] demonstrates the great control program written for this ESC. This GUI programs the microcontroller on the controller, with protection from high and low voltages and currents, high RPMs, duty cycle changes, and support for regenerative braking.
Thanks [Dudelbert] for sending this one in.
Filed under: transportation hacks
While laser cutting remains the dominant force for rapid prototyping anything made of plastic, MDF or wood, the real holy grail is the ability to cut metal — something most laser cutters are just not capable of.
In the industry, this is done using extremely high-powered laser cutters, plasma cutters, or water jet cutters. All of which are very pricey equipment for a hacker. Until now anyway. Introducing the Tinijet, the missing tool for affordable water jet cutting.
We first covered this project a few years ago when it was just a university research project called Hydro — it’s since evolved immensely, and will be available for sale very soon.
While the following video is just a rendering, they demonstrated a prototype of the unit at CES 2016.
According to the spec sheet, the working area is only 300x300mm but it is capable of cutting up to 6mm aluminum, and 4mm thick steel or titanium. The operating pressure is a whopping 17,000 PSI or 1200 bar. We want one.
Filed under: cnc hacks, slider