ME/EE 72: Electronics

The Frog (our amphibious robots) electronics were one of my personal favorite parts of the project. We didn’t get both robots quite set up by the competition itself, but designing the system was a ton of fun. Working with water was a particularly interesting challenge.

At a high level, the system works as follows. Each robot is powered by two batteries, one per side, that are shared between the land and water drive systems. The batteries are connected by relays to distribution boards, allowing the main drive power to be disabled between matches (or to reset the motor drivers). The motor controllers are then controlled by an Arduino nano through a PCA9685.

Note: This project / write up was actually completed several years ago. It’s just taken me a little bit to get around to posting it.

Our prototyping board during first term. Very convenient, but not exactly waterproof…

Our prototyping board during first term. Very convenient, but not exactly waterproof…

Motors and Drivers:

We decided early on that we wanted to use brushless motors for the mobility systems. Partly that was driven by a desire to learn about brushless motors, but mostly we were hoping for a speed advantage.

We selected our motors by first determining the speed we needed each to run at (dictated by the cavitation speed of the props for water, and by our desired top speed for land). Then, once we had a KV rating for each motor type we selected the most powerful model we could find under about 30 dollars. Since this project I’ve learned quite a bit more about brushless motor control and would recommend actually computing the required torque’s/currents, but I will say that that method worked quite well in practice. The motors we selected can be found below. Note that for the water motors, we choose different motors for the second robot based on what was on sale. The land and water motors both performed well (though the water motors were massive overkill) and I plan to re-use these motors when I have similar torque and speed requirements in the future.

Notable Parts:

  • Land Motors: Turnigy G32 600kv motor [Link]

  • Water Motors: Turnigy XK-4074 2000kv [Link]

  • ESCs: Turnigy 70A marine ESC [Link]

On quirk of the ESCs we used is that they require fairly specific inputs on startup, or they will fail to arm. This is common on a lot of hobby ESCs as a way to prevent crashes or injuries on powerup. Our eventual solution to to this problem was to have the arduino reprogram each ESC to our desired settings whenever the power relays were cycled. This was probably slight overkill for normal operations, but was very handy for debugging and I will certainly include similar features on future robots.

The ESC’s we used were nominally water cooled. We designed out first robot to use a tap off the jets for cooling the water ESC’s, and a closed water loop (with a heat sink chamber milled into the rear plate) for the land ESCs. In practice we discovered that no water cooling was needed for our current draws, so we dropped the jet taps and heat-sinking geometry from our second robot.

Ball Handling:

The ball handling electronics ended up being a rush job. Each of the Frogs had a pair of custom made linear actuators driven by a brushed DC motor. We did not have time to develop a driver board, and so instead we selected a Polulu board (model unknown) from a bin in the shop. This worked fine on the bench, both under central control, and when set up to run off a separate receiver, but proved unreliable in the competition when exposed to water.

Waterproofing:

Our electrical systems had two lines of defense against water. First and foremost, all of the core electronics were housed inside sealed waterproof containers. The batteries were also housed in a waterproof 3D printed container, with the distribution boards acting as pass-through bulkheads. This worked well on the whole, although some of our systems required more tuning that was practical day-of. Secondarily, all of the critical components were waterproofed with nail polish on a board level. That was largely unnecessary, but also proved highly effective during testing.

I would, unfortunately, be remiss if I did not note that during the actual competition some of our components were not yet enclosed in waterproof boxes, and failed as a result. In particular, the drive system for the ball handing was external to the main control module, and proved particularly vulnerable to water.

Power supply:

The control module had it’s own internal quad of AAA batteries to power the display, driver, and nano. Those batteries were connected to the main PCB through a normally open reed switch. This let us enable and disable the robot by connecting a magnet to the outside of the control housing. Under normal (no wifi) use the control module batteries had about 12 hours of life. To make it a bit easier to tell when we were getting into the danger zone an ESP8266 with OLED screen was added to provide a voltage readout.

Each side of the robot shared a singe 4s battery and distribution board between the land and water mobility systems. The distribution boards feature a single XT60 input port on their lower (dry) side for power input. The current is then run through an automotive relay and out to the connector’s on the output side of the board. The automotive proved useful, because it allowed us to safe and power cycle the robot remotely without having to worry about plugging or unplugging anything. In addition to the drive systems, our other subsystems (ball handling and the pumps) were distributed between the other two boards wherever made the most sense from a wiring perspective.

For our second robot, we added another set of relays to automatically cycle the pump motors every 10 seconds. This really helped with priming, but was unfortunately not ready in time for the competition.

Control Schematic.PNG

Control and radio:

The RC receiver was housed inside the control cylinder along with the primary micro-controller (an arduino nano) and the power monitoring ESP8266. Command signals from the receiver were processed by the Nano, and then corresponding servo control signals were generated with a PCA9685 and sent out of the interface bulkhead. Several nano pins were also exposed directly through the bulkhead PCB to provide feedback, Serial, and general purpose I/O to the rest of the robot if needed (several of these were re-purposed to run pump priming control on the second robot).

Crawler Superstructure Assembly

The autonomy package, removed from Balto immediately prior to shipping.

The autonomy package, removed from Balto immediately prior to shipping.

Summary:

The compute housing holds the NUC, Velodyne box, TX2, router and Ethernet switch. This is the first integrated version of the housing where all of the components are in one enclosure. It is designed to be dust and splash resistant with interchangeable laser cut panels for easy access to the internals. This is the housing that we used on Balto when it ran in the tunnels circuit.

The housing itself is composed of three printed parts, and three laser cut panels. The printed parts should be printed with thick walls, and take a combined 40 hours on a crafbot plus at medium printing speeds. The three laser cut panels are designed to 3D printable if need be, though using a laser does allow for nice graphics.

This version of the electronics housing was completed in just over a week and, although I like it on the whole, there are still a lot of modifications I want to make. In particular to do with weight distribution and water resistance. With that in mind, I have chosen to include a slideshow of assembly photos rather than a full build log. If you are building up this version (and to be clear I do like it rather a lot) definitely feel free to reach out and I can provide you with more detailed instructions.

Favorite Elements:

This design had a few elements that I felt worked particularly well.

  • NUC Switch - From a purely aesthetic standpoint, the NUC’s power switch is definitely my favorite part of the housing. It’s got a green led ring very reminiscent of a lightsaber, and mounts nearly flush to the outer panel. On a practical note it is both easier and more water resistant than just having a hole to use the built in one.

  • Acrylic panels - Using acrylic wall panels let us iterate the mounting design much faster than if we had been using printed panels. They are also clear which is nice for checking that all’s well. The panels are still designed so they can be printed if the laser ever goes down.

  • Velcro - Our original design had everything mounted with screws. Using velcro for some of the lighter weight parts made it much easier to assemble and disassemble things during the debug phase.

  • Waterproof wire outlet - Using a compressed foam sandwich to pass cabling into and out of the box worked perfectly. It’s easy to install and remove, but also virtually splash proof.

  • Aluminum reinforcement - Using aluminum reinforcement rods to help prevent de-lamination seems to have worked. Although we haven’t yet had any highly energetic crashes.

Areas for improvement:

This version of the housing worked well, but it was designed in a short period of time and there is certainly room for improvement. A few particularly notable shortfalls can be found below:

  • Weight - The NUC, Velodyne, and Velodyne converter are all above the flying bridge. This results in a dangerously high center of mass. Addressing this will likely require a full redesign, but remains a top priority.

  • Dust - The lack of filters means dust can build up in the system over time. Was not an issue for short-term operations, but could become an issue over multiple days or weeks of testing.

  • Access - The system currently requires removing about 8 screws to address any wiring problems. Not bad, but certainly less convenient than say snaps or clamps. The top is 1/4-20 while the sides are 4-40 which I also do not love.

  • Screws - We currently use both 3/8 and 1/4 length 4-40 socket head cap screws. Switching to just the 3/8 would require minimal modifications and would improve the assembly process.

  • Heat - Under certain operating conditions it might be possible for the TX2 or NUC to overheat when running full out. We did not experience this at competition, but better thermal management remains a priority.

  • Power - A more considered plan for power distribution and regulation would improve reliability and reduce the risk of accidental damage during assembly.

