Which Wireless Is Right Wireless?

Back in the early days of Arduino proliferation (and before you ask, yes we realize there was a time before that too), wireless was a strange and foreign beast. IR communication was definitely a thing. And if you had the funds there was this cool technology called ZigBee that was available, often in funny blue house-shaped XBee boards. With even more funds and a stomach for AT commands you could even bolt on a 2G cell radio for unlimited range. WiFi existed too, but connecting it to a hobbyist ecosystem of boards was a little hairier (though maybe not for our readership).

But as cell phones pushed demand for low power wireless forward and the progression of what would become the Internet of marking Terms (the IoT, of course) began, a proliferation of options appeared for wireless communication. Earlier this week we came across a great primer on some of the major wireless technologies which was put together by Digikey earlier in the year. Let’s not bury the lede. This table is the crux of the piece:

There are some neat entries here that are a little less common (and our old friend, the oft-maligned and never market-penetrating ZigBee). It’s actually even missing some entries. Let’s break it down:

  • Extremely short range: Just NFC. Very useful for transferring small amount of sensitive information slowly, or things with high location-relevance (like between phones that are touching).
  • Short range: BLE, Zigbee, Z-Wave, etc. Handy for so-called Personal Area Networks and home-scale systems.
  • Medium/long range: Wifi, Bluetooth, Zigbee, Z-Wave, LoRaWAN: Sometimes stretching for a kilometer or more in open spaces. Useful for everything from emitting tweets to stitching together a mesh network across a forrest, as long as there are enough nodes. Some of these are also useful at shorter range.
  • Very Long range/rangeless: Sigfox, NB-IoT, LTE Category-0. Connect anywhere, usually with some sort of subscription for network access. Rangeless in the sense that range is so long you use infrastructure instead of hooking a radio up to a Raspberry Pi under your desk. Though LoRa can be a fun exception to that.

You’re unlikely to go from zero to custom wireless solution without getting down into the mud with the available dev boards for a few different common protocols, but which ones? The landscape has changed so rapidly over the years, it’s easy to get stuck in one comfortable technology and miss the appearance of the next big thing (like how LoRaWAN is becoming new cool kid these days). This guide is a good overview to help catch you up and help decide which dev kits are worth a further look. But of course we still want to hear from you below about your favorite wireless gems — past, present, and future — that didn’t make it into the list (we’re looking at you 433 MHz).

Adding Bluetooth To Original SNES Controllers

There’s a bunch of companies selling wireless Super Nintendo style controllers out there. You can go on Amazon and get any number of modern pads that at least kinda-sorta look like what came with Nintendo’s legendary 1990’s game console. They’ve got all kinds of bells and whistles, Bluetooth, USB-C, analog sticks, etc. But none of them are legitimate SNES controllers, and for some people that’s just not good enough.

[sjm4306] is one of those people. He wanted to add Bluetooth and some other modern niceties to a legitimate first-party SNES controller, so he picked up a broken one off of eBay and got to work grafting in his custom hardware. The final result works with Nintendo’s “Classic Edition” consoles, but the concept could also work with the original consoles as well as the computer if you prefer your classic games emulated.

A custom ATMEGA328P-powered board polls the controller’s SPI serial shift register in much the same way the original SNES would have. It then takes those button states and sends them out over UART with a HC-05 Bluetooth module. The controller is powered by a 330 mAh 3.7V battery, and a charging circuit allows for easily topping the controller off with a standard USB cable.

A particularly nice touch on the controller is the use of custom light pipes for the status LEDs. [sjm4306] made them by taking pieces of transparent PLA 3D printer filament, heating and flattening the end, and then sanding it smooth. This provides a diffusing effect on the light, and we’ve got to say it looks very good. Definitely a tip to file away for the future.

On the receiving side, this project was inspired by a custom NES Classic Edition Advantage controller we featured last year, and borrows the work creator [bbtinkerer] did to get his receiver hardware talking to the Classic console over I2C.

