Jump to content


Member Since 22 Apr 2009
Offline Last Active Dec 09 2023 04:38 PM

Topics I've Started

Project 13: Brushless machine pistol

09 March 2022 - 02:00 PM

Attached File  IMG_3933.JPG   117.36KB   98 downloads

This is Project 13. It is a brushless, stepper-bolt-driven, fully automatic, mag-in-grip pistol.


The flywheel system is built around EMax RS1108 4500KV motors. It is a Hy-con derived (circular gap) profile of 29.5mm wheel spacing and 9.0mm gap. It hits around 120-130fps with Worker Gen3s, although I’m pretty sure the long bore is interfering with the darts since just the cage was doing about 140.

Attached File  IMG_3928.JPG   59.01KB   92 downloads


The pusher is a scotch yoke of 24mm stroke driven by an OMC 17HS08-1004S stepper motor and it is currently set at 8.3 darts/second. The 24mm stroke is kind of borderline with Worker Gen3s and may run into issues with 36mm darts if there’s a decap and the foam gets left behind.


The magazines are printed and are unique to this blaster, but they are very similar to angled Talons and with some modifications to the blaster I think it could take Talons.


The blaster is 246mm long and 157mm tall from the bottom of the grip to the top of the rear irons. The main body is 40mm wide, with the stepper poking out to 42.3mm, and the flywheels going out to 58.5mm. The last 26mm on the front are purely cosmetic to taper the profile down slightly. You could easily take that off and print a square-nosed version that would remove that length.


There is a detachable stock that is held in by two pins at the bottom and a spring latch at the top. These pins are 6-32 screws cut down, ground to shape, and press fit into the stock base. To remove, press the latch and rock it back slightly until the latch clears, then slide the stock mount downward. Stock is sized for 3/4” SCH40 PVC.

Attached File  IMG_3927.JPG   113.58KB   96 downloads

Attached File  IMG_3934.JPG   99.63KB   92 downloads

Attached File  IMG_3936.JPG   98.89KB   94 downloads


The rear irons are removable, partly to facilitate printing, and partly to allow for other options to be installed. I CADed a picatinny option, but haven’t actually built it.


The battery is a Lumenier 550mAh 4s lipo.


Attached File  IMG_3941.JPG   128.36KB   91 downloads


The ESCs are ZTW Spider 12A, modified with a tach wire for feed control, an upgraded DC link capacitor (Rubycon 25ZLQ180MEFC6.3X11) which has been hooked up perpendicular to the board’s long axis to shave a few mm of length. The motors are wired directly to the ESCs, without connectors, to save more space. The blaster’s main PCB is a custom unit. It takes an Arduino Pro Mini and a DRV8825 carrier board and features headers for the ESC signal cables, trigger, and bolt limit switch, but no other controls. I had to use short headers to fit the connections under the top cover. This board is also used for power distribution to shave a little space and not require splices in the wiring. Battery lead goes to one of the two sets of holes on the side, and ESCs get wired directly to the other sets (ESCs go on the symmetrical pairs). There is bare copper on both sides of the board so you can dump solder on the pad or add bus bars for Vbus and GND. Remember to put something on the board to insulate these bare areas.

Attached File  IMG_3947.JPG   103.59KB   90 downloads

Attached File  IMG_3943.JPG   104.83KB   93 downloads


The trigger switch is a full sized microswitch, with the solder tabs cut way down so it fits between the trigger and the magwell. I also cut a notch into the top corner of the body to pass a wire through.

Attached File  IMG_3931.JPG   105.56KB   96 downloads


As with a lot of my recent work I should credit torukmakto4. While this shares no parts with any of his designs, many of the ideas have root in those designs. This obviously looks a lot like the ACS but much of that (though not all) is convergent evolution, not direct inspiration. And the software is largely his work as well. Also thanks to Matthew Bregg for bringing the ZTW Spider 12A to my attention.


CAD, firmware, and Gerbers in https://drive.google...Iv5?usp=sharing


Filaments are Overture magenta, Esun white, and Yoyi transparent violet. The magazine pictured is Overture transparent with a magenta follower.


Errata and other notes:

- The file I provide here for the upper is what I printed, but it required rework after the fact. It needed to have some deeper pockets cut into the corners of the stepper recess to fit it.

- I forgot to add a pocket on the stock base for the latch spring to match the pocket in the latch. I just drilled a hole here on my printed copy.