Build Photos:

The housing base and lid. The two pieces interface securely with a 45 degree chamfer and are held together by the 4 1/4-20 screws. This setup worked well and was very robust in practice, I would use it again.

The housing base and lid. The two pieces interface securely with a 45 degree chamfer and are held together by the 4 1/4-20 screws. This setup worked well and was very robust in practice, I would use it again.

The upper us hub was held into a 3D printed mount using Velcro.

The upper us hub was held into a 3D printed mount using Velcro.

The aluminum rods were cut to length and then installed with a drill to help ream out the hole. CA glue, or epoxy should be added to fight laminant failures. If spinning the rods proves insufficient then grinding a separate rod with a d-bit tip will…

The aluminum rods were cut to length and then installed with a drill to help ream out the hole. CA glue, or epoxy should be added to fight laminant failures. If spinning the rods proves insufficient then grinding a separate rod with a d-bit tip will help.

We were unable to get the correct size of header shipped in time, so we soldered our switch extender directly onto the NUC. (You can see the hole we used to use for poking the onboard button.

We were unable to get the correct size of header shipped in time, so we soldered our switch extender directly onto the NUC. (You can see the hole we used to use for poking the onboard button.

The button side of the connector. It is connected white to white and black to black so that the button and LED go to the correct parts of the header.

The button side of the connector. It is connected white to white and black to black so that the button and LED go to the correct parts of the header.

Velcro was used for holding down the D-Link, TX2, and lower USB switch.

Velcro was used for holding down the D-Link, TX2, and lower USB switch.

The lower USB switch and D-Link were Vecro’d together, and then Velcro’d to the floor of the housing.

The lower USB switch and D-Link were Vecro’d together, and then Velcro’d to the floor of the housing.

The TX2 was first mounted on a 3D printed plate with standoffs.

The TX2 was first mounted on a 3D printed plate with standoffs.

All of the various components fit with a bit of room to spare (though not much).

All of the various components fit with a bit of room to spare (though not much).

Crawler ODrive housing

Summary:

Our first Odrive housing, installed on the underside of the flying bridge without the venting flue.O

Our first Odrive housing, installed on the underside of the flying bridge without the venting flue.O

The ODrive housing, is mounted on the underside of the flying bridge, and holds the Odrive and its attendant power resistor. This housing was developed in it’s current form for our tests at Eagle Mine, and is intended to be dust and splash resistant, and features panel mount connectors for everything except the auxiliary power output (which is run out the air vent if needed).

With both fans running, we found the maximum sustainable current to be somewhere on the order of 70amps. During autonomy testing we were able to set our current limit to 85a peak, with an ambient temperature of 105f and experienced no issues while testing.

ODrive:

Review:

The ODrive is a two-channel brushless servo controller, with built in FOC. The peak current is around 100a and the sustained current capacity is on the order of 70, depending on cooling. The unit comes in either a 24v, or a 56v configuration, and can communicate over serial, USB, CAN, or PPM. Although it should be noted that USB is the only option that is fully fleshed out. The price at time of writing is around 120$ for the low voltage variant, and 150$ for the high voltage variant.

In practice, we found that the ODrive worked okay, but had lots of fairly fiddly configuration that needed to be worked out. Not all of which was documented on the Odrive website. I would certainly re-use the ODrive for a budget-constrained vehicle project in the future, and would have no qualms about using it as a position controller (which is what it is really designed for), but would be hesitant to install it in a high-reliability application where the occasional re-start is unacceptable. The learning curve is fairly steep if you have no prior experience with FOC or servo controllers, so expect to allocate around 2 weeks to getting comfortable and then around 1 week to actual setup and testing.

Integration:

The original encoder setup. The new one keeps a similar structure, but switches to an in-line no contact magnetic encoder. With this configuration we periodically lost ticks and would eventually see the FOC fail when it lost track of the rotor posit…

The original encoder setup. The new one keeps a similar structure, but switches to an in-line no contact magnetic encoder. With this configuration we periodically lost ticks and would eventually see the FOC fail when it lost track of the rotor position.

Once connectorized, the ODrive had no issues with driving Balto’s main drive motor. We used an AS5047p magnetic encoder, mounted in-line with the motor, with the magnet directly mounted to the motor shaft, to provide ABI feedback. We did find that the index pulse is a non-optional part of the setup, as it allows ODrive to prevent the accumulation of missed encoder pulses (which did occur). The encoder is mounted to a vertical plate, which is in turn mounted to a small 3D printed breadboard that exactly fits into the chassis, and is then glued in place. For competition, we have short motor and encoder cables, but have not had any problem using longer cables (order of 2 feet) during testing. It should noted that although the system is wired for SPI communication, that is not currently supported by the ODrive, so only relative position is used.

Configuration Settings:

By far the most important part of using an ODrive (as with any motor controller really) is getting it configured correctly. Rather than storing our configuration settings on the motor driver, we choose to re-upload our non-standard configuration settings each time the Odrive is reset. This worked well, and helps us keep our ODrives interchangeable for other projects as needed. We also fully redo the calibration process each time the ODrive is initiated. This introduces terrain dependent variability though, so I would be cautious about taking the same approach.

We still have a few issues with our performance, and of course our settings are specific to the motor and power train we were using, but on the whole they did work well so I have included them below for reference. Note that if your hardware is different you will need different values.

  • axis1.motor.config.current_lim = 80

  • axis1.controller.config.vel_limit = 233333 + 50000

  • axis1.motor.config.calibration_current = 40

  • config.brake_resistance = 0.8

  • axis1.motor.config.pole_pairs = 2

  • axis1.encoder.config.cpr = 400

  • axis1.motor.config.requested_current_range = 60

  • axis1.controller.config.control_mode = 2

  • axis1.encoder.config.use_index = True

  • axis1.controller.config.vel_limit_tolerance = 0

Splash Proofing:

The housing fully assembled in it’s “splash proof” configuration. The lack of sealing around the edges is a little worrying, but did not prove an issue in practice. For future builds laser cut gaskets could be used.

The housing fully assembled in it’s “splash proof” configuration. The lack of sealing around the edges is a little worrying, but did not prove an issue in practice. For future builds laser cut gaskets could be used.

One of the key requirements for this motor housing was that it be as splash proof as possible. This was accomplished by adding a cover plate to the air inlets, and a circuitous path to the air outlet. As designed, there is no way for water to directly splash onto the PCB without taking at least two 90 degree turns. The panel mount connectors were sealed with CA glue (if permanent) or glue-gun glue (if temporary). During testing at the Eagle Mine, we created puddles and ran Balto through them without any issues. The system also held up fine at the actual competition which featured puddles on the order of a few inches deep. Although not as secure as full waterproofing, I do like this design and plan to re-use it for other protects.

Build Log:

Before beginning the build, it is important to source all of the required parts. This means printing the base and flue, along with the upper and lower Odrive covers. We choose to laser cut the covers for aesthetic reasons, but all parts can be printed on a Craftbot+ if need be. A soldering iron, Locktite 222, CA glue, heat shrink, 14 gauge wire, ribbon cable, and pliers will also come in handy. All of the mechanical hardware can be purchased from Micmaster, and the electrical hardware (excepting the Odrive itself) can be purchased from Digikey. Please see the list below for an approximate list of the require parts. The various wires, cables, and pin headers are also required along with lock washers or Locktite.

Purchased Components:

Most of the required parts laid out prior to assembly

Most of the required parts laid out prior to assembly

  • (12x) 1/2in 4-40 standoffs.

  • (10x) 4-40 x 1/4 cap screws.

  • (8x) 4-40 x 3/8 cap screws.

  • (8x) 1/4-20 heatset inserts.

  • (22x) 4-40 heatset inserts.

  • (2x) 40mm 12v fan.

  • (2x) male XT60

  • (1x) female XT60

  • (1x) female XT90

  • (3x) 6mm female bullet

  • (1x) Odrive, no headers.

  • (1x) D-SUB, 9 pin, female —> ribbon.

Assembly Steps:

68966651_726986087749181_3651018592998129664_n.jpg
69069669_2362534380654852_2825536581765431296_n.jpg
  1. Insert the heat-set inserts into the 3D printed and laser cut parts. Note that the outer four holes, and middle two holes on the lower lid are clearance holes. Likewise, the four holes on the upper lid are all clearance holes and do not need heat-set inserts. For the 1/4-20 heat-set inserts, only the four outer holes in each six hole pattern are used. The middle two can be left empty.

  2. Install the Odrive, Odrive resistor, fans, and upper and lower lid plates. Once the heat-set insert angles have been confirmed as adequate, remove the two lid plates, leaving the Odrive board and Odrive resistor installed.

  3. Solder together XT90 input cable, resistor lines, and female 6mm bullet connector cables, using the housing and installed Odrive to get the correct lengths. Take care to leave several inches of extra length for connecting each wire to the Odrive. All of these connections should be made with high current (14 gauge or larger) wire. Heat shrink should be used to insulate all connections, and should extend fully over the bullet connectors.

  4. Next assemble the female D-SUB panel mount connector. If using multi-colored wire place the black strand such that it runs to the first position on the connector. Measure the ribbon cable to the 1st encoder input on the Odrive and cut it with about 1.5 inches of margin. Once cut to length, connect the 5 position crimp-on connector with male pins using the following mapping. The D-SUB pin numbering follows the standard convention for this project.

    1. 1st D-SUB (MISO) —> NC.

    2. 2nd D-SUB (GND) —> 5th crimp position.

    3. 3rd D-SUB (MOSI) —> NC.

    4. 4th D-SUB (B) —> 3rd crimp position.

    5. 5th D-SUB (CLK) —> NC.

    6. 6th D-SUB (A) —> 2nd crimp position.

    7. 7th D-SUB (CS) —> NC.

    8. 8th D-SUB (5v) —> 1st crimp position.

    9. 9th D-SUB(INDEX) —> 4th crimp position.

  5. Test fit all panel mount connectors, including the usb panel mount, and check all of the required lengths. If viable solder the wires in place as appropriate and use CA glue to secure the XT90 connector, and bullet connectors in place. Otherwise, revise any incorrect lengths. The USB mount, and D-SUB can be secured with screws, (though the D-SUB should snap in place).

  6. Using medium (larger than 19 gauge) wire, solder the two auxiliary power taps onto the Odrive itself. One should extend into the housing for use powering the fans, and the other should extend out of the housing through the air vent for use powering the steering system if needed.

  7. At this point the housing should be fully assembled in an electrical sense. It may make sense to test that it works now, before progressing on to the cooling fans and lids.

  8. Thread the fan wires through the small holes in the larger of the two lid plates. Be sure to include some heat-shrink or other tubing to provide strain and abrasion relief. The fan wires can now be soldered together to an XT60 connector.

  9. The entire housing can now be assembled. Use ether lock washers, or low strength Locktite to secure all of the screws, and be sure to thread the external power tap out through the vent if in use.

Crawler E-stop

The e-stop installed on Balto, with our test transponder in palace of DARPA's.

The e-stop installed on Balto, with our test transponder in palace of DARPA's.

Overview:

One of the key requirements for any large (we count) robot competing in the DARPA challenge is a functioning estop system. When our original solution couldn’t be delivered on time, we decided to build our own. This is one of the rougher systems on the robot, mostly because it was built in so little time, but it works well, and is definitely nice to have. I plan to use a similar architecture (dropping Tier 2) on future robots even when it is not required.

Requirements:

For SUBT, DARPA requires that teams implement a 3-tiered E-stop system as follows. They also require that the robot give some indication that it is in an e-stopped state for tier 2 triggers. DARPA does not require that teams implement hardware E-Stops. However, for tier 3 that does seem prudent.

  • Tier 1: A wireless E-Stop controlled from the team’s base station.

  • Tier 2: A wireless E-Stop controlled by an XBee transponder mounted to the robot and controlled by DARPA.

  • Tier 3: A physical latching E-Stop (big red button).

For the first and second tiers, we will use a piece of code that inserts zero-motion commands to the twist mux node at a higher priority than ether the joystick or move-base. A Teensy (running similar firmware to steering) will be used to monitor the transponder for shutdown requests.

The system block diagram for Balto’s e-stop. The pullups are nice to have, but can mostly be ignored.

The system block diagram for Balto’s e-stop. The pullups are nice to have, but can mostly be ignored.

Balto with a tier 2 e-stop enabled. Note the Blue indicator led is lid.

Balto with a tier 2 e-stop enabled. Note the Blue indicator led is lid.

documentation:

(versions as of 8/5/2019)

Assembly:

This part of the project was completed on a very short time scale after our original solution fell through. It is a pretty rough build, and so I have left these notes pretty bare bones on the theory that (hopefully) I will be the only person needing to follow them. If that is not the case, and you are confused definitely feel free to reach out and I’d be more than happy to walk you through the process.

One item of particular note is the pin numbers. I frequently refer to pins according to a numbering scheme which is specific to the crawler project. It runs as follows: For all D-SUB connectors, pins are numbered such that looking at a female connector, with the short side facing up the first pin is in the lower left corner, and the second pin is in the upper left corner. For through-hole headers, the pins are numbered such that with the shroud gap facing down pin 1 is in the lower left hand corner of the header, and pin 2 is in the upper left hand corner of the header. I picked this numbering scheme because it means that adjacent wires in a ribbon cable increase and decrease by 1 relative to their neighbors. By convention, I have oriented the ribbon cable such that black is always pin 1 and red is always pin 9, the 10th pin on the rectangular headers is never used.

The CADs, firmware, and control software can all be found on the github. In addition to the 3d printed parts, the following components were used (along with ribbon cable and heavier gauge wire for power transmission.

Perf Board:

The first step in building the e-stop is to build up the perfboard with the Teensy and two optocouplers. The perfboard is by far the most fiddly part of the build, and I plan to replace it with a PCB when time exists. In the mean time, I have included fabircation suggestions and wiring notes below.

Begin by drilling and cutting a piece of perfboard to match the schematic in figure A. Once that is done, solder the Teensy headers (or Teensy itself, though I would advise against it), optocouplers, and shrouded headers, roughly as shown in figure C. Next, both optocoupler’s input cathode’s to Teensy ground, and the input anode’s to D16 and D23 (for led control and main power control respectively). Now, verify that the connections work by writing a test script to the Teensy (really, you want to catch these issues now before the rest of the wires go on), then connect the two shrouded headers according to the following tables.

Header 2:

This header connects the teensy to the D-Sub panel mount connector by way of a ribbon cable.

Pin 1 - Optocoupler High Side (D23 controlled)

Pin 2 - Optocoupler low side (D23 controlled)

Pin 3 - Optocoupler high side (D16 controlled)

Pin 4 - Optocoupler low side (D16 controlled)

Pin 5 - Short to pins 6 and 8

Pin 6 - Short to pins 5 and 8

Pin 7 - Short to pin 3

Pin 8 -Short to pins 6 and 5

Header 1:

This header connects the teensy to the D-Sub panel mount connector by way of a ribbon cable.

Pin 1 - Teensy Ground

Pin 2 - Teensy 5v

Pin 3 - Teensy D8

Pin 7 - Teensy D10

Pin 8 - Teensy D9

Figure A: Cut down the perf board to match these dimensions and holes. When in doubt it is better to be slightly too small than too large, as you won’t be lacking for board space.

Figure A: Cut down the perf board to match these dimensions and holes. When in doubt it is better to be slightly too small than too large, as you won’t be lacking for board space.

Figure C: The pulldown resistors in this photo are optional, and I would suggest leaving them off.

Figure C: The pulldown resistors in this photo are optional, and I would suggest leaving them off.

Figure B: The underside of the board, presented here with some horror. Note that the high-side input for the main power optocoupler is provided by a resistor. (In my defense, we were very short on time and I did clean it up more before install)

Figure B: The underside of the board, presented here with some horror. Note that the high-side input for the main power optocoupler is provided by a resistor. (In my defense, we were very short on time and I did clean it up more before install)

Figure D: Place the reference corner of the board in the forward/top corner of the housing wall.

Figure D: Place the reference corner of the board in the forward/top corner of the housing wall.

Wiring:

Figure E: Power wiring harness, the ground wire should be sized to fit across the estop housing. The vcc wires should start out around 6in in length and can be cut down to ease assembly once the other wiring is completed.

Figure E: Power wiring harness, the ground wire should be sized to fit across the estop housing. The vcc wires should start out around 6in in length and can be cut down to ease assembly once the other wiring is completed.

Once the perfboard is completed, begin the wiring process. First, create the power wiring harness as shown in Figure E (Note that it is easier to make the VCC wires shorter than longer), and test that it fits across the housing. You will want to use no less than 14 gauge wiring, and 12 would be better if available. Note the secondary wires, which will be used to run power to the switching system and indicator led.

With the power harness completed, the next step is to begin routing each component. The list below outlines how each component is connected to the others. Unless otherwise noted, all connections can be made with 26 gauge wire. For connections running to crimp terminals use solder balls or crimp-on ring terminals. For connections running to the perf board use single location femail pin headers.

All of the components connect to the second pin header except the ribbon cable.

Connections by component:

Estop switch block - One terminal connects to VCC IN, the other connects to the perf board (pin 2).

Estop led block - One terminal connects to perfboard pin 7, the other connects to perfboard pin 8.

Indicator led - One pin connects to perfboard pin 4, the other connects to perfboard pin 8.

VCC IN - Connects to the SSR high side (12 gauge wire), Estop switch block.

VCC OUT - Connects to the SSR low side (12 gauge wire), perfboard pin 3.

SSR - Switch H: pin 1, Switch L: battery ground, Controlled H: VCC IN, Controlled L: VCC OUT.

A not-quite-final test fitup of the wiring. I strongly recommend making the leads as long as possible even if it makes assembly slightly trickier.

A not-quite-final test fitup of the wiring. I strongly recommend making the leads as long as possible even if it makes assembly slightly trickier.

Connections by pin (header 2):

Pin 1 - SSR control high side.

Pin 2 - Estop switch terminal block.

Pin 3 - VCC OUT (XT90 output).

Pin 4 - Indicator led(either lead).

Pin 5 - Battery GND.

Pin 6 - Indicator led(either lead).

Pin 7 - Estop led terminal block (either terminal).

Pin 8 - Estop led terminal block (either terminal).

The panel mount connector should be outfitted with a ribbon cable long enough to reach the perfboard, connected such that pin 1 on header 1 connects to pin 1 of the D-Sub connector. With the wiring complete you can now install the SSR onto the bottom plate, and the E-stop, indicator led, perf board, and panel mount connectors into the housing.

Transponder:

After you have assembled the e-stop housing, and tested that all of the components work, the final step is to wire up the transponder carrier board. Connect a male D-Sub connector to a length of ribbon cable, and then solder the ribbon cable in place according to the following table. Note that pins are given according to their female counterpart (and incidentally their corresponding perfboard pin). Once you have installed the transponder and verified that it works, consider using epoxy or CA glue to strain-relieve the solder joints.

Pin 1 - GND

Pin 2 - 5V

Pin 3 - DIO1

Pin 7 - DIN

Pin 8 - DOUT

ME/EE72: Hull Panels V2

The left outer panel shortly after machining, but before the bronze bushings had been pressed.

The left outer panel shortly after machining, but before the bronze bushings had been pressed.

Our second round of hull panels was largely the same as our first round. In part because we were satisfied with our first robot’s performance, and in part because we wanted to maintain parts compatibility between robots. With that said, there were a few substantial improvements to the design and fabrication process. In articular, we expanded our use of issogrids to substantially reduce part weight (without reducing part stiffness), switched to fly cutter surfacing, and made a few process tweaks to improve overall stiffness.

Overall I am very pleased with our second round of panel fabrication. We were able to cut the parts to tighter tolerances, with no scrapped parts, in about half the time.

IsoGrid:

One of the big focuses for the second generation panels was weight savings. In order to accomplish this, we replaced the previous (much wider) pocketing pattern with a true issogrid. This reduced the weight from 1.25'lbs to .8lbs, and brings the outer panels to just under 50% volumetric metal removal.

We cut the iso-grid in two stages. First, the triangles were all roughed using a 1/4in endmill. This removed the majority of the material. Then the corners, and some of the smaller pockets, were finished using a 1/8in endmill. Both operations used HSMworks 3D adaptive operation with no stock to leave. The second operation was configured for rest machining and also removed the 20thou radial stock to leave from the first operation. Each operation took about 1:20 with fairly conservative feeds and speeds.

One very substantial time saving for this round of panels was the switch to all carbide tooling. For the 1/8in endmill that meant a nearly 6x increase in volumetric metal removal over the HSS endmill we used for our first round of panels.

Although the operations themselves were fairly time-comparable to the larger weight reduction pockets from our first robot, I should note that the CAM was significantly more time intensive. In particular, selecting all of the faces to be cut caused significant slowdowns and periodic crashes in Solidworks.

Cutting the iso-grid did not seem to increase warping. If anything it may have contributed to a reduction in warping relative to our much larger lightning panels from the first round of plates.

Overall I will certainly re-use the pattern when weight budgets are tight.

Surface Finishs:

Thoughts:

For this round of outer plates, we decided to experiment with fly cutting rather than using the 1/2in endmill for facing. Overall I am very pleased with the results. Both the inner and outer faces seem cleaner, and the shinier surface really makes the engraving pop (see image below). Cycle times were also reduced by around 70%, even using multiple passes.

We got some smearing with all of the recipes we used (see results right), but even so I like the results well enough to use the superfly for future projects. Of the recipes we tried, I think 5 was the best overall.

For the inner panels, which were faced with the same 1/2in endmill we used on robot A, we decided to try a brushed look. The parts were cut exactly the same way as last time, but were then run over a medium Scotchbrite pad. The results were definitely not as shiny as an unmodified machined surface, but I think the look was a bit cleaner overall. The brushed look did seem to hide subsequent scratches slightly better than the flycut surface we used for the outer panels.

Experimental Results

All cuts taken with a 2.5in Tormach SuperFly, with a 2” stepover, running 2500RPM and 30IPM.

  • 7 thou, 3 thou, engrave.

    • Looked good, slight smereing, crisp lines, raised a small bur.

  • 7 thou, 3 though, engrave, .5 thou

    • Looked good, slight smearing, crisp lines, no burr.

  • 7 thou, 3 tthou, engrave, 0 thou

    • Looked okay, significant smearing, no burr.

  • 10 thou, engrave, -.5 thou

    • Looked Poor, significant smearing, smeared lines, some burr.

  • 10 thou, engrave, .5 thou

    • Looked Great, minimal smearing, no burr.

The robot’s outer surface after fly cutting and engraving. I think this combination really pops well, and will certainly re-use it where visual is a top priority. One thing to note is the sharp vertical lines between passes. Those were reduced on th…

The robot’s outer surface after fly cutting and engraving. I think this combination really pops well, and will certainly re-use it where visual is a top priority. One thing to note is the sharp vertical lines between passes. Those were reduced on the Fadal (which is better trammed), but still suggest that running passes long-wise might be better for future parts.

The right inner panel after machining and “brushing”. The machining marks are still clearly visible, but I think the effect is a bit more subtle than a straight machined surface.

The right inner panel after machining and “brushing”. The machining marks are still clearly visible, but I think the effect is a bit more subtle than a straight machined surface.

Tolerance Improvements:

Surface Flatness:

Our last round of hole panels was plagued by flatness issues (on some parts we were out by as much as 15 thou). For this round we made a few critical changes. First, we re-designed the surface plate to allow for machining the entire top surface of each blank. This allowed us to fully remove the skin from each part which seems to have helped reduce twist by around 60%. Second, we planned in 0.030in of surfacing. This gave us considerably more wiggle-room for facing both sides flat.

Our results were still not perfect, but we held to our 5 thou flatness and thickness tolerances on all 5 panels (3 thou on thickness, and 5 on flatness, measuring with a height gauge on the surface plate). For the most parts the solutions we implemented were things we knew about before starting the first batch, so I think the lesson here might be that it pays to start off with a better process when possible.

Hole Tolerances:

Not really a full investigation of boring as an alternative to drilling. Did some inspection with gauge pins just to see what we are getting, and I’m going to leave the results below for future reference.

  • Counterbores - Rated: .2188 Actual: .221-.222, Variance: Minimal

  • Rear pulley hole - Rated: .1590, Actual: .160 - .161, Variance: N/A

Getting a vertical dial indicator really helped improve our process for surfacing the parts.

Getting a vertical dial indicator really helped improve our process for surfacing the parts.

Being able to “see” the thickness variations and bowing made it much easier to decide where to spend our extra material.

Being able to “see” the thickness variations and bowing made it much easier to decide where to spend our extra material.

DSC03432.JPG

Fabrication Pictures:

Taking a shot at chamfering both sides without a relief cut. This had the unexpected effect of actually raising a larger burr than would otherwise have been present. Not a great idea as-implemented but maybe an area for further experimentation.

Taking a shot at chamfering both sides without a relief cut. This had the unexpected effect of actually raising a larger burr than would otherwise have been present. Not a great idea as-implemented but maybe an area for further experimentation.

Sometimes you need a tool extender… Sometimes the best tool extender in the shop is a TTS collet holder… It worked?

Sometimes you need a tool extender… Sometimes the best tool extender in the shop is a TTS collet holder… It worked?

The Haas’s tramming error is particularly notable during facing operations. In practice we did not find the ridges compromised water-sealing so it was largely a non-issue.

The Haas’s tramming error is particularly notable during facing operations. In practice we did not find the ridges compromised water-sealing so it was largely a non-issue.

As zeroing setups go I can’t say this is my favorite, but the 1-2-3 block is only out by a few tenths, and it did work well.

As zeroing setups go I can’t say this is my favorite, but the 1-2-3 block is only out by a few tenths, and it did work well.

The ME shop’s vertical bandsaw was down so we used the student shop’s instead.

The ME shop’s vertical bandsaw was down so we used the student shop’s instead.

A blank after being cut and milled to size. The sharply definitely helped cut down on fixturing errors.

A blank after being cut and milled to size. The sharply definitely helped cut down on fixturing errors.

ME/EE72: Fixturing Improvments

DSC03432.JPG

Summary:

Before beginning the second round of CNC fabrication, we fabricated two locating blocks, and added counterbored holes to our side panel fixture plate. This made the plate much easier to set up, and dropped our fixture setup time from around 30 minutes to around 5. We also added set-screws to the unused 1/4-20 holes. This didn’t really improve setup times but did make cleaning easier.

Update 4/17/2019: Adding the tramming blocks and flush mounting bolts was a fantastic ideas. I have used this fixture for easily 7-8 medium-low tolerance parts and consistently held 1-2 thou with no tramming.

Traming Blocks:

To make Traming a bit faster, I made up two blocks to locate the fixture plate against one of the T-Slots. The idea being that with the blocks pressed against the T-Slot, and the fixture plate pressed against the blocks, the entire setup would be trammed without any additional alignment. In practice, the plate tends to move by 4 thou or so when being tightened down so there is still a bit of tapping in required. Still faster than without though.

DSC03414.JPG

Fabrication:

In the first setup, the stock is clamped in the middle of the vise by the lowest 1/8in of the stock. The top geometry, outer profile, and engraving are then cut with a 1/2in endmill and 20 thou ballmill. The part was the flipped and placed with the retention ridge against the edge of the parallels. The top 130 thou was then faced off to produce a squared part with all 6 (or 10 depending how you count) sides faced.

Reflections:

Overall, not huge time savings. Learning how to tram properly (tighten one corner than tap the other) made a much bigger difference. Still, it was a good way to turn low value time at the beginning of term into high value time later on. Would do it again in a similar situation.

ME/EE72: Hull Panels V1

Overview:

The right rib partially assembled.

The right rib partially assembled.

This post outlines the fabrication process for our side panels, which run the length of the ship and provide mounting geometry for most of our land mobility systems. The side panels are made from 6061-T6 aluminum, and all four were cut on one of the school’s VMCs using our fixture plate from earlier in term.

Making the side panels was easily the most time consuming portion of our fabrication process for Frog A, requiring over 70 hours of reserved CNC time. With that said, the majority of that time was spent checking cuts, tweaking setups, and repairing/replacing errors in prior runs. All told the 4 plates only have around 8 hours of actual “cut time” so I am hopeful that we will be able to reduce fabrication times substantially moving forward.

All four of the side panels prior to assembly.

All four of the side panels prior to assembly.

The right rib, post assembly.

The right rib, post assembly.

Cutting the Faces:

The fixture plate and prepared blank on our Fadal VMC15 before the first operation.

The fixture plate and prepared blank on our Fadal VMC15 before the first operation.

Setup:

Each side panel was cut out of a 19.5” by 5” by 0.25” blank of extruded aluminum bar stock. The stock was purchased from online metals in 6’ lengths (to reduce shipping costs) and then cut to rough size on the shop’s horizontal bandsaw. One 5in edge edge was then finished on a manual mill to provide the two reference corners for the part. The part edges were then deburred on a Scotchbrite wheel, and the two reference corners were marked with Sharpy.

Tabs helped increase process reliability and came off easily using the bandsaw.

Tabs helped increase process reliability and came off easily using the bandsaw.

Fixture:

We set the work coordinates for this part to be the top rear left corner for the first operation, and the top front left corner for the second operation, with the part about it’s long axis. This meant that we were using the same physical corner as our zero for both faces, thus eliminating the risk of errors due to irregularly sized stock. The tools were measured from the center of the workpiece using the shop’s 4in height guage*. In some cases it was necessary to lengthen the tools slightly to ensure that they were able to reach the bottom of the parts given our short fixture plate. We also found that some of the operations raised burrs on the non-part portions of the stock. We solved this by sanding them down, but I think moving to facing the entire top of each part would be a good idea for round two.

The blanks were held using our 5in fixture plate, and tensioned with 1/4-20 miteebites, spaced with some copper shims as needed to accommodate thickness variations in the stock. This seemed to work well, and I would certainly re-use a similar fixture for future panels and flat parts in general. We did find that with the thin (1/8in) edges on some of our parts it was necessary to add tabs since the foil tended to tear when thin enough to be convenient. Tabs about 1/8in wide and 40-50 thou high seemed to be more than sufficient, though we did use several on the longer faces of the panels. These seemed to cut better than fewer larger tabs.

*Note Post Build: Our fixturing setup for round two was vastly better, I would suggest copying that if you plan to cut parts like this in the future.

Faces:

The first operation on all of the parts was to face the simpler side (inner for inner ribs, outer for outer ribs). With a slightly dull HSS endmill machining marks are inevitable (though they are less pronounced in person than in the images below). To make the best of things, I decided to use a contoured spiral to cut the outer faces. This added about 10 minutes to each outer plate, but left us with a cool pattern vaguely reminiscent of a wale. That said, it did make it a bit hard to read the engraved “Undescided” (our team name, yes that is the correct spelling) on the outside of the panels though so I plan to move to fly cutting for the next batch.

On a more practical note, the facing operations did a good job of underlining just how warped our stock is. For most of the parts we ended up having to take multiple passes to the tune of 15thou per side in order to get a clean surface. It is not clear to me exactly how much of this has to do with our fixturing/cutting methods and how much has to do with the actual stock, but it is concerning in any case.

Lightening Pockets:

Both the inner and outer panels had significant lightening pockets cut out to reduce the part weight. The inner panels had through-cut lightening holes, while the outer pockets were cut with our rough approximation of an issogrid. Removing as much material as we did proved very time consuming. The inner panels took around 45 extra minutes to cut, while the outer ones gained around 75 extra minutes. That said, we ended up being quite tight on our weight budget, so the extra fabrication time was more than worth it.

The pockets were first roughed using a 1/4in endmill, and then finished using a 1/8 in endmill to get into the smaller pockets and tighter corners. We used a conventional 2D pocketing strategy for both passes, and then cleaned up the walls with a 10 thou finishing pass. These cuts would likely have benefited from an adaptive approach, but the FADAL lacks the requisite block processing, so we stuck with simpler machining strategies.

These cuts are one of the parts of our process I am least happy with. Although the pockets turned out well in the end, we got a lot of chatter and resonance in the part while cutting. I suspect this was due to a combination of HSS tooling and long tool stickouts. I plan to use much more conservative stickouts, as well as carbide endmills, for the next set of plates.

Note: The weight budget ended up being tighter than we expected. With that in mind, the inner panel lightening holes were sufficient, but the outer panel pockets were not. I plan to remove significantly more material from the next set of plates.

20181203_160844.jpg
DSC03283.JPG

Tapped Holes:

Tapping the top holes, all of the CNC work for the edge tapping was done on the TM1.

Tapping the top holes, all of the CNC work for the edge tapping was done on the TM1.

Manually tapping some of the 6-32 side holes.

Manually tapping some of the 6-32 side holes.

4-40:

Not a setup I am exactly proud of… it did work though.

Not a setup I am exactly proud of… it did work though.

A tapped lower standoff hole. These provided the spacing and structure for the ribs

A tapped lower standoff hole. These provided the spacing and structure for the ribs

One of the more interesting parts of this design, were the vertical mounting holes. The top and bottom edges of each panel have a number of tapped 4-40 holes used to connect the plates to the hull-bottom, and hopefully used to connect the ball hardware to the plates. With several hundred holes to drill, we decided to approach them as a CNC operation, and successfully roll-tapped all of the holes using the Haas TM1. Since the first set of plates varies in thickness by 15 thou, we found it necessary to keep track of which edges were “reference edges” so that we could drill and tap the the holes relative to those edges. This required a large number of fixtures. We plan to use custom soft jaws for the next batch.

The other set of 4-40 holes found on the robot were are the standoff mounting holes. These are used to connect the inner and outer panels of each rib, and are tapped about 100 thou deep. Since we do not have a bottoming roll-tap, we chose to tap only the first turn of the threads and then chase the rest out using a 4-40 screw. This worked well and will be replicated on future builds.

6-32:

In addition to the 4-40 screws used to tension our standoffs, we also have a number of 6-32 tapped holes used for mounting the gearbox assembly’s as well as the ball handling systems (possibly). Since these interfaces had not been finalized when we began fabrication, the holes were drilled as 4-40 clearance holes and then finished by hand during assembly.

10-24:

There is a single 10-24 screw used as a shaft for the lower, rear, belt rollers. It was drilled to size on the CNC and then tapped manually at the tapping station.

An angle block for drilling the bow holes.

An angle block for drilling the bow holes.

Test fit-up of the jig for our bow holes.

Test fit-up of the jig for our bow holes.

Teflon strips were used to prevent scratches.

Teflon strips were used to prevent scratches.

Chamfers:

We used three sizes of chamfe on the side panels. see below for a summary of each. The pocket and perimeter chamfers were cut with a 1/4in, 4 flute, spiral, carbide chamfer mill, and the hole chamfers were introduced with the 5/16 HSS spot drill during the initial spotting operation. All chamfers were 90 degree.

Drilled holes on the part were all furnished with a 10 thou spot-drilled chamfer. That seemed to work well, and I would use it again. The milled pockets (lower) were milled with a 1/4in carbide endmill and given no chamfer.

Drilled holes on the part were all furnished with a 10 thou spot-drilled chamfer. That seemed to work well, and I would use it again. The milled pockets (lower) were milled with a 1/4in carbide endmill and given no chamfer.

The test-part was given a 40 thou chamfer on both sides. This was by far our prettiest option, but ended up cutting into the available edge space a bit too much.

The test-part was given a 40 thou chamfer on both sides. This was by far our prettiest option, but ended up cutting into the available edge space a bit too much.

The 4 production parts were given a 15 thou chamfer on all edges. This worked well and looked good. Although, as you can see, we did get some chatter towards the inside of the part.

The 4 production parts were given a 15 thou chamfer on all edges. This worked well and looked good. Although, as you can see, we did get some chatter towards the inside of the part.

ME/EE 72: Gaskets

Summary:

My favorite part of our design for Frog B* is our waterproofing method. Instead of using some kind of adhesive sealant, or chalk, we use laser cut silicone gaskets placed between our various hull plates. The gaskets are simple, cheap, and (once we got the method down) relatively easy to make.

Note: I want to applaud Jack for his willingness to assemble and disassemble the robot 4 or so times while we were figuring out waterproofing.

*Our first robot, it’s a long story…

Application:

Installation: We specified gaskets between all of our hull panels, and between every jet-hull-nozzle interface. We found that in-order to get a good seal, some amount of consistent pressure was required along the gasket. In general, we solved this problem by putting clearance holes through our gaskets and securing the two plates (whatever they might be) with 4-40 screws. This did by and large work, but we still got some leakage though areas with more curvature or less pressure. To address this, we dipped each screw in marine grease, and applied a layer of marine grease to each side of the gaskets.

Results: Our initial tests sealing acrylic to the bottom of a machined cylinder were extremely promising. We had good sealing with no leakage. The actual robot proved a bit more finicky to get working right, but once we fully implemented the compression we were able to get to a no-leak condition.

The edges of our structural plates were all tapped with 4-40 holes to facilitate tapping. Corresponding clearance holes were then cut (slightly undersized) in the gaskets.

The edges of our structural plates were all tapped with 4-40 holes to facilitate tapping. Corresponding clearance holes were then cut (slightly undersized) in the gaskets.

From Jack: (Who did the overwhelming majority of the seal installation)

  • Take the Silicone and coat both sides liberally with marine grease.

  • Coat the metal or PLA with marine grease.

  • Align by hand, put grease on a few screws, and insert them to keep the silicone positioned.

  • Coat remaining screws with grease and insert them lightly.

  • Tighten all screws until most grease has been pressed out and the silicone begins to extrude.

  • Back all screws off 1/4 turn (6.25 thou).

  • Test water seal and tighten leaking areas as needed.

  • Repeat previous step until entire seal is good.

  • Remove extruded grease as needed.

Lower jet gasket and associated grease

Lower jet gasket and associated grease

Corner gasket without pressure applied.

Corner gasket without pressure applied.

Corner gasket with some pressure applied.

Corner gasket with some pressure applied.

Fabrication:

Laser cutting gaskets on our 40 watt machine, that ended up working less well.

Laser cutting gaskets on our 40 watt machine, that ended up working less well.

We made our gaskets out of 1/16 “High-Temperature Silicone Rubber Sheet” from Micmaster. It comes in strips of varying size, we got 4”, and ended up costing about .07$ per square inch.

To cut the gaskets, we used an 80 watt laser cutter set to 60% power, 6% speed (ambiguously 10in/min) and 500 PPM. This is just about perfect to cut a deep scribe line. The parts can then be torn out by hand to produce beautiful crisp lines.

We did experiment with ways to cut all the way through using increased power or multiple passes, but had limited success. Increasing the power did not seem to have much of an effect beyond a certain point. Perhaps because the powdered silicone was blocking the beam. Taking multiple passes was intermittently successful, but for larger parts the silicone seemed to move on the second pass producing less precise lines.

Immediately post-cut, the gaskets tend to have some white powder and other residue along the cut edges. This did not have much of an impact on actual performance, but it is aesthetically sub-optimal, so we cleaned up the gaskets by scrubbing them with simple green and then rinsing them in water.

Our sealing test, once tuned it held water for the better part of a week with no leakage. This part was also our first test of CNC tapping.

Our sealing test, once tuned it held water for the better part of a week with no leakage. This part was also our first test of CNC tapping.

We originally used 24 screws (see cap below) but found that it sealed better and was easier to tune with only 8.

We originally used 24 screws (see cap below) but found that it sealed better and was easier to tune with only 8.

Using 24 holes let us try lots of different spacings to see what worked. As for the frog… got to test engraving somewhere right?

Using 24 holes let us try lots of different spacings to see what worked. As for the frog… got to test engraving somewhere right?

ME/EE 72: Fixture Plate

Summary:

Completed fixture plate, clamping test blank.

Completed fixture plate, clamping test blank.

This is a fixture plate for clamping flat pieces of 6in stock. It is designed specifically to accommodate pieces 19in and 11in long, but can be used for any length larger than 3in, so long as proper precautions are taken. You will likely see this fixture used in a number of other projects, primarily relating to ME72.

Purpose:

Our ME72 robot, has a number of very large components cut out of 1/4in plates. Rather than fixture them in a double-vise setup (too slow), use super-glue fixture (not allowed in the shop), or cut them on the water jet (not high enough accuracy), we decided to fabricate an aluminum fixture plate. Since all of our 1/4in parts are cut out of the same 1/4in by 6in stock, we only made provisions for clamping 6in pieces. However, the design could be easily expanded to hold other sizes, or even non-square stock if need be. Note, that although the X axis clamps are nice, they are not required for proper clamping.

Design:

The general design is fairly simple. The parts index off of two rows of 1/8in dowel pins pressed into the plate, and are held in place by a row of Mitee-Bite hexagonal fixture clamps. The plate has a machined reference surface along the left (x) most edge, and two machined reference slots along the rear (y) edge. Additionally, there are two 1/4in dowel pins sticking out of the bottom of the plate which index against the T-Slots on our Fadal (tram is checked using the reference slots).

Note: The tramming pins did not end up working out the way we would have liked. Either because of T-slot issues, or because we installed them poorly the default tram is off by 20 thou. This is unfortunate, but only ads about 10 minutes in tram time.

Design Files: [Click Me]

Fabrication:

Fixturing:

Our first step (after milling a reference flat onto the left edge) was to install two vises in the Fadal VMC15. This let us securely grip the stock with minimal vibration. The following process was used:

  • Wipe down table and apply protective layer of WD40

  • Install first vise and tram.

  • Install second vise using steel bar to rough-tram.

  • Tighten close side of second vise and tap vise into tram.

Setup:

Next, we dialed in the tool offsets, and set up the fixture coordinate system. For the Y axis this involved the standard Fadal process using an edge finder. For the X axis, where we were travel limited, we created a “virtual” 6.5in fixture setting tool, and measured off of a 1-2-3 block clamped against the reference edge of the part.

This was not an ideal setup, but it seems to repeat to within a thou or so.

Cuts:

The piece was then cut as follows:

  • The majority of the top was faced with a spiral tool path.

  • The edges were faced with custom tool paths designed to remain within allowable travels.

  • Reference flats were cut along the +Y side.

  • All holes were spotted and then drilled.

  • Each hole was then drilled or taped as required.

Pins:

Finally, we pressed the pins in place using locktite retaining compound to ensure the 1/8in dowel pins wouldn’t pull out. In order to ensure consistent heights, we pressed the pins through a 3/16 plate. This both ensured the pins would be below the top of our parts, and helped us guarantee the pins would go in straight.

The tramming pins were pressed in without the benefit of retaining compound on the theory that we might at some point want to remove them.

20181126_142941.jpg
DSC03227.JPG

MISC Photos:

Copper shims help compensate for undersized stock.

Copper shims help compensate for undersized stock.

The fixture plate after cutting our first few parts.

The fixture plate after cutting our first few parts.

Using a 3/16 piece of stock to press each dowel pin to a consistent height. The hole used was drilled undersized and reamed to a slip-fit.

Using a 3/16 piece of stock to press each dowel pin to a consistent height. The hole used was drilled undersized and reamed to a slip-fit.

The spiral tool paths worked very well, and proved easier to contain within allowable travel.

The spiral tool paths worked very well, and proved easier to contain within allowable travel.

ME/EE 72: Airboat Proof of Concept

Purpose:

20181016_120751.jpg

The goal with this build was to prototype a flat bottomed RC boat with as little investment of resources and engineering time as possible. To that end, this boat features a 3D printed hull (low time commitment to fabricate), with propulsion hardware scavenged from a team member’s quad-copter, and a controller borrowed from the shop. Although less polished than most of my projects, the payoff in terms of [lessons learned] / [time invested] was fantastic.

ME72: This is the first in a series of posts about ME72, a design capstone course in which 5 person teams compete to build 3 robots then can to fit that year’s competition. This year, the course is amphibious in nature, with a strong emphasis on ball manipulation.

Design:

I choose an air-boat for our first prototype, largely on the grounds that it is by far the simplest and cheapest motion system to build. The thrust-tower is designed to support at most an 8 in prop, with provisions made in the model for increasing the height as needed. This provided adequate power for hull-testing, and is most likely what I would use for future hull-tests as needed.

Using a half-height (4in) steering fin reduced print time, and made the model easier to assemble. However, it did result in a noticeable decrease in overall control authority relative to a full-height fin. This was most noticeable at high speeds, but was an issue throughout the power curve. In the future, this could be addressed with a taller fin, or by increasing the maximum turning angle of the fin beyond it’s current 10 degrees.

Although the hull doesn’t have any water-tight compartments, it does feature a sealed deck. This allows it to swamp, but not sink, when taking water over the sides. Although this proved unnecessary in normal operation (no water was taken over the stern), it did prove useful when a friend accidentally drove the vehicle through a fountain.

The control fin (see below) is actuated by a single servo, and has a 10 degree travel arc. This is sufficient for general locomotion, but would likely be insufficient for operation during the game. The fin pivots on two 1/4in steel dowel pins pressed into the motor mount and motion tower base. Both pins were heated and then inserted into nominal size holes. The fin’s pivot hole is 25 thou above nominal, and produced an adequate low friction fit after some working back and fourth.

The thrust and control tower without linkages. Overall it performed well, with the sacrificial motor mount working as expected.

The thrust and control tower without linkages. Overall it performed well, with the sacrificial motor mount working as expected.

The completed assembly in Solidworks.

The completed assembly in Solidworks.

3D printed hull:

In the interests of time, and as a bit of an experiment, I decided to 3D print the entire hull as a single piece. This was largely successful, with a few fairly major caveats. The print took about 100 hours on one of the library’s CR10s. The lower hull was printed 5 layers thick, the deck was printed 3 layers thing, and the internal ribs were printed 2 layers thick. The boat was printed with layers perpendicular to the spine, with 105% flow and a perimeter speed of 30mm/s.

The first major issue I ran into was under-extrusion. Even running at 30mm/s, this print really pushed the CR10’s limits. As a result, the hull came out a lot weaker than I would have liked. Slowing down the print mid-way through helped, but seemed to deteriorate even more late-print. I am not clear on why, but plan to do some exploratory disassembly to find out.

The bigger issue, is that as a result, the boat leaks leaks like a cive. This was most pronounced in the early and late print where the under-extrusion was worst. Rather than printing a second hull, I decided to seal this one with spray paint. That required 4 general cotes across the whole hull, and 3-6 more in the worst areas. This fixed the leaking, thought it did nothing for the structural integrity of the hull more generally.

The control fin, motor mount, and thrust tower were printed without issue on my own machine.

Lessons:

  • 3D printed parts cannot be assumed to be water-proof unless the filament is significantly (and consistently) over-extruded.

  • Spray paint makes a good sealant, but requires a large number of layers and has a poor $/in^2 ratio.

  • Slant sided, flat bottomed, hulls are very vulnerable to weight imbalance.

Project materials:

Video:

ME14 Transmission - Fabrication

Overview:

DSC03014.JPG

Our transmission design calls for 36 machined parts, generally held to 2 thou tolerances, with the majority being either rotary table or lathe parts. We were generally able to machine exactly to spec. However, in a few cases we had to modify the design slightly to accommodate issues with tooling or available stock. 

Note: In the interests of completeness I have included a summary of how we fabricated each part in the transmission. However, I spent the vast majority of my time working on our rotary table parts and as a result those are described in much greater detail. 

General Reflections: 

  • By far the biggest lesson I learned from this project is that there is a very large per-part learning curve. Even completing operations I had done the same day the time to re-cut a part was generally about 1/2 to 1/3 the time to cut it the first time around.

  • reamers and boring bars should be checked for wear before use. One of the big issues we had throughout the project was discovering that many of the shop reamers cut substantially oversize. Testing beforehand would have caught this and eliminated some re-work.

The inner face of an outer alignment plate. Note the transfer shaft pocket and 6 tapped holes.

The inner face of an outer alignment plate. Note the transfer shaft pocket and 6 tapped holes.

Alignment Plates: 

The alignment plates hold our gear shafts in alignment, and are our most complicated rotary table parts. All three plates are largely identical. However, there are some substantial differences in terms of mounting hardware and shaft fits (see below). 

Since this part is internal, we decided to go with a finishing wheel polish. We had originally used a sand blasted finish, but found it to delicate for internal parts.

Before starting machining of any kind we first set up the rotary table. The table itself, chuck plate, and chuck all had to be centered to +0.5 - 0.5 thou. Fortunatly, we were able to keep the fixture set up throughout the project.

Before starting machining of any kind we first set up the rotary table. The table itself, chuck plate, and chuck all had to be centered to +0.5 - 0.5 thou. Fortunatly, we were able to keep the fixture set up throughout the project.

For the most part the alignment plates were machined according to plan. However, we did open up the center plate's alignment holes to a clearance fit in order to ease assembly. 

Notable Features: 

  • Groove for a -145 compression fit o-ring.

  • Slip fit holes for the alignment shafts.

  • Press fit holes for the IO shaft bearings.

  • Press fit pockets for the transfer shaft bearings (ends).

  • Clearance hole for small transfer shaft gear (center).

  • 1/4 - 20 countersunk holes for tension screws (ends).

  • 1/4 - 20 tapped holes for tension screws (center).

  • 4-40 tapped holes for end plate screws (ends).

Machining Process: 

These parts were machined in two parts. First, the rough shape was marked, sawed, and ground out of sheet scrap. The rough center of each piece was then drilled and reamed to accept a 1/2" arbor. This allowed us to turn the parts to their final dimensions and add the o-ring groove. Once the part was at it's final dimensions, we moved it to the rotary table. We then machined all of the various holes, threads, and pockets on the mill. For the end plates one of the alignment holes was used as a reference to ensure consistent angular dimensioning between sides. 

We had a huge amount of trouble with the shop reamers for this project. In particular, we found that most of both the 5/8 and 1/4 shop reamers run several thou large. For the reamed 1/4" holes we used a 1/4" nominal reamer and sanded the holes to size. The damaged 5/8 reamer was only used for one hole, and in that case we press-fit a plug in place, and re-drilled/reamed the hole using sharper tooling. 

That time we needed a smaller hole so we pressed a plug in place and re-drilled it. (Worked fine, would do again). 

Outer Casing: 

The outer casing was machined from a piece of 3.5in aluminum tubing with 3/8in walls. The ID and OD were then turned to ensure they were concentric, and the ID was taken down to comply with the requirements for a -145 compression fit. Once the housing stock had been fabricated six 4-40 holes were trilled and tapped in each side of the part using the rotary table. To ensure good alignment the entire inner module was assembled along with both end plates, and the second set of holes were located using a center punch (with the rotary table to enforce circle diameter and angular spacing). 

DSC03055.JPG

End Caps: 

The endcaps serve two purposes, they protect the internals from contamination, and they prevent the inner transmission assembly from spinning relative to the casing. Fundamentally though they are mostly an aesthetic component. Each blank was first roughed to size on the bandsaw and then turned to size on the lathe. The socket head pockets and bearing relief were then cut and the parts were polished to a mirror polish. 

DSC03067.JPG

Alignment Rods:

The alignment rods stretch from one end-plate to the other suspending the central alignment plate between them. The rods are made of O1 tool steel, and were machined to length on a lathe and then sanded slightly to a firm slip fit. 

DSC03065.JPG

Spacers:

The spacers hold the axial spacing of the plates. They are composed of 5/8in aluminum and were cut on the lathe in two groups, both internally consistent to about 0.5thou. The ID was taken up to 9/64ths in-order to ease assembly. 

IO and Transfer Shafts: 

The IO and transfer shafts were cut out of 0-1 tool steel, and were designed to fit snugly between their constraining plates. The retention clip grooves were cut with an appropriate carbide groove cutter, and the overall length was turned on a lathe. Small flats for each set screw were cut using a collet block and machinists jack on a vertical mill. We found that the use of a sharp (new) endmil was non-optional for cuttiong O-1 with good tolerances. 

Base Plate: 

The base plate was fabricated out of the same 7/16in stock as the base plate clamps. It was squared and then the holes were drilled. The dimensions for this part were largely constrained by the size of our clamp stock, and the hole pattern specified by the test apparatus. Once fabricated, all of the base and clamp components were sand blasted. 

Base Plate Clamps:

The base plate clamps were one of the most fun parts to create. First the shape was sketched on scrap with a compass. Then, they were clamped to a rotary table and the curved sides (OD and ID) were cut. We had originally planned to use superglue for that process, but after speaking with the shop foreman decided to use two different clamping setups instead. 

Once the outer profile had been milled, we clamped the parts in one of our Bridgeport clones, and used the rotating head to cut the two angled pockets. After a bit of debate, we ended up using three setups per part with a work stop, rather than moving the head for each part. That worked well, and I would use that approach again. 

20180521_165655.jpg
20180521_165655.jpg

Clamp Riders. 

The clamp riders were cut with a pair of bolt cutters and then sanded/hammered to length. This worked well enough, but if I were to do the project again I would try to hold both the hole depths and the clamp rider lengths to tighter tolerances.