This project started as the result of a failed earlier project. I had attempted to build a motorcycle logger - i.e. a platform to record as many things as I could manage during a ride. I had rpm, gear, head temp (left and right), oil temp, oil pressure, speed, GPS location and ambient air temp. I was hoping to add the AFR. Although I got it all working, it would crash often. I tracked it down the way I was capturing rpm - by using the coil negative. I was getting some sort of noise, either RF from the spark plugs or maybe back EMF from the coil or something. I could figure it out and it made the project unstable.
Roll forward a few years. I ran across some info on this and found a reference to someone having a similar problem. They solved it by making sure the ground from the coil negative interface circuit went back to the battery, not the circuit board as the voltage spikes from the coil collapse and subsequent ringing would cause the processor to crash.
I wanted to play around with this, but I didn't want to do it on the bike. So I thought I would create test bed for running ignitions.
I came up with an Arduino that drives a DC motor. The motor is connected to a shaft that has a taper bored in one end to simulate the end of the cam. On the other end I mounted a magnet on a cross shaft. A hall effect sensor triggers when the magnet goes by and I use this to determine "TDC". I then cobbled together a couple of stock Lucas 17M6 coils, plugs, a motorcycle battery (as I need about 3W of 12V to drive the ignitions) and my trusty Tektronix TDS2024 scope.
I ended up using a circuit published by MegaSquirt for ignition pickup - basically using a 1N4001 and a 4N32 (optocoupler). It’s simple but seems to work pretty well. I used a simplified version of this circuit (no “John” Zener, no C31, C11 or C12. I may add the C11 and C12 in as I do get a bit of noise):
This circuit seems to work well. I think the key is making sure XG1goes back to the battery, not to the ground plane the uC uses (i.e. don't jumper to XG2).
The basic procedure is to mount an ignition, set it up so the spark happens before the magnet triggers the hall effect sensor and run a program I wrote on the Arduino. The program uses PWM to increase the motor speed by 1 (the Arduino allows 255 steps) and then determine the rpms and the amount of time between the spark event and the TDC event. This is converted to an angle and is the advance. By running from around 600 rpm to 6000 rpm and taking advance measurements, you can plot the curve.
I happen to have a small collection of ignitions I've collected over the years. A Boyer MicroMKII, an Old Britts PowerArc, an older and newer Trispark, and an ancient Lucas AB11. I have a decent AAU, but setting it up was a pain so I didn't test it.
A note about the reported values. The RPMs are crankshaft RPMs. The Advance angles are crank angles. You also must realize the advance angles are somewhat arbitrary as they are offset to the manufactures spec. In other words, when I run my setup I really don't know where TDC is in relation to the spark. (I didn't have an easy way to accurately determine this in the test rig.) I just set it up to be somewhere before TDC using my scope to verify. After the test run, I take the raw data and look for a "calibration" point - i.e. I know the ignition should be set to 28 degrees BTDC at 3500 rpm. So I simply find my closest 3500 rpm point, calculate how "off" my raw number is from the spec and then subtract that from my raw data. This seems to work pretty well.
HOWEVER - as DynoDave would probably point out, it's more meaningful probably to use cam shaft angles and absolute advance data. This effectively eliminates this attempt at aligning the advance with TDC.
Here's the data I used to set this up:
Lucas 31 degrees @ 5000 rpm
Boyer 31 degrees @ 5000 rpm
Trispark 28 degrees @ 3500 rpm
PowerArc 35 degrees @ 3600 rpm (taken off the Old Britts Web page).
So in order of evolution:
Lucas AB11 - this is an old analog ignition. What is interesting is the coil is on - i.e. energizing - almost the entire time. The only time this isn't true is when a spark happens and it's briefly grounded to get the field to collapse. I would guess this uses the most power due to this. In the following image the yellow trace is my hall effect sensor. When it goes low, that's TDC. As you can see about 2.7ms before that on the blue trace is the coil negative line. It goes low for 0.1-0.2 ms.
Next up is the Boyer MKIII. Another analog unit. It's coil on/off times are better, probably something like a 50% duty cycle (I forgot to take a picture).
What's very interesting to me is the Lucas and Boyer curves are almost identical.
I then tested two Trisparks. This is a digital ignition. I had an older one and a new one. (Apparently it was redesigned to better tolerate the heat in the timing cavity with more robust components.) They ended up with basically the same curve. You can clearly see the idle stabilization effects in the 1000 - 1500 rpm range. The Trispark seemed to manage the coil on times to minimize current load, but maintain a good spark. It seemed like they were trying to keep the on time to around 8ms.
Last up was the Old Britts PowerArc unit. It used a completely different pick up method - optical instead of magnetic. It also used a very different approach to managing the spark. This unit actually sparked three times for each cycle. In addition the coil on times were managed for each segment of the advance curve. In this picture you can clearly see the 3 pluses in the blue trace.
You can clearly see the digital nature of the ignition in the following graph. The increases in advance are very discrete. Since there 3 spark events per cycle, there are 3 advance curves. Four, if you count the coil on event.
Of course, being digital means you can have more than one mapping, so Old Britts supplies a "sport" curve meant to be a bit more aggressive.
It looks like the real difference is the 2nd and 3rd sparks are more advanced in the Sport version.
Here's an overlay of the two. Sorry about the jumbled legend ( I couldn't get Excel to sort it...)
I though it would be fun to overlay them all. I used the first spark event for the PowerArc curves, but as you can see - it looks a bit fishy. Perhaps someone with more experience can suggest a better way to compare apples to apples.
Well it's pretty clear to me which one is best. Although the analog units have been around for a long time and seem pretty reliable, they really don't offer the best curve. It's well known the Boyer has issues with low battery voltages (I even saw this during my tests when my test battery went low.). The Lucas is no longer being made so it's more of a curiosity I suppose. The PowerArc I found to be very fiddly getting it set up (i.e. getting it timed correctly and fooling around with the optical wheel). You have to set it's version of TDC to your bikes. However when you strobe it, there is no easy way to adjust this and it's very easy to be off a couple of degrees. I also found mounted on the bike, it was susceptible to kickback when starting - there is mention of a start procedure on the Old Britts site you'd better follow if you want your ankles. This leaves us with the Trispark. I think this is an awesome ignition. It's easy to install, easy to dial in, makes the bike run great, seems to have a nice curve and you get idle stabilization that literally transforms your bike.
Here's some links to information on curves I found around the net on this:
http://atlanticgreen.com/boyerexposed.htm (also has Lucas Rita!)
One of the last things I had to do was weld together a tail light/license plate bracket. I had to wait for the light to show up so I could figure out the relationships. Here's what I managed. (Note the last time it was registered - 2002!)
I got the bike on Nov 1, 2015 and it's pretty much done as of this week - Aug 7, 2016. I guess that's about 10 months. Since there were long stretches where I didn't do much, I guess that's not bad. The bike turned out OK. If was planning on making this my bike I would have gone further, but I was primarily interested in spending as little as possible to get it back on the road with cafe styling. My inspiration was something like these, but they have $1,000's in custom paint and body work. Maybe next time.
Mine turned out a lot more stock looking. It runs well, and seems to drive well. I need to get it registered and do some little tweaks and adjusting.
I probably should have written this in a more realtime fashion so I can remember all the bits. Once the painting ordeal was complete, the reassembly went reasonably quickly. I had been collecting bits over the months, so I had a lot of the parts I needed once I dug in. First up was respoking the wheels. I used Buchannans SS spokes and nipples. I also stripped and polished the rims. Things turned out pretty nice.
Next up was to get the engine back in the frame - without scratching things too much! I was working by myself, so I ended up putting the engine on it's side and then lowering the frame around it. I then replaced the lower mounting bolts, turned it upright and it worked great. It was simple matter to then bolt on the transmission.
I then mounted the swing arm and set up the wheel bearings. BMW's use a tapered roller bearing stack that needs the preload set up. I'd never done this before, so it was a bit fiddly, but in the end things seemed to go together correctly. I then mounted the tires and balanced the wheels.
I had decided to make a custom battery holder from the start. I used a blanking plate supplied by Boxerworks to eliminate the stock air cleaner and in it's place, on top of the tranny, I mounted the battery. I thought it came out pretty well. I also decided to put the crank case breather inside the starter cover. I hope it doesn't spew oil in there. I wanted to use peashooter mufflers, but couldn't find any in my budget. I ended up going with Dunstall replicas. Although they didn't look exactly like what I was after, they ended up sounding great.
I went through a bit of hell with the front brakes. The original set up had the master under the tank and was actuated by a cable from the front handlebars. Since the original master was toast (rusted and pitted) and the throttle control was trashed (corroded, teeth worn, etc) I needed to replace them. I also had read this set up suffered from a lot of issues (leaking fluid under the tank, poor braking due to the cable, etc. ) that I changed to a later style. This used a handlebar mounted master and simple junction block under the tank. I also upgraded to SS lower lines. It took a bit of fiddling, but came out OK.
I then started in on the wiring. I was able to use the original harness without much modification. All that was really changed was the ignition as it had a Dyna III and aftermarket coil. (I also had to fool around with the turn signals, taillight and horn.)
I was getting close to completion. Here's a shot just before turn signals, taillight, horns, grips, etc. I had originally considered painting the body work, but frankly ran out of interest and budget. Also the original paint cleaned up well enough I decided to use it. Unfortunately, the battery color didn't work. Oh well.
I have to wait for a few bits, so I can't start it up and try to ride it. I'm hoping the transmission (which I didn't do anything to) is OK!
Where we left this project months ago was I had managed to get the engine back together after discovering shot rod bearings. Next was to put it back in the frame and get this project to a roller. I really want some of my shop space back! That necessitated painting the frame and other bits.
Let me preface this - I hate painting. It's not my thing. In the end I'm kinda aiming for a decent "5 foot" finish. (You know, looks good from 5 feet away or more?)
I've always wanted to try automotive paints and thought I would give a try on the BMW. I decided to use Eastwood paints - they target the DIY market and their stuff is a good compromise between cost, east of use, quality and variety. I chose the DTM Epoxy Primer and a Single Stage Black Urethane. But first I had to build a spray booth, sand down or media blast the parts, figure out a way to mount the frame so I could get at it, and acquire some safety gear (fresh air respirator, hood, suit, etc).
There's tons of info on the net about building you're own small booth. I went with the painters plastic over a PVC frame, cheap box fans with furnace filters, and fluorescent lights style.
What this is really for is two fold - 1) to contain the overspray and fumes, 2) keep contaminates out of your new paint finish while it cures. This style of booth is probably just OK at both, but better than nothing. I did notice there definitely was a positive pressure as there was overspray blown out all around at the bottom of the frame and floor joint creating yet another thing to try to clean up.
Here are some various bits masked off. I think this was the most enjoyable part of the whole thing. It's clean, easy and kinda looks cool when you're done.
Ready for paint. Turns out kinda. Well lets just say I learned a lot. The overarching problem was the fact I had too much going on in here. The parts were too close together, they were too high to paint comfortably, I had a lot of trouble getting all the sides (I had to hold and manipulate with one hand while painting with the other. I got lots of runs. I got lots of overspray. I missed some places.
It was horrible.
Primer on. Another mistake, don't get black primer if you're going to shoot black as a color coat. You can't see where you need to paint. I should have used a grey primer.
I ended up sanding the primer out on the frame sections (where there were runs and stuff) and respraying. (The other pieces ended up being good enough). This would have gone great had my stupid painting hood (which inflated due to the fresh air system and pressurizing and popping up the top a good 6 inches) not collided with my fresh 2nd coat. I'll have to sand that down and touch it up tomorrow. Sheesh!
Did I say I hate paint? The prep work. The set up. The space it takes. The mess. The clean up. The chemicals. The safety issues. The ease with which you can totally screw it up.
I think I've proven to myself, once and for all, that if I need to go beyond rattle cans - I'll send it out.
Here's the basic layout of the shop. The circle with an "x" in it represents a ball valve.
Below is a pic of the chart in ThingSpeak. The slopes of the different curve segments are calculated below:
So it appears the best the system can do is around 2 psi/hr. That's with as little of the system as possible in the mix, i.e. best case. That said ,there's still the compressor check valve, a water separator/filter, air line quick disconnect fitting, and 3 ball valves in the mix. It's possible the air line quick disconnect fitting could be the bulk of it, however the filter also has an auto drain feature which could be leaking too.
UPDATE: I've been opening up each end point separately and it looks like the Bridgeport is kinda a problem. I'm pretty sure it's the Kurt Power Drawbar IN/OUT switch - I knew it was leaking, but it's leaking more than I wanted. I think the rest of leaks are probably a collection of minor things I'll have to find by soapy water, etc.
A couple of years of ago I finally added hard lines to my air compressor throughout the shop. What a nice upgrade! No more hoses all over the floor. However, it seems my copper sweating skills are maybe not what they should be as it seems to leak a fair amount of air. After I switch off the compressor it takes something like 4 hours for the system to depressurize.
I felt I could do better.
But how to isolate the problem? And how to make it a complex project?
Well, that's easy. Just build a wireless network connected microcontroller with a pressure sensor, an SD card for logging, and a graphical display. Have all your data get collected in two ways - 1) local to the SD Card and 2) upload to ThingSpeak.com.
My thinking is to attach the logger to different segments of the air line. As I move away from the compressor - therefore adding more pipe joints, valves, equipment - I should be able to deduce from the pressure decay rates what the relative leak rates are per section. That should give me an idea of what to work on. Additionally, I can verify my repairs in quantitative terms.
So after a few days of cobbling things together
Here you can see it's attached to my air lines - running about 115psi.
Close up of the mess. The screen is an older Arduino TFT (now discontinued) with an SD card socket. The smaller chip above that is an ESP8266 WiFi chip. For $5 you can't beat it!
The ESP8266 is a 3.3v part which needs some juice when transmitting. I happen to have had lying around an old XBee shield that I had previously added a 2 channel level shifter to. It took care of both issues as it also has a robust 3.3v power supply.
Here's a link to the ThingSpeak page where I'm uploading the data : https://thingspeak.com/channels/6008
I'll have to update this as start logging the system and try to figure it out.
After getting the 4th axis up and functional, I thought I might as well try a project utilizing it. My concept was to create a dining table using the rotary as well as some old barn wood we had left over from building our house. Here's the CAD version of the idea. The original concept had this with two legs. After calculating how much aluminum that would take and how long it would take to machine, I scaled it back to a single leg.
I had wanted to use the rotary as a true 4th axis (simultaneous movement in all axis), but ran into trouble creating the gcode. My skills in NX 7.5 just weren't up to the task. So I back-pedaled and went with more of an indexer mode - basically turn 90 degrees between each operation. Although it's not what I started out wanting - it still allowed me to machine all four sides without removing it from the fixture.
Which brings me to the fixture. I've never really put much time into setups as I usually just want to get the part done. This time, I realized the number of parts I wanted to make plus using the 4th axis required one. I'd also never used dowel pins for location devices, so thought that would be fun too! Although it's a bit cumbersome to mount and dismount the part, it worked as designed. When I originally made the fixture, I was a bit careless about maintaining parallelism between the top and bottom. I realized this at about the 3rd part when I was having trouble with things matching up when the rotary went all the way around. Once I fixed that - it turned out to work very well.
Once I got that sorted, the first operation was to cut a chunk off the raw 5"x2.5" stock.
Next up was to add a set of holes - 3 threaded and 2 reamed (for the dowel pins to locate) on both sides to use for mounting in the fixture.
Then I sawed this at a 30 degree angle to make 2 blanks. Here it is mounted up on the fixture in the rotary about to do the first position.
I had never used dowel pins to align a jig and got to use over/under reamers to make it work. It was actually pretty easy and it really made things very predictable and repeatable.
To complete 1 part took around 55 minutes of machine time. Most of this was trying to get a very fine finish on the contoured areas which took a lot of passes.
I was originally planning to do enough for 2 legs, which would have required 48 sections. At an hour each, that really added up.
Once I had the buttress pieces done, I moved on to the leg. I mounted the lumber in my lathe and turned the ends. What a mess! Turning wood in a metal lathe gets sawdust everywhere!
After turning that down, I slipped on some aluminum collars to each end and put together what I had for a bit of a mockup.
Now that I had the leg mostly there - I started in on the top. I had wanted to make it up out of a bunch of strips and glue/screw them together. I really ran into issues with warped and twisted strips. I ended up wrestling it around to something I considered acceptable, but it was a lot harder than I thought it would be. It ended up being 48x36".
One feature I attempted was to use 5 threaded rods to hold the top together. Although I got it done, it was probably the worst part of this whole job. I really underestimated how much trouble it would be to drill straight holes though 3 feet of 3/4" strips of wood of varying species! I thought it would be fun to make a set of custom nuts to hold it together. I wanted to recess them into the side of the top. I based the design off the 12 lobed base.
You may be wondering how I got those nuts tightened up. Well you make a tool of course!
I wanted to have a plate mounted on the underside of the top to use to attach the leg and also to help stabilize the wood. I found a galvanized round cover of sort make out of diamond plate. I was going to expose the diamond plate, but ended up liking the other side more.
Next was the base. I found a 20" diameter metal plate that was apparently used as a pipe cap. It probably weighs about 80 lbs and was a bear getting into the mill by myself! I milled a pocket in the top for the leg and on the underside I added pockets for 6 feet, plus thread milled the outer holes to accept an adapter I needed for the feet.
I realized I needed a way to securely mount the aluminum collar on the ends of the leg so they wouldn't spin. I decided to glue it on, but then added a wedge - just to make sure!
And here's the final result!
Some additional notes:
I think the overall design was OK, but in looking at the finished product I think it didn't come together as well as it could have. Not bad for my first attempt at furniture, but there's room for improvement. My brother pointed out there should be some metal form from the base/leg coming up through the top. I think he's right as that aspect is sort of the point of the whole thing. My wife thinks there are too many materials involved and it doesn't really come together - she's right too. Additionally I think proportions of the top to the base are off, I probably should have gone with a circular top. Although I largely managed to solve it, there is tendency for the top to be able to spin on the base as the compression collars just don't provide enough force to resist that.
After rebuilding the VH-65 and mounting it, I kept my eye on the oil level. After a few weeks it fell below the sight glass and I knew I had a leak. I had really fought with the large seal in front and immediately came to the conclusion I had messed it up. Careful observation seemed to show that it was leaking as there was evidence on the front of the rotary.
It's kinda hard to see, but there is some faint staining right below the seal area as shown here.
First up - remove the old seal. Easy - just drill a small hole in the seal and use a slide puller!
My problem the first time was I had no way to evenly pull in the seal. I had tried to gently hammer it in, but I knew at the time I had deformed it. I needed a tool.
When I was scrounging around my local surplus yard, I found a scrap ring of 6.5" ID aluminum. Perfect. For $10 it was mine. All it needed was to a bit of machining to open up the ID a bit and face it. I used the T slots in the face and a couple of scrap plates to rig up a way to pull it down. I carefully tightened each nut so as to install the seal square and even. It went in pretty easy.
I topped it up with oil and I'll keep any eye on it for the next few weeks a see what happens.
When I had purchased the rotary, the Fadal logo plate was missing. One happened to come up on eBay, so I decided - what the hell.
Since I got my '95 Fadal VMC20 a few years ago, I've always wanted a probing system. Not only does it help you stay accurate and reduce work, but you can insert probing routines in the programming. I wanted it all, a tool setter and an optical probe to use while machining. I hunted on eBay for a couple of years (it takes a while to find good/inexpensive examples) to finally assemble the following Renishaw Parts:
Next I had to figure out the wiring and how I was going physically mount everything. The first step was to create a diagram of how everything needs to be connected.
The above layout should work like this:
1) If you want to use the Tool Setter, you send an M64. This will cause the MI8-4 to select the Tool Setter as an input and output it's status to the 1060 board. If you send an M65, it will select the Inspection probe (OMM) for the input.
2) If you select the OMM, then you need to also send an M66 to actually start the probe. In all of the Fadal wiring docs I could find, they never connect the Error and Battery status to the control. If you use them, you can verify the probe started OK is working before you initiate probing. I've written the gcode to test those after a start is issued to verify the probe stated (i.e. go from error to OK) and to make sure the battery isn't failing. If there's a problem the program will loop to try starting again or allow you to abort.
In order to enable the M64 and M66 gcodes you'll need to populate the 1100 board with 2 SSR's (Solid State Relays) and 2 fuses. I used a Grayhill 70S2-01-A-03-A and a 1A fuse. Populate K31/F40 and K16/F10 on the 1100 board. These SSR's will be switching power supplied by the 24VDC power supply.
Here's a shot of the SSR's mounted and wired. The red wires are from the 24V PSU. The Green wire is for the M64 signal and the White wire is for the M66 signal.
In order to detect the Error and Battery status you'll need to create and adaptor for the 1040 board. This has a 26 pin edge connector that you need to interface with. By referencing the Fadal User Manual -> Macros -> Layout of I Macro, you can see that I(3) is pin 19 on J2 and I(4) is pin 20 on J2. You can test is the pin is logic high or low and create logic from there. I assume this card requires TTL voltage levels, so use 5V only!
I decided to mount the MI8-4, the 24VDC PSU, and the connector block to the inside of the electrical cabinet. Luckily there were two 1/4x20 studs sticking out that I could conveniently mount a DIN rail to. I also made up a small connector block out of some perf board to handle wiring up the various components. I 3D printed a couple of DIN rail adaptors for the backside. The 1040 board uses approx. 10K pullup resistors on the input pins. I set things up so an Error or Low Battery are high (active - i.e. the default state) and you need to pull them to GND to indicate a no Error condition. I added some caps to help with AC ripple, as it seemed the power from the Fadal was kinda noisy.
And here's the PSU, Connector Block and MI8-4 mounted and connected. All in all I'm happy with the layout.
I mounted the TS27R on the back left side of my table and ran the wiring up and over to the cabinet. Initially I was going to mount the OMM on the top left of the cabinet as indicated in the Fadal Maintenance manual, but looking at a bunch of pictures on the internet of HAAS and Fadal OMM installs - it looked like the back of the cabinet would be better. I mounted the MI12 on top of the pendent and ran the wiring under the cover that runs along the top of the cabinet. I had to create a hole to run the wires through on the pendent end. (The black box to the right of the MI12 is my interface for a programmable coolant nozzle I'm working on - more on that in a future post.)
I calibrated the TS27R (basically getting the stylus flat) and then determining the fixture offset. After that I tried a tool setting cycle and low and behold - it worked! Can't wait to machine something with my new capabilities.
Today I started in on the wheels. They're pretty ugly.
I need to determine hub offset. The front was easy as the hub is symmetrical and it's centered on the rim so I didn't need to measure. The rear is also apparently centered, but the hub is asymmetrical, so I decided to measure where it sits. I just laid a straight edge across the hub flange and measured the distance to the rim. Looks like about 3.5/64 or 1.4mm.
The nipples were pretty badly corroded, so I just used the Sawzall to liberate the hubs.
Ever growing pile of cleaned up parts.
I discovered the rims are nice aluminum ones. They look like they'll clean up nicely, so I might just polish them instead of painting. I also found the u-joint was a bit notchy - but I've decided to throw it back in as there is no easy way to replace it, BMW wants you to just get a buy a new drive shaft.