- Most screws are 6-32, with a couple exceptions. Motor screws are m2, stepper mount screws are m3, there is an m3 in the mag release due to space constraints, and there is a 4-40 set screw in the crank for the same reason.

- The spring on the stock latch was taken from my parts box so I have no part number to provide.

- I can confirm bs_nfet firmware on the 12A version of the ZTW Spiders, and also that the portable chromium install and rapidflash method that Matthew Bregg detailed at https://torukmakto4....or-flyshot.html works for them.

- In the one game I used it in so far, it was horribly inaccurate, although I’m not sure how much of that was the blaster and how much was the darts (used Worker Gen3s), or me, or the 20mph wind that day. This may be the bore interference again.

- Some more notes on the magazines: As I mentioned they are very similar to angled Talons. I originally intended this to take angled Talons but as I thought about it I realized I’m designing this blaster for me, not anyone else. I don’t already have an infrastructure around angled Talons and would be printing my magazines anyway, so I felt comfortable making more changes than I originally planned. These magazines have the same overall external dimensions, although they’re just rectangles and don’t have the notches on the front and back that angled Talons do. And because they print outsides on the bed the feed lips don’t protrude beyond the body dimensions. The front edge just under where the dart gets pushed out is slightly lower down here to accommodate a bit of flywheel cage geometry. And finally, they have a front catch notch. To make this blaster compatible with angled Talons, the following changes would need to be made:

  • Pocket out the opening to allow the feed lips to fit. I don’t know what this would do for strength.
  • Remove the offending geometry from the flywheel cage area on the lower or alternatively grind that part out of the magazines.
  • Make some sort of rear magazine catch or add a front notch to each magazine.

Project 16: A full-auto mag-fed shotgun

19 February 2022 - 04:47 PM

Attached File  IMG_3902.JPG   219.82KB   98 downloads


A while back I was looking at Domochevsky’s Rail Cleaner. If you’re not familiar, it’s a flywheel revolver with shells that feeds a cluster of 4 darts into a set of very tall flywheels to fire all four at once. I thought it was a neat design, but that it had some glaring flaws:


- It was closed source (sort of).

- It used DC motors.

- It was not fully-automatic.


So I set out to fix them. Initially I entertained the idea of keeping the Rail Cleaner layout, putting some brushless motors in, and automating the feed with a stepper or something, but was not confident in reliably advancing and stopping a large, heavy cylinder. I next considered mag-fed and still feeding from shells, and was thinking of ways to eject the shells automatically when I had a eureka moment. I realized I didn’t need to use shells if I could feed a two-wide stack of darts in a magazine and strip two rows off the top with each shot.


A prototype magazine literally made out of cardboard and hot glue proved the feasibility of the magazine and a printed magazine and flywheel cage followed. At this time all that remained was building the full blaster.


Before going too deep into the mechanicals though, A little bit on its performance. Velocity is ~95fps and it’ll do about 7 shots (so 28 darts) per second. It’s weird about darts. It’ll fire basically anything, but waffles and blue/green sureshots yaw sideways *hard* as soon as they exit the barrel. Elites and ACCs don’t, but their aerodynamics are crap so it kind of doesn’t matter. I suspect what’s happening is that as the darts are leaving the flywheels, the sideways loading from the flywheels at the back of the darts forces the darts to yaw (lay a couple darts next to each other on a table and press two flywheels against them near the tail to see what I mean.) at which point the heads drag against the control bore asymmetrically and the drag on the outsides forces them out at an angle. This at least partially explains why narrow-headed darts aren’t affected – only foam contact on the sides means less friction, but that doesn’t explain everything. Accufakes sometimes shoot straight and sometimes don’t. Adventure Force max accurate don’t work super well despite the narrow heads. Testing with menguns that I accidentally ended up with after thinking I was buying brick tips is promising.


Errata: The flywheels are a pain to print due to the steep overhang and mine came out quite rough there. The groove fillers are also *very* close to the wheels, so sanding may be required to clean up the flywheels, the cage, or both.


