Pages

Saturday, February 10, 2018

Fairyweight Control System Part 1

I've started working on a fairyweight bot. This will largely be an electronics project because I'm building the control system from the ground up as an excuse to improve my C knowledge and learn PCB design.

The entire control board is based around a Silicon Labs Mighty Gecko wireless module, which is essentially a Arm Cortex processor with a wireless chip stuck on top of it on a PCB with a built in antenna  and matching network. I was originally going to use a discrete Gecko series chip and build my own antenna/ matching network, but I decided it would be better keep it simple and use the module to start with. The plan is to drive the motor controllers with the Mighty Gecko and use Bluetooth to send control signals from a computer.

I chose to use single chip motor drivers for both the drive motors, which are DC motors for now, and the weapon motor, which is brushless. The weapon controller is a fan controller, which can supply 1.5A. I think this should be sufficient for a fairly small and light spinning weapon.

I decided to use Eagle for my PCB design because it's free.

Here's the final schematic that I settled on:


And the final board layout:
 

This ended up being a four layer board with internal ground and power layers. I sent it off for manufacturing at Osh Park and got the three boards I ordered back in just under two weeks. I placed my Digi-Key order when I got a shipping notification from Osh Park and got it on the same day that the boards arrived. 

Upon opening the package, I realized that I left the vias exposed and didn't label the connector pinouts. Lessons learned.

PCB with quarter for size

I built out the board in the Invention Studio with a soldering Iron and hot air reflow gun. It was a fairly time consuming process as I had to reflow each of the parts individually, though I think it came out pretty well. I heated the wireless module from the bottom side of the board to avoid incidentally reflowing all of its components and damaging it. Hopefully, there aren't any solder bridges to exposed vias under there. I need to get PTFE jaws for my Stick Vise. The nylon jaws got a bit melted from the reflow gun.


I realized that I used the wrong size connector for the debug header. The 2x5 connector pattern is supposed to be the same size as the connector on the ribbon cable. I'll hack something together for now and use the proper connector on the next version.


Some other thoughts:
  • I should have included signal and power LEDs for debugging purposes
  • I can probably make the board smaller with the proper size connector
The next step is software and testing, which will likely be an interesting endeavor.

Saturday, June 10, 2017

Finishing Event Horizon V3.2 Part 2: Machining

Much progress was made today. I will need to make a trip to the local plastic supplier to get the stock for the wheels and new front blocks, place an Online Metals order for the armor plates, and place a McMaster order for new shoulder bolts and a few other things. In the meantime, however, I got to work machining the new drum internals and side plates. I also need to work on machining the blades, which I have been avoiding for several months, but I am going to continue putting that off.

Before I do a spin up test with the blades, I'll need to make a testing box. It could be extremely dangerous if one of the blades comes off with the drum at full speed. They are sharp enough to shave hairs off of my arm.

The first things on the table are all of the 3/8" UHMW parts. I have taken to doing my CNC work in large sheets. Here is a sheet containing all of the parts that need to be machined. I will need to make fixturing pieces to do the finish machining on the new front blocks, but that is a project for another day.
CNC Sheet of changed parts

If anyone is curious, I use the HSM plugin for Autodesk Inventor for writing G-Code. My CNC router is running Mach 3.

I tried a new endmill for these parts. It is an Amana Tool 1/8" plastic cutting bit, which I tacked onto a re-stocking order of 1/8" aluminum cutting bits made by the same company. The finish was slightly better than the old 1/8" straight flute mill that I have used in the past. I used twice my normal cutting depth and it worked well. In the future, I think I will use a slower feed because the finish is a bit rough.

After finishing the new UHMW pieces, I went back to the drum and machined a new idler axle. Originally, I was going to make a press fit for the axle, but I decided that there are several situations that may warrant removing the axle, so I enlarged the hole slightly so that it is just a tight slip fit.
Idler shaft and motor in drum
The bearing system on the idler side of the drum is just the aluminum shaft resting in a hole in the frame member. I used a reamer to bore out the hole, which left a good finish. I then added some spindle oil. This resulted in a surprisingly smooth bearing, though I am concerned about frame deformations causing it to lock up. I think I'll leave it for now, at least until I have the opportunity to do some testing.

Drum attached to the new frame

Friday, June 9, 2017

Finishing Event Horizon V3.2 Part 1: Design

I have finally un-killed myself from the FRC season.

