Give us this day…

It's impossible to describe what the kitchen smells like right now.

It’s impossible to describe what the kitchen smells like right now.

This represents 3/4 of my second attempt at baking bread from scratch. Sorry, one loaf had to be sacrificed to the wolv– I mean, family — before I could get enough peace and quiet to get a photo taken. 🙂

I’m happy to report that this bread run was just as successful as my first.

I used the same Betty Crocker recipe that was taught to me by my Bread Jedi instructor, a Sage of the Woods who shall otherwise remain nameless. (Thank you, N__!)

The recipe is pretty simple, but it still takes enough work that it’s worth doubling to get 4 loaves instead of 2.

With supreme confidence, I totally skipped blooming the yeast, in favor of just mixing the whole thing together at once. It seems not to have caused any problem whatsoever.

I picked up 4 bread pans at the local grocery store, along with a couple of large Tupperware tubs (I mixed in these, and there’s also another batch of dough in the fridge, waiting for me to bake it over the next week or so).

This was a standard double-rise, hand-kneaded dough. I really enjoy kneading. Everyone complains about it, but I find it a great stress reliever. It’s also really easy to tell when the dough is done, because you literally have your hands all over it. Having said that, my daughter helped out with the measuring and mixing part, but strangely disappeared as soon as it came time to knead.. hmm…

Here’s a quick look at the loaves after the first rise and punch down (I love that you actually have to effect violence on the dough… this is not like roasting). See? Four loaves. Honest. I wasn’t sure when to add the poppy seeds… this was not the correct time. Oops. No harm done.

Those who are about to rise, we salute you.

Those who are about to rise, we salute you.

I slashed the tops this time (hadn’t done that the first time around), and also experimented with some toppings; poppyseed, anise seed, rosemary, and granola. I like the way the V slash came out the best (poppy), but I have high hopes for the scallop slash (granola). Also, I need to brush on water, butter, or egg, to make the toppings stick, I think. Shrug. That’s for next time.

The oven had been pre-heating for awhile, because I’d picked up a 12″x12″ piece of granite at Home Depot to eventually use as a baking stone, and I was making sure it could deal with temperature changes. The baking was done in about 30 minutes (recipe calls for 35). The tops are looking pretty “GB & D”, the bottoms are perhaps a little overdone (but the bottom crust is still very tasty). The crumb is… well, the bread is awesome, if I do say so myself. Loaf #1 was gone in about 15 minutes flat.

I picked up a breadmaking book (no plug until I taste your recipe!), and I’m going to try Brioche next — I like egg bread a lot, and we’re up to about 45 eggs at the moment, so I need to dig into our backlog.

Thank you again to my teacher and master breadmaker, N___. Couldn’t have done it without you!

Posted in Knowledge, Science | Tagged | Leave a comment

Bees, Year 2 begins

We got our new crop of bees this morning; my wife drove down in the middle of the night to meet the bee guy at like 6 in the morning or something. I slept through that part, so I’ll spare the details. The Clearwater Apiary also picked up a pair of packages — 4 hives between us should keep everyone on their toes this year.

There was a spray of sunshine around 4pm, so we decided to get the bees installed before it decided to start raining again.

Hives East and West, about to rise again.

Hives East and West, about to rise again.

This time, we were able to give the hives a good start; 2 full frames of honey each, as well as 6 frames of pre-built foundation. The bees will need to do a little cleanup, but otherwise, they should be off and running as soon as they run the marshmallow gauntlet.

Each of us took a hive and installed it individually — without loss of generality, I took Hive East. Things went pretty smoothly — I got most of the bees out of the package and into the hive. The only rub was that I couldn’t get the cork out, so I had to push it in, and then load the queen box sideways so it wouldn’t block the exit. Hive West went together without any difficulty.

We are trying frame feeders this year. I have the syrup built, but haven’t installed it yet, because it’s still a little warm. I think they’ll be OK with the honey for a day or two.

Be well, Hive East and Hive West!

Posted in Knowledge, Science | Tagged | Leave a comment

Ray Tracer : in the weeds

I’ve spent the past week fighting minor math errors in my ray tracer.

In order to confirm that my surface normals were being calculated correctly, I added boxes (axis aligned only at this point) as an additional primitive type. That required a couple days of debugging the normals calculation for the boxes too.

Then I added checkerboards, to confirm that I was getting proper reflections, and found that all my reflections seem to be upside-down.