We’ve seen a number of projects which have added wireless functionality to the classic Super Nintendo controller, but most tend to be more invasive than this one. We like the idea of reading the controller’s original hardware rather than completely gutting it.

Continue reading “Adding Bluetooth To Original SNES Controllers”

Maker Faire NY: Getting Physical With Minecraft

If you’ve been hanging around Hackaday for a while, you’ve likely seen a few attempts to bridge the real world with the voxel paradise that is Minecraft. In the past, projects have connected physical switches to virtual devices in the game, or took chunks of the game’s blocky landscape and turned it into a 3D printable file. These were interesting enough endeavors, but fairly limited in their scope. They assumed you had an existing world or creation in Minecraft that you wanted to fiddle with in a more natural way, but didn’t do much for actually playing the game.

But “Physical Minecraft” presented at the 2018 World Maker Faire in New York, offered a unique way to bring players a bit closer to their cubic counterparts. Created by [Manav Gagvani], the physical interface has players use a motion detecting wand in combination with an array of miniature Minecraft blocks to build in the virtual world.

The wand even detects various gestures to activate an array of “Spells”, which are effectively automated build commands. For example, pushing the wand forward while making a twisting motion will automatically create a tunnel out of the selected block type. This not only makes building faster in the game, but encourages the player to experiment with different gestures and motions.

A Raspberry Pi 3 runs the game and uses its onboard Bluetooth to communicate with the 3D printed wand, which itself contains a MetaWear wearable sensor board. By capturing his own moves and graphing the resulting data with a spreadsheet, [Manav] was able to boil down complex gestures into an array of integer values which he plugged into his Python code. When the script sees a sequence of values it recognizes, the relevant commands get passed onto the running instance of Minecraft.

You might assume the wand itself is detecting which material block is attached to it, but that bit of magic is actually happening in the base the blocks sit on. Rather than trying to uniquely identify each block with RFID or something along those lines, [Manav] embedded an array of reed switches into the base which are triggered by the presence of the magnet hidden in each block.

These switches are connected directly to the GPIO pins of the Raspberry Pi, and make for a very easy way to determine which block has been removed and installed on the tip of the wand. Things can get tricky if the blocks are put into the wrong positions or more than one block are removed at a time, but for the most part it’s an effective way to tackle the problem without making everything overly complex.

We’ve often talked about how kid’s love for Minecraft has been used as a way of getting them involved in STEM projects, and “Physical Minecraft” was a perfect example. There was a line of young players waiting for their turn on the wand, even though what they were effectively “playing” was the digital equivalent of tossing rocks. [Manav] would hand them the wand and explain the general idea behind his interface, reminding them that the blocks in the game are large and heavy: it’s not enough to just lower the wand, it needs to be flicked with the speed and force appropriate for the hefty objects their digital avatar is moving around.

Getting kids excited about hardware, software, and performing physically demanding activities at the same time is an exceptionally difficult task. Projects like “Physical Minecraft” show there can be more to playing games than mindless button mashing, and represent something of a paradigm shift for how we handle STEM education in an increasingly digital world.

Give Yourself A Sixth Sense With An Arduino

If you carry a smartphone around in your pocket, you have a GPS navigation system, a compass, an altimeter, and a very powerful computer at your fingertips. It’s the greatest navigational device ever created. To use this sextant of the modern era you’ve got to look down at a screen. You need to carry a phone around with you. It’s just not natural.

For this entry into the Hackaday Prize, [Vojtech Pavlovsky] has an innovative solution to direction finding that will give you a sixth sense. It’s a headband that turns your temples into the input for a clever way to find yourself around the city or a forest, and it does it with just an Arduino and a few other bits.

The idea behind the Ariadne Headband is to create a haptic navigation system for blind people, runners, bikers, or really anybody. It does this by mounting four vibration motors on a headband, connecting those motors to an Arduino, sniffing data from a digital compass, and getting data over Bluetooth from an Android app.

All of these parts come together to form a new sense — a sense of direction. By simply telling the app to make sure you’re always oriented North, or to guide you along the grid of city streets, this headband becomes an inconspicuous and extraordinarily useful way to get around.

