Friday, January 4, 2019

T19 Build Guide - Part 2 - Cage Assembly

Previous: Part 1 - 3D Printed Parts


This post covers parts prep and assembly of the Hy-Con Gamma Major cage. With the flash hider added, this becomes the externally complete barrel assembly of the T19.101.

Tools:

  • Hand Drill Motor
  • 5/64" or 2mm drill
  • 7/64" drill
  • Nearest drill to 3.0mm that you have
  • 1/8" drill
  • 9/64" drill
  • Tap Handle
  • 6-32 tap
  • 10-24 tap
  • Allen wrenches
  • Razor blade or sharp pocketknife
  • File


Parts/Materials:

  • Hy-Con Gamma Major/Main
  • Hy-Con Gamma Major/Cover
  • Hy-Con Gen3 Flywheel x 2
  • T19 Flash Hider
  • Turnigy Multistar V-Spec 2205 2350kv x 2
  • M2 6mm length socket or button head cap screw x 8
  • M3 10mm length socket or button head cap screw x 8
  • 6-32 1" length socket head cap screw x 6
  • 6-32 1/2" length socket head cap screw x 3


Start with the cage main section:



Use a 3mm drill (7/64" works for me, as my drill measures 2.98mm) to clean out the 8 motor mount holes. These bolts are locational and should be a close (slips in without play) fit on a M3 fastener. Do not oversize to typical "clearance" fit.

Use a 7/64" drill to clean out the 6 cover-to-main bolt holes (near the bore). This is a tap drill for 6-32 threads. I use this size because it works well for PETG. Other materials may call for changing the tap drill size.


Use a 9/64" drill to clean out the six corresponding 6-32 through holes in the cover. Again, these bolts are semi-locational and should be a close fit.


Use a file to clean any burrs or raised extrusions off the sides of the Main part where it fits into the Cover's guards.

File the top surface of the Main (where the bolt holes are) and the matching surface of the Cover, if necessary. Burrs and debris from the top layer extrusion can prevent proper alignment when torqued down.


File the guard edges on the Cover where they contact the Main surfaces if necessary to relieve any interference and allow assembly.


Use a 7/64 drill to clean out:
  • The three flash hider bolt holes (above)
  • The four outer mounting holes on the breech flange (below)
N.b.: The inner set of breech flange holes on the Gamma Major are not used in the modern T19. That is an obsolete pattern for compatibility.

Don't drill the holes any deeper than the existing printed pilot bore.



Tap all these 6-32 threads:
  • The 6 main-to-cover holes in the Main.
  • The 2 flash hider holes and 2 outer mounting holes in the Main.
  • The 1 flash hider hole and 2 outer mounting holes in the Cover.

Use a sharp tap and go slow!

Seat the cover and main together and start at least 2 cover bolts for the next step.


Use a blade to clean up the barrel crown and slightly break the edge as a chamfer. The printer can leave a motion system acceleration defect (corner swell) on the crown. This can protrude slightly into the bore and potentially impact accuracy.

Alternatively, one may torque the main and cover parts securely together, then use a countersink cutter to cut the barrel crown.

Next comes flywheels.


Use a 5/64" drill to clean out the 4 flywheel bolt holes.

Use a 1/8" drill to clean out the "3mm" motor shaft clearance hole. (N.b.: This is NOT a pilot bore. I'm telling you to make sure it is oversize for a reason. The Gen3 flywheel is piloted on the rotor outside diameter. This shaft hole SHOULD NOT be a tight fit on the shaft with the Gen3 wheel because it is an overconstraint. If this hole and the rotor bore do not agree perfectly, it can cause the flywheel to be forced to warp when torqued down and thus have runout which is bad.)

Use a blade to scrape down any Z scar/layer change blips and other protruding detritus inside the rotor bore. Careful not to egg it out. Follow the existing surface. Sand slightly, if necessary.


Now comes the time to mate the wheel to the motor. It should be a snug fit with some interference, but should push on easily by hand. Some hand fitting of the bore may be required - take your time, be careful, get the fit right.

Caution: Do not thrust load the motor bearings while fitting the wheel. Support the rear end of the shaft on a surface while pressing on the wheel. DO NOT push on the stator base while fitting the wheel! DO NOT hold the motor in your hand and mash it into the wheel. Place the SHAFT END against a hard surface and push the wheel down onto the rotor. Thrust loading the bearings can brinell them.

Start by visually clocking the rotor and wheel bolt holes to match before putting the wheel onto the rotor. Use an allen key or other tool through one hole to help align the bolt holes while pressing.


Be sure the wheel is fully seated on the rotor (<1mm of the rotor backiron should be visible above the wheel bore edge).

Install 4 M2, 6mm length bolts and torque evenly in a cross pattern.


Repeat for the other rotating assembly.


Mate these to the cage main.

Hint: Insert the phase wires into the phase wire channels first, then jockey the rims past the groove fillers and the rear shaft end/snap ring into the shaft end clearance pocket.


Install 4 M3, 10mm length bolts per motor and torque evenly in a cross pattern.

Now is the time to roll the wheels over by hand and check for excessive runout, contact or other problems. Many wheels do wobble slightly, as is unavoidable in FDM parts, but this should be minimal. In some cases, the flywheel bolts may need to be loosened and retorqued, or the motor and wheel pulled and remated. Major runout or contact of the wheel rim with the cage most likely indicates a significant tolerance issue with one or more of the parts or trapped debris in a fit somewhere.

Once satisfied with the wheel install, check the torque on the bolts.

If you have a motor test setup on hand, connect a suitable drive to each motor at this time, power it up, and give each rotating assembly a test spin. The motors should start and run normally. No wheel rim contact with anything should occur at speed. This is a good time to detect typical lemon motors with shorted turns, which generally exhibit a drag torque. If one wheel stops much faster than the other when undriven, that motor is defective.


Mate the Main and Cover. Start six 6-32, 1" length socket head cap screws.


Torque evenly, starting in the center and alternating sides.


Use a 9/64" drill to clean out the 6-32 through holes in the flash hider and bolt it on with three 6-32, 1/2" length socket head cap screws.


I prefer to do this step after assembly for stability: tapping the front top rail mounting hole in the Main part.

This hole prints at a tappable dimension with high thread engagement, due to the characteristics of the larger 10-24 thread and its taps which will cut cleanly in PETG in such a case, and does not need drilling.

Use a tool to measure the depth of the hole.


Transfer this dimension to the tip of your 10-24 tap with tape.

This will help avoid overpenetrating with the sharp tap tip and DENTING THE BORE. Be mindful!


Go slow and back out every few turns to remove chips. Stop at indicated depth.


Now you have set up what may be your first Hy-Con and the most critical and tedious part of the T19 assembly process is behind you! The rest is more fun now that the high-speed spinny bits and internal ballistic headaches are squared away, don't worry.



Next: Part 3 - Breech Assembly

Wednesday, January 2, 2019

T19 Build Guide - Part 1 - MASTER POST and 3D Printed Parts

This will be a many-part series of posts covering the build process of the T19 blaster in standard "Model 101" trim:




Anyways, a good place to start is with all the non-COTS parts that are supplied as models for you to manufacture. I assume that you are going to FDM print these as they are designed for.


Tools:
  • FDM 3D printer
  • Computer with slicer
Parts/Materials:
  • Filament
The models are available here from the DZ Industries Google Drive: https://drive.google.com/open?id=17zi6XGi_Rp5biofmGVj_0ZyBb71Q0HPR

Some general notes: NO supports. Assumptions are 0.2mm layer height unless noted otherwise, and 0.4mm nozzle/~0.45mm extrusion width (you figure out the conversions if you run atypical nozzle sizes). You should be able to run all of these parts with a 170x170x170 (ish) build volume. It is strongly recommended to use PETG, or ABS, or other materials with reasonable mechanical properties, passable toughness, and serviceability at ambient temperatures that may be encountered in combat conditions. I do not test and cannot support PLA. If you use PLA and it warps or cracks, that's your problem. Machine accuracy, extrusion settings, etc. are also your responsibility. I am not responsible for incorrectly printed parts and I am not your printer technician.

Grip Frame

Mesh Filename: T19_GripFrame.stl

Print Parameters: 5 perimeters, 8 top/bottom solid layers, 40% hexagonal infill, aligned start point

Orientation: Right side of grip on bed
Grip Frame Insert Plate

Mesh Filename: T19_GripFramePivotPlate.stl

Print Parameters: 5 perims, 8 tops/bottoms, 40% hex, aligned

Orientation: Right (flat) side on bed
Trigger

Mesh Filename: T19_Trigger.stl

Print Parameters: 3 perimeters, 6 tops/bottoms, 30% hex, aligned

Orientation: Side on bed
Grip Panels

Mesh Filename: T19_GripPanelLeftFinal_fixed.obj, T19_GripPanelRight_fixed.obj

Print Parameters: 3 perimeters, 6 tops/bottoms, 30% hex, aligned

Orientation: Back sides (flat) on bed
Grip Baseplate

Mesh Filename: T19_GripBaseExt_Rev2.stl

Print Parameters: 5 perims, 8 tops/bottoms, 40% hex, aligned

Orientation: Flat side on bed
Mag Release

Mesh Filename: T19_MagRelease.stl

Print Parameters: 3+ perims, 6+ tops/bottoms, 100% infill, aligned

Orientation: Side on bed
Crank

Mesh Filename: T19_Crank.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Bottom (side with chamfer, NOT fillet) on bed
Crank Pin Bushing

Mesh Filename: T19_CrankPinBushing.stl

Print Parameters: 2+ perimeters (part is all perimeter extrusions)

Orientation: End on bed
Bolt

Mesh Filename: T19_Bolt.stl

Print Parameters:
* Standard - 3 perimeters, 6 tops/bottoms, 30% hex, aligned
* Lightened (Recommended) - 2 perims, 4 tops/bottoms, 20% hex, aligned

Orientation: Top/bottom side on bed

Notes: Upcoming "Class 4" bolt kit will be destroked and further lightened for better high ROF operation.

Stock Buttplate

Mesh Filename: T19_StockButtplate.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Flat side on bed
Drive Spacer

Mesh Filename: T19_DriveSpacer.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Bottom (flat) side on bed
Drive Cover (Top Cover)

Mesh Filename: T19_DriveCover.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Top (flat) side on bed
Lower Drive Housing

Mesh Filename: T19_DriveHousing.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Top (flat) side on bed
Breech Housing

Mesh Filename: T19_Breech_Rev2_fixed.obj

Print Parameters: 3+ perims, 6+ tops/bottoms, 30%+ hex, aligned

Orientation: Top on bed


Hy-Con Gamma Major/Main

Mesh Filename: Hy-Con-GammaMajor_Main_Rev2.1.stl

Print Parameters: 4+ perims, 8+ tops/bottoms, 100% infill (for the love of the friction-ballistic gods, please heed this and leave the "100% infill not any stronger" armchair design BS at the door), aligned.

Orientation: Top (flat surface) on bed

Notes: Skookum part or die
Hy-Con Gamma Major/Cover

Mesh Filename: Hy-Con-GammaMajor_Cover.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned.

Orientation: Bottom (flat surface) on bed


Hy-Con Gen3 Flywheels

Mesh Filename: ./Hy-Con-Gen3-Wheels/Hy-Con-Gen3-[dimension]mm.stl

Print Parameters:
* Standard - 3 perimeters, 4 bottoms, 3 tops, 20% hex, random start point.
* Optional - 0.1mm layer height with 8 bottoms, 6 tops.


Orientation: Flat end on bed.

Notes: A range of flywheel models of different gap settings are supplied to suit tuning preferences/desired velocity/dart damage. 9.5mm is the default for higher velocity. 10mm is a good starting point for FDL-like performance, perhaps. Two copies required. These are high-speed rotating parts, so pay particular attention to machine accuracy before running this job, and use random seam position. Print parameters as specified are important to produce OEM-equivalent moment of inertia and thus compatibility with default assumptions of drive dynamics in the Core firmware. Make sure your machine's part cooling system works properly to get an accurate and smooth surface on the overhanging groove flank as this is a somewhat demanding overhang print.

Motor Controller Covers

Mesh Filename: T19_ControllerCover.stl

Print Parameters: 3 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Outside surface on bed

Notes: Two required, a right and a left. Only one model supplied. Reflect one copy about an axis when slicing.
Stock Body

Mesh Filename: T19_Stock2.stl, T19_Stock_Charge2.stl

Print Parameters: 4 perims, 6 tops/bottoms, 30% hex, aligned

Orientation: Back end on bed

Notes: There are two versions of this part. One has the provision for a DE-9 connector for internal charging of the battery. One does not. If you use lipos, internal charging is not advised, so I recommend the portless version. Also, this part contains bridging extrusions and prints with a 0.2mm membrane over the stock tube hole to aid this.


Stock Base

Mesh Filename: T19_StockBase2.stl

Print Parameters: 5 perims, 8 tops/bottoms, 40% hex, aligned

Orientation: Back (flat) surface on bed


Flash Hider



Mesh Filename: T19_FlashHider2.stl

Print Parameters: 5 perimeters, 8+ tops/bottoms, 100% infill, aligned

Orientation: Back (flat) surface on bed

Notes: Perhaps you can tree why this "seemingly inconsequential" part's updated version is beefy, and why slicing it robustly is recommended - it's on the very front of your blaster, and is the first part to get into the carnage.






Here's what your full set of prints should look like:


Next steps will be prepping and cleaning up these prints, introducing the "vitamins", and building subassemblies.


Thursday, June 21, 2018

Project T19 Part 14: Stock and base printability and assembly fixes, new more durable flash hider.

Files

New flash hider model.


The old one was a hastily drawn part from the Model Pandora days, and was quite poorly engineered, having a sharp corner (stress riser) where the cylindrical bit met the flange, and other problems. One of those got taken out by a tree at NCFNC, so it was time for an upgrade. The new one is considerably beefier all around, has a thicker flange with counterbored fastener holes, proper fillets, better wrenching clearance for the bottom bolt, a blunter front edge to be kinder to any zombies crashing into you, etc. It is also a bit more proportionate.

Did I ever discuss that the flash hider is also a rifle grenade launcher? Uh, so, it's a rifle grenade launcher. Insert a Mega dart into it. Fire a .50 cal into the Mega and the two inelastically collide and proceed downrange with quite enough velocity to waste specials. The new one should support and align the Mega a bit better for launch.

Other fixes:
  • Both stock models and the stock base model have had the tube bore increased to 33.6mm for less grinding/sanding and much easier assembly to 1" IPS stock tubes.
  • Both stock models have had a 0.2mm thick membrane added over the stock tube hole at the front inside flat surface, making this surface continuous, so bridging is cleaner, and poses less risk of a crash.
  • The stock model with charge port has clearance improved for certain DE-9 connectors.


Sunday, May 20, 2018

Project T19 Part 13: Part Model Bugs Stomped; Core Visual Schematic

A super quickie:

The Rev2 models for the Gamma Major main section (enlarged phase wire channels), grip base (add clearance notch for the drive housing spring perch reinforcement thingy) and breech (trim the lower edge of the side cover mounting bosses) have been added to the Google Drive. Should be print, drill, tap, deburr, hand fit mag release and trigger axial play with file/sandpaper if necessary, and go.

Gen3 Hy-Con wheels now have a full range of gap settings from the old standard 9.5mm up to 11mm in 0.25mm increments. If you are concerned about decaps or trying to run at less velocity than 175-190fps, those should help. Remember that you probably will want to change your governor settings down from the stock 9.5 wheel 25,510rpm setpoint to match the wheels, even if you aren't trying to go subcritical to meet limits. Hy-Cons seem to greatly dislike being oversped.

Also, this should help you build a Core compatible controller:



https://drive.google.com/drive/folders/1lskje8W1EY8FvAvpWagquWdowgmAX9a8?usp=sharing

I have been thinking over the subject of PCB Core boards and also due to the Project FDL precedent, I have been getting a number of inquiries about assembled blasters and T19 wiring/electronics kits. I'm reluctant to say I won't do either of these flat out, but I just can't supply the world with T19 blasters and turnkey electronics.

I will look into the PCB subject and at least supplying that bit. My reluctance is due to the fact that within probably 6 months, new features will have been implemented and the hardware changed/added to. But at the same time, it's not like a couple dozen Core 1 PCBs would not go to good use.

Sunday, May 13, 2018

Chaotic Shortbus functional completion

Does anyone remember the Chaotic Shortbus? Probably not, but it's a build that's been on my mind recently. It's been several years since work started with, thus far, too little to show for it. As of the last update, this project consisted of a nifty concept, a sorta-ugly shell, and a pile of half-completed internals with vague plans for how everything would eventually fit together. There was still nothing that actually shoots, despite the fact that this build started in 2015. Since then, we've seen the end of the great motor drought, seen the rise and beginning of the stagnation of the Rival line, seen the rise of 3D printing as a widespread tool in the hobby, seen the rise of brushless motors, and seen the development of the Caliburn - but, at least as far as the Chaotic Shortbus is concerned, nothing worth writing home about.

There were reasons for this, mostly having to do with the fact that I wasn't confident in how to proceed in certain key areas, but . . . these were not really good reasons to shelve the build, in as much as waiting hasn't helped to make answers to those questions appear, resulting in a half-completed project rattling around and taking up space nigh-indefinitely - a situation which, I realized, was doomed to persist until those still-present obstacles are simply ignored and completion attempted regardless.

So, it's time to finish this darned thing.

Sunday, May 6, 2018

Project T19 Part 12: Flywheel drive tuning progress.

I mentioned a while back that I was having trouble getting consistent motor startups out of this one problem gun with its extra-stiff DC bus (and it's a T19, so it runs on 4S too). After perhaps 20 experimental SimonK builds, I think I have that squared away, and furthermore I am happy with what progress I have made on the wheel-drive front as a result.

Current SimonK build here - Afro NFET binary: afro_nfet_reschedule.hex also source for the Afro NFET, (note why I included the afro_nfet.inc file - watch out for board .incs clobbering settings, as afro_nfet.inc would do to MOTOR_ADVANCE!)

This is by no means a SimonK tuning workflow, or anything. Just the directions my experimentation took:

  • MOTOR_ADVANCE = 13

Previous to the last post about it, I had nailed down static phase advance (MOTOR_ADVANCE) at 13 degrees. One click higher or lower gave more rotor position losses at the transition to run mode, and the powerskipping to recover from those would result in less consistent spinups.

Next were startup mode parameters. Some N.b.'s about SimonK startup mode: Not only does that change the input filtering, but it forces maximum phase advance. This is, as far as I can tell, unavoidable, because BEMF zero-cross detection with only phase voltage feedback can only tell us which segment of the 6-step modulation diagram we ought to be in. We don't know where we are within that (60 degree) segment. So, applying an angular phase advance requires also knowing the speed of the rotor and that requires knowing the last few timings. If the speed is zero or unknown, it's undefined and all we can safely do is immediately slam the correct space vector at the motor. Now, something about these particular motors and highly advanced timing at low speed - that is very nonideal (I found out by setting MOTOR_ADVANCE to 30 in order to observe it in run mode) and makes VERY little torque. It follows; of course shifting things way too heavily toward the direct-axis current component at low speed. Thus, what matters to us is to enable timing control and set phase advance to something sane that (1) Is reasonably MTPA-ish (because, you know, we're trying to accelerate here) and (2) Ensures reliable sync holding, as soon as possible by quickly getting the hell out of startup mode:

  • ENOUGH_GOODIES = 6
What the fridge are "goodies" you ask? That's some dense SimonK jargon. Good zero-cross detections, good commutations, that's all. Stock setting is 12. This cuts the current-inefficient, sluggish startup mode window in half. Seems to have no negative impact, 6 commutations must be enough goodies for these motors to have stabilized a timing measurement for run mode. Also, how long we keep startup mode on appears to have no impact on run-mode reliability and current control considerations - it doesn't sound like these motors are managing to accelerate much in startup mode to speak of anyway.

With the change, acceleration is definitely more prompt. Stock SimonK can "sit there whining at 8 kHz" (it IS turning, just not making much torque and not increasing in speed very fast) for a brief but tangible moment before it really gets rolling. You probably know what I mean. That moment is startup mode staying on until there are enough goodies.

Also messed with:
  • START_DELAY_US = 0 (stock)
That adds blanking time before looking for zero-crosses during startup mode (there is also an algorithm that adds steps of delay on every failed start, which would auto-unbreak certain mistuned setups if you just keep trying to start the motor) - anyway; leave the above alone. You can try messing with it, but on my motors and boards, startup mode itself seems to perform well already and cranking this parameter worsened glitchy starts.

So that leads me to working with run mode, which turned out to be a source of some of the glitches.

The key thing here is current control. The back-EMF that is being measured for rotor angle detection is very low at low speed. Slamming too much phase current at the motor can cause too much noise to reliably follow. Sure, it MAY produce harder accelerations to crank the shit out of all the duty schedule parameters, but a harder acceleration that might follow a aync loss and powerskip and thus become a delayed harder acceleration (taking more time overall) 3% of the time, is flatly useless if we are trying to make a blaster more responsive. At the same time, there is saturation in the stator, so past a certain point it won't help as much as you think. And also at the same time, the current control in SimonK is not current control, it is a frequency-based duty (voltage command) schedule, so actual currents scale with bus voltage, and thus with my motor and 4S, it is already considerably more aggro with stock SimonK than, for example, a FDL drive on 3S.

Detour to overview of late SimonK duty scheduling:

* PWR_MIN_START (stock: POWER_RANGE/6) and PWR_MAX_START (stock: /4) set the endpoints of a "ramp" used in startup mode. Normally, PWR_MIN_START is all that matters unless you fail a startup (which like the start delay deal above, modulates more power within this "ramp" on every occurrence, which can help to auto-unbreak problem cases and get motors to at least run).

* PWR_COOL_START is used if a whole shitload of start attempts fail. This is normally set to /24, it is for locked-rotor protection and shouldn't be changed.

* PWR_MAX_RPM1 (stock: /4) sets the lower run mode duty limit, which is associated with TIMING_RANGE1.

* PWR_MAX_RPM2 is deprecated and isn't used anymore, I don't know why that is still there in the source. That was for the old versions, which shifted duty like an automatic transmission in discrete hard steps. Later versions do a ramp that is more refined.

* TIMING_RANGE1 (stock: 0x4000) sets the speed under which the lower run mode duty limit PWR_MAX_RPM1 applies, in steps of 0.25us per commutation step (stock=4096us). Above this speed, the main run mode ramp applies.

* TIMING_RANGE2 is unused, see above.

* TIMING_RANGE3 (stock: 0x1000) sets the ramp endpoint speed at which the duty limit becomes 100%.

* TIMING_MAX is the governor.

And my settings:
  • PWR_MIN_START = POWER_RANGE/6
  • PWR_MAX_START = .../6
  • PWR_MAX_RPM1 = .../6
  • TIMING_RANGE1 = 0x6000
  • TIMING_RANGE3 = 0x1000
Non-stock settings bold.

Logic behind these:

* We know we have a startable drive and not some random motor (stock SimonK is set up to reliably make any random PMSM/BLDC type thing that anyone might hook up to the controller start and run). Thus, there is no need for the startup mode ramp. Thus, it is disabled by PWR_MAX_START = PWR_MIN_START.

* PWR_MAX_RPM1 being set at /4 produces too much phase current at low (LOW low, like sub-300rpm low) speed, and causes glitchy sensorless operation, so this is chopped back to /6 resulting in MUCH more stable transitions into run mode and effectively no "unpredictable spinup" incidents. Also, it being /6 mates up smoothly with the PWR_xyz_START and prevents a hard step in duty from happening there (which is also a phase and bus current step and can result in problems with noise).

* TIMING_RANGE1 is moved back from 0x4000 to 0x6000. This just about compensates for the previous by starting the ramp sooner.


The difference between the problem drive with my old Model Pandora era build and the problem drive with the new build is night and day and puts the formerly buggy Serial One setup right back on par with or better than the Model Pandora on its preferred battery.

It also has the side effect of better current-efficiency and less heating during startup. The motors are definitely cooler after a series of 0 rpm starts.

The tune should be generally applicable to any 14-pole flywheel drive situation with maybe only a timing tweak for different motor families, and should have the impact of reducing the sensitivity of the drive to battery, wiring, motor and controller variations.