My first priority on Event Horizon is to fix the misalignment issue I saw after spinning up the new drum for the first time. It seems that I will need to make a solid connection from the idler shaft to the motor shaft in order to make a continuous solid body.  My first idea was to make a 3/8" aluminum shaft that presses onto the motor shaft. I bought a reamer for this purpose and re-designed the drum internals slightly.

New idler shaft
Then, I looked over the last revision of the design, and found a bunch of things that I was not particularly happy with and re-designed them. I was going to need to re-make the side pieces to accommodate the new idler shaft design on the drum, so it seemed reasonable to make more changes. The first of these was the serpentine belt run. I mostly used the belt run to reduce space and weight while still maintaining high traction wheels. After thinking about my design more, I concluded that I did not actually care about traction. If I ever get into a pushing match, I am probably going to lose that match anyway. As such, I got rid of the BaneBots wheels and replaced them with pulleys, which do not use serpentine belt runs and make everything thinner.
New wheels and bottom view of armor modifications
I then decided that the way I had mounted the front braces might result in stress concentrations near the weapon bearing mounts. I switched the mounting to pins, which resulted in interference between the pins and mounting screws. Thus, I offset the side plates and rounded the front corners of the braces. This is actually beneficial for a few reasons: 1) It makes it less likely that an undercutter blade will catch the edge of the armor plate 2) It lets me switch from plastite screws, which tend to strip out, to bolts.
Pinned front joint

Inside of the finished front block design

Outside of the finished front block design
It looks like I pretty much redesigned everything... I guess I have some machining to do.

CAD Model

Sunday, December 18, 2016

Event Horizon Design Update

In the past few weeks, I have overhauled almost every aspect of Event Horizon with the goal of making it more robust (Silent Spring proof). Hopefully, this will give a good overview of what I changed.

Drum

The drum is where most of the issues from the original design originated. Here are the changes made:
  • Added pin between sleeve and motor mount piece: This should prevent these two pieces from rotating in unfortunate ways and shearing the wires.
  • Added internal steel nut strip: If the teeth get ripped out, it won't trash the drum (as much). The nut strip also acts as a keyway for the piece attached to the output of the motor.
  • Removed clamping piece for motor output and replaced with a plate bolted to the face of the motor: The primary motive for this was reducing weight, but it also leaves more space inside of the drum for other modifications.
  • Moved idler bearing from drum to frame: Making those press fit pieces was a pain.
  • Added retaining rings and washer to idler shaft: This constrains the bending of the frame by putting the drum in tension when the two main frame pieces are pushed apart. I believe this will help prevent Silent Spring-induced explosions.
  • Switched to a shielded bearing for the motor side: The open bearing got filled with dirt and other crap, which made it very stiff. It is best to avoid having the bearing filled with dirt.
  • Added a nub in the frame piece that matches the wire cutout in the motor mount sleeve: This constrains the rotation of the drum and prevents it from pulling its own wires out as in the Gemini match at FI.
  • Switched to a continuous steel blade for a tooth: It is inset into the drum and should be much tougher. I may not bother with this if I don't have enough time to do the machining.
Washer added to the idler shaft
Keyway nub to prevent rotation
The internals of the drum
Full render of everything

Drive Base

Most of the changes to the drive base were aimed at weight reduction. Changes made:
  • Switched to brushless motors: They are lighter and should be faster. I'm planning on using these: https://hobbyking.com/en_us/turnigy-park300-brushless-outrunner-1380kv.html
  • Back wheel is no longer direct drive: This improves the space situation and some reduction is probably necessary for the new motors.
  • Front and back wheels are now different sizes: Improves packaging.
  • Aluminum hex hubs are switched for nylon: Weight savings.
New wheel configuration


Frame/ Armor

I made a lot of changes to the frame aimed at improving strength.
  • Re-worked front plate mounting: Should be less prone to screws ripping out, etc.
  • Extended belly pan forward: This will brace the frame further toward the front, helping to prevent the main plates from buckling.
  • Switched from finger joints to pins to locate center plate: Fewer giant cutouts = less bad things.
  • Moved belly pan holes: I moved holes to places that do not have as many holes, rather than just ignoring their existence. This should reduce the likelihood of catastrophic failures of the frame members.
  • Reduced angle of side armor: I did not find myself needing it at all at FI and the weight savings are probably worthwhile.
  • Removed middle armor support: The fewer holes the better and, again, I didn't really need the side armor.
  • Switched to aluminum top plate: It should be stronger (and look better) and I think I have the weight.
