Turn Your Car Into A Simulator

Video games, while entertaining to be sure, are a great way to experience things that could not easily be recreated in real life. Shooting aliens on a giant ring in space is an obvious example, but there are some more realistic examples that video games make much more accessible, such as driving a race car. You can make that experience as realistic as you want, too, and can even go as far as using a real car as your controller.

All modern cars use a communication system to allow their various modules to talk to one another. Fuel injection, throttle position, pedal positions, steering wheel angle, and climate control systems can all communicate on the CAN bus, and by tapping into that information the car can be used as a controller for a video game. Once you plug in to the OBD-II port on a car, you’ll need a piece of software to decode all of that information. [Andrew] uses uinput, a tool that allows Linux machines to take any input signal and map it in any way that can be programmed.

The build also includes the use of an integrated pico projector, allowing the car to be parked and turned into a simulator at any time. It’s similar to another project which used a Mazda instead of a Chevrolet Volt, but it just goes to show how straightforward it can be to take information from the CAN bus of a modern car.

Continue reading “Turn Your Car Into A Simulator”

Circuit-Level Game Boy: Upping Emulation Ante By Simulating Every Cycle

Usually when writing emulation software for a system like the Game Boy, one makes sure to take as many shortcuts as possible in order to reduce the resources required for the emulation. This has however the unfortunate side-effect that it reduces the overall accuracy of the emulation and with it the compatibility with games on the system.

This is the basic reasoning behind projects which seek to abandon simplistic abstractions in favor of cycle-accurate, full compatibility approaches, of which MetroBoy is probably the most extreme one. Instead of abstracting away the hardware, it instead does the emulation at the circuit level. As with such other projects, this means that the emulator requires a lot more CPU cycles to get things just right. On the bright side, one can likely still run this emulator on any modern system.

As the MetroBoy author explains, he implemented code in C++ which allowed him to construct circuits in an HDL-style manner, which should theoretically also allow him to generate a Verilog (or VHDL) softcore out of the project. As a demonstration of implementing HDL in C++ it’s decidedly interesting.

An approach like this is pretty much the exact opposite of a project like the UltraHLE (ultra high-level emulator) Nintendo 64 emulator, which used the knowledge that Nintendo 64 games are written in C as a first step to creating libraries that the code in the Nintendo 64 ROMs would call instead of the native (Nintendo) libraries. This allowed N64 games to directly run on the target system, with the graphic and system calls translated by UltraHLE into native OS calls, using the 3dfx Glide API for accelerated graphics.

While an approach like UltraHLE took allows for the most minimal use of system resources by essentially foregoing emulation completely, for retro systems like the Game Boy where games were implemented in assembly on bare hardware, using this circuit-level emulation ensures that one gets the most accurate match with the original handheld console experience.

As a word of caution to those who are now itching to try out MetroBoy, its Github site notes that it currently lacks support for game saves, uses a mixture of original Game Boy (DMG) and Game Boy Advance SP (AGS) hardware that confuses some games and has rather buggy sound support.

If playing around with software-defined Game Boy circuits isn’t enough and would like to literally look inside a real Game Boy, the X-ray image from the top of the article is something Chris over at Elektronaut pulled off several years ago.

An Epic Mech Cockpit Build For Steel Battalion

Steel Battalion was released for the Xbox in 2002, and remains one of the most hardcore mech simulators of all time. It became legendary for its huge twin-stick controller covered in buttons, and for deleting your save game if you failed to eject in time. It took giant robot gaming to a new level, but fundamentally, you were still playing in front of a TV at home. Things really got serious in 2015, with the completion of the Big Steel Battalion Box – the battlemech cockpit of your dreams.

Coaching the player is a key part of BSBB gameplay, with a manual created specifically for this purpose.

If you’re thinking this is just a television in a dark room with some stickers, you’d be very wrong. The Imgur thread covers the build process, and it’s one heck of a ride. Things started with a custom cabinet being built, intentionally sized to induce claustrophobia. There’s a swivelling seat with a 4-point harness, and a hatch to seal the player inside. During initial testing of the box to determine how dark it was, one of the makers was trapped inside and had to call for help. That should highlight how serious the build really is.

The controller was modified and hooked up to custom electronics to add realistic effects. Get hit? Feel the seat rumble thanks to motors and a subwoofer in the base. Mech terminally damaged? The entire cockpit is bathed in flashing red light. There’s even smoke effects rigged up to make things even more stressful during battle.

The entire setup is connected to the outside world, where a coach can view the action inside through a video feed from the Xbox and several internal cameras. A basic manual is provided to help the coach keep the player alive during their first moments of combat. This is courtesy of a custom intercom setup, built using surplus Chinese aviation headsets. There’s even a red telephone to give that authentic military feel.

It’s a build that covers just about every detail you could think of. If you’re keen to try it out, it’s on permanent loan to The Museum of Art And Digital Entertainment in Oakland, California. It recalls memories of a similar build created to play Artemis. Video after the break.

Continue reading “An Epic Mech Cockpit Build For Steel Battalion”

Unleash Your Inner Starship Captain with this Immersive Simulator Console

We like a good video game as much as the next person. Heck, a few hours wasted with “Team Fortress 2” on a couple of big monitors is a guilty pleasure we’ll never be ashamed of. But this starship bridge simulation console brings immersive gameplay to a new level, and we wholeheartedly endorse it even if we don’t quite get it.

