The Dragon*Con 2013 Complete Roundup, Part I: Operation GIVE ME A BRAKE and A New Surprise Antweight!

I’m back.

Somehow, and not broken down in western Maryland or something. The past week has been so chock full of adventures that I didn’t even have time to post it day by day like I originally wanted to. The Dragon*Con party got back into town at 1:30AM Tuesday, and now that I’m done unpacking everything and catching up to the last week of shop shenanigans, it’s time to spew it all out before I forget. This post is going to be the length of a small novel and will have 4 official subdivisons with this being the first half. If I start dividing something up at the start, then you know it’s gonna be bad. High energy food supplies and plenty of water are recommended.

A flurry of things happened in the week surrounding 12 O’Clocker construction. Besides working on the bot, I was also racing to make sure Space Battleship Mikuvan could make it 2500+ miles without breaking down or being patently unsafe outside of reason (with me, just the qualifier “unsafe” is insufficient). And on top of all that, I was designing on-and-off an entire new bot.

Here are the four parts. The first two are in this post, the second will be going live later and the two bottom links will be updated accordingly.

  1. Operation GIVE ME A BRAKE: Brake system and inspection all-around on Mikuvan!
  2. Pad Thai Doodle Ninja, an Antweight 4-bar pushybot I designed and built in like 72 hours!
  3. The trip down, the con, and how the bots did at the event!
  4. The links and documents associated with my two panels at  Dragon*Con.

 Operation: GIVE ME A BRAKE

In continuing the tradition of naming major van work after very bad puns, the brake system inspection has been designated GIVE ME A BRAKE. I’ve known for a while that the brakes on this thing were “functionally obsolete” – meaning, nothing bad was happening, and it could definitely stop every time, but it took more effort than any other brake-booster equipped vehicle that I’ve driven and the pedal was on the soft side. For bumming at rather low speeds around the city collecting its own parts, I had no reservations. But before a 2500 mile road trip where the option of breaking down is not available, I decided to at least give the system a visual once-over, and replace some of the major components. At the very least, even if it cannot go I should still be able to stop.

It helps that months prior I had picked up the majority of a new brake system on Rock Auto on some serious discount. New rotors and drums were had for basically $10 apiece, and I also bought new shoes, pads, shims, springs and hardware, and other goodies all on clearance. I’m hoping this doesn’t mean I’ll never be able to get parts again, but for the next few myriad miles it should be all set.

Because I’ve already been surprised multiple times by the severity of mechanical degradation, I also bought a bleeder vacuum pump kit and like a gallon of brake fluid. So this was going to happen eventually anyway, and I took the impending Dragon*Con trip as an excuse to use some of these parts and tools for which I was beginning to feel a bit of buyer’s remorse.

The plan was to work from the rear and move forwards. I’d already gotten visuals on the front disk system in Operation: LOST BEARINGS, and they were serviceable, albeit heavily scored. The rear drum? Never looked at them. All I know about drum brakes are that they are this carefully balanced arrangement of springs and punched metal levers and this weird ratcheting thing that will explode if you touch them, or so everyone warns me.

I spent a while on the Internets watching videos of drum brake repair, and I keep wondering to myself who ever thought this was a good idea. Like, I’d have figured cable-and-cam actuated disk brakes (like almost all scooter and bike brakes) would have been way easier a solution at the beginning of it all.

Anyways, let’s begin. One night I decided to just dive right into it and started by removing the rear wheels.

With my trusty Harbor Freight impact driver (this whole thing is basically a Harbor Freight ad, by the way), I removed the lugs which have clearly been impact-gunned on like you’re totally not supposed to but everyone does anyway. Mikuvan is RWD, so when the wheel comes off the drums are kind of loose on the wheel studs already.

Or they’re supposed to be. I guess years of cyclic fretting causes these things to become stuck together. Someone’s helpfully smeared a layer of antiseize grease onto the wheel contact surface already.

The drum has a M8 tapped hole in it specifically for you to insert a bolt and use it to jack the drum away from the hub.

So here it is. This is the thing. Now what??

When I tapped the drum off, a small mountain of brake dust fell out (the piles on the ground to the right). There were more cakes of it in the crevices by the dust shield, and way more behind the axle hub. After an extensive cleaning and soaking with brake cleaner, the above pictured setup emerges. Before, it was all sort of this even black color. I’m sorry, Earth.

