FPGA Brings Arduboy To The Game Boy Advance

Hackaday readers are perhaps familiar with the Arduboy, an open source handheld gaming system that aims to combine the ease of Arduino development with the seething nostalgia the Internet has towards the original Nintendo Game Boy. While not quite the same as getting one of your games published for a “real” system, the open source nature of the Arduboy platform allows an individual to develop a game playable on a commercially manufactured device.

While the Arduboy hardware itself is actually quite slick, that hasn’t stopped people from trying to bring its games to other pieces of hardware. Now thanks to the efforts of [uXe], the Game Boy Advance is well on its way to becoming Arduboy compatible, in a way bringing the whole project full circle. Assuming this gadget becomes a commercial device (it sounds like that’s still up in the air), Arduboy developers will be able to proudly play their creations on the final and objectively best entry into the Game Boy line.

Getting to this point has been something of an adventure, as documented in a thread from the Arduboy forums. Members of the community wondered what it would take to get Arduboy games running on a real Game Boy, but pretty quickly it was decided that the original beige brick model wasn’t quite up to the task. Eventually its far more capable successor the Game Boy Advance became the development target, and different approaches were considered for getting existing games running on the platform.

While there were some interesting ideas, such as using the GBA’s link port to “feed” the system games over SPI, in the end [uXe] decided to look into creating an FPGA cartridge that would actually run the Arduboy games. In this scenario, the GBA itself is basically just being used as an interface between the FPGA and the human player. In addition to these low-level hardware considerations, there was considerable discussion about the more practical aspects of bringing the games to the new hardware, such as how to best scale the Arduboy’s 128 x 64 output to the GBA’s 240 × 160 screen.

As demonstrated in the videos after the break, [uXe] now as all the elements for playing Arduboy games on the GBA in place, including the ability to disable full screen scaling by using the shoulder buttons. Now he just needs to shrink the hardware down to the point it will fit inside of a standard GBA cartridge. Beyond that, who knows? Perhaps the appeal of being able to run Arduboy games on a real Game Boy is enough to warrant turning this hack into a new commercial product.

Thanks to a hardware swap we’ve seen Arduboy games played on the Dreamcast VMU, and [uXe] himself previously grafted Arduboy-compatible hardware into an original Game Boy, but being able to play these games on an unmodified Game Boy Advance obviously has its own appeal. At the very least, it will be a bit more ergonomic than using a hacked classroom gadget.

Continue reading “FPGA Brings Arduboy To The Game Boy Advance”

Building A Simple Python API For Internet Of Things Gadgets

It’s no secret that I rather enjoy connecting things to the Internet for fun and profit. One of the tricks I’ve learned along the way is to spin up simple APIs that can be used when prototyping a project. It’s easy to do, and simple to understand so I’m happy to share what has worked for me, using Web2Py as the example (with guest appearances from ESP8266 and NodeMCU).

Barring the times I’m just being silly, there are two reasons I might do this. Most commonly I’ll need to collect data from a device, typically to be stored for later analysis but occasionally to trigger some action on a server in the cloud. Less commonly, I’ll need a device to change its behavior based on instructions received via the Internet.

Etherscan is an example of an API that saves me a lot of work, letting me pull data from Ethereum using a variety of devices.

In the former case, my first option has always been to use IoT frameworks like Thingsboard or Ubidots to receive and display data. They have the advantage of being easy to use, and have rich features. They can even react to data and send instruction back to devices. In the latter case, I usually find myself using an application programming interface (API) – some service open on the Internet that my device can easily request data from, for example the weather, blockchain transactions, or new email notifications.

Occasionally, I end up with a type of data that requires processing or is not well structured for storage on these services, or else I need a device to request data that is private or that no one is presently offering. Most commonly, I need to change some parameter in a few connected devices without the trouble of finding them, opening all the cases, and reprogramming them all.

