Doomed Thermostat

It is amazing how the game Doom has been ported to so many things. Enter one more port, where the hardware in question is a Honeywell Prestige thermostat.

In his video, [cz7asm] shows us the game running quite nicely on the 480 x 272 LCD with an NES controller plugged into the USB port originally intended for software updates. The thermostat runs on a STM32F429 which is an ARM9 processor that has the juice to pull it off. The Doom engine being used is based on Chocolate Doom, an open source port of the game, and the binaries can be downloaded for Windows and Mac. The source code is also available as a download for your tinkering pleasure. This project by [cz7asm]  is extended from a code on GitHub by [floppes] that was meant for the STM32F429IDISCOVERY evaluation board.

The author shares his code for the STM32F4 on Dropbox as a zip and in order to compile it, the Atmel BSP for GNU GCC is used. The video below demonstrates the hack in action and, though there is no sound yet, the satisfaction that comes from such modifications is its own reward.

What else can you run Doom on? How about a calculator or maybe the Intel Edison or even an ATM machine! If there is a processor with enough muscle power, hackers will find a way to run Doom on it. So have you seen any alien computers lately that you think can be hacked? Continue reading “Doomed Thermostat”

Multipurpose ESP8266 keychain

One of the best feature of the ESP8266 is its ability to self-host a web server, allowing for fairly complicated user interactions. The dEEbugger by [S-March] is a nifty little ESP8266 based device with a plethora of features in a small package.

The USB-powered device has a web user interface that enables it to be used as a low-bandwidth oscilloscope, I2C terminal, or UART terminal. As a scope, you may connect to it via your tablet and then use it as a remote voltage monitor. There is a peak detection feature which is a nice touch and gives the entire project a premium feel.

The serial terminal on an ESP8266 is not something new yet it is helpful in disconnecting the console window from the bench. The I2C terminal is where the device really shines as it can scan for connected devices on the connected bus. This Bus-Pirate like feature is useful for beginners as the software can scan the registers addresses of the devices as well.

[S-March] has made the schematic in PDF format as well as the entire code for the project available on GitHub so go right ahead and make it your own. We have had an ESP8266 based VT Terminal device in the past and merging the two would make for an excellent maker tool.

Thanks for the tip [René Arts]

Pedometer for Calorie Conscious Hamster Owners

The Arduino has inspired many a creative projects that can be beneficial to humanity. The Arduino Hamster Wheel Pedometer by [John Mueller] on the other hand is a creation that is meant for the cute furry rodent pets. When [John Mueller]’s daughter wanted to keep track of her hamster’s night-time strolls, her maker-dad saw it as an opportunity to get her involved in technology. The project consists of a hamster-wheel with a magnet that triggers a reed switch on completing a revolution. The entire assembly is custom-made and [John Mueller] does an excellent job documenting the build with a lot of clear images.

The wheel is affixed to a shaft with a ball bearing at one end and the entire thing is mounted on the side of the cage so that it can be removed with ease for maintenance. The reed switch is embedded in the wooden mounting block such that the connecting cables pass from inside the assembly. This prevents the hamster from coming in contact with the cabling or damaging it in any way. An LCD and the Arduino Uno are placed outside the cage and are used to display the revolutions of the wheel as well as the equivalent miles travelled.

The code for the Arduino is also supplied for anyone who wants to replicate the project and the video below shows the working of the project. The project could also be extended to count calories burned as well as running speed. This project is a prime example of how technology can be used to assist and is similar to the IoT Hamster Wheels that tweets every movement of the Hamster Life.

Continue reading “Pedometer for Calorie Conscious Hamster Owners”

Wireless Terminal Over ESP8266

From debug messages to the fundamental ‘hello world’, serial communication does it all over three little wires. Now imagine being able to cut the cord to your next microcontroller project and use your phone as a VT100 terminal. This was the premise of [Ondřej Hruška]’s Wireless Terminal Project where he took an ESP8266  and added an in-browser terminal emulator which can be accessed over WiFi. The final hardware uses an ESP-01 module mounted atop a breadboard adapter with a 3.3V LDO, protection circuitry for the pins and under-voltage disable.

The firmware is based on [SpriteTM]’s libesphttpd code which was modified to include the VT100 escape sequence parser. The parser, in turn, was coded as a state machine and compiled using Ragel which simplifies such projects greatly. When you access the tiny web server, the loaded webpage starts to communicate over web sockets to the ESP-01. Key-presses from the terminal are sent to the buffer and onto the parser and control logic. The characters are then passed to the hardware UART lines at 115200bps and if an escape sequence is detected, the corresponding action is executed instead.