I was also being driven nuts by the original datafile format, which was leading to a lot of “did I set that or not” type errors, so I switched to a hand-tooled JSON format. With only minor tweaks, the JSON file format is working! It’s about little successes right now.

I think there’s a basic error somewhere early in the process — I suspect that I’m having trouble distinguishing when something should be a “point” (a non-normalized 3D position in space), and when it should be a “vector” (a probably-should-be-normalized direction); and most particularly, when things should be pointing “at” the intersection point, and when they should be pointing “away” from the intersection point. I feel like I need to go through the whole thing with a fine-toothed comb, and rename variables to help me understand what’s going on. It would be nice if I could figure out a way to draw all the vectors visually, as well — I think that would really help the debugging process.

Anyway, I’m limping toward a solution, but it’s all going very slowly right now.

I’d love to be able to move on to transformations, texturing, and triangle intersection, but for now I’m stuck on kind of the basics: Am I even shooting a vector in the right direction? and How do I characterize what it is that I hit? and What do I do then?

More vectoring.

Posted in Computers, Knowledge, Making, Science | Tagged , , , | Leave a comment

PCB – The sun is the thing

I finally got back on the PCB fabrication horse. I printed out v1.1 of the 74HC595 LCD backpack, and v1.0 of the MCP23008 version. I chopped up the transparencies and mounted them up on Saturday, then worked on getting the boards exposed and etched on Sunday.

Since it was a clear and sunny morning (a rarity in Seattle in early March), I decided to try exposing the boards in “natural light” instead of under a lamp (I’d tried both incandescent and “full spectrum” incandescent bulbs, at a variety of distances), which had been giving me difficult results (hot spots and weak exposures) and had long exposure times (on the order of 20 minutes).

So I set up the exposure frame, put it out in the sun for 20 minutes, and the whole board promptly wiped clean of resist within seconds of putting it in the developer. Um, oops. 🙂

Just to test the timing out, I took a board that I’d accidentally exposed, and which had been sitting around for a couple of weeks being exposed to whatever ambient light was around, popped that into the exposure frame, and tried 4 minutes of sunshine. It went into the developer, and started showing traces within the first 3 seconds, and was developed in well under a minute — wow! It was still actually a little overdeveloped (some of the finer stuff, like text, was gone), but the resist that was left was by far the darkest and sharpest I’d seen to date. Nice.

So I cut myself another new blank, got it all set up, and exposed it for 3 minutes. It came out really, really nice. Because it was so dark, I left it in the developer for long enough to get right down to nice clean copper.

Both the “overexposed” test board, and the “good” new board etched out pretty well. The “overexposed” one ended up having a little spare resist left in between the traces, so it took a lot longer to etch, and was a bit tougher to get real clean. I realized as I was etching that this is a big part of the problem I’ve been having all along — because the photoresist was underexposed, it was getting underdeveloped, and thus a bunch of resist was left over, and it made etching much more difficult.

The “good” board etched out in about 3 to 5 minutes (I didn’t really time it), and both boards immediately went brown when put into the etchant.

I moved on to other projects and didn’t get the boards sawn and drilled.

The takeaway from this is that the sun makes a great light source for exposures (like who didn’t see that coming), taking only a couple of minutes to give a nice, dark exposure. And, a good exposure is critical for the rest of the etching process to go smoothly. I am betting that I’d have been able to do a pretty good job with even vinegar and peroxide with such sharp resist.

Yet another hobby that’s easier to do with clear sky. Hmm.

Posted in Electronics, Making | Tagged , , | Leave a comment

Breadboard works

With my initial hubris about circuit construction dulled by a couple of nasty bugs and failures, I decided to construct my next circuit the old fashioned way — I bread boarded it first.

I wanted to do an I2C version of the LCD backpack, and I had an MCP23008 lying around, so I got to work.

I still had the board set up with the 74HC595 circuit on it, so setup was easy, and there was still plenty of space on the board for the new chip. A quick googling turned up a likely candidate for a wiring diagram, so I hooked it all up, and with the exception of hooking the $?&@;)!/ data lines up backwards again (seriously, how many times can I do that before I get it?), everything went in perfectly on the first try!

I spent a little time messing about with getting both SPI and I2C working from the same board, and it turns out it’s pretty simple. You have to push the /RST on the MCP and G on the 595 to the proper values (GND on both activates the 595, 5v activates the MCP, very cool!) and then set up some #ifdef code in the sketch, and the whole thing just swaps back and forth. I’m not sure if it has any practical value, but I suppose it would be cool to have a general port multiplier that could be switched from SPI to I2C at will. Maybe. Anyway, food for thought.