I went with using the T19 drivetrain stack for all the parts that weren’t unique to P16 since I liked the ergonomics and functionality and couldn’t be bothered to custom design an entire blaster when the core of P16 is just a magazine, breech, and flywheel cage. To that end, the grip base, grip frame, grip panels, trigger, magazine catch (use the full length one), drive housing, drive spacer, drive cover, crank, crank pin bushing, stock base, stock, stock pad, and velocity and selector knobs could all be unmodified T19 parts. P16-unique parts are therefore a breech, bolt, flywheel cage main and cover, flywheels, ESC covers, muzzle device, and rail segments. I kept the T19 knurled styling for the new parts for consistency, and because I found I actually quite like the way it looks. I did use the modified velocity knob, grip frame, and stock base as described in my MEGA T19 po  st here, although this blaster predates that one, so this was actually the first use of those modified parts.


I changed the full-auto operation of the bolt for reliability reasons. Rather than the bolt motor spinning at a constant speed, it moves at full speed for one cycle and then stops before pausing and starting again. This means the bolt stays back longer allowing the darts to rise up in the magazine.


More about the magazine: it uses some design ideas from torukmakto4’s rapidmag heavy. The dovetail pattern between the two halves have some notches that take a decent bit of force to snap together, but hold together with no hardware or glue. Only tested with petg and the deformation required to get these together might cause pla to just break. Even some brands of petg, like yoyi, have had dovetail teeth snap off. Overture has been fine though. If you need to get them back apart, I’ve had success seperating the halves by pulling the front and back apart at the open top end to make a gap in one or two dovetail sets, then working a small straight blade screwdriver in the slots and progressively moving down the magazine.


Filaments are Snolabs Reicher blue, Makeshaper white, green, and transparent orange petg, and a tiny bit of overture white tpu on the grip scales. That tpu really doesn’t do much. It feels different since it has that characteristic rubbery texture, but it doesn’t squish or anything, at least not with only 1mm of it. Motors are Turnigy V-Specs since I still have a decent stash of them.


Files at https://drive.google...9vP?usp=sharing


A look down the back of the flywheel cage at the wheel geometry:

Attached File  IMG_3919.JPG   107.41KB   95 downloads


A shot of the new larger bolt face:

Attached File  IMG_3922.JPG   63.69KB   95 downloads



Attached File  IMG_3913.JPG   193.3KB   98 downloads


Magazine dovetail closeup:

Attached File  IMG_3915.JPG   88.32KB   96 downloads


EDIT: Firing video

MEGA T19 – T-Motor F80 Pro remix

12 December 2021 - 05:27 PM

Attached File  IMG_3884.JPG   218.64KB   110 downloads


Attached File  IMG_3882.JPG   230.6KB   106 downloads


Attached File  IMG_3886.JPG   191.87KB   108 downloads


Attached File  IMG_3889.JPG   107KB   107 downloads


Attached File  IMG_3892.JPG   93.72KB   110 downloads


There isn’t too much to say about this one. It’s exactly what the title says. Cage main and wheels to support the T-Motor F80 Pro. I’m using the 1900KV version.


Because of how close the wire on the motors got to the flywheels, I changed the wire channels in the cage main from just a ditch to a ditch with a cover over it. Makes it a little tricky to snake the wires through, but not too bad.


I used the mag release with the circular surface, which seems to work fine with Rapidmag heavys. Both mags I printed had to be corrected, one with a file, one with a design change prior to printing. The protrusions on the back made them a very tight fit in the magwell. I also remixed the design on the second the one pictured to have press-fit and then bolted in connectors between the top and bottom halves of the extended version, rather than using a glued on connector band. I used some dovetail shapes to keep the magazine walls aligned, although I didn’t think of this until after printing the left half of the mag so they’re only tested on the right. I also have a modified two-part pulley that is way easier to install. I have not tested this magazine in actual combat yet, so be warned if you want to use it.


Obviously most of the design credit goes to torukmakto4. A little to Matthew Bregg for the motor key geometry from the Orb Weaver, but I changed the wheel socket diameter because at least with my motors, the dimensions provided led to an extemely loose fit and defeated the purpose of rotor-centric flywheels.


Filaments are Yoyi transparent violet and eSun orange and white.


Files are located in: https://drive.google...2_5?usp=sharing


I’ll also use this time to talk about a few other mods I made to the T19 parts that aren’t specific to this MEGA version. The bottom of the vanilla trigger guard has a sharp corner that dug into my finger so I made a smoother version. I added a hole for a second screw between the stock base and the PVC pipe since the stock wobbles very slightly on my other T19. I knurled the velocity knob since the plain one was very slippery. Those files are in: https://drive.google...2EE?usp=sharing