The game in question is “Artemis Spaceship Bridge Simulator”, a game played by anywhere from 2 to 11 players, each of whom mans a different station on the bridge of a generic starship, from Engineering to Communications to the vaunted Captain’s chair. The game is generally played on laptops linked together in a LAN with everyone in the same room, and as cool as that sounds, it wasn’t enough for [Angel of Rust]. The whole mousing back and forth to control the ship seemed so 21st-century, so he built detailed control panels for each of the bridge stations. The level of detail is impressive, as is the thought put into panel layouts and graphics. The panels are mostly acrylic in MDF frames, which allows for backlighting to achieve the proper mood. With the help of a bunch of Arduinos, everything talks to the game software over DMX, the protocol used mainly for stage lighting control. There’s a cool demo video below.

This is uber-nerd stuff, and we love it. Pyrotechnics and atmospherics would be a great addition for “realistic” battles, and dare we hope that someday this ends up on a giant Stewart platform flight simulator for the ultimate experience?

Continue reading “Unleash Your Inner Starship Captain with this Immersive Simulator Console”

Simple RC to USB Interface

With the radio control hobby arguably larger now than it ever has been in the past, there’s a growing demand for high-fidelity PC simulators. Whether you want to be able to “fly” when it’s raining out or you just want to practice your moves before taking that expensive quadcopter up for real, a good simulator on your computer is the next best thing. But the simulator won’t do you much good if it doesn’t feel the same; you really need to hook your normal RC transmitter up to the computer for the best experience.

[Patricio] writes in to share with us his simple hack for interfacing his RC hardware to his computer over USB. Rather than plugging the transmitter into the computer, his approach allows the receiver to mimic a USB joystick. Not only is this more convenient since you can use the simulator without wires, but it will make sure that the minutiae of your radio hardware (such as response lag) is represented in the simulation.

The setup is actually very simple. [Patricio] used the ATtiny85 based Digispark development board because it’s what he had on hand, but the principle would be the same on other microcontrollers. Simply connect the various channels from the RC receiver to the digital input pins. RC receivers are 5 VDC and draw very little current, so it’s even possible to power the whole arrangement from the USB port.

On the software side, the Arduino sketch does about what you expect. It loops through listening for PWM signals on the input pins, and maps that to USB joystick position information. The current code only supports three channels for a simple airplane setup (X and Y for joystick, plus throttle), but it should be easy enough to follow along and add more channels if you needed them for more complex aircraft.

For more information on the intricacies of RC transmitter and receiver interaction, check out this fascinating research on receiver latency.

Forth System-On-Chip Takes Us Back to the 80s

For anyone who has dealt with the programming language Forth, odds are good that you picked it up back in the 80s. Since the language is still in use for many applications, though, you might not have this sort of nostalgic feeling for the language that some might have. For that, though, you might want to try out [Richard]’s implementation which simulates the microcomputers of the 80s using this unique language.

The system has an FPGA-based CPU written in Verilog. It runs on a Nexys-3 board and features PS/2 Keyboard input, a VGA output with a VHDL VT100 terminal emulation module, access to the Flash and onboard SRAM, and a UART. With all of that put together it’s virtually a Forth-based time machine. It’s also extremely well documented even if you’re just curious how it works and aren’t planning on building your own.

The project also includes a CPU simulator written in C which can model the entire computer if you don’t have the hardware for building the actual computer. [Richard] also released everything that you’d need to roll out your own Forth computer on the GitHub page. There are other ways of heading way back to the 1980s, though, like using the quirky Parralax Propeller.

Quantum Weirdness in Your Browser

I’ll be brutally honest. When I set out to write this post, I was going to talk about IBM’s Q Experience — the website where you can run real code on some older IBM quantum computing hardware. I am going to get to that — I promise — but that’s going to have to wait for another time. It turns out that quantum computing is mindbending and — to make matters worse — there are a lot of oversimplifications floating around that make it even harder to understand than it ought to be. Because the IBM system matches up with real hardware, it is has a lot more limitations than a simulator — think of programming a microcontroller with on debugging versus using a software emulator. You can zoom into any level of detail with the emulator but with the bare micro you can toggle a line, use a scope, and hope things don’t go too far wrong.

So before we get to the real quantum hardware, I am going to show you a simulator written by [Craig Gidney]. He wrote it and promptly got a job with Google, who took over the project. Sort of. Even if you don’t like working in a browser, [Craig’s] simulator is easy enough, you don’t need an account, and a bookmark will save your work.

It isn’t the only available simulator, but as [Craig] immodestly (but correctly) points out, his simulator is much better than IBM’s. Starting with the simulator avoids tripping on the hardware limitations. For example, IBM’s devices are not fully connected, like a CPU where only some registers can get to other registers. In addition, real devices have to deal with noise and the quantum states not lasting very long. If your algorithm is too slow, your program will collapse and invalidate your results. These aren’t issues on a simulator. You can find a list of other simulators, but I’m focusing on Quirk.

What Quantum Computing Is

As I mentioned, there is a lot of misinformation about quantum computing (QC) floating around. I think part of it revolves around the word computing. If you are old enough to remember analog computers, QC is much more like that. You build “circuits” to create results. There’s also a lot of difficult math — mostly linear algebra — that I’m going to try to avoid as much as possible. However, if you can dig into the math, it is worth your time to do so. However, just like you can design a resonant circuit without solving differential equations about inductors, I think you can do QC without some of the bigger math by just using results. We’ll see how well that holds up in practice.

Continue reading “Quantum Weirdness in Your Browser”