Now that I have a working circuit, I can push it into Eagle for fabrication.

I am really glad that I found at least some of the bugs on the board before it got committed to acid.

Posted in Electronics, Making | Tagged , , , , | 2 Comments

PCB Fab – Breadboard first!

After failing to get the 74LS174 board working, I decided to go with the flow and build a 74HC595-based LCD driver board instead. There are plenty of examples online, from Adafruit to Steve Hobley to Rowan Simms — this will be a cinch!

So I built out the schematic, ran all the traces, did all the art and etching (things went a little better with the wide traces, but I still need to look into better peroxide), populated the board, and… nothing.

You’ll carefully note that I didn’t say “hooked up the 595 on a breadboard to test the circuit first”, because I didn’t. I copied the designs from the ‘net, and triple-checked my work, I thought, but … oops.

So I was pretty bummed out; more bricked boards lying around, a lot of work down the drain, etc.

And I eventually got around to testing the thing thoroughly. First, I hooked up a ‘595 on a breadboard, following my schematic layout to the letter. Predictably, it didn’t work. OK, so I needed to figure out where the problem was (bad ‘595? fried LCD? Buggy schematic?).

I went back to basics.

First, I hooked up the LCD to the breadboard and wired it to the Arduino with a full 6-wire circuit, just like LCD bootcamp.

That worked fine. And I confirmed that I hadn’t fried any of my screens with my messing around — whew.

Then I hooked up the ‘595 carefully and noticed that one of my wires which I’d taken to 5v was hooked to ground in another post, so I tried that, and … no dice.

Hmm.

Then I looked really carefully at *which order* the shift register pins were hooked up, and realized that I’d hooked the data pins up exactly reversed (3210 instead of 0123). That’s a software fix (unless you’re going to redo the board layout), and I tested the software fix… and it worked! Nifty. Now I have a working, breadboarded circuit.

So I checked the board, and everything looks fine.. except that one pin that’s HIGH instead of LOW. So I have to cut the trace and put in a GND jumper. I fixed it in the schematic and my board layout, so next time I etch it, I’ll hopefully get a working board right off. Oh, and I had to put in a jumper, because I had an orhpaned GND plane. yuck.

So I’m ready to roll, and I think I’ve debugged an etched board. Pretty cool. Watch this space for photos of the whole thing running. Once I get it running.

Posted in Electronics, Making | Tagged , , , , , | Leave a comment

PCB Fabrication – OK, I over-reached

I decided to tackle my first circuit that includes an IC. I picked an old standby, the Myke Predko 2-wire LCD backpack, where he uses a Hex Buffer (74LS174), wires it as a shift register, and then uses a diode/resistor AND gate to toggle the Enable pin when you get to the 6th bit. It takes some extra code on the µC side to deal with putting together the nybbles and control codes, but hey, one extra pin over your general 3-wire SPI style interface (like using a 74HC595). You need one of these every time you want to drive an LCD, and I find that I don’t use LCDs very much because it’s a pain to wire up, and was pretty difficult to build on a Protoshield, too.

So I put it together in Eagle, I even figured out a way to connect the bits in the shift register a little differently to make it easier to lay out, but I still had to do a lot of gymnastics to get the thing into a 1-sided board (I hate jumper wires; it’s a thing), and had some very narrow traces. There are a couple of places where you have to run in between header pins.

I took the art to OfficeMax, expecting to buy transparency film and completely failing to do so, when I realized that they have a full print shop in the store, and they’re slghtly cheaper than Kinko’s, *and* (most important), they know how to print a 100% sized image. Kinko’s requires scaling the art to 1.03, which gives me the creeps when dealing with mechanically-spaced parts; I later decided that this had to do with the margin gutter, and that 103% was probably the exact correct spacing, but seriously — just print what I give you. This is not a document. I’m not anywhere near the margin. Anyway, OfficeMax sells transparency paper for 97¢ each (50 sheets for $49), or will copy onto a transparency for you for 77¢. Um. Someone needs to explain the difference between “copier” transparency and “laser” transparency, because the “copier” stuff is half the price. shrug. But I digress.

Not realizing that I needed 100% art instead of 103%, I ended up having to make 2 trips to the copier store.