(Mis)adventures in brushless bolt motors

29 August 2021 - 01:51 PM

I’ve spent some time now experementing with brushless direct drive bolt motors. If you’ve seen Project 12 you’ve seen so far the most success I’ve had, but I did a lot more testing with them.


These experiments actually go back three years, to mid 2018. When I was first designing Project 8 I made this big list of design ideas, some of which I tested before ending up with what was basically just a reshelled T19. One of those ideas was a brushless pusher motor to save weight and bulk from the T19 stepper. I built a test platform using a Racerstar 3000kv 2205 motor, of ultracage notoriety. I knew this motor would not be ideal, but figured if I could get it to at least sort of behave, then it would give me confidence to try to find better motors. This test platform didn’t actually drive a bolt, it just spun an oblong disk while I checked if it would stop in time. It was programmed like a rapidstrike with cycle control, i.e. if the switch was not pressed, the motor was powered, and if the switch was, the motor stopped. I used simonK firmware on the ESC with COMP_PWM and MOTOR_BRAKE enabled. Results were not great (it kept overshooting the switch, even with a large braking zone) so I put it aside and put a stepper in Project 8.


Attached File  IMG_20181020_142625322.jpg   151.32KB   126 downloads


Fast forward to fall 2019 and I tried again. This time I went straight to buying a new motor, the QXMotor QM5006 used on Project 12. I also used some different ideas towards motor control. Rather than being full on or full off like a DC motor, I used some timing controls to slow the motor down a little in advance of the switch. 50 milliseconds after the bolt limit switch is released, the software checks the trigger. If the trigger is not down (so we’re not continuing on in full-auto), then the motor’s throttle is cut to the minimum value that still reads more than zero. This slows the motor down just enough that when it hits the switch it can come to a complete stop.


By and large, I consider this bolt drive system a qualified success. “Success” in that:


- It does actually work.


- It is substantially lighter than a stepper.


- It is axially shorter than a stepper, allowing Project 12 to be about 20mm shorter heightwise than a T19 despite very similar construction.


Qualified” in that:


- There were some nagging issues with getting double shots when I intended single. More on that later.


- It is substantially wider than a stepper. Made worse by the fact that as an outrunner, wires can’t be run right next to the motor like they could a stepper.


- It’s expensive. $25+ for the motor and then another ~$20 for an ESC. Compared to about $12 for a stepper and a few dollars for the DRV8825 driver.


- Needing to fit the ESC somewhere means the total blaster really can’t be *that* much smaller overall.


Going back to the double shot issue, I had two theories why it might be happening. One was that the 50ms timing when the blaster checks for trigger state to decide whether to fire another shot comes earlier than it would on a stepper. And the other related to Project 12 using a tach-based feed instead of the fixed delays on the stepper-driven Project 8, my only comparison blaster. This, combined with the super light flywheel on Project 12 meant there was less time between pulling the trigger for the first shot and the blaster checking trigger state for the second shot. Time which may not have been enough for me to get my finger off the trigger.


To investigate this I built a T19 driven by a QM5006. This would remove the flywheel inertia from the equation. I also tried putting in some delay-based code as well just to get another data point. The result? ¯\_()_/¯. Honestly, it’s kind of hard to tell the difference between all of these things now. All the different methods blur together a bit, probably exacerbated by this all happening in quarantine when I’m unable to do any real-world testing. I have been to one game recently where I used this T19, modified to enforce a minimum feed delay of 25ms (the smallest delay the scheduling on Project 8 ever gives) which would really only come into play in a follow-up shot, and, well… ¯\_()_/¯. It’s... fine? I guess? I don’t really have much to say one way or the other.


Attached File  IMG_3876.JPG   206.71KB   119 downloads


Attached File  IMG_3877.JPG   198.01KB   118 downloads


With that question decidedly not answered, I also tried working on qualifications 2, 3, and 4. SimonK really isn’t meant to drive a motor one revolution at a time, so I bought some L6234 motor driver ICs and set about programming my own motor controller, driving it forward in discrete steps, like a stepper. I wired it up per Figure 1 in L6234 application note AN1088. There was a false start or two with trying to use a six-step commutation scheme where every phase was either full on or full off but that didn’t work very well. I settled on the PWM based scheme described here, using the lookup table provided. This was a partial success. I could make the motor move and had fine control over it, but it didn’t have the torque to reliably strip darts out of a magazine, even when destroked down to 30mm. It’s possible there was some kind of issue with my circuit – I didn’t have exactly the right diodes to match the diagram, so I just used what I had laying around and that may have caused a problem. Measuring the current through a motor phase showed about 2.5A, which is near the max L6234 rating, so I figured even if the diodes were causing a problem, I probably couldn’t get any more out of it anyway.