At these times it’s useful to be able to build simple, short-lived services that fill in these gaps during prototyping. Far from being a secure or consumer-ready product, we just need something we can try out to see if an idea is worth developing further. There are many valid ways to do this, but my first choice is Web2Py, a relatively easy to use open-source framework for developing web applications in Python. It supports both Python 2.7 and 3.0, although we’ll be using Python 3 today.

Continue reading “Building A Simple Python API For Internet Of Things Gadgets”

Death Generator Makes Game Over More Personal

“Game over”. In this day and age of complex games with storylines and career modes that last for tens of hours, it’s not really a concept that has a lot of relevance. However, in the golden age of the arcade, those two words made it very clear that your time was up and it was time to find another quarter. Home games of this era were similarly blunt, and if you couldn’t rise to the challenge, you’d be seeing the death screen more often than not.

[foone] was a fan of Sierra’s classic adventure games, and decided to create a tool to generate custom versions of these Game Over/YOU DIED screens. Aptly named Death Generator, the tool is programmed in JavaScript and quickly expanded to cover a wide realm of classic titles. There are King’s Quest IV and V, Gold Rush!, and even modern titles like Cave Story+ and Undertale. There’s plenty of fun to be had typing in completely ridiculous quotes for various screens; our personal favourite is Skate or Die, though Police Quest comes a close second.

[foone] continues to maintain the site, and adds new games from time to time. Animated GIF support has been a recent addition for screens like Metroid and Bad Dudes, and there are even character choices for Super Mario Bros. The code is available on Github if you feel the need to tinker yourself.

When Will Our Cars Finally Speak The Same Language? DSRC For Vehicles

At the turn of the 21st century, it became pretty clear that even our cars wouldn’t escape the Digital Revolution. Years before anyone even uttered the term “smartphone”, it seemed obvious that automobiles would not only become increasingly computer-laden, but they’d need a way to communicate with each other and the world around them. After all, the potential gains would be enormous. Imagine if all the cars on the road could tell what their peers were doing?

Forget about rear-end collisions; a car slamming on the brakes would broadcast its intention to stop and trigger a response in the vehicle behind it before the human occupants even realized what was happening. On the highway, vehicles could synchronize their cruise control systems, creating “flocks” of cars that moved in unison and maintained a safe distance from each other. You’d never need to stop to pay a toll, as your vehicle’s computer would communicate with the toll booth and deduct the money directly from your bank account. All of this, and more, would one day be possible. But only if a special low-latency vehicle to vehicle communication protocol could be developed, and only if it was mandated that all new cars integrate the technology.

Except of course, that never happened. While modern cars are brimming with sensors and computing power just as predicted, they operate in isolation from the other vehicles on the road. Despite this, a well-equipped car rolling off the lot today is capable of all the tricks promised to us by car magazines circa 1998, and some that even the most breathless of publications would have considered too fantastic to publish. Faced with the challenge of building increasingly “smart” vehicles, manufacturers developed their own individual approaches that don’t rely on an omnipresent vehicle to vehicle communication network. The automotive industry has embraced technology like radar, LiDAR, and computer vision, things which back in the 1990s would have been tantamount to saying cars in the future would avoid traffic jams by simply flying over them.

In light of all these advancements, you might be surprised to find that the seemingly antiquated concept of vehicle to vehicle communication originally proposed decades ago hasn’t gone the way of the cassette tape. There’s still a push to implement Dedicated Short-Range Communications (DSRC), a WiFi-derived protocol designed specifically for automotive applications which at this point has been a work in progress for over 20 years. Supporters believe DSRC still holds promise for reducing accidents, but opponents believe it’s a technology which has been superseded by more capable systems. To complicate matters, a valuable section of the radio spectrum reserved for DSRC by the Federal Communications Commission all the way back in 1999 still remains all but unused. So what exactly does DSRC offer, and do we really still need it as we approach the era of “self-driving” cars?

Continue reading “When Will Our Cars Finally Speak The Same Language? DSRC For Vehicles”

Talking Telegram With The ESP8266