I’d gone out earlier in the week and picked up a $7.50 gallon bottle of 30% Muriatic Acid (sold as cement cleaner) at the hardware store — in a test “etch” (really just stripping all the copper off of a couple of baords to test it out — I’m trying to figure out how to do the Cupric Chloride thing), it performed really well, so I decided to try it out on a real board.

So a couple of things that I noticed in retrospect:
1) I need to diffuse my light source better — there was a definite “hot spot” in the center of the board. I also worry that I’m not using the right type of light source, because my resist often seems weak, not real dark.
2) When you’re putting the exposed board into the developer, do not poke it with your finger to get it to go under the liquid — that smudges the traces.
3) I think my Hydrogen Peroxide is flaky — it definitely took longer to etch than I was expecting.
4) Unless I can repair the traces up front, don’t populate a board that has breaks in the traces.

At the end of the day, I had 2 copies of the board, but neither one was perfect. One had a lot of shorted traces (it was closer to the edge and got “vignetted”), and the other had gotten a lot of the fine detail eaten away during the etch.

I tried populating the board anyway, and ended up with a brick — I don’t know how to repair a broken board (I tried my perfboard-practiced jumper wire technique to no avail).

At the same time this was going on, I was having a Bad Day with the CNC machine, too, and I’m struggling to get the astronomy mount back up and running, so I was pretty fried by the time I had my first official failure to produce a good etched board.

I got mad and decided to spend the evening Eagle-ing up a ‘595 version of the circuit, and it went together much easier. Big fat traces this time, too. I put in an order for some PTH and SMT ‘595s (and some ‘174s, too, and some MCP23008, which apparently do I2C) from Digikey, and went to bed.

In a word, hmph.

Posted in Electronics, Making | Tagged , , , , | Leave a comment

CNC – Head crash!

There are some days when things just don’t turn out right.

I needed to solve the motor startup problem, so I sanded off the white paint (I’d used some really old WiteOut — yuck) and re-painted the shaft, this time with fabric paint (can’t find the fancy white-ink pen grr). I decided to paint the other half of the shaft black, as well, although it was already pretty dark; I had it open, and I didn’t want to have to deal with it again, so why not?

I created a little test pattern; some straight lines, 1/4″ deep, at various feedrates and spindle speeds, surrounding my calculated feedrate (6000rpm at 100ipm, which sounds awful slow for wood to me, but … *shrug*).

Got everything put back together, ran an aircut, and ran the real cut… The lines were Not Straight. The brand new endmill was not ripping out wood like a hot knife through butter, the machine was really struggling for some reason.

I spent some time fiddling with the Y axis bearings (all the tests were in Y), but I decided to take a little break, and see if I could get a board etched (but that’s another post).

I came back, twiddled the feeds and speeds a little, and decided to do a 2-pass (1/8″ per) cut this time. Same guts. Awful, totally not straight lines, and to top it all off, the machine freaked out on the last plunge, plunged the bit all the way into the surface of the table, and then tried to cut sideways, causing sparks, and yanking the endmill out of the collet and leaving it embedded a full inch into the table!

Yikes.

I admit that I considered taking an axe to the gantry at this point. The plan was to have another woodworking tool; some work is best done on the table saw, some on the drill press, some on the chop saw, and some on the CNC. You just push your work to whatever tool is necessary to get the job done.

The CNC has been a boondoggle. I’ve been fighting the thing for 15 months now, and having a non-working “project” around the shop is irritating, but I can live with it. This unfinished project comes with a 5’x10′ work table, after all.

But I looked at that endmill sitting in the table, and thought about what would have happened if it had been kind of halfway yanked out of the router, but came *out* of the table (think 15,000rpm carbon steel missile with wood-cutting blades at the end), and frankly, I’m done for now. If I can’t make this thing cut right, at least I need to be able to make it safe. And if I can’t make it safe, it’s not going to be in the shop.

I have no idea how the Z-axis decided to make that move in the first place (I checked the G-code, and it definitely does not have a “G0 Z-6” or whatever in it), so it’s probably some kind of electrical interference — the new cable I put in might not be shielded? I can start troubleshooting that, but it’s a scary thought that the machine is sitting there, waiting to throw an endmill across the room. And even when I figure that out, the cuts aren’t straight, and this is just in Y. One assumes that I’ll have to test X and will run into similar problems there, too.

