Sim Racing Library for Arduino

Simulator racing tech is amazing. It’s an entire genre of human input devices designed to transform your home desk into the cockpit of a racecar. Wheels, pedals, shifters, handbrakes, gauge clusters, wind generators… you name it, you can find it for your home racing rig.

But with all of the hardware necessary for a comprehensive simulator experience, sim racing is expensive. To try and make it more accessible, communities of makers have sprung up to design their own custom racing devices and adapters built from scratch. Owning a bit of sim racing equipment myself, I thought I would join in on the fun and design a software library that makes it easy to interface sim racing devices with embedded development boards. Introducing the Sim Racing Library for Arduino!

(more…)

Teensy 4.0 Minimalist USB Host Shield

When the Teensy 4.0 development board hit the market in late 2019 it blew the doors off the place. Sporting a blazing fast 600 MHz ARM processor, 2 megabytes of flash memory, and over 40 I/O pins, at only an inch and a half long it packs a serious punch in a (Teensy) tiny package.

One of the awesome features of this board is its built-in USB host capability. This allows the microcontroller to talk to other USB devices such as human interface devices (mice, keyboards, joysticks), MIDI controllers, and even other development boards over USB serial. While some previous boards such as the Teensy 3.6 had this feature, this is the first Teensy board to include USB host functionality in a small format package.

To take advantage of this awesome new feature, I decided to design a minimalist USB host shield for the Teensy 4.0.

(more…)

FastLED NeoPixel Library

Here’s a solution to a niche problem: what do you do if you have an animation written for the Adafruit NeoPixel library but want to use some of the more advanced features of the FastLED library?

In the past that would mean rewriting a significant portion of your code! You would need to research the corresponding FastLED command for every Adafruit NeoPixel function, then modify your program line by line. This requires a working understanding of how both libraries work and how LED data is managed and manipulated.

Now the answer is simple: you can use the FastLED NeoPixel library!

(more…)

Building DIY Split-Flap Displays

It’s incredible how far display technology has come. Nowadays LED walls are found at every major concert venue, flat panel televisions are ubiquitous, and everyone has a high resolution, full color LCD display in their pocket. It’s difficult to imagine that just a few short decades ago it was a struggle to create a large, dynamic display for an economical price.

(more…)

Modifying an RC Controller to Play Forza Horizon

I’ve always been fascinated by RC cars. The dynamics, the engineering, the speed… all wrapped up in a package that you can hold in one hand. Almost more than the cars themselves I’ve always loved the remotes. Ever since I watched Back to the Future and saw that awesome modded Futaba remote I’ve been captivated by the possibilities contained in one of those mystical black boxes. I was playing a racing game the other day when the idea came to me: what if I could modify an RC controller to control a racing game?

And just like that, I decided to convert an RC controller into a gamepad to play Forza Horizon 4.

(more…)

How to Use an RC Controller with an Arduino

Whether you’re modifying a remote controlled vehicle or creating something completely new, Arduino boards are a great way to expand the functionality of your RC receiver. Adding a microcontroller lets you program complex logic functions, sound effects, lighting animations, and more – all managed from the comfort of a wireless remote.

In this tutorial I’m going to show you how to connect a PWM-based RC receiver to an Arduino and read data from it using the Servo Input library.

(more…)