As dirty as it might have been, everything was remarkably new and in good condition. This suggests to me that the drums were serviced (relatively) recently, and rear brakes tend to wear far less than front ones. The lining thickness was almost original – maybe less than half a millimeter thinner than the brand new brake shoe linings.

I played around with this mechanism for a while and got to see finally how the parking brake links up to the shoes, and most importantly how the damned self-adjuster barrel works. Self adjusting brakes are one of those automotive things that I sort of hand-wave and accept that they work and exist, and to not try and figure it out. The other items on that list include manual transmission synchromeshes (“some kind of coney thing bashing into another coney thing and it all works”) and all automatic transmissions (“insert analog hydraulic computer, get different speeds”)

I determined at this point that the rears most likely do not need any parts replaced, if the work was done symmetrically.

Well, was it? I ran around to the other side to see:

This drum took quite a bit more effort. I did eventually get it unstuck with a large gear puller, but not before I thought that maybe some pressure was still remaining in the lines, so why not try and bleed the system to relieve it and see if that would get the drum off?

(Spoiler: The rear right shoes seemed to be adjusted out more than the left, so it was grabbing onto the small wear lip inside the brake drum. The puller just sort of munged everything over that lip.)

Harbor Freight, I’m counting on you to save the day. More scarier words have never been said.

This thing attaches to the bleeder valve and allows you to pull a vacuum before opening the valve, so nobody has to be at the brake pedal to pump it in time with your opening and closing. Create a vacuum in the canister, open the valve, a small amount of fluid (or air bubbles) is extracted, and close the valve before the pressure approaches ambient again.

I’ve noticed that this van is great at 3 things:  raining bearings at me, dropping little flakes of rust everywhere, and emitting brown and black mucus when I least expect it. I knew that brake fluid degrades after a while, but eww. Armed with a jug of new brake fluid, I decided to perform a full rear system flush (the fronts would wait until I have them apart). Out come the Gatorade bottles…

The bottle on the left doesn’t really capture the blackness of what came out for the first few minutes, since it’s diluted out with some newer stuff. I used the rear right wheel’s bleeder valve, which is the furthest point in the circuit, so both rears were cycles. Check out those deposits in the right bottle…

Anyways, here’s the right side assembly after some cleaning. Looks identical to the left one, so I decided to put everything back together. Since I messed with the adjuster on the left side, I decided to rough-adjust both sides using the brake drum as a guide (“Just a little drag”) and let the self adjusters handle it in the parking lot later.

The next day was dedicated to the fronts. I’d already removed the front hubs and calipers before to replace the front axle bearings, but had not tried removing the caliper slide pin or dismantled the caliper in any other way.

I spent the better part of half an hour trying to get the slide pin loose to swing the caliper to the shown position. Why? Because some fucker who serviced this before definitely impact-gunned it on. With a MUCH bigger impact gun. It took me 10 seconds of straight impact wrench bashing to get the damn thing off.

Blame it on weaksauce Harbor Freight wrench or whatever, but stop impact gunning my shit.

After removing the caliper body, the rest of the steps were fairly intuitive.

And back on. The C-clamp shown was to reset the piston to clear the thicker pads.

At this point, I could remove the caliper as a whole in order to take the front hub and disk off.

Here’s the left front hub removed, showing the nice and scored rotor with a giant ugly wear lip on it.

The disks are bolted onto the hubs, and I removed them by clamping the disks in a vise and impact gunning the bolts out. These used discrete nuts – the hub wasn’t threaded or something, so it was an adventure trying to apply back-torque with a breaker bar to some very corroded nut threads. Was it too hard to thread one of these things, guys?

All new disk mounted and torqued not with an impact gun. I cleaned out the grease cavity and bearing races completely because cleaning the hub caused a ton of grime to fall into the bearings, so they had to be cleaned out and repacked.

Front left wheel buttoned up. Now that I have a vague idea of what I was doing, the right side went much more smoothly.

This time I was a little smarter and made myself a shop rag seal for both sides.

This is the scene at the height of entropy, when I had all the doors open and all my tools out. I was convinced someone was just going to come by and steal everything while I was working inside.

But they’d be stealing Harbor Freight tools – so am I really worse off, or them better off?

Time to complete the system flush. Hey, did you know I had front air brakes? I didn’t know either!  The first thing that happened when I opened the valve was a small riot of air bubbles. That would explain the soft pedal for sure.