Bring Your Own Controller Kits Just Add Bluetooth

Known for their build quality and low latency, the [8bitdo] line of Bluetooth controllers are generally well liked among classic videogame devotees. They match modern conveniences like rechargeable batteries and Bluetooth connectivity with old school color schemes and the tried-and-true feel of a D-pad. All of their current offerings are modeled to invoke the same feel of console controllers of the past, however, for some there is no substitute for the original. For that type of hobbyist, the company created DIY Bluetooth mod kits in the form of drop-in replacement PCBs.

The featured mod kits are for the original NES controller, SNES controller, and 6-button Genesis Controller. They feature a 180 mAh Li-ion battery for an estimated 7.5 hours of gameplay, and a unique barrel plug type USB charging cable. The charging port fills the void left by the controller’s connection cable and also doubles a the LED status indicator. Though for the Sega Genesis mod kit, the charge port changes to a standard micro USB.

The [8bitdo] website boasts compatibility across Android, Linux, Mac, and Windows (drivers permitting) and even Nintendo Switch. With the addition of one of the company’s Retro Receivers, you are able to use the controllers on the original NES or SNES alongside their contemporary NES/SNES classic console counterparts.

Continue reading “Bring Your Own Controller Kits Just Add Bluetooth”

Knock-Off AirPods Merged Into Bluetooth Receiver

Whether or not you personally like the concept of the AirPod Bluetooth headphones is irrelevant, as an Apple product one thing is certain: all the cool kids want them. That also means that plenty of overseas manufacturers are pumping out janky clones for a fraction of the price for those who are more about the Apple look than the Apple price tag. Are they any good? No, of course not. But that doesn’t mean you can’t do something interesting with them.

[Igor Kromin] took apart a pair of fake AirPods and was predictably underwhelmed. So much so that he didn’t even bother putting the things back together. Instead, he took the two poor Bluetooth audio receivers and combined them into one slightly less poor Bluetooth audio receiver. It probably doesn’t meet the classical definition of a “good” use of time and/or money, but at least he got some entertainment out of a product that was otherwise destined for the trash.

As you might imagine, the left and right “AirPod” each has its own battery, Bluetooth receiver, and speaker. It has to, as they have no physical connection to each other. That also means that each receiver is only playing one channel, making them useless individually. What [Igor] realized was that he could put together a little PCB that combines the two audio channels back into a regular stereo 3.5 mm audio jack.

While he was at it, he also wired the individual buttons on each headphone to a center button on the PCB which would allow him to physically synchronize them. Even still, [Igor] mentions that occasionally they don’t come on at the same time. But what do you expect for something that’s nearly a 20th the price of the original?

The last time we saw a hack related to the Apple AirPod, it was when somebody threw them out the window, so one might presume most hackers prefer their iDevice tethered.

Beginning BLE Experiments And Making Everything Better

Successfully connecting things without physical wires has a profound effect on the maker brain. Machines talking to each other without any cables is as amazing today as it was a decade ago. When Bluetooth came out, it was a breakthrough since it offered a wireless way to connect cellphones to a PC. But Bluetooth is a complicated, high-bandwidth power hog, and it didn’t make sense for battery-powered devices with less demanding throughput requirements to pay the energy price. Enter Bluetooth LE (BLE), with power requirements modest enough to enable a multitude of applications including low power sensor nodes and beacons.

Over the years, a number of gadgets with BLE have popped up such as the LightBlue Bean, BLE Beacons as well as quadcopters like the FlexBot that rely on BLE for communication. Android or iOS apps are the predominant method of talking to these wonderful gadgets though there are alternatives.

This is the first in a two part series on building with BLE devices. First, I’ll survey some BLE devices and how to get started with BLE from the Linux command line. Later, we will go into describing the process of making a NodeJS cross-platform app that will leverage the BLE capabilities and connect it to the Internet.
Lets get started.
Continue reading “Beginning BLE Experiments And Making Everything Better”