There’s something thrilling about decoding an unknown communications protocol. You start with a few clues, poke at the problem with some simple tools, and eventually work your way up to that first breakthrough that lets you crack the code. It can be frustrating, but when you eventually win, it can be very rewarding.
It seems that [Jason] learned this while decoding the wireless conversation between his mass-market quad and its controller. The quad in question, a Yuneec Q500, is one of those mid-range, ready-to-fly drones that’s targeted at those looking to get in the air easily and take some cool pictures. Unsure how the drone and controller were talking, [Jason] popped the covers and found a Zigbee chipset within. With the help of a $14 Zigbee USB dongle and some packet sniffing software from TI, [Jason] was able to see packets flowing, but decoding them was laborious. Luckily, the sniffer app can be set up to stream packets to another device, so [Jason] wrote a program to receive and display packets. He used that to completely characterize each controller input and the data coming back from the drone. It’s a long and strange toolchain, but the upshot is that he’s now able to create KML in real time and track the drone on Google Earth as it flies. The video below shows the build and a few backyard test flights.
Congratulations to [Jason] for breaking the protocol and opening up drones like this for other hackers. If you’re interested in learning more about Zigbee sniffing, you can actually hack a few smarthome gadgets into useful sniffers.
Continue reading “Drone Gives Up Its Wireless Secrets To Zigbee Sniffer”
Microsoft’s original Xbox was regarded curiously by gamers and the press alike at launch. It was bigger, bulkier, and featured an eldritch monstrosity as its original controller. Thankfully, Microsoft saw fit to improve things later in the console’s lifespan with the Controller S, but nothing quite compares to the simple glory of the Xbox 360 controller. Now, there’s a way to use one on your original Xbox.
This project is the work of [Ryzee119], who previously adapted the controller for use with the Nintendo 64. An Arduino Pro Micro, acting as a master controller, talks to a MAX3421 USB host controller, which interfaces with an Xbox 360 wireless receiver, either genuine or third-party. The Arduino reads the data from the wireless receiver and then emulates a standard controller to the original Xbox. The system can handle up to four players on wireless 360 controllers, requiring an extra Arduino per controller to act in slave mode and emulate the signals to the original Xbox. In testing, lag appears roughly comparable with an original wired controller. This is a particularly important consideration for fast-paced action games or anything rhythm based.
It’s a well executed, fully featured project that should improve your weekly Halo 2 LAN parties immensely. No more shall Greg trip over a controller cable, spilling Doritos and Mountain Dew on your shagpile carpeting. Video after the break.
[Thanks to DJ Biohazard for the tip!]
Continue reading “Use Your 360 Controllers On the Original Xbox”
XInput is an API that is used by applications to interface with the Xbox 360 Controller for Windows. The 360 controller became somewhat of a “standard” PC gamepad, and thus many games and applications support the XInput standard.
[James] is working on an entry for a robotics competition, and wanted a controller to use with their PC that was more suited to their build. They took an RC controller, and converted it to work with XInput instead.
The controller in question is the JJRC Q35-01, a trigger-type RC controller available for under $20. The conversion is executed neatly, with the original STM microcontroller being removed from the board, and the PCB traces instead being connected to a Teensy 3.5 which takes over running the show.
The conversion is remarkably complete, with the team not stopping at just reading the buttons and steering potentiometer. A USB logic analyzer was used to figure out how to control the LCD, and a calibration mode implemented just in case.
[James] has shared the work on Github so it’s reproducible for the average maker. We’ve seen plenty of builds in this space, like this tilt controller from [Electronoobs]. Video after the break.
Continue reading “RC Controller Becomes XInput Controller”
There are lots of laser cutters and other CNC machines available for a decent price online, but the major hurdle to getting these machines running won’t be the price or the parts. It’s usually the controller PC, which might be running Windows XP or NT if you’re lucky, but some of them are still using IBM XT computers from the ’80s. Even if the hardware in these machines is working, it might be impossible to get the software, and even then it will be dated and lacking features of modern computers. Enter the Super Gerbil.
[Paul] was able to find a laser cutter with one of these obsolete controllers, but figured there was a better way to getting it running again. As the name suggests, it uses GRBL, a G-Code parser and CNC controller software package that was originally made to run on an 8-bit AVR microcontroller, but [Paul] designed the Super Gerbil to run on a 32 bit ARM platform. He also added Z-axis control to it, so it now sports more degrees of freedom than the original software.
By way of a proof of concept, once he was finished building the Super Gerbil he ordered a CNC machine from China with an obsolete controller and was able to get it running within a day. As an added bonus, he made everything open so there are no license fees or cloud storage requirements if you want to use his controller. [Paul] also has a Kickstarter page for this project as well. Hopefully controllers haven’t been the only thing stopping you from getting a CNC machine for your lab, though, but if they have you now have a great solution for a 3040 or 3020 CNC machine’s controller, or any other CNC machine you might want to have. Continue reading “Replace Legacy CNC PCs With A Gerbil”
We’re no stranger to seeing people jam a Raspberry Pi into an old gaming console to turn it into a RetroPie system. Frankly, at this point it seems like we’ve got to be getting close to seeing all possible permutations of the concept. According to the bingo card we keep here at Hackaday HQ we’re just waiting for somebody to put one into an Apple Bandai Pippin, creating the PiPi and achieving singularity. Get it done, people.
That being said, we’re still occasionally surprised by what people come up with. The Super GamePad Zero by [Zach Levine] is a fairly compelling take on the Pi-in-the-controller theme that we haven’t seen before, adding a 3D printed “caboose” to the stock Super Nintendo controller. The printed case extension, designed by Thingiverse user [Sigismond0], makes the controller about twice as thick, but that’s still not bad compared to modern game controllers.
In his guide [Zach] walks the reader through installing the Raspberry Pi running RetroPie in the expanded case. This includes putting a power LED where the controller’s cable used to go, and connecting the stock controller PCB to the Pi’s GPIO pins. This is an especially nice touch that not only saves you time and effort, but retains the original feel of the D-Pad and buttons. Just make sure the buttons on your donor controller aren’t shot before you start the build.
Adding a little more breathing room for your wiring isn’t the only reason to use the 3D printed bottom, either. It implements a very clever “shelf” design that exposes the Pi’s USB and HDMI ports on the rear of the controller. This allows you to easily connect power and video to the device without spoiling the overall look. With integrated labels for the connectors and a suitably matching filament color, the overall effect really does look like it could be a commercial product.
The SNES controller is an especially popular target for hacks and modifications. From commercially available kits to the wide array of homebrew builds, it there’s plenty of people who want to keep this legendary piece of gaming gear going strong into the 21st century
Continue reading “SNES Controller Has a Pi Zero in the Trunk”
Building an electric motor isn’t hard or technically challenging, but these motors have very little in the way of control. A stepper motor is usually employed in applications that need precision, but adding this feature to a motor adds complexity and therefore cost. There is a small $3 stepper motor available, but the downside to this motor is that it’s not exactly the Cadillac of motors, nor was it intended to be. With some coaxing, though, [T-Kuhn] was able to get a lot out of this small, cheap motor.
To test out the motors, [T-Kuhn] built a small robotic arm. He began by programming his own pulse generating algorithm that mimics a sine wave in order to smooth out the movement of the motor. An Arduino isn’t fast enough to do these computations, though, so he upgraded to using the ESP32. He also was able to implement the inverse kinematics on his own. The result of all this work for a specific platform and motor type is a robotic arm that has a very low cost but delivers performance of much more expensive hardware.
The robot arm was built by [T-Kuhn] too, and all of the details on that build, as well as all the schematics and code, are available on the project site if you need a low-cost robot arm or a good stepper motor controller for a low cost. There are many other ways of getting the most out of other types of low-cost motors as well.
Continue reading “Smooth Moves from Cheap Motors”
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”