Page MenuHomePhabricator

Improve performance of "MAXX Action Police Pursuit" vehicle
Closed, ResolvedPublic

Assigned To
Authored By
Dec 14 2022, 12:06 AM
Referenced Files
F11422470: IMG_1209.MOV
Dec 16 2022, 1:19 AM
F11422464: IMG_1208.JPG
Dec 16 2022, 1:19 AM
F11420089: IMG_1206.MOV
Dec 14 2022, 12:46 AM
F11420084: Screen Shot 2022-12-13 at 4.32.50 PM.png
Dec 14 2022, 12:46 AM
F11420080: Screen Shot 2022-12-13 at 4.31.01 PM.png
Dec 14 2022, 12:46 AM
F11420078: Screen Shot 2022-12-13 at 4.22.53 PM.png
Dec 14 2022, 12:46 AM
F11420074: Screen Shot 2022-12-13 at 4.23.09 PM.png
Dec 14 2022, 12:46 AM
F11420054: GUEST_12d59977-b4be-4a4d-a6bf-659369498739.jpeg
Dec 14 2022, 12:06 AM


Lights and sounds! Friction motor! MAXX ACTION! $16 at Target!

GUEST_12d59977-b4be-4a4d-a6bf-659369498739.jpeg (1×1 px, 109 KB)

This exciting toy features four buttons that turn on lights and make EAR-SPLITTING POLICE SHRIEKS. It survived about three minutes of play before I received a customer brief to make the noise stop. I snipped the wires to the speaker, and the vehicle has been thriving since then.

One of the buttons also activates the friction motor. What is a friction motor? Apparently a friction motor is a real thing, but it uses a flywheel to store energy. This toy doesn't have a friction motor. It has a regular sort of DC motor.

As received, the motor is just barely able to move the vehicle forward under battery power, provided it is driving downhill and the the wind is with it. The product video on Target's website doesn't actually show the driving feature working -- just the vehicle moving in a close-up shot, with voiceover implying that it is driving under its own power. Perhaps it is? Perhaps the house it is filmed in is very tip-tip-tip? Perhaps the off-brand batteries it came with just can't deliver the raw MAXX power it needs?

I figured it couldn't hurt to take a look and see if I could give it a little bit of a boost. Maybe something is just dirty or needs a little lubrication? I opened it up and had a negative voltage running across the board in no time, which fried the microcontroller and left me rebuilding all vehicle functions.

Event Timeline

epriestley created this task.

There doesn't seem to be anything mechanically wrong with the toy, although the motor and gearbox don't seem to be accessible without breaking something.

There's quite a lot of room inside the chassis, so my plan was just to add a second battery pack with two 18650 cells and drive the motor at 7.2V. If you look around on the internet for guidance on overdriving brushed DC motors you mostly seem to find people telling you that they will explode instantly, but that's inconvenient and I choose not to believe it. Instead, I think driving the motor at 7.2V will probably produce 60% more power than driving it at 4.5V, with no ill effects. In the worst case, the thing doesn't drive now, so if it doesn't drive later nothing has been lost.

My initial plan was to use the existing motor power wires and just put a gate driver and a MOSFET in the middle, connected to the 18650 battery pack. The rest of the vehicle could remain the same. This plan went out the window when I accidentally put a negative voltage across the board and fried it, but then I just stuck with that plan anyway?

I was able to drill some holes in a piece of perfboard and get some tactile switches aligned under the buttons:

Screen Shot 2022-12-13 at 4.23.09 PM.png (600×448 px, 510 KB)

This board also has 2N3904 transistors to drive the LEDs, and pull-up resistors for the buttons. These are using the same 4.5V power that the LEDs are using, and should really be 3.3V, but I choose to believe that sending a 4.5V input to an ESP32 will just make the logic stronger. (According to some guy's blog, some other guy's highly official Facebook comment declares that the ESP32 is legitimately, officially 5V tolerant on input pins, so maybe I should just embrace this and stop running separate 3.3V for switch pullups.)

The bottom part of the chassis has a new 18650 2S pack. The DC motor is hidden under the new board. (I put a diode across the motor because the internet says you should do that.)

Screen Shot 2022-12-13 at 4.22.53 PM.png (803×601 px, 878 KB)

Then I plugged them both into a board with an ESP32 on it, with the MOSFET (IRLB8721) and gate driver (TC4427VPA):

Screen Shot 2022-12-13 at 4.31.01 PM.png (600×451 px, 581 KB)

I tried using some 2.54mm terminal blocks I had on hand to wire the ESP32. This worked out kind of well, and solved the "some of the pins have input and/or output restrictions you have to memorize or look up HA HA HA" issue that I run into every time I wire a controller. (If you pull pin 12 high during boot, it doesn't boot!) And, inevitably, I got two pins wrong: 34 and 35 are input-only.

Screen Shot 2022-12-13 at 4.32.50 PM.png (797×596 px, 1001 KB)

With everything wired up, all the vehicle functions appear to work correctly, and it drives great:

However, I forgot that I need LEDs on the underside of the perfboard for the vehicle lightbar, and I'm out of 2-pin male JST-XH connectors. Once I can fix that stuff I think I just need to write software for it.

Here's the updated lightbar:

IMG_1208.JPG (3×4 px, 1 MB)

Then I wrote this behavior in software:

  • Tail light is now always-on with a to indicate the toy is on, since I have no knowledge of the dark arts of low-power modes on the ESP32 and couldn't come up with anything more interesting. (Many of the battery-operated devices in this house have had a ~100% duty cycle for the last few years, so I've been switching everything to rechargeable batteries anyway.)
  • Middle button toggles the light bar.
  • Left and right buttons toggle the turn signals. Holding a button for one second turns on the corresponding headlight.
  • Drive button does two short "vroom vroom" motor pulses, then drives for about four seconds.

The inside is full of hot glue, but I'm calling this complete for the next 13 minutes until some significant part of the hardware is destroyed.