(I guess it’s more “air over hydraulic”, eh?)

The total amount of brakerade generated. It’s interesting to see the different shades between rear and front. The next day, I took this to the local auto recyclers for disposal, where they presumably lit it on fire in the back or something. By this hour, all the traffic in the area had totally cleared out, so I took “wearing in the pads” as an excuse to take the longest, most convoluted possible way back to home, starting with gentle low speed stopping and progressing into trying to see how fast I could stop before a red light while not locking up or doing a stoppie. Brake responsiveness and pedal stiffness were greatly improved by the work, which I suppose was the goal.

Continuing on the trend of extracting brown mucus from various places, I decided to change the differential oil since it’s probably another one of those things which was last serviced 153,000 miles ago. This process was relatively painless – untighten the drain plug, unscrew with your hand, then feel the viscous brown goo envelope your hand as you wondered when you went wrong in life and became a van mechanic.

The smell was horrid. Old gear oil additives seem to decompose into various phosphate and sulfide components over time and it was actually like 20,000 eggy burrito farts at the same time. I refilled the diff with some Mobil synthetic 75 weight gear oil. I’m actually not sure if this entire rear solid axle is oil-flooded or not, but it takes like 2 liters of the stuff and the bulb volume under the fill hole is not that large.

While I had my waste oil bucket out, I also changed the engine oil completely and installed a new filter.

Look closely at the picture of utter chaos a few lines back and you’ll notice I have little devil horns up front. They’re a set of these things that I turned into an adjustable roof rack using some spare 80/20. There was a point a month ago or so when I was extremely concerned about cargo space – when we possibly had like 5 robots and up to 3 large props travelling down, so I took some recommendations for roof racks. These little things seem to be convenient if you don’t want to drill and rivet into bodywork, and so long as I have a 10 foot long rain gutter on the sides, it can be slid anywhere.  I can bolt entire Chibikarts to the roof now. This might get exciting.

So, that’s the state of the van on last Monday night before our scheduled Tuesday night departure. It ended up that said large props and numerous large robots weren’t happening, so this is decor for the trip, but will surely come in handy some day.

Working roughly in parallel with this was the design and (mostly) fabrication of an entirely new bot.

 Pad Thai Doodle Ninja

I some times take interest in how people name their projects and builds. For myself, I began it all by building Test Bot which literally was a test bot to see if I could put together parts in a meaningful fashion, and the name just stuck. I tend to be very direct with names – for vehicle type projects at least, it’s usually [noun][thing] or [adjective, usually a size or qualifier][thing]. Melonscooter, Kitmotter, Johnscooter, Tinycopter, Chibikart… even Mikuvan.  it’s a naming method which I see as sort of idiosyncratic of my stuff, and which also spread to some of my former students or MITERS peers.

It’s harder to call for other things. It’s easy to see where LOLrioKart came from (if you’ve been living under a rock since 2009, it’s like Mariokart), but not so much Überclocker. I myself have even forgotten where I got the idea to take overclocker and turn it Über, and 12 O’Clocker was a jocular offshoot of that since it was a 12 pound bot. So I guess I name things by “least resistance” – I’ve never spent hours or days thinking of a name for a project. Nor do I do that for products: RageBridge was originally “Ragetroller” because I was enraged by the lack of good motor controllers in the robot universe, and DeWut!? was only a short step from DeWalt, whose drill motors I unashamedly press into duty doing things their engineers would have never suspected.

So of course what I’m saying is, I have no clue how the hell the name for this bot came along except for this image:

Look at the very bottom left.

This modern art example came about because somebody brought a bag of Internet-themed word magnets into the shop, and shenanigans ensued on the local Rancid Dragon (a greasy spoon Asian takeout place) restaurant menu. Pad Thai Doodle Ninja just had a good floooooooow to it. This bot was named before I ever started the CAD, which is rare.

So what is Pad Thai Doodle Ninja? I started itching for a new antweight right after finishing 12 O’Clocker the week prior. I could have re-entered Pop Quiz  from 2011 with a new, one-piece 3D printed frame, but that thing had a tendency to take off without warning (protip: long blades on horizontal bar bots are awesome but impractical). At the same time, in conjunction with my sentiments expressed in the original 12 O’Clocker intro post, I did want the return of Test Bot in some way. I miss driving a bot that’s 100% drivetrain, or mostly drivetrain with a single degree of freedom weapon. Not since I built Überclocker in 2008 has this been the case with one of my entries.

