Thursday, August 22, 2013

After a Looooong holiday from my project!

I'm back.
2009 I finally designed the RC jet boat with the perfomance I'd wanted for the previous 17+ years!
http://www.youtube.com/watch?v=rEj1ainByTs

2010 I ran the jetboat at all the local places in summer, then when I was getting bored of that I learned RC slope soaring gliders which was a lot more of an adrenaline buzz than I'd ever previously imagined, free wind power on slick gliders! Between making my own and flying unpowered and powered expanded polypropolyne plastic foam gliders I killed a lot of time and got a bit of practice rescuing gliders off the local cliff. Had some domestic rearrangements 2011, some fun times in 2012 and at the end of 2012 I designed and started building a 6.13meter long surfski. (like a sea kayak but with an open cockpit sealed from the rest of the craft.
I'm in the wood one at 2 min 36 seconds in this video.

After I finished building my surfski I needed to get back into a project again and I'd picked up some proper matched stepper motors in the intervening years. I'd never got the machine printing as the original assortment of 2'nd hand motors I started with weren't a good match to my 12 volt drivers. Some exasperation at unreliable operation has been a contributing cause of my putting the project on hold for so long.

Before too long I had my new motors fitted to the M6 threaded screw drives and I was able to implement Bresenham's line algorithm and also a circle variant. This exposed a serious speed limitation and so I began looking at different drive options. I found that Johann had achieved proof of concept of the Delta printer mechanism and having plenty of confidence in my electronic platform, I ordered a set of printed plastic delta parts from Matterhackers in the USA. While waiting on those parts, I also found the ceberus pup design which I thought was a much cleaner implementation... but hey, you have to start somewhere!

I found that the printed PLA parts can delaminate if I try to drill them with a non bluntened drill bit... but that's not really new for plastic.

I decided to switch from the bone shaped arms to hobbyking M3 swivel joints and spun cone shapes on a bunch of M3 nuts with my grinder, so as to allow good freedom of movement of the arms on the balls after securing them to the bolts. Some M3 threaded rod for the shafts...

After such a long hiatus on my projects there has been massive development on the 3D front.. Lots of people tell me about a guy's project to build an Austin Martin out of sections of 3D printed panels, but when I get mine actually printing plastic, I'll start with some openscad shapes, I'm working now and then on a parametrically modeled water jet unit, I have a couple of positive displacement pumps I invented in my late teen years and I want to experiment with some mathmatically derived 3D patterns.. maybe have a play with fractals too. 

I want to say a big thanks to those people who have been active in the 3D print field while I've been doing nothing! Adrian for starting the reprap movement, Zack for pushing along the early electronics and his involvement starting thingiverse after his leaving reprap to co-start makerbot, Wade? for showing how to make extruders work properly by using stepper motors to release calibrated volumes, the guy who pulled his fantastic creations off thingiverse to show makerbot's buyers that representing other people's creations as your own work is not cool, Alessandro for his excellent slic3r program.. etc etc!

So anyway, I've been putting more hours in and have more progress than before. I used Johan's trig formulae and the printed plastic offset measurements to get my own machine moving accurately, but in moving from threaded drive to T5 belt and 10 tooth pulleys (50mm per rotation) I found my simple microstepping was far too chunky, that is unless I'm using a regular sized glue gun!

I ran a simple program to spit out the top of a sine wave into a 64 byte table and incorporated this into a lookup table for PWM of each coil, but displaced by 90deg difference  for each coil of the stepper motor.

(When I got it working) the result was gratifying, motors able to move so smoothly I couldn't see them step, so quietly I couldn't hear them with out having my ear almost at the motor. (remember I'm driving the L298 bipolar driver chips directly)

There's an annoying aspect too though... With this high resolution the ARM is spitting out bit-banded polarity calculations and look up table values to the PWM registers at a great rate and it chews up an appreciable amount of processor cycles. The resolution with the 10 tooth pulleys and T5 belt works out at 128 steps per mm and I really need to get some closer tolerance linear bearings, the ball bearing ones are loose and make far too much noise!

As with many of my projects, I'm usually at junctions of multiplying workload..
I've looked up STMicroelectronics recent chip designer and they are using the ARM cortex-M4F in their STM32F4xx chips. This evening I looked through the 100 pins description lists and it seems that the 32F1xx and the 32F4XX 100 pin TQFP chips are electrically interchangeable on the same footprint... great news and part of why I chose an STM chip in the first place, they do a fantastic job at making their chips not only upgradeable, but at also allowing pheripheral remapping to other pins to get the best use of on chip pheripherals.

The ARM cortex M4 chips has some features that make it worth another $7..
  • runs at double the clock speed.
  • super fast square root operations and floating point operations.

With those, I can get better servo resolution (the faster clock cycles), faster bit banging to the stepper motor pins (less time in interrupt) and MUCH faster trig calculations of the delta positions (each of the three vertical slider positions for any X,Y,Z position.

I'd always assumed my first board run would be just prototypes... V2 when I produce it will have the ability to drive at least 6 stepper motors simultaneously. Assuming I stick with the 100 pin chip though, I may need to change some or all of the drivers to smart ones to save on pins.

And still I am yet to first print, though I have been drawing 3 lobed elipses (before I corrected my scale) and circles and other 2 D shapes while testing.