All of this testing so far was with the QM5006. I also tried a 260kv 2206 gimbal motor with even less success. About the same story with the L6234, although this one wouldn’t move darts out of a magazine at all, where the QM5006 would do it sometimes. I tried the new motor with simonK as well, and it kind of just jerked around instead of spinning. I’m going to assume I did something wrong here as that should have at least moved it, but honestly at this point I was well past the point of caring and abandoned it.


The T19 was put back together with the QM5006, simonK, tach based feeding and minimum 25ms delay. Project 12 has yet to see a field trial, although I plan to put the same minimum 25ms delay code in it before it does. The L6234s and the 2206 gimbal motor have been set aside. At this point I have no further plans for any testing but have uploaded my giant mess of code in a big unorganized lump here if anyone cares to look at it. Most testing was done on the bench, so the code is generally just cycling the bolt one time. The CAD for my various test platforms is also in there, although at least some of them were not correct as printed and I had to take a saw to them to fix them. As an aside, I learned through this that setting the TCCR0B register on the AVR (which I needed to do to get enough PWM channels for the L6234) changes the timing so that millis(), micros(), and delay() are no longer consistent with the real world. Any code that uses these functions must be corrected by factor of whatever the prescaler is set to, in my case 8. For some reason delayMicroseconds() appears to be unaffected.


Filaments for the T19 are esun transparent green, yoyi transparent purple, and some variety of white, don’t remember the brand. All petg.

Project 12: 100% brushless Vortex blaster

16 August 2020 - 11:59 AM

Attached File  IMG_3867.JPG   176.76KB   183 downloads


No, I’m not skipping all the odd numbers. My projects are numbered by when I start working on them, not when I finish. And Project 9 and Project 11 have both hit snags, so here we are.

Project 12 is a 3D printed, brushless flywheel, fully-automatic Vortex blaster. As with Project 8, it draws on the work torukmakto4 did on his T19, but where Project 8 was basically a T19 in a different body, this is much more different. As general highlights, Project 12:

  • Features a brushless outrunner based direct drive bolt. No steppers, DC motors, gearboxes, or solenoids.

  • Has only one powered flywheel, like the Nitron.

  • Has a Turnigy V-Spec 2205 motor for the flywheel drive.

  • Uses an Afro 20FS ESC for the flywheel drive, and an Afro 30FS for the bolt drive.

  • Uses torukmakto4’s Flyshot protocol to set the flywheel speed.

  • Uses torukmakto4’s tach-based single-trigger control that measures flywheel speed in real time and fires when it is up to speed.

  • Can carry a spare magazine in the stock

It is large and very heavy. Somewhat larger than it needs to be, with the muzzle extension and foregrip, but I wanted it to feel like a Nitron. I initially tried it with two powered flywheels instead of an idler because I thought that would give me more control of the disks’ trajectories, and for a little while I thought that maybe I could get more velocity out of it by pushing both sides. Neither of these worked. At the end of all this, the disk trajectory still isn’t as consistent as that of the Nitron. I tried various wheel speeds, flywheel gaps (currently set at 33mm to roughly match the Nitron), and various amounts of control bore, primarily by using printed sleeves to narrow down the bore. I also tried using a non-rotating idler, which fired fine, but didn’t really give any advantage. It currently features a 38mmOD powered flywheel and a 36mm OD idler on 70mm center-center spacing. I’m curious if that softer elastomer rim on the Nitron flywheel is important.


It’s having some reliability issues, but only with Pyragon drums. I’m not 100% sure what’s going on here. Might be just because it’s firing so much faster than the Nitron and the drums can’t keep up. 20 round stick mags are fine. I’m waiting for the chance to combat test this to see how it works there before I spend too much more time on it.


Printed in Snolabs red, Reicher blue, and black amethyst petg. Weird mixed bag of qualities here. The red is very good, the black amethyst is very stringy, but also has perhaps the best surface finish of any filament I’ve ever used, and the blue is terrible, with a diameter that varies so much I can see the effects in the finished parts.