So why not make a tiny Test Bot?

It would come together quickly, once again being a 3D printed frame, and would only use parts on-hand and from McMaster (which is basically next day turnaround). I sort of rushed into designing this, so there are no early CAD pictures. Here were the goals:

  • Four wheel drive using two motors, some 20:1 Fingertech Sparks I had on hand, rear motor in a fashion similar to Test Bot 4.5.
  • Servo actuated 4-bar lifter using unmodified servos so the stick position is arm position (using some HK939MG mini servos I had already from the thrust-vectoring deathcopter project)
  • Sloped front with embedded lifter, possibly a short hinged wedge. Armor to be made with 0.015″ spring steel shim stock overlaid on the 3D printed frame
  • Able to self-right.

This last one is kind of tricky with 4-bar lifters. You really have to take into account the center of gravity of the bot, and the length and extension of the arm, in order to facilitate this. Generally, 4-bar lifter bots flop onto their backs and come to rest on the arm whenever it is then deployed, as the CG is too far forward, and no self-righting is possible. Check out this classic video of former Battlebots heavyweight Biohazard to see how a 4-bar could self right.

Notice how its center of gravity is far enough back that the bot hinges on its rear edge and does not come to rest on the arm. The arm’s retraction then keeps the CG within the line drawn between the arm’s contact point and the bot’s rear edge, and it gathers enough momentum to push back over. Making the bot able to do this meant making the arm extend all the way back across the bot. Notice also how Biohazard had a ‘tang’ at the very back of the arm, a part that sticks up – this aids in the maneuver by making the contact point with the ground further forward, so the ‘line’ is longer.

This goal meant that I was continually watching the bot’s center of gravity in autodesk Inventor, and also continually modifying the linkage to suit. The arm had to have a certain amount of extension to make sure the CG was in the right place, and that extension had to jive with everything else’s placement. Here’s an example of a 2D sketch linkage I used (many times, with different lengths) to check the arm geometry:

Notice the nonplanar attachment points for the arm – meaning, the pivots aren’t all on flat lines with each other. So the virtual arm (the top link) actually doesn’t sit flat whereas the real arm takes the mounting point shift into account and does.

Making little sketch linkages in CAD programs is one of those things which distinguishes a geometric modeler from a parametric modeler. The former just treats your lines as a drawing, and if you move an endpoint or something the line length and orientation changes, with no effect on other neighboring elements. In a parametric modeler, you can add things such as dimensions (exact lengths, regardless of orientation), and geometric constraints (this line must always be perpendicular to that one, or this point must lie on that line, etc.) and these constraints are dynamically solved as you force the elements to move.

This is the frame of the bot about 1/3rd through design. I modeled the basic proportions after Test Bot, but shifted the rear motors out such that the wheels could touch the ground if the bot were tilted up. This necessitated mounting the motor much differently than in Pop Quiz (2 piece top-down clamp mount) or in most of my other bots (face mount) – the motor mounts are actually C shaped and slide in from the back.

Also modeled in this early picture are the two metal gear miniservos and the battery, a 3S 460mAh lithium polymer pack left over from one of the copters. The choice of wheels was going to be my insectweight default: O-rings stretched around a custom 3D printed rim. The outer set of rings will double as power transmission to the front wheels. O-ring drives are pretty popular in these smaller weight classes, but as I learned early on, there’s a catch – O-rings have to be stretched over their wheels, or else they’ll just roll sideways right off! Typically the stretch is 25% or more. The same is true for O-rings used as drive belts.

About 50% done, and a few hours in. I’ve kept the center of gravity marker turned on (the yellow ball) to check that at all points in the arm retraction, it lies between the arm’s contact point (just barely behind it) and the bot’s upper rear edge. I’ve also now put in the mounts for the servos – a top down clamp.

A drastic change from the previous snapshot to now is the addition of solid wedges. I’ve historically not been a fan of solid wedges, but I think hinged wedges would have been too fragile in an antweight when faced with modern weaponry. It would also let me use a very thick section of 3D printed ABS, which would increase the strength of the frame. At this point, I was also extremely underweight, so the thicker the better, right?

