Friday, March 31, 2017

Rover Robot Hacked to fire 4-barrel 32 Caliber Minigun.

Rover Robot Hacked to fire 4-barrel 32 Caliber Minigun.

This was an experiment to try and hack the hardware of an off-the-shelf toy "robot". It worked very well and was an interesting build.  In this article, I am going to show how this was performed and give an idea of how you can modify closed source hardware with a minimum of parts to add your own hardware
Using a Brookstone Rover 2.0 WiFi controlled Robot with a hardware hack to fire a home-made 4-barrel, 32 caliber mini gun. Each time the headlights are cycled on/off, the mini gun will fire a round out of the consecutive barrel.

Here's a demonstration of this Rover actually firing the mini gun!

If you have a Brookstone Rover 2.0 and would like to run it using a PS3 game controller and an Ubuntu (or Windows/Mac) laptop like that is shown in the video, Simon Levy has provided the Python code and and some great instructions at:

The circuit for the Rover does not really have any options to expand the hardware, so I used an 4N27 opto-isolator to hijack the headlight LED Signal that is monitored by an Arduino Nano.  Each time the Headlight is turned on/off from the controller, it fires one of the gun barrels. This method can be modified to be use on just about any RC toy that has a remote LED switch.  The schematics are broken down into 2 parts.  The first one shows how to wire the Opto-Isolator and Arduino into the Rover's Headlight LED. The second shows how to switch 4 devices (4 barrels in my case) using tip120 transistors.  I will also provide the simple arduino code that operates this hack.

 The Rover supplied enough current to turn on the individual headlight as well as trigger the opto-isolator, so I did not have to alter the rover's existing circuitry.  Just solder the opto switch onto the free solder pads on a headlight led circuit board.  Other RC device LED circuits you may have to remove the existing LED and replace it with the opto-isolator.

The rover has 4 headlight LED circuit boards along with free/open MARKED solder pads on each!  You can't ask for an easier connection!

Note: I powered the arduino using the Rover's Battery connection on the main board.  This allows the arduino to be turned on and off when the rover's power switch is turned on/off. (see photo above). The pads are clearly marked for B+ and B- for battery + and - on the Rover's main circuit board.
  B+ goes to the Nano's VIN. B- goes to the Nano's GND.

Click image for full size opto-isolator Schematic.
A couple resistors and a connection to Input pin D8 to read the signal. 5v from the arduino provides the correct voltage for the input pin (Signal high, headlight is off). That's all that is required to read the rover's headlights turn on and off.  Since it uses the opto-isolator, the arduino is isolated from the Rover's circuitry except for the same voltage supply and GND.

Click image for full size schematic.

The circuit that fires my mini gun is a simple TIP120 Darlington transistor switch.  It uses a separate power supply that has the Battery + connected to the Loads + power on J1. When the arduino D7 goes high, the TIP120 turns on and provides the ground for the circuit. Acting as a switch to complete the circuit. This circuit can be used to turn on motors, solenoids and even lasers.

Click image  for full size schematic
I repeated this circuit a total of 4 times (Digital pins D4-D7).  This allows me to treat each barrel of my mini gun as an independent device and allows the code to fire each barrel independently.