Let’s talk more about the bolt drive, since that’s the big piece of new tech here. It uses a QXMotor QM5006, which despite the name, I think is actually a 4106 sized motor. It is 24N28P, with a KV of 350. It is 48mm in diameter, 20mm tall, and has a mass of 90gm. That really is what I was going for here. I’ve had good history with the stepper on Project 8, but steppers are heavy, at ~400gm. Cutting 310gm would reduce the mass of Project 8 by something like 15% on its own and partially cancel out the added mass on Project 12 of printing much more robustly, making just a bigger blaster overall, and adding a crapton of mass with a Pyragon drum. It’s expensive though, and behaves a little oddly at the moment. More on that later.


It uses a custom tuned version of SimonK on the ESC to enable forward/reverse operation and motor braking. I also played around with the throttle pulse widths to better match up with what I was able to get from the ATMega8 on the Arduino. I am using the governor to set the RPM of this motor, not Flyshot, since Flyshot is not currently compatible with the variable throttle needed to get forward/reverse operation, deceleration, etc. that I needed for this to work. I may play around with this and try making new version of it, but it’s not a high priority for me right now.


On the Arduino side, I’m using a Pro Mini and the AVR’s Timer2 to get a 488Hz hardware PWM for the throttle signal to the bolt drive ESC. Now that I’m only using one flywheel drive, I could use the other Timer1 channel there to drive the bolt, but I programmed this with the intent to use two powered flywheels, so the bolt motor had to get its throttle signal from a different timer. With that timer and the pulse width ranges set in SimonK, I have 2% resolution on the throttle signal. The codebase is essentially torukmakto4’s S-Core 0.96, with various changes for my use:

  • I changed the pinouts to work with my hand-wired board.

  • I got rid of the variable speed flywheel drive handling code and just set it once at boot time.

  • I got rid of select fire code, although I kind of flipped back and forth between blowing it away completely and just setting it to full auto all the time, so it’s a huge mess. There’s definitely a ton of useless code in there now that I should probably get rid of.

  • Obviously, the changes to use the outrunner bolt drive.

If you just want to see what I did to make the bolt drive work, look at the following functions:

  • fire(), decelerateBoltToSwitch(), and reverseBoltToSwitch(), for obvious reasons.

  • setup(), for enabling the Timer2 hardware PWM signal.

  • die(int major, int minor), because without a stepper to make error code noises with, I had to handle them some other way. I settled on broadcasting them through the serial monitor.

Because the bolt motor is brushless and I retain all the fire control logic from S-core, the bolt is stall- and jam-resistant. It will self-home at boot and reverse if at any time it fails to reach its goal by going forward.


There are a couple weird things about how it works though. First is that the typical math for setting the governor (described in https://torukmakto4....loop-speed.html) just doesn’t work with this motor. Right now my TIMING_MAX is 0x0BE4, which should be 938RPM, but I’m actually getting more like 730. No idea why this is.


Second is that I had this running like clockwork on a testbed that consisted of just the motor, bolt, and associated electronics, but as soon as I put in in the blaster, everything went kind of wonky. I’m getting a lot of double-fires when I try to single, and a relatively slow tap tap tap of the trigger often gives me a sort of bursty type firing of a bunch of shots. I’m going to continue to play around with the code, try adjusting the position of the limit switch, etc, and see what I can find, but I’m also putting this out there so if anyone with more time and/or programming experience than me wants to take a look at it, they’re welcome to.


I mentioned that I tried having both wheels spin at different speeds. That took some code changes to work with flyshot, so I put another version of the code up (in the misc folder) in case anyone wants it. For how I did that, see, primarily:

  • setGovernorBoth (void)

  • updateSpeedFixed (void)

  • ISR(TIMER1_COMPA_vect)

Although there are various other places where it comes into play, like variable definitions, and bits of loop().


Anyway, files are all in my google drive if you want to see my code, or try making one of these yourself.



Attached File  IMG_3868.JPG   133.39KB   181 downloads

Attached File  IMG_3869.JPG   170.07KB   180 downloads

Attached File  IMG_3870.JPG   186.88KB   184 downloads

Attached File  IMG_3872.JPG   158.58KB   178 downloads

Attached File  IMG_3873.JPG   180.58KB   181 downloads