The 0.015″ spring steel shim will be inset into the side wedges and front, and be retained by infinite #4 self-tapping screws. Attachment of armor to the substrate is just as critical to its effectiveness as what material you use. If an extra hard steel with good backing is used, weaponry will tend to glance off and not catch and rip the material.

Spring steel bits added. This arrangement of top armor leaves the servo and drive motors serviceable without removal. The front armor slopes down further than the bottom of the frame to complete the front wedge.

In retrospect, it would have been better to leave the front armor also stopping at the bottom of the frame, so there’s only one point of contact with a potential opponent – the lifter. During the event, any bending of the front armor caused the bot traction problems.

View from the front. One thing that is missing from this image, but made it into the final “production” arm, is a little tang in the back of the main arm link similar to Biohazard’s. The “ears” are both for adorabu and as a front stop to prevent bots from just driving right over the top, since this bot is so short (about 0.9″).

Sunday before the departure, construction began on Pad Thai Doodle Ninja by waterjet cutting the steel armor and aluminum arm parts. I also started the build of the one-piece frame on a Dimension 3D printer. Pop Quiz was originally slated for such a one-shot print, too, but I elected to use Make-a-Bot (when it was still a thing) to keep the resources ‘local’ so to speak.

Tossed in with the build were the auxiliary components including servo and motor mounts, and the little o-ring wheels.

I thought I had a set of 10:1 Silver Spark motors, but it turns out I either gave them to someone without thinking (This happens more often than it should…) or never had them in the first place. Instead, these 20:1 Gold Spark motors will have to do. It means my top speed is only going to be about 3 feet a second, which is quite slow for my tastes.

The o-ring wheels have the D profile already in their bores, but also have a cross “drilled” hole that I’ll tap for a 4-40 set screw regardless. In Colsonbot, I had trouble with the D bores stripping in the soft plastic.

The waterjet-cut pieces were out of 1/8″ aluminum for the arms, and my 0.015″ spring-temper steel shim stock for the armor.

I heated up the spring steel shim with a torch while it was in a vise in order to make these bends. The area of bend will be weaker than the rest of the steel, but I tried to keep the heat local as much as possible.

The holes are sized such that they’re just about .01″ too small for a #4 countersunk screw to pass through. This ensures that I have a reasonably flat surface up front, but is much stronger than if I had actually countersunk the screws fully. As will be seen, the screws stick up just a little bit.

One thing I forgot to do was mirror the last set of outside holes to the right side. Whoops…

There will be 3 standoffs between the inner and outer frame in those hole positions so I can mount the rubber O-ring drive without having to cut it every time. To make these new holes, I had to turn a 0.2″ peg that stuffed into my 0.2″ counterbored hole in one of the positions, use that to establish a coordinate system, then countersink the rest (though with 0.25″ cutters). The servo mount backs up the plastic material from sinking down due to cutting pressure, and the elaborate clamping prevents the plastic from fluttering.

This was the status of the bot before we left on Tuesday night. I was going to wait until we got to the Invention Studio and set up a forward operations base of some sort.

Bright and early on Thursday at the Studio. I packed Colsonbot and the semi-retired Pop Quiz; Colsonbot was actually going to be entered, but Pop Quiz was only along as spare parts if needed. On deck were machining some arm standoffs, modifying the lift servos, and then wiring the whole thing up.

Normally, I’d use some custom-machined spacers in these kind of applications, but the GT machine wasn’t very well suited to producing small stuff. It’s large in swing, gearheaded (and noisy), and the tooling was not in the best condition. So, to speed-finish the bot, it’s time to resort to plastic washers! This wasn’t as bad as I make it out to be, mostly because plastic does have some ‘give’ so I could tune the friction and slop of the joint using a threadlock-glued pivot screw.

The front link attaches directly to the servo output arm. I was preparing to run 2 servo lift on this bot in order to get more force – with 2 servos, the calculated max lift force when the arm is fully retracted (therefore in the worst mechanical advantage position) was 1 pound. So in other words, it can dead-lift an entire 1lber from the lowest position. Now, typically, when an opponent is lifted an edge, you’re lifting somewhere around 50% of the weight.

As I found out, these servos aren’t very well matched in how they handle the same range of PWM pulses. In fact, one servo traveled about 10% more than the other, while Y-connected to the same radio channel. This meant that the servos fought each other when the arm was at either extreme of extension. Digital servos would be far better matched.