The new system for the front corners
What the inside looks like now (I didn't bother modeling the motors)

Extended belly pan and holes strategically placed to avoid other holes

Other Thoughts:

Hopefully I will be able to manufacture this over winter break. While there are changes that I probably will not get around to, I suspect this version will be much more competitive than the last. Some experimental things, like the brushless motors may end up not working, in which case I will switch them out for more known quantities.

Sunday, October 9, 2016

Franklin Institute Competition Post Mortem

I have been looking to compete in a combat robotics competition for a while, and my schedule and robot state finally lined up for the Franklin Institute NERC event (FI) this year. I spent the week before the event on the CNC and lathe making spare parts in anticipation of some likely failure modes.

My father and I took a train from Boston to Philadelphia Friday night before FI, and arrived at 4:30 am Saturday morning in a fairly sleep deprived state.  After waiting around in the train station for a few hours, we walked to the venue (about a mile) and checked in.

Event Horizon went through safety inspection without issue and weighed in at 3 lb. 0 oz. Over the course of the next few hours, the pit area filled up completely. All in all, around 80 bots were present in the various weight classes.

Match 1: Silent Spring vs. Event Horizon



When the bracket was posted, I found that EH was against Jamison Go's Silent Spring for its first match. Silent Spring is an exceptionally well built and high energy undercutter and for all intents and purposes, it is indestructible. I knew this would be a hard match, and that it would likely result in a significant amount of damage.

The match started with a few very violent hits that sent the bots to opposite sides of the arena. During the first of these hits, Silent Spring's disk sliced through the bottom of EH's left front armor brace, leaving it touching the ground, and eliminating my ability to drive straight. Despite this, I was able to keep the drum facing Silent Spring for two more large hits. Looking back on the match video of this match is interesting as there is a clear difference between the hits where the majority of energy came from EH's drum and the hits where the energy came from Silent Spring's disk. 
Damaged front armor brace

In the end however, Silent Spring hits the corner of EH's front right armor support plate, ripping it off. This spins EH slightly, and Silent Spring's disk tooth connects with the inside of the now unsupported side plate, causing it to buckle at the point where the first screw connects the bellypan to the side plate, which lines up with a large cutout for the center armor plate support, causing a huge concentration of stress. It appears that the screw that holds the drum to the side plate came loose due to a combination of vibration and a small number of threads being engaged, so when the side plate buckles, the drum is unseated. The still-spinning drum then hits the floor or Silent Spring's blade, causing it to jump back, dig into the frame cross brace, and be shot from the robot due to its large stored energy. I was quite confused about exactly how this happened until watching the video repeatedly in slow motion.

While this looks like fairly complete destruction, I found that many vital parts of the robot, such as the motors and electronics, were still fully functional. Since I had CNCed an entire spare set of frame members and brought the old drum, the repair process was actually fairly straight forward.

Silent Spring damage
Aside from the obvious complete disassembly, the drum itself sustained a significant amount of damage, with one screw ripped out, one shattered, and one bent at a severe angle. Moral of the story: Aluminum is too soft for this application.


Matches 2&3: <3 Winning by Default

I was able to complete the reassembly process before my next match because of the large number of bots at the event and the resultant long break periods. It turned out that this did not matter much as EH's opponents for its second and third fights did not show up, so it won by default.

Match 4: Hard Drive vs. Event Horizon

My next actual match was against Hard Drive, a bot with some sort of low power vertical spinner and a wedge.

Hard drive has exposed wheels and I was able to knock one off fairly quickly. Before I could knock the second one off, however, the set screw that holds on the back (driven) wheel on one side came loose, and left me without one drive side. EH won the match, but not as spectacularly as I would have liked.

After the match, I put Loctite on the set screws and then put the drive train back together.

Match 5: Gemini vs. Event Horizon


After beating Hard Drive, EH was up against Gemini, a double sided wedge bot. The match started off good, although I accidentally spun up the weapon too fast and flipped the bot over. I was able to get one good hit before the screw that holds the weapon on came loose and the wires spun around, pulling one of the connectors out and turning off the weapon. I tried to push Gemini around after that, but the robots are pretty much matched in pushing power and EH lost to a judges decision.

Thoughts

EH's issues in the last two matches were relatively minor and can be easily fixed by proper fastening methods (pins) in the next version.

The structural issues uncovered by Silent Spring are more troublesome as they necessitate a significant redesign of the frame. Since the bot is at weight, this is difficult.

The drum easily has enough energy to be effective and might very well have been the highest energy drum at the event.

The frame did a good job of taking impacts dealt by the drum.

The robot did not drive particularly well. It was not fast enough and the turning was too sensitive.

The drum tooth system needs a major redesign to make it multi-use.

Planned Changes

I am going to make the frame much stronger by eliminating stress concentrations and move the drive base to brushless motors to free up more internal space. This should make it possible to reduce the length of the bot and thereby reduce weight. If I can, I will use an un-geared brushless motor mounted on the outside of the frame rails to maximize internal space for electronics. I will also extend the belly pan forward on the sides to provide additional bracing.

Regardless of what I eventually do with the motors, I am going to move all wheels to dead axles.

I also need to add full front armor to better protect against spinners with sharp teeth.

On the drum, I plan to add nut strips on the inside to anchor the screws and switch to alloy steel flat-heads. The nut strip will also double as a keyway to prevent all drum pieces from spinning. The motor hub piece will be pinned to the frame so that it can not rotate.

Thursday, September 15, 2016

A New Drum Motor for Event Horizon

Rather than re-build the drum in the same configuration that failed initially, I decided to modify the motor mounting to make it more robust. This was achieved by replacing the giant stock mounting plate with a mounting piece that is actually the right size.

Now that I have a large lathe, my design of simple round pieces has changed from Computer Aided Design to Lathe Aided Design.
The final motor mounting piece.
This piece is tapped and has the mounting pattern of the motor. I drilled the mounting holes using the old mounting plate as a guide, which seems to have been effective. 
This slips inside a sleeve, which has a slot for the wires and is the right diameter for the bearing and frame holes. A single screw tightens it onto the frame, which should be sufficient to take the relatively minimal torque that this will see. Best of all, however, the sleeve is large enough diameter to cover the heads of the screws attached to the motor, which should prevent them from falling out.

The motor mounted to the frame side.
Everything fit together nicely, and I was able to spin the drum up successfully. The 3/4" bearing seems to have picked up some dirt (because it is open), which has added friction. I will probably replace it with a shielded bearing eventually.

Event Horizon, mostly reassembled.

As you can probably see, I have not yet re-machined the drum to take care of the screw that was ripped out. This picture also shows the new fastening system for the drum motor (the screw sticking out of the frame). If this design does not self-destruct, I probably will not bother making the hub motor that I was considering previously.

Thursday, September 8, 2016

Some testing on Event Horizon and why I need to use Loctite

One of the single greatest factors in making a combat robot successful is durability.

With this in mind, I decided to do some testing on Event Horizon. I spent some time looking for large and relatively solid objects to hit, and finally settled on the EH 1.0 carcass with a large chunk of scrap aluminum in it to make it heavier.

I found that running into EH 1.0 slowly with the weapon at full speed produced only small impacts, which would not be sufficient in an actual match, so I rammed it at full speed. The EH 1.0 frame flew three to four feet, which is much more in line with the power that I want from the EH 2 weapon (Sorry, no video, I can't drive and take video at the same time).

Upon initial inspection, EH 2 appeared not to have sustained damage in the impact, but after looking closer, I noticed that one of the teeth (1/4-20 flat head cap screws) had been completely ripped out of the 1/4" thick aluminum drum. Also, the drum did not spin freely anymore, and the wires for the motor had been partly sucked inside of the drum.


I took apart the drum.

... and was confronted with a scene of absolute destruction. The motor mounting plate was completely deformed, and the wires for the motor (all three of them) had been completely sheared off. Interestingly, all of the screws that hold the motor mounting plate to the hub were missing, and the threads on the hub were completely intact, showing no signs of an impact. Thus, we reach the title of this post: As far as I can tell, the screws fell out at some earlier point, meaning that the drum motor had been solely held in place by its wires. When the drum hit the EH 1.0 frame, it seems that the motor flexed somewhat and the mounting plate caught on the inside of the drum somehow, bending the plate and shearing the wires. Using loctite and/ or jam nuts might have prevented this failure. Thankfully, this is an easy fix since I have another motor.
Yes, that hole was round once.

As a backup, I am also going to start development of a hub motor using the parts from the broken motor. More on this later.