All posts by David Lively

Electrical Engineer, Coder, Graphics Nut, Husband and Father, in order.

2020, So Far

So, here we are in 2020. A few things have changed since my last update in… 2018??

On COVID-19 & the novel coronavirus: what’s there to be said? It sucks. Most of us will get through this. Our president is a freaking moron.

In February, after four years at AMD, I started a new gig on the AI performance team at Unity. So far, the team is amazing as are the projects. It’s great to work on projects in which I’m interested and capable of delivering great results. (Writing PowerPoint presentations about GPUView traces is not what I’d call thrilling.)

Here in Texas, as in other parts of the world, we’re in a sort of lockdown-lite mode. Restaurants are open for takeaway orders only. Most other businesses are following the same model. Our neighboring county is enforcing a more strict mode where only “essential” businesses are open, which makes a lot more sense. But, for that to really be as effective as it should, all of the neighboring counties should follow the same policy.

Oh, well. No one asked for my input.

The kids are stuck at home since the schools are closed. Gwen(5)’s autism program has been shut down for weeks which isn’t doing her any good. It’s nearly impossible to get the boys to do their school work. Google Classroom does not have the most intuitive UI. Asking a 10- and 7-year-old on the spectrum to sit at a computer for hours each day is just ridiculous. We’re doing the best we can, with limited success.

All race events have been pushed to later in the year. Which is fine, since I need a clutch and a timing chain. When the weather clears up, I’ll do the chain (it’s really not difficult on this car). A friend is going to do the clutch for me since he has, among other things, a lift. Clutch swaps also aren’t complex, but they’re a horrendous pain to do on jackstands.

My next garage will have 10′ ceilings and a two-post lift.

Speaking of which, we’re spooling up a remodel and house addition. It’ll likely be months before actual construction can start, though. Having more space for the kids, a real workshop and more than two bathrooms will be great. I am NOT looking forward to the inevitable property tax increase. Our city has the highest effective tax rate in the state. It sucks. But, the schools are amazing, the people are nice and the traffic is statistical noise.

Cheers! Stay safe, everyone.

The Problem with VR

One of the coolest things that’s come along in recent years in my field is virtual reality.

I’m lucky enough to have an Oculus Rift, touch controllers, and an HTC Vive sitting here in my office. If you haven’t had the chance to use one of these devices, you’re missing out. Exploring a completely synthetic environment in glorious  stereoscopic is initially mind-blowing. The first time I put on a DK2, I couldn’t stop smiling.

Now, Facebook (which owns Oculus) is starting to push the social aspects of VR. Watch a movie with friends, play a game together, etc.

To be clear: I think that’s really cool. I have friends in other parts of the country (and other parts of the world) with whom I’d like to communicate in a more immersive way than what we get from Skype calls. The current iteration of VR ecosystems has the potential to improve that experience.

But – and it’s a big “but” – VR is also inherently isolating. When I put on a Rift or a Vive, I become immersed in a virtual world. But, that necessitates an effective exit from the real world.

The built-in headphones on the Rift are amazing. They also keep me from hearing what’s going on in the real world. The optics are very convincing, but (duh) prevent awareness of what’s happening in front of me.

Walking is very entertaining, and potentially dangerous.

(Honestly, I’d just love to be able to see my feet!)

AR has the potential to address some of these concerns, by blending the synthetic environment with the real world. I feel that, for social applications to reach their full potential, we need a system that is not so isolating. We should not have to drop out of the real world to enjoy the virtual experience.

(Also, if you have small children, like I do, you probably know that leaving them to their own devices for extended periods of time rarely ends well. )

I’m impressed with the state of the art, and with the advances that are in development. But, what I want, more than anything, is the ability to utilize this technology without increasing the isolation that it requires.

I’m sure we’ll get there.



CNC Router Progress