In making the 2-servo version, I also had to “mechanically reverse” one of the servos since they faced each other across a mirror plane. Normally, Y’ing each servo to the same radio channel meant they traveled in the same direction while looking at their own outputs. But I needed them to travel in the same direction in a global reference frame, so one servo had both its 3-lead potentiometer feedback reverse, and the motor wires reversed.

Doing only one of the above would make the servo run straight into one end stop and smoke itself.

At this point, the bot was about 0.9 pounds, so I could as be as liberal with giant wires and solder blobs as I wanted.

Still with two servos, and getting through the wiring now. The black amorphous blob at the top is a small 3A switching regulator that gives 5V straight to the servos. I wasn’t about to try and hitch the servos directly onto 11.1v volts, because they would just grenade almost instantly.

The bot is mechanically together at this point. Notice the standoffs in the center between the frame rails that attach the outer wedge ‘flaps’ to the main body. If this thing were actually one piece, I’d have no way to actually mount and dismount the O-ring belt besides cutting it each time.

Completed bot on the googly-eye scale at 0.88 pounds. The extra amount down from 0.9 is presumably made up of wiring that I trimmed short or something, because I definitely added more screws…

Drive testing of this thing caused it to burn up and strip one servo, mostly due to them fighting themselves with the arm fully down. Going to one servo would have meant losing the ‘dead lift’ margin, but getting into a situation where the bot had to dead-lift an opponent seemed far less likely than a normal edge lift.

The left side servo was gutted, leaving only the output gear to act as a bearing.

The bot was a full 0.12 pound (or about 2 ounces) short at this point, and it was failing to self-right because the CG wasn’t far back enough. It would some times get in the right position with a forceful actuation of the arm, but with one servo a forceful thrust was out of the question. So I bought some fishing weights and melted them down, an ounce apiece, to append to the rear of the bot on top of the motor mounts.

Here’s the “before” shot, the pretty clean bot (no weights have been added yet).

And with the 2 extra ounces in the rear, the bot could self right every single time!

I handed PTDN off to Cynthia to drive for this Microbattles tournament. The event report for both big and little bots, and match videos, will happen in the next half of the post.

 

Recently

  • Chibi-Mikuvan: Detroit Recap and The Conclusion
  • Chibi-Mikuvan: The Penultimate Update!
  • Chibi-Mikuvan: Getting “Tired” of All This; Making the HCL Actually Function; Plus Other Work
  • Chibi-Mikuvan: Experimenting with the Trackstar 200A and the Hysterical Current Limiter
  • Beyond Unboxing: The Great Cambridge Chainsaw Massacre; Ryobi RY40511 Cordless Chainsaw
  • Chibi-Mikuvan The Extended Universe Edition: Water Cooling Loop and Digital Dash
  • Chibi-Mikuvan: More Stickers is More Power, Right?
  • Miscellaneous Van Adventures: Fuel and Coolant
  • 2.00gokart: The 2014 Season!
  • The Turbulent Rise of Chibi-Mikuvan
  •  

    5 Responses to “The Dragon*Con 2013 Complete Roundup, Part I: Operation GIVE ME A BRAKE and A New Surprise Antweight!”

    1. Andrew H. Says:

      Is there any chance we could have the CAD model of PTDN? It looks (for lack of a better word) adorable and fairly simple to make – I’d like to make a clone :D

    2. Victor Says:

      I’ve found that the “hammering the end of a ratchet with a rubber mallet” method works pretty well for removing stubborn bolts that are hard to get to. I’ve got the same HF impact gun, and it’s pretty weak compared to the hammer method. OTOH if you’re in the market for a decent impact at a reasonable price, the cordless craftsman one is like $150 and about twice as powerful. And half the size\weight.

      Also, think of synchros as brakes. That’s all they are.

    3. FrankTheCat Says:

      Oh lord that Harbor Fright impact gun. Mine could barely manage to crack properly torqued lugnuts. I had to take it apart, thoroughly lube the gearbox, and clean up the armature/brushes. Worked a lot better after that.

      Still feels like I’m using the tool equivalent of a Soviet tractor, though.

    4. Doug Gallardo Jr Says:

      Look at you, doing vehicle maintenance. I’m so proud of you! Way to go.

    5. Ben S Says:

      It would be great to see some .stl’s of that bot, looks like it would be a great barebones frame for some k-12 robotics outreach. Even better that it’s printable!