blog.jmp.no

Electronics, coding and hacking. And ADD.

« 3D printer Ripping graphics »

WiFi-enabled RC car

2016
21
February

My son owns an RC car that lacks the remote control. It's a cheap car, but still, instead of throwing it away I decided to rescue it somehow. I guess I could find a cheap replacement controller... but why not go all the way and hook it up to my WiFi network?


Good looking car does not know what's about to happen

I decided to use a WeMos D1 board that I had spare, which is an Arduino form factor ESP8266 based board. The ESP8266 specs are amazing, I encourage you to look into this if you need to WiFi-ify something (did I just invent a new word?)


WeMos D1 ESP8266 WiFi board

Not many surprises awaits when you have a transparent chassis. Either way, here's the case that holds the current motherboard. Two more screws and we're in.


Bottom's up! The bottom side appears crowded, but is actually quite nicely laid out. The easiest way to figure out what went where, is to follow the traces backwards - i.e. from the motors to the main IC.


The top side of the board reveals the main IC, which is a PT8A978BPE. It appears to be a common controller for low and mid range remote controllers. I had already figured out the pinouts for forward, reverse, left and right earlier.


PT8A978BPE

Here are the pins labelled 1, 2, 3 and 4 clockwise by yours truly. I applied 3V3 directly to the pins and the wheels started spinning. This is the operating voltage of both the WeMos D1 and the PT8A978BPE, so I figured it's OK.


Wires were soldered to the pins, going directly to the WeMos board since the original motherboard provides the pull-down resistors required. The brown wire in the bottom left corner is to connect the ground planes.


All wired up!

The original battery case had room for six 1.5V AA batteries. Unfortunately I didn't have enough AAs, so I improvised with one 9V battery. However, on the bench I used a traditional power supply.


My heavy-duty power supply

The WeMos D1 found its new home, and I started writing the server software. At first I thought it would be fancy to use a web interface, and improvised a web server on it. Turns out that web calls isn't the best candidate for quick response applications, so I rewrote it down to a simple TCP client. I can even telnet to it and drive it from the command line.

The protocol is dead simple: there are four directions the car can go: forwards, backwards, left and right. The initial letter dictates the direction (F, B, L, R). Uppercase means on, lowercase means off. A sequence of commands to the car may look like this: FRfrBLbFl, and they are parsed on the fly.


The D1 found its new home

Now we're getting somewhere. All parts are wedged into place, and we are ready to start focusing on the client side of the software.


Professionally secured with electrical tape

Here it is on the test bench, a.k.a. an IKEA lamp. No wires attached, running 100% from battery power, controlled via WiFi.


Looking pretty sweet. The car looks a lot better without the original, limp antenna. And it probably does wonders for the aerodynamics as well, don't you think?


All mounted and ready to race.

It's hard to tell from the outside what's going on, but once you take a closer look you can see some of the modifications.


The client software was written in C++/Qt and works perfectly. You can click the buttons or use the keyboard, which is a bit more intuitive. The response time is around ~150-200ms, which is good enough for someone with my driving skills. Meaning I crash a lot anyway.


C++/Qt client

Here's a quick video of the thing in action. Turns out it's hard to drive around when you can't see a thing... Adding a camera to the equation is tempting...


The above video could be much cooler if I were a better driver.


Share:

to WiFi-enabled RC car

Feed for this Entry

3 Comments

  • Cool Project :)

  • It's very interresting, is it possible to see a picture on how you connected the dc motors to the wemos D1 and also your sketch.

    When you will add a camera please post the info again. I'm new to this and I'm trying to learn. thsnks a lot.

    #976 | Comment by Huguens on Jun 29, 2016 01:00am
  • Huguens: I didn't. The Wemos replaces the RF receiver IC, the rest of the RC car's circuitry is untouched. The DC motors are therefore driven by the original hardware.

    #977 | Comment by admin on Jun 29, 2016 06:21am

About You

Email address is not published

Add to the Discussion

Add to Google