SDR and Node.js Remote-Controlled Monster Drift

Most old-school remote controlled cars broadcast their controls on 27 MHz. Some software-defined radio (SDR) units will go that low. The rest, as we hardware folks like to say, is a simple matter of coding.

So kudos to [watson] for actually doing the coding. His monster drift project starts with the basics — sine and cosine waves of the right frequency — and combines them in just the right durations to spit out to an SDR, in this case a HackRF. Watch the smile on his face as he hits the enter key and the car pulls off an epic office-table 180 (video embedded below).

If JavaScript is your thing, you should check out this project. It uses the node-hackrf library to communicate with the SDR, and it looks pretty straightforward. Why let the C-coding folks have all the fun? Start scripting your own remote control car maneuvers today!

9 thoughts on “SDR and Node.js Remote-Controlled Monster Drift

  1. When I was in high school I was fiddling around with a RC car remote and a CB radio, discovered I could hear different tones on the radio depending on which button on the remote I pressed..

    So I did the only sensible thing, found the output of the oscillator on the remote where it was fed into the transmitter circuit, cut the trace, fed that signal through an audio transformer to the microphone input of a handheld CB… Discovered I was able to hijack the RC car the kids across the street were driving around (Although my controller was different so the controls were all caddywampus, if I remember correctly “forward” made it steer left, “reverse” made it go forward, and then of left and right, one made it steer to the right, and the other made it go forward), different kids with a different car I couldn’t control, but it would jam their controller. No, I didn’t steal their car, I just pissed them off (Was funny, the kids knew I was good at fixing stuff, and since I was hiding while I was driving their car around, watching them cuss at their controller, they didn’t know I was doing it, so they brought their car over and asked me if I knew how to fix it, and I showed them my setup which 3 of the 4 kids thought was awesome but the remaining one let out a string of 4 letter words that he obviously didn’t know the meaning of and stormed off (I think they were all of 6 or 7)

    1. You must have been pretty close to the cars, or had some pretty bad CB radios. The radio control channels in the 27 MHz band lie in between some of the voice channels. (between 3-4 at 26.995 Mhz, 7-8 at 27.045, 11-12 and 15-16, plus a few more higher up). Transmitting on a normal voice channel should not interfere with a radio control channel.

      Unless you knew how to tweak your rig’s crystal by 370 ppm and offset all the channels by one… :-)

      1. Whistling into the microphone is probably enough to overmodulate the signal to the point where it’s spilling out of its normal intended bandwidth. Although I’m too lazy to calculate it out. Seems plausible enough.

  2. Nice! Reminds me of the time back in high school when we wired a printer’s serial port to some relay switches and eventually the RC remote controller. From the coding side, we used C and learnt a bunch about keyboard interrupts. Good times. There is something cool and timeless about controlling an RC car using a keyboard.

  3. CB’s had good filters in the IF. There is usually one tuned circuit maybe 2 in most toy RC receivers. Bleed, low Q.
    Unless there were ill eagles about one of those channel pairs was usually quieter for there was blank space on one side or other. On the other hand those birds flocked to those extra channels.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s