The machine *was* cutting OK. And in principle, nothing has really changed except the router motor. But in practice, since the last time I did a cut, I ran several new cables, installed the Super-PID, home switches, and a new Z-axis… I can come up with a list of stuff to try (replace the Z-axis cable again, try an ACME screw in Z, which will have better mounting to the gantry, set better soft limits, try again with better feeds and speeds). But the question remains: what if I do all of that, and I still can’t get it to cut right? Would I be better off with a commercial machine? A Laser cutter? A 3D printer?

So I don’t know what to do at this point.

Posted in Making, Woodworking | Tagged , , , | 1 Comment

CNC – ship shape and Bristol fashion

I went out to the CNC this morning, all ready to get down to cutting. I had a test pattern to cut, and a scaled-down version of my nemesis, The Pumpkin, too.

So of course I spent the whole day tweaking and tuning the machine, before I was able to even try to cut anything.

I began by installing the motor cables in the wire loom I’d picked up last night, then re-attaching the cable runs to the machine. I ended up changing where the wires run, as the X-axis home switch was acting flaky. That turned out not to solve the flakiness problem, but I like the new wire run anyway.

I had a problem with the Y bearings popping off of the rails (I really need to replace the Y-axis rails, as I bought them the wrong length), so I re-drilled some holes in the rails to make them line up better, and re-installed the bearings.

I homed the machine and prepared to set my soft limits properly, and started running into problems because of the flaky X-axis home switch. I had to turn off all the limit switches in Mach 3, because kept firing and causing an E-stop.

I figured out that the table has physical limits at 103.25″ in X and 49.25″ in Y. So I set up the soft limits to these values. The Z-axis has 5.75″ of motion with the current endmill, but this will naturally change with each bit.

Now that I knew where the table limits are, I set about laying down the spoilboard. I placed it at X=0.5″, Y=1″, so that I didn’t run into the flaky home switch.

Then I placed a workpiece, and set the tool offset to suit (I set G54 to 4,4,-4). At this point, I was ready to do a cut.

I decided to “air cut” the first time, to make sure that everything was going OK.

And, in short, it’s not.

The router didn’t start up and stop correctly. I was getting some kind of “motor startup failure” message on the Super-PID screen. So I spent a little time trying to diagnose that problem, and noticed that the sensor was not giving a full on/off signal; it was going from fully white to only about halfway black. I don’t know why.

So, the CNC is ready to cut, but I have one last bug to kill. I’m glad that I got a chance to give it a really nice going-over; I think that it’s pretty much ready to roll once I can get the router on/off working.

Posted in Making, Woodworking | Tagged , , | Leave a comment

CNC Feeds and Speeds

Now that I have router speed control, it’s time to start thinking about the actual cutting speeds I should be using, rather than just running everything full-out.

I searched around, and this site had a pretty good rule-of-thumb for calculating chip load.

Essentially, fill out the following formula:

Feedrate = Diameter X Chipload X Flutes X RPM

Where:
feedrate is in inches per minute (IPM),
diameter is the diameter of the endmill in inches,
chipload is the constant 0.02 (for a 2% chip load per tooth),
flutes is the number of flutes on the endmill, and
RPM is the rotational speed of the spindle.

As diameter, chipload, and flutes are fixed per endmill, this can be collapsed into a single constant.
With my machine, I can change RPM and feedrate to make the rest of the equation work, but feedrate seems to be my biggest hurdle; at the moment, I don’t set the feedrate above 100ipm, although the machine could probably handle anything up to about 800.

So, RPM ends up being the thing I’m calculating.

At the moment, I’m running either a 2, 3, or 4 flute 1/4″ endmill, so the constants are:
Endmill constant (Em) = 0.25 * 0.02 * 2 = 0.01 (for 2 flutes), 0.015 (3 flutes), or 0.02 (for 4 flutes).

I then have Em * RPM = feedrate. But feedrate will pretty much be 100ipm, so I move terms around:

feedrate / Em = RPM

and I come up with target RPMs of:
10,000RPM for a 2-flute
6,600RPM for a 3-flute
5,000RPM for a 4-flute

to reach 100ipm feedrate.

If I want to run the bit a little faster, I can up the feedrate and modify the RPM accordingly.

Also, in Mach3, I need to set the acceleration to 20 inches/sec/sec, which should keep the bit running nice and cool.

I made a test cut program to test various RPM and feedrates. That should help me home in on a good solution without killing an endmill in the process.

Posted in Knowledge, Making, Technology, Woodworking | Tagged , , | Leave a comment