[Ondřej Hruška] shares the code as well as a user manual in PDF for anyone who would like to try it out and help improve the project. With a little inspiration on learning about state machines, you could extend the project to your own use case as well.

Thanks for the tip [Marco Saarloos]

DIY Lap Counters for Drone Racing

Drone racing is a very exciting sport, in which there is a lot of room for hackers and makers to add that special sauce into the mix. Usually the aerial finish line requires special race-timing hardware to do the lap counting, and there are timing gate transponders available for around $40. In his project CoreIR and CoreIR-Uplink, [Michael Rickert] decided to reverse engineer the IR Protocol that goes into these beacons and made a homebrew version that mimics the original. The transponders send a 7-digit number out repeatedly to a receiver at the finish line as the UAV passes by and that helps track how fast drone pilots flew around a race track. The hack involves flipping an IR LED ON and OFF with the correct timing, and [Michael Rickert] confesses that it was not as easy as he had imagined.

Using a logic analyser he was able to capture the modulated 38Khz carrier signal and extract the timing from the original beacon, but it took a number of iterations to get the code just right. The IRRemote library has a ‘sendRaw’ function which is quite helpful in these situations and was employed for the task. He experimented with a number of Arduino boards to power the project, before finally going with the Arduino Pro Mini. He has shared the code on github, along with photos of the finished hack which replaces the original circuit. The final sketches include functions to generate the 7-digit code to uniquely identify the quadcopter, which completes the hack in itself.

If that was not enough, he’s gone a step further by coding and sharing a desktop client as well, which turns this hack into a full-fledged project and should prove quite useful for drone racers on a budget. The app is written in NodeJS and packaged using the electron framework, a choice that makes for a very simple way to create cross-platform desktop applications.

A build tutorial is available for you to get started, and if drone racing seems a bit tame, check out Drone Wars for a little more carnage.

Neural Networks Walk Better Than Humans for Game Animation

Modern day video games have come a long way from Mario the plumber hopping across the screen. Incredibly intricate environments of games today are part of the lure for new gamers and this experience is brought to life by the characters interacting with the scene. However the illusion of the virtual world is disrupted by unnatural movements of the figures in performing actions such as turning around suddenly or climbing a hill.

To remedy the abrupt movements, [Daniel Holden et. al] recently published a paper (PDF) and a video showing a method to greatly improve the real-time character control mechanism. The proposed system uses a neural network that has been trained using a large data set of walking, jumping and other sequences on various terrains. The key is breaking down the process of bipedal movement and its cyclic behaviour into a series of sub-steps or phases. Each phase translates to a natural posture for the character while moving. The system precomputes the next-phases offline to conserve computational resources at runtime. Then considering user control, previous pose of the character(including joint positions) and terrain geometry, the consequent frame of the animation is computed. The computation is done by a regression network that calculates future position of the joints and a blending function is used for Motion Matching as described in a presentation (PDF) and video by [Simon Clavet]. Continue reading “Neural Networks Walk Better Than Humans for Game Animation”

Google AIY: Artificial Intelligence Yourself

When Amazon released the API to their voice service Alexa, they basically forced any serious players in this domain to bring their offerings out into the hacker/maker market as well. Now Google and Raspberry Pi have come together to bring us ‘Artificial Intelligence Yourself’ or AIY.

A free hardware kit made by Google was distributed with Issue 57 of the MagPi Magazine which is targeted at makers and hobbyists which you can see in the video after the break. The kit contains a Raspberry Pi Voice Hat, a microphone board, a speaker and a number of small bits to mount the kit on a Raspberry Pi 3. Putting all of it together and following the instruction on the official site gets you a Google Voice Interaction Kit with a bunch of IOs just screaming to be put to good use.

The source code for the python app can be downloaded from GitHub and consists of a loop that awaits a trigger. This trigger can be a press of a button or a clap near the microphones. When a trigger is detected, the recorder function takes over sending the stream to the Google Cloud. Speech-to-Text conversion happens there and the result is returned via a Text-To-Speech engine that helps the system talk back. The repository suggests that the official Voice Kit SD Image (893 MB download) is based on Raspbian so don’t go reflashing a memory card right away, you should be able to add this to an existing install.

Continue reading “Google AIY: Artificial Intelligence Yourself”