There are a lot of keyboards to choose from, and a quick trip through some of the forums will quickly show you how fanatical some people can be about very specific styles or switches. [Crdotson] doesn’t seem to be too far down the rabbit hole in that regard, but he does have a keyboard that he really likes despite one small quirk: it’s built for Mac, and some of the modifier keys aren’t laid out correctly for Windows. Since Windows has limited (and poor) options for software keymapping, he took an alternative route and built a keymapper in hardware instead.
The build uses a Raspberry Pi as a go-between from the keyboard to his computer. The Pi watches the USB bus using usbmon, which allows inspection of the packets and can see which keys have been pressed. It then passes those keypresses through to the computer. His only modification to the keyboard mapping is to swap the Alt and Super (Windows) keys for his keyboard of choice, although using this software would allow any other changes to be made as well. Latency is only on the order of a few microseconds, which is not noticeable for normal use cases.
While we have seen plenty of other builds around that can map keyboards in plenty of custom ways, if you don’t have the required hardware for a bespoke solution it’s much more likely that there’s a Raspberry Pi laying around that can do the job instead. There are a few issues with the build that [crdotson] is planning to tackle, though, such as unplugging the device while a key is being pressed, which perpetually sends that keystroke to the computer without stopping. But for now it’s a workable solution for his problem.
[James Bruton] is an impressive roboticist, building all kinds of robots from tracked, exploring robots to Boston Dynamics-esque legged robots. However, many of the robots are proof-of-concept builds that explore machine learning, computer vision, or unique movements and characteristics. This latest build make use of everything he’s learned from building those but strives to be useful on a day-to-day basis as well, and is part of the beginning of a series he is doing on building a Really Useful Robot. (Video, embedded below.)
While the robot isn’t quite finished yet, his first video in this series explores the idea behind the build and the construction of the base of the robot itself. He wants this robot to be able to navigate its environment but also carry out instructions such as retrieving a small object from a table. For that it needs a heavy base which is built from large 3D-printed panels with two brushless motors with encoders for driving the custom wheels, along with a suspension built from casters and a special hinge. Also included in the base is an Nvidia Jetson for running the robot, and also handling some heavy lifting tasks such as image recognition.
As of this writing, [James] has also released his second video in the series which goes into detail about the mapping and navigation functions of the robots, and we’re excited to see the finished product. Of course, if you want to see some of [James]’s other projects be sure to check out his tracked rover or his investigations into legged robots.
Continue reading “Really Useful Robot”
Despite being over 25 years old, the original DOOM is still a favorite among gamers and hackers alike. For years now, running the 1993 demonic shooter has been a critical milestone when hacking or reverse engineering a piece of gear, and at this point we’ve seen it run on everything from voting machines to cameras.
But this time around, DOOM isn’t actually running on the device being hacked. Instead, the Roomba 980 that [Rich Whitehouse] has doing his bidding is being used to generate new DOOM levels based on the maps it makes of rooms while going about its business. To be fair they’re pretty simplistic maps, and most of us don’t live in a home quite palatial enough to even fill out shareware trial of id Software’s classic, but it’s still a neat trick.
For those who might not be up to date with the latest and greatest in the world of robotic helpers, newer model Roomba vacuums are equipped with a camera and the ability to generate 3D maps of its environment using a technique called Vision Simultaneous Localization and Mapping (VSLAM). Ostensibly this capability is used to create accurate maps of hazards in the cleaning area, but of course it did set off some privacy alarm bells when introduced due to the possibility that scans of users homes could end up being used for nefarious purposes. Roomba manufacturer iRobot swears they aren’t doing anything suspect with the data their robots collect while traveling through the user’s home, but that hasn’t stopped [Rich] from using the technology as a portal to Hell.
Using “DOOMBA”, the user is able to download the mapping data off of their Roomba 980 (it might work on other models, but hasn’t been tested yet) over the local network and import it into Noesis, a 3D model viewing program developed by [Rich]. The imported map is essentially just a 2D diagram of the home’s floor plan, which on its own wouldn’t make for a terribly interesting DOOM level, so the software will take the liberty of seeding it with weapons, baddies, and all the other varied delights of the netherworld. The user can fiddle around with these settings to try and fine-tune their homespun hellscape, or just let “DOOMBA” randomize it all so they can get on with the ripping and tearing.
If you’ve got Roomba in hand but aren’t a DOOM fan, have no fear. We’ve seen plenty of hacks and mods for everyone’s favorite house-cleaning hockey puck which happen to be of the non-demonic variety. If you just can’t get enough DOOM, stick around for tomorrow’s 25th anniversary celebration article. You will want to copy the banner art and use it as your new desktop background.
Not only is the Super Nintendo an all-around great platform, both during its prime in the 90s and now during the nostalgia craze, but its relative simplicity compared to modern systems makes it a lot more accessible from a computer science point-of-view. That means that we can get some in-depth discussion on how the Super Nintendo actually does what it does, and understand most of it, like this video from [Retro Game Mechanics Explained] which goes into an incredible amount of detail on the mechanics of the SNES’s memory system.
Two of the interesting memory systems the SNES uses are called DMA and HDMA. DMA stands for direct memory access, and is a way for the Super Nintendo to access memory independently of the CPU. The advantages to this are that it’s incredibly fast compared to more typical methods of accessing memory. This isn’t particulalry unique, but the HDMA system is. It allows the SNES to do all kinds of interesting tricks with its video output display like changing color gradients and doing all kinds of masking effects.
If you’re interested in the inner workings of classic consoles like the SNES, this video gets way down in the weeds in the system itself. It’s interesting to see how programmers were able to squeeze more capability from these limited (by modern standards) systems by manipulating memory like the DMA and HDMA systems do. [Retro Game Mechanics Explained] is a great resource for exploring in-depth aspects of lots of classic games, like how speedrunners can execute arbitrary code in old Mario games.
Continue reading “Memory Mapping Methods In The Super Nintendo”
Ecology is a strange discipline. At its most basic, it’s the study of how living things interact with their environment. It doesn’t so much seek to explain how life works, but rather how lives work together. A guiding principle of ecology is that life finds a way to exploit niches, subregions within the larger world with a particular mix of resources and challenges. It’s actually all quite fascinating.
But what does ecology have to do with Luka Mustafa’s talk at the 2018 Hackaday Belgrade Conference? Everything, as it turns out, and not just because Luka and his colleagues put IoT tools on animals and in their environments to measure and monitor them. It’s also that Luka has found a fascinating niche of his own to exploit, one on the edge of technology and ecology. As CEO of Institute IRNAS, a non-profit technology development group in Slovenia, Luka has leveraged his MEng degree, background in ham radio, and interest in LoRaWAN and other wide-area radio networks to explore ecological niches in ways that would have been unthinkable even 10 years ago, let alone in the days when animal tracking was limited by bulky radio collars.
Continue reading “Hackaday Belgrade: Luka Mustafa On Exploiting IoT Niches”
The Unity engine has been around since Apple started using Intel chips, and has made quite a splash in the gaming world. Unity allows developers to create 2D and 3D games, but there are some other interesting applications of this gaming engine as well. For example, [matthewhallberg] used it to build a robot that can map rooms in 3D.
The impetus for this project was a robotics company that used a series of robots around their business. The robots navigate using computer vision, but couldn’t map the rooms from scratch. They hired [matthewhallberg] to tackle this problem, and this robot is a preliminary result. Using the Unity engine and an iPhone, the robot can perform in one of three modes. The first is a user-controlled mode, the second is object following, and the third is 3D mapping.
The robot seems fairly easy to construct and only carries and iPhone, a Node MCU, some motors, and a battery. Most of the computational work is done remotely, with the robot simply receiving its movement commands from another computer. There’s a lot going on here, software-wise, and a lot of toolkits and software packages to install and communicate with one another, but the video below does a good job of showing what you’ll need and how it all works together. If that’s all too much, there are other robots with a form of computer vision that can get you started into the world of computer vision and mapping.
Continue reading “Robot Maps Rooms With Help From IPhone”
We don’t have to tell you that drones are all the rage. But while new commercial models are being released all the time, and new parts get released for the makers, the basic technology used in the hardware hasn’t changed in the last few years. Sure, we’ve added more sensors, increased computing power, and improved the efficiency, but the key developments come in the software: you only have to look at the latest models on the market, or the frequency of Git commits to Betaflight, Butterflight, Cleanflight, etc.
With this in mind, for a Hackaday prize entry [int-smart] is working on a quadcopter testbed for developing algorithms, specifically localization and mapping. The aim of the project is to eventually make it as easy as possible to get off the ground and start writing code, as well as to integrate mapping algorithms with Ardupilot through ROS.
The initial idea was to use a Beaglebone Blue and some cheap hobby hardware which is fairly standard for a drone of this size: 1250 kv motors and SimonK ESCs, mounted on an f450 flame wheel style frame. However, it looks like an off-the-shelf solution might be even simpler if it can be made to work with ROS. A Scanse Sweep LIDAR sensor provides point cloud data, which is then munched with some Iterative Closest Point (ICP) processing. If you like math then it’s definitely worth reading the project logs, as some of the algorithms are explained there.
It might be fun to add FPV to this system to see how the mapping algorithms are performing from the perspective of the drone. And just because it’s awesome. FPV is also a fertile area for hacking: we particularly love this FPV tracker which rotates itself to get the best signal, and this 3D FPV setup using two cameras.