I’m nearly done with version 4 (or maybe 5) of my CNC router. Last year, I started building this from parts I had on hand, including unsupported steel rail and linear bearings, red oak, some crappy lead screws and HDPE (aka, Walmart cutting boards.)

The mostly-complete version 1 router.
The first version of the CNC with unsupported aluminum rail and misc. wood and HDPE cutting board components

Original X/Z carriage made from plywood, red oak, aluminum plate and HDPE
Version 1 X/Z carriage with HDPE cutting board router mount for the RIDGID trim router

That version mostly worked. But, it wasn’t the most accurate machine.

So, I started replacing wood with 1/2″ aluminum:

Version 2 of the X/Z carriage, from 1/2″ aluminum riding on 20mm steel rail

That worked pretty well, but the unsupported rail had a LOT of deflection. I could easily twist the two rails over an inch in the middle of the 38″ span, which is not sufficiently rigid when cutting hardwood.

I had to decide then between different linear motion systems, including fully supported rail, flat carriages, or wheels. I went with OpenBuilds c-beam aluminum extrusion and hard Delrin wheels. I was initially skeptical about the wheels as I suspected they might compress under load. However, so far they’re pretty awesome.

I made custom plates for the carriages and motor mounts and went with a belt drive the long (49″) axis. The short axes use T8 ACME trapezoidal lead screws with Delrin antibacklash nuts.

The mostly-complete version 4 router
New version using OpenBuilds C-Beam, dual lead screws and belt drive

Y/Z carriage made from two sheets of 1/4" aluminum and lots of OpenBuilds wheels
Custom plates and motor mounts from 1/4″ aluminum

I used my OpenBuilds minimill to make all of the end plates and carriage plates from 1/4″ 6061 aluminum. I broke at least five endmills before switching to a 1/4 router bit. That worked significantly better, but due to the nature of router bits, I could only take off about 0.25mm per pass. It took a little over 30 minutes to cut each of the large carriage plates. But, it’s worth it.

The belt drive is (unsurprisingly) very fast, and so far is accurate and rigid enough for my purposes. Next up: cable routing and dust collection. Depending on how the accuracy tests go, I may need to add some sort of gear reduction system to the belt-driven axis.

Fun, fun, fun! I wonder if this is what it was like to have an erector set as a kid.

CNC Build Part 1 – Electronics Test

I started building a CNC router a number of years ago, but never really got around to finishing it. Kids, school, job, cars, and occasionally being in the same room as my wife sort of took priority.

While working on the table, I needed to plane some rough sawn lumber. But, I don’t have a planer.

So, I dug up part of the frame for the CNC, bolted up a sled, and did a pretty decent job of flattening the stock. (See pics in the previous post.)

Of course, that made me want to finish the CNC. I’ve assembled most of the frame, other than mounts for the motors, lead screws and nuts, limit switches and, oh yeah, I still have to build a Z axis. But, it’s a party.

See the video for some electronics test fun with an old laptop, Mach 3 and an XBOX controller.



More Table Fun

I needed to plane some rough-sawn lumber for the table top, and didn’t really want to pay someone to do it. There are a lot of videos and articles out there on how to do this, many of which require a planer ($$$$) and a jointer ($$$). I have neither of those, and I’m already over-budget on this project. If you happen to have some long, straight lumber, plywood and a slight excess of time, you can build a traditional router sled, as shown in this video by the Wood Whisperer:

174 – Flattening Workbenches and Wide Boards with a Router

(By the way, most of Marc’s videos are awesome. Sometimes I just leave his YouTube channel playing in the background when I’m working in the shop.)

It’s a great solution, but I didn’t really have the time or patience to build that.

Fortunately, I have a bunch of parts for a CNC machine that I never finished building many years ago. So, I made this out of the X/Y axis setup:

(The router lines scraped right off. I suspect they’re a side effect of a slightly uneven table.)

The rails keep the router flat enough for wood, though I’d like some more support if I were machining aluminum or any precision parts. It does generate a LOT of debris, which reminded me that I really need to put together some sort of dust collection system.

