Excitement and disappointment.

So, today I went to a print center to print off the transparencies to expose my pre-sensitized copper clad boards, and I was super excited. I also figured while I was there, I’d print off a physical copy of the wonderful and free Linux Device Drivers, Third Edition, just so I could have a physical copy to take notes in, etc. It was going to be a good day.

After talking to them about possible getting rid of the margins from the pdf of LDD, I checked the price: $88, just for printing it. It was going to be at least $100 to print, hole punch, and stick in a binder. Nope, no thanks, I’ll just read it on a screen or order a regular copy.

Oh well, I’m really here to get my transparencies. I get them printed up, 600dpi, good enough, right size, everything looks great. I pay the man, picking up some fine point sharpies so that I can make sure they are as opaque as possible when I get home, and I’m out the door.

I get home, and great ready to start going over them, when I realize they’re backwards. Or, rather, they’re NOT backwards. And they need to be. He must’ve seen the backwards text, thought the image needed to be mirrored, and done it without asking. Well intentioned, but he just completely ruined them. Everything I’ve read about exposing photoresist says your transparency needs to be mirrored so that the ink side of it can be against the photoresist to get the clearest exposure possible.

Well, the good news is I still had the 4th Eudyptula Challenge to work on. After several resubmissions, just because of bad subject lines that the challenge scripts didn’t like, I got the thumbs up back from task 3 pretty quickly. Task 4 is about adhering to style guidelines. Well, I’d already read those, so I knew about checkpatch.pl, and my task 1 code was already within standards (except for a single trailing space in a comment), which was part of task 4’s assignment. So that at least made me feel cool. And now it’s time to go dive into LDD.

Things take time, and I don’t like it.

The Eudyptula Challenge has constant reminders that it’s not a race, and to not worry about grading times, and I want to listen, I really do, but I just can’t.

I got the message that I completed the first task this afternoon, after submitting it yesterday morning. I am so grateful that someone took the time to set all this up, just so we could have an easier path to learn this stuff, but MAN I wish I didn’t have to wait. I want the next challenge now!

Admittedly, it’s probably good that I can’t just knock them out in a row, or I’d be horribly distracted from my actual job, which I certainly need to focus on right now. And on top of that, it’s pretty much go time for the escape room. Have I mentioned the escape room? We worked on that a bunch yesterday.

The original plan was to etch circuit boards yesterday. I designed a simple wifi shield with an ESP8226 (awesome little chip). We’re going to use Arduino to monitor the puzzles and operate the transducers in the escape room. They’ll communicate the state of the room to a central back end, probably built in C# because Atwood is stubborn, and admittedly well versed in it and capable of cranking out solutions rapidly. That way, all decisions about sensor/transducer relationships can be made at the software level instead of having to take apart a prop to modify it. It also enabled us to override things in case of a sensor malfunction.

This all means I, being the hardware guy of the project, have to make an semi-mass-producable way for Arduinos to get on a wifi network that doesn’t cost a fortune. After buying the stuff to etch my own boards for the first time to make said shield, and making my own schematic, I found out sparkfun sold an almost identical (but, of course, better designed) board. It even had the same software/hardware serial mode switch I put in mine. At least I was on the right track with my first real design, huh?

Since those boards are only $15, I’ll probably order a couple and try them out to make sure they don’t suck. In the mean time, I’ll probably use their schematic, as well as my own, to go ahead and try etching my own boards, as that could very well be cheaper in the long run.

Anyway, I’m counting on sunlight for my photosensitive PCB etching — which is super cool, and you should google it if you don’t know what it is — and, alas, there was none yesterday. So instead, I just about finished the entry puzzle, which I’ll document more of as it gets put into it’s prop and hooked up to electromagnets. Maybe I’ll actually remember to take pictures this time.

I can’t wait for these posts to be more instructional, and less like a journal, but I’m still a noob in so many ways.

Anyway, it’s time to get in bed and wish I had the balls to port my AngularJS project at work over to Angular2.

Instant progress

After sifting through a lot of great resources, I think I found the one for me.

There are tons of resources for learning to write drivers and stuff for Linux, but many of them are not organized with the beginner in mind. There’s a ton of great information, but no practical order to talk it in.

Enter the Eudyptula Challenge.

Eudyptula is a genus containing two species of small penguins. For those not in the know, Tux the penguin is the mascot of Linux. So it’s apt that they call someone new to Linux kernel development a little penguin.

The challenges themselves have a pretty serious learning curve, but they provide a sort of syllabus and grading rubric to guide your learning. I actually understand what’s happening in the source and Makefile I wrote for challenge #1. Now I’m just waiting for the response so I can tackle #2.

Hell yeah.

Spinning up.

As part of getting ready to dive into the kernel, and also in preparation to mange this server more effectively, I started upping my Vim chops. I already know enough not to hurt myself, but that’s about it.

Holy crap, this guy has created a wonderful series of videos for learning Vim. What a rock star. Previously, I’d really only done vimtutor, and that had been sufficient for me so far, but I’m learning a lot and fast with those videos. It’s pretty hard to find something to guide you through that process.

Also, I started peaking at bash scripting, and I’m scared. Hopefully it becomes less cryptic quickly. Hopefully.

Let’s kick it off, shall we?

So many projects, so little time.

In fact, I probably have too many going. Here’s where I’m at right now:

  • In the early-mid stages of building an escape room. My buddy Dan and I are responsible for the tech side of things, so we’re creating a sort of full stack solution. My focus is the hardware, which is a fun change of pace for me. And a reason to use all the tools I built up over a few small electronics projects.
  • Working on a front-end website for a living. I managed to find a way to make development my job in the Navy, but Dan, being a selfish jerk, took the backend, so I’m stuck using Bootstrap (praise be) to make it look like I’m a web designer, and doing all the fancy stuff in Javascript. AngularJS, to be precise.
  • Diving into the kernel. I bought a cheap box to use as a kernel/driver hack station, and I’m slowly picking it up. It’s a trip working in C for the first time in a while after using languages like C#, Python, and Javascript for so long. My long term goal is to get meaningful code into the live Linux kernel.

Also, as far as personal stuff goes, I’ve been backing off video games, cut out the nicotine, cut down caffeine use, and cut alcohol use to near zero. Also been working out 4 days a week, and sleeping from 2100-0500 instead of 0000–0700. Waking up before your alarm is actually an amazing feeling.

If I could just pin down the good diet and get myself to meditate regularly, I’d be squared away.

But on that note, it’s past my bed time. Back tomorrow with a concrete update on some of the above projects. Let’s not let this be a “set it up and post once” blog, huh?