At this point it’s something of a given that a member of the ESP8266 family is likely your best bet if you want to cobble together a small Internet-connected gadget. Costing as little as $3 USD, this well documented all-in-one solution really can’t be beat. But of course, the hardware is only one half of the equation. Deciding how to handle the software side of your homebrew Internet of Things device is another story entirely.

A simple Telegram ESP8266 switch

It would be fair to say that there’s no clear-cut “right” way to approach the software, and it really depends on the needs or limitations of your particular project. For example [Brian Lough] finds that building Telegram support into his ESP8266 allows him to accomplish his goals with the minimum amount of fuss while at the same time using an environment he’s already comfortable with. He recently wrote in to share one of his Telegram projects with us, and in the video after the break, takes the time to explain some of the things he likes best about controlling his hardware through the encrypted chat platform.

But you don’t have to take his word for it, you can try it yourself. Thanks to the software library that [Brian] has developed to connect his projects to Telegram, the aptly named “Universal Telegram Bot Library”, anyone can easily follow in his footsteps. Adding his Telegram library to your next ESP8266 project is as easy as selecting it in the Arduino IDE. From there the video explains the process for getting a bot ID from Telegram, and ultimately how you use it to receive messages from the service. What you do with those messages is entirely up to you.

According to [Brian], the main downside is that you are beholden to a web service to control your local devices; not ideal if the Internet goes down or you would rather your little hacker projects not talk to the big scary Internet in the first place. If you’d rather keep all your smart things talking within the confines of your own network, perhaps your next project could be setting up a private MQTT server.

Continue reading “Talking Telegram With The ESP8266”

Eurorack Gets A Wireless MIDI Connection

Modular synthesizers have been around since the early 1960s, delivering huge tonal possibilities from their impressive and imposing patchbays. In 1996, the Eurorack standard was launched, and has become the go-to choice for enthusiasts new to the world of modular synthesis. [Rich Heslip] is just one such enthusiast, and has brought Bluetooth MIDI to Eurorack with his Motivation Radio module.

[Rich]’s module is built around the ESP32, which provides plenty of processing power, along with all the necessary radio hardware to communicate over Bluetooth. The unit packs plenty of connectivity into an 8HP wide panel, with four gate inputs and outputs, four CV inputs and outputs, and serial MIDI in and out.

Thanks to its Bluetooth connection, Motivation Radio makes it easy to pass note and gate data into a Eurorack setup, and can be used with the wide variety of tablet and smartphone MIDI software on offer. If you’re eager to build your own, PCB and panel designs are available courtesy of [jakplugg] and [Rich] has shared the software on Github.

Of course, if you prefer MIDI over USB, [little-scale] has the build for you. Video after the break.

Continue reading “Eurorack Gets A Wireless MIDI Connection”

A Modern Solution To Tea Bag Inventory Management

Britain is famously known as a land of manners and hospitality. Few situations could make an Englishman’s stiff upper lip quiver, short of running out of tea bags while entertaining house guests. Thankfully, [The Gentleman Maker] is here and living up to his name – with a helpful tea monitor to ensure you’re never caught out again.

The Intelli-T, as it has been dubbed, monitors tea inventory by weight. An Arduino Uno combined with a HX711 IC monitors a load cell mounted under a canister, with a reed switch on the lid. Upon the canister being open and closed, the Arduino takes a measurement, determining whether tea stocks have dipped below critical levels. If the situation is dire, a Raspberry Pi connected over the serial port will sound an urgent warning to the occupants of the home. If there is adequate tea, the Raspberry Pi will instead provide a helpful tea fact to further educate the users about the hallowed beverage.

It’s a fun project, and one that has scope for further features, given the power of the Raspberry Pi. A little more work could arrange automatic ordering of more tea online, or send alerts through a service like IFTTT. We’ve seen [The Gentleman Maker]’s uniquely British hacks before, such as the umbrella that tells you the weather. Video after the break.

Continue reading “A Modern Solution To Tea Bag Inventory Management”