The code to detect the headlight signal and fire each of the 4 barrels is very simple and can be downloaded from here:

 #define beam 8 //Digital signal pin # from opto-isolator  
 void setup()   
  pinMode(beam, INPUT); //Read signal from headlight   
  for(int bar = 4; bar <8; bar++)  
  pinMode(bar, OUTPUT); //Open digital pin 4-7 for output (barrel triggers)  
 void loop()   
  for(int bar = 4; bar <8; bar++) //"bar" is barrel 1-4 on digital pins 4-7  
   while(digitalRead(beam)==1){ //do nothing while headlights are off (digital pin 8 signal)  
   while(digitalRead(beam)==0){ //if headlights are on, fire next barrel on next digital pin  
    digitalWrite(bar, HIGH); //trigger ignitor on bar digital pin "bar".  
    delay(3500); //delay 3.5 seconds to reach high temp  
    digitalWrite(bar, LOW); //turn off ignitor on digital pin "bar"  
   digitalWrite(bar, LOW);  

  The code is commented and should be self explanatory. It monitors pin 8 for the headlight to be on, then it cycles through pin 4-7 to fire each barrel each time it receives the signal.

As mentioned, this circuit can be easily used on other remote control toys or any device that uses an LED to indicate an ON/OFF state.
  As for the mini cannon itself and the technique/design to fire it, I am not going to discuss how it was made since it is extremely dangerous, but could be deadly.  If you have the proper tools and knowledge to accomplish this build, then it would be a very simple project. DO NOT ATTEMPT TO RECREATE THIS FULL PROJECT WITHOUT PROPER TRAINING and TESTING!

Sunday, December 4, 2016

Aluminum Casting X-Y Axis Acme Nut Trap from 3D printed models.

X axis acme nut trap. 

I am using 3/8" acme rods and nuts for my X and Y axis.  Nothing I could find would fit my custom cnc build,  so I decided to 3D print some models out of ABS and cast them out of scrap aluminum. 

Models and Machined acme nut Traps. 

 After casting the parts in a sand mold,  I machined them on a 12" drill press using an X-Y table and a CNC straight cutter.  Slight modifications to make them fit exactly how I needed them. 

Y Axis acme nut trap. 

Right now there are only a couple washers/nuts locking the nut to the trap.   Once the cnc is up and running  I will machine a couple clamps to lock them to the nut traps. 

Thursday, November 17, 2016

Aluminum Casting CNC Z-axis carriage

It's been a while since my last post, but there is a really good reason.  I was building a foundry and teaching myself mold making for aluminum casting.  The real hard part was getting a 3d ABS print to create a clean mold.  A problem since it is not a smooth surface.  I found a solution and will be making another post to explain how to do it.

  The video above shows the casting process for 1 of the 6 parts that make up the Z-axis/carriage for my CNC.  It included the spindle mount I designed for the ryobi circle cutter spindle.  There are 2 smooth rod holders for 8mm rods, 2x bearing mounts for 15mm OD 8mm ID bearings.
  It turned out really well with very tight tolerances. No play at all.

Sand cast mold of the 3d printed part.

Comparison of the 3d part alongside the aluminum casting.

Aluminum Cast smooth rod mounts.

The complete Z-axis carriage assembly.

Almost to the electronics. Just have to install the Acme screws/nuts, Design mounts for the limit switches. Then I can start on the electronics assembly/setup.  It is coming along really well.

Tuesday, April 5, 2016

Recycled parts for my CNC

I am all about reusing,  recycling junk in my builds.  The cutter/spindle motor is no exception.   I've been shopping around for my spindle motor for my cnc.  Estimated this would cost me $70-$150 for this part alone.  Then while looking for some hardware in my junk box,  I came across the perfect motor! 
This is a Ryobi SS180 speed saw/circle cutter that I purchased as part of a Ryobi tool package almost 10 years ago and has never been used.  I cracked it open and found the perfect spindle for my cnc.  Perfect especially since it is FREE! 

The motor is rated at 26,000 @ 18v dc.  I can hook this up to the cnc controller or more likely,  I will connect it to it's own DC PWM controller for manual speed control.  It has a 1/8" and 1/4" reversable collet sleeve already on the shaft as well as a high speed bearing.  It appears the shaft is hardened tool steel,  so it should work  very well.  Also is air cooled (fan). 
 Mounting threaded screw holes on the body and the beefy 32mm bearing on the shaft will make mounting extremely easy. Never know when you will be able to use something in your junk drawers!

  Another new addition to my shop is a Grizzly G8750 compound slide table for my drill press!  Until now I have been doing all my metal machining freehand.  I wish I had this when I started my build.  It makes everything so much easier and precise! Next upgrade will be a new drill press.

Bearing and motor mounts in t6061 aluminum are so much more precise with the X-Y compound table!  It's a dream! 

Tuesday, March 22, 2016

Minor update,  installed the 5/8" acme screw for the X axis using a 3/4" push bearing in the uprights.  NEMA 17 motor connected with a 6mm to 5/8" coupler. .  Z plate has 2040 openbeam installed.  Next step is to mount the Y axis acme bolt,  motor and hardware.  

This is the current state of my CNC build. The X and Y axis are complete, using 12mm Rods and bearings.  I am waiting for delivery of some 20x40mm Openbeam to start the build on the Z axis.

  The Z axis will be removable to swap different cutters/heads that can easily be bolted onto the 2040mm openbeam..  After that, the only parts that remain are the 5/8" threaded rods and the electronics.

The initial setup will be Sainsmart tb6560 4 axis 3.5amp controllers using 3x 17hs24-2104s Stepper motors and Mach3 Controller software  running on an old IBM Thinkpad (for the serial port) running WIN-XP. Not sure of the cutter head that will be used, but initially going to use a palm router with an electronic speed control unit.

Friday, November 6, 2015

Favorite Build, CNC

Home Made CNC Build

 This is my absolute favorite project I have ever worked on!  After 3d printing and customizing the CYCLONE PCB CNC,  I decided it was time to go onto a project I have dreamed about starting for several years.  A full size CNC with a coolant pump that is capable of cutting Aluminum! 
  This is the first axis (Y axis) installed on the 1"x1" square tube (1/8" thick)  steel frame.  The current stats are 30" Y-axis (length),  a 20" X-axis (width)  and the Z-axis (height)  will be adjustable by a changeable carriage.  My current goal is going to be a 6" cutting height.  
  The frame sides are welded.  The 3/8" case hardened rods are anchored at the ends in aluminum blocks with the steel tube ends mounted to the aluminum blocks.  The bed is attached to the steel tube ends.  This allows the bed and rail to be locked at a specific distance and will be true throughout the entire Y-axis! 

  The result is the Y-axis rods are locked into the bed,  even if the frame was off.  Even though the sides of the frame are spot welded,  almost every other part is being attached with black oxide hex nuts and tapped/threaded holes.  The bed is standard 20mm x 60mm openbeam t-slot aluminum. 
  My design is made to lock one part into the next,  before being screwed together.  BUT,  if any part were off and needed adjusting,  they can easily be shimmed.  That is another design goal with this project.  I want everything to be replaceable/upgradable.  For example,  I am starting with NEMA 17 motors (because I already have them.),  but think I will be upgrading almost immediately to NEMA 23 for aluminum.  The Z-carriage will be able to swap out for different heights and cutters. 
  Next will be building the X-axis.  Hope it goes as well.  Check back for updates. 

Thursday, August 13, 2015

Cyclone PCB cnc

I've been a little sidetracked with a cnc build lately.  This is a wonderful first cnc project using a standard Arduino Mega 2560 with Ramps 1.4, running Marlin as the gcode controller.   I printed the parts in a combination of black PLA and red ABS. Printed on a modified Prinrbot simple maker's edition. 
  This is the cyclone v2.1 pcb cnc which is located at
 I managed to build it before there were a detailed instruction file.  But they have recently added it to:
 There is also a support group located at:!forum/cyclone-pcb-factory
   I'll try and post a video of it cutting some shapes in to plexiglass on the next few days.  Be sure to print the gears out of ABS since PLA will not last more than a few runs.