I was able to route a bowed, twisted 7′ x 11″ x 2.5″ board down to a perfectly – and I mean perfectly – flat usable piece in about 15 minutes. A larger router bit would’ve sped up the process significantly.

This experience, of course, makes me want to finish the CNC build, so I found the motors, controller board, amplifiers and other misc. bits in the garage where they’ve been for the past six years. I hope to get the Z axis done in the next week or two – not a lot of time with a new baby in the house – source some lead screws, fabricate mounts and get everything up and running soon. Should be fun!

Here’s the assembled, ultra-heavy table top before sanding:

Note that it’s not glued yet. The house is 172 feet from the shop, and this thing is heavy. I’ll glue it up when it’s in its final resting place.


I don’t remember screaming

Her name is Maria, and I don’t remember screaming.

When Wyatt was born, he didn’t move.

He didn’t cry.

He didn’t look around.

He didn’t do anything.

He was, for all intents, dead.

Yeah. Stay with me – there’s a happy ending.

We used to watch this show called “House,” which was about a medical doctor-version of Sherlock Holmes. It featured a weird-ass protagonist who was kind of an asshole, but really, really good at his job. The guy that walked in with the crash cart, yanked a stethoscope off of another doctor’s neck and went to work on Wyatt looked like that. Grateful Dead t-shirt, flip-flops, destroyed jeans.

And, he was awesome, as evidenced by us still having Wyatt around.

For whatever reason – anyone who knows me well has heard a lot about it already – we decided to have a home birth with our first child. Which would have been fine, except for when it suddenly, violently, irrevocably




Today, we had our quad-annual ARD. That’s fancy Dept. of Education speak for “get together with the teachers and figure out how to get your kid to do what he needs to do.” Wyatt spends a big part of recess chasing different groups around, trying to find someone to play with.

Here’s a tip to Future Readers: the one thing you absolutely do not want to read in a report is that your kid has no friends, that he or she is desperately trying to fit in. A lot of us had to do that as kids. I was lucky enough to find  a few really amazing people in my late teens – phenomenal people with whom I am still friends.

You don’t want your seven year-old to have to wait until he is 40 to figure out what a good friend is.

Maria was our charge nurse, assigned when we arrived at the hospital after 36 hours of labor at home.

That may seem like a long time.

There’s this super-awesome thing called “Group B Strep,” which is fatal for kids (and, sometimes, moms) in a surprisingly-high number of cases. Considering a home birth? Google it.

Maria was about 5’6, brunette, soft-spoken, clearly very good at her job. She reminded me of my big sister, Tara. Not physically – just her manner. I felt *safer* with her there.

She stayed on well after her shift ended, and was the one that pushed me out of the way when the emergency team came into the room.

She was the one that, when I was holding Audrey’s hand post-delivery, looked me in the eye. And that look told me that, no, in fact, I was not crazy. Shit was, in fact,, going sideways.

She was also the one that grabbed my hand, and told me to come see my son. Because, well, I probably  wasn’t going to get another chance to see him breathing.

To my knowledge, Wyatt is the only person in our “immediate” (we’ll include me/Audrey, +- 1 generation) family to ride in a helicopter.

I spent the next two weeks shuffling between hospitals – Audrey and Wyatt were then at different places – occasionally finding time for a shower. I am grateful to have had that opportunity. I’d crawl through broken glass and drain every drop of my own blood, and do that again, and again, and again if it meant that my wife and my son made it home safe.

My son has no friends. I’m considering putting him into soccer, or maybe guitar lessons.

I don’t really know what to do. But, WE have the chance to figure it out. Mostly, because someone named Maria was there to hold our hands, tell us when we were wrong, and help us try and fix the biggest mistake I’ve ever allowed “us” to make.

I hope that, one day, we’ll meet again. I’ll probably cry. But, hey, whatever.

Shit happens.