Wednesday, January 29, 2020

Winnie's Diary: Introducing Robin

Hi. I'm Winnie. I live with my Mommy and my Daddy and my two bunnies, Luke and Daisy. I used to think Luke and Daisy were strange puppies, but now I've figured out they are really bunnies and not puppies.1

It's a lot of work taking care of everyone - I do all the chores around the house, after all. In the mornings I wake up the bunnies and feed them kibbles, then I go outside and potty and bark at the neighbor dogs. Next door to me lives Emma, my closest friend, and we talk to each other through the fence. We also have "bark offs" with Cody, Brody, and Frody2, who live on the other side of Emma's fence.

When I come back inside the house, I run to Mommy and jump on her and walk all over her back - I call this my "shih tzu massage" (even though I'm actually a Cavachon). Mommy and I cuddle while Daddy gets dressed to go someplace called "work." I don't know where that is, but he says he has to go there to bring home the bacon, and, sure enough, each night at bedtime, he gives me a tasty bacon chew treat. I'm sad that Daddy has to spend so much time away from me, but I'm glad that he finds bacon at work to bring home to me.

After Mommy and I wake up from cuddles, it's time for puppy chores! I put away the bunny food dishes, refill their hay and litter and water, put away all the hoo-man dishes, make the bed, and check if the trash needs to go outside (if it does then I leave the bag by the back door, then when Daddy comes home later I escort him out to the trash can, to make sure he doesn't misbehave). Later in the day I check for mail and packages, before the package thieves can abscond with them. Then I'm ready for a nap! It's hard work being a puppy, and being responsible for an entire house! Oh, and of course, I also vacuum the kitchen floor if Mommy or Daddy drop pieces of cheese, or popcorn ("puppycorn"), or kale (Daddy calls me a "pupster"), or even eggshells! And anytime the bunnies poo outside their fence, I vacuum that up with my tongue, too.

When I was younger, Mommy and Daddy would bring me to a place called "Petco, where the Pets Go," on the weekends for puppy play time, where I got to see all sorts of puppy friends and run and jump and hump and get told "no humping" (actually, usually I was the one getting humped; Carol, the puppy trainer, said I had "sugar butt"). It was so much fun. But then I got too old for puppy play time and so Mommy and Daddy and I would go to the puppy parks instead, where I didn't have to wear a leash! Daddy always says how proud he is of me when we go to the Minnehaha off-leash park, because I stay right next to him for almost our whole walk. I'm a really good puppy.

A little while ago, it started getting cold at the puppy parks and also the sky started falling. First the sky fell in paw-sized pieces of colored tree bits, and then when it got really cold, the sky fell in white powder that got all over my fur. Mommy and Daddy started saying it was too cold to go to the park anymore, so I stopped getting to see my friends and work out all my puppy energy.

Around that time, I took up a new career as a neighborhood watchdog. I perched on top of Mommy's nice couch and looked out the window, pushing aside the vertical blankets so I could see. Every time a puppy went by walking their hoo-man, I barked and asked them to come inside to play with me. But none of them ever did. It made me very sad. After they walked by, I cried for several minutes (even after the puppy was out of sight) because I was so lonely and just wanted a friend to play with. Mommy or Daddy would hold me while I cried, which made me feel loved but not any less lonely. After I stopped crying, I'd go back to watching out the window. Sometimes Mommy or Daddy would ask me what I saw, and I'd tell them, "loneliness."

Me and Santy Paws! If you click and
zoom in you can read my letter to him.
When I went to visit Santa Paws, I wrote him a list of what I wanted for Christmas: toys, bacon and turkey treats, a puppy brother or sister, and world peace. We don't have a chimney in my house, and I was really worried Santy Paws wouldn't be able to bring me my presents, so Daddy 3D-printed a fireplace for Santa to use. Also Mommy says Santa used something called "Elf Prime" to deliver a lot of presents in advance. When Christmas came, Luke and Daisy and I all got lots of treats and toys! And I got to go over to Grandma and Grandpa Puppy's every day for the 12 Days of Christmas, and got a yummy rawhide stick treat each time I went!
"Are you bacon?"
I'm grateful to Santy Paws for all my presents, but I was sad I didn't get the present I wanted more than anything: a brudder or sister. I told Mommy and Daddy I'd trade all the presents I got if I could have a sibling. I said this while giving Daddy my big puppy dog eyes and he says it broke his heart. I didn't mean to break anything, I was just trying to communicate. I've learned that when I give Daddy my puppy dog eyes, I can get almost anything I want (except chocolate). Daddy says that's why I came to live with him and Mommy in the first place, is because of my puppy dog eyes.

My first sign of hope came one day after Daddy held me while I cried - I overheard him talking with Mommy about "maybe we could get a second puppy, in spring." I don't know what springs have to do with anything, and waiting is very hard for a little puppy, but Daddy was adamant about something called "pot-training" and not doing it in winter; maybe he was hoping to teach the new puppy how to use kitchen utensils? It didn't make a lot of sense to me. Then I saw another puppy walking their hoo-man and I cried again, and my Daddy held me close and spoke softly to me until I calmed down. I told him how lonely I was, and how all I had were these dumb bunnies. Daddy said I should apologize to the bunnies, so I did: "I'm sorry for calling you dumb bunnies, dumb bunnies." Daddy wasn't enamored with my apology, but let it drop.

A week after Christmas, Daddy went back to work so he could bring me more bacon. Then the next weekend, Mommy and Daddy and Aunty Abby and I spent a couple hours in the basement washing 300 pounds of what I'm sure was gigantic puppy kibble.3 As usual I did all the work, they just watched. I've heard of a puppy named Clifford the Big Grey dog4, so I assumed he was coming to visit. I was exhausted after all that kibble washing! And Mommy wouldn't even let me eat any of it when we were done!

Clifford's dog food

Daddy says this is "hydro-"... "hydro something". But I'm sure it's giant puppy kibble and I tried to eat it!

Another week went by, as did so many puppies outside the window. I heard Daddy telling Mommy that, maybe it would be okay to do "pot-training" in winter after all. I didn't really understand what he meant by that, so I just kept crying while he held me and gave me comforting pets.

A few days later I was napping and heard Daddy talking into his favorite light-up toy; I could barely hear a voice coming from inside the toy, but it sounded just like the Puppy Man's voice from when I was a little puppy and first met Daddy. I could tell because the Puppy Man has a very distinctive way of saying "hello?" that sounds simultaneously helpful and also surprised to be speaking to another hoo-man. Daddy talked to the Puppy Man for a few minutes and asked him some questions about Cavachons, but I was too asleep to really pay attention to what they were saying.

Me and my bunnies, Luke and Daisy
Late in the week, Mommy and Daddy were worried about Daisy Bunny - they saw she had some sores on her feet, and were trying to pick her up to look closer. I know the bunnies don't like to be picked up, so I tried to help by barking and whining at Mommy and Daddy. Daisy might be a dumb bunny but she's my dumb bunny and I really love her. Luke also tried to help by thumping and scratching at Mommy and Daddy. Daddy had to put me in another room because he said I wasn't helping; I guess he just doesn't understand helpfulness. I heard Mommy and Daddy agreeing about how they needed to take care of the pets they already had, before adding another one. I'm guessing they were talking about Clifford again, because he still hadn't shown up to eat all that kibble I'd washed for him.

Sunday morning, Daddy told me it was going to be a big day! Mommy and Daddy put the bunnies into their travel kennel and I helped by whining and barking. Then we all went to get bunny-mani-pedi's and doggie-mani-pedi's at the pet store. In the store I saw my new best friend5 and kept whining for Mommy to let me go say "hi." She carried me to go look at fishies instead. I've learned "fish are friends, not food," and I find it very soothing to watch them swim. I was a good boy for the mani-pedi man as he clipped my nails, and then we all went back home. Earlier that morning, Mommy had gotten out several towels and my poop bags and my travel water dish and other things, so I thought maybe we were going to the puppy park! But then they put me in my bedroom and closed the door and left the house, so I thought they'd gone to the puppy park without me. I was a little sad, because I like spending time with my hoo-mans, but I also like my big bed so I decided just to take a nap all afternoon. I guess the "big day" Daddy talked about was just getting our nails trimmed. Oh well. At least I got a bacon treat.

That evening, I heard Daddy get home and so I stood up on the bed and wagged my tail when he came in the bedroom to pet me. I love my Mommy so much but it's not a well-kept secret that my Daddy's my favorite. After all I chose him when he and Mommy came to the puppy store to visit me. Daddy told me he and Mommy had a surprise for me in the back yard, so we ran to the door together (which we normally do anyway, because whenever Mommy and Daddy get home that always means it's potty time). When I ran into the back yard, I saw Mommy over by the garage, and... another puppy!!!

Robin: "I'm not sure what to think yet..."
I couldn't believe it, I was so happy and so excited and so overwhelmed! I asked Mommy and Daddy and they said, yes, this was my new sister, Robin!6 In all my excitement, I kept jumping and wanting to play with Robin, though she wasn't very interested in playing with me right then. As a white-furred male puppy, I don’t want to dog-splane my sister's experience, so I asked her if she'd like to write something for you:

Robin's diary

Hi. I'm Robin. I'm a Cavachon and I'm 5 months old. I have a twin sister, whom I still miss, but I'm getting used to my new home and my big brother, Winnie (who's also a Cavachon, though we have different doggy parents).

When my new Mommy and Daddy first met me in the puppy store, I let them pet me while I sat in their laps. One of them would hold me, and one would hold my twin sister, then we'd swap. Then they'd set us down and watch us play with the other puppies. I liked playing a little more than my sister. Then they held me again, talked a bit with the Puppy Man, and handed me to him. The Puppy Man took me in back and gave me a bath, which I did not enjoy, then deposited me back into my Mommy's arms. By this time I could tell something special, and different, was happening, and I was scared. I trembled, and I could tell Mommy felt so sad for me, but I couldn't help myself. I've only ever known the puppy store, and I didn't like the thought of leaving my sister behind.

Mommy swaddled me in a towel and carried me outside where it was very cold. We got into a big moving box on wheels and I sat on her lap. A couple times I tried to climb off her lap, to which Mommy said something about me not understanding gravity. I don't know what that word means, so I guess she's right. But I was pretty emotionally overwhelmed and so mostly I just sat still and tried to sleep.

Mommy swaddling me at the puppy store
After a while the box on wheels stopped and Mommy and Daddy switched spots, so Daddy was holding me. Daddy's okay but I'd already decided I like Mommy better. Daddy and I took a nap and when we woke up Mommy said we were someplace called "home." I like the sound of that word. Mostly I just liked not being in the moving box anymore. Mommy picked me up and brought me into what she called a "yard." It was very cold and there was white powder covering the ground. I found a spot right up against a wall and curled into a little ball. A minute later, another puppy came out and introduced himself. He said his name was Winnie and said how happy he was to meet me, and that I was his new best friend. I didn't know what to say. He seemed nice enough, but I was so emotionally drained from the day and just wanted some space to myself to sort through my emotions.

I'm shy in a new place.

I hide.
Soon we went someplace Mommy called "inside" and it was much warmer there. I like "inside" better than "yard." Mommy showed me two other weird-looking puppies, one was all white and one was gray and white and they had pointy ears and bushy tails, and they hopped. They were very strange puppies. It was all too much for me, I found a small corner between some cabinets and curled up into a ball again.

Mommy carried me to a "kennel" and told me this was my safe space. I loved it. I sat in there and curled up with the blanket, and went to sleep. I didn't cry at all, because I knew Winnie was there if I needed a friendly puppy face. Even though I was overwhelmed, just knowing there was another puppy around really did help comfort me.

When I woke up the next morning, Daddy said I was a good girl because I hadn't peed in my kennel. Well, duh, Daddy, I'm not going to pee in my safe space. (I'm going to do that in one of the other rooms. I didn't know that yet on my first day, but now I have lots of favorite peeing spots on the carpet, and I love to poop on the kitchen floor. Daddy doesn't like when I do that but I know it's the best place.)

My bed, and my Lambie.
Anyway, that first day, Winnie showed me around the yard, which looked very different in daytime, and told me I could have all his second-best toys. Daddy was gone most of the day - Winnie said Daddy leaves during the days to go find bacon for us; I don't know what bacon is yet but Winnie gets pretty excited about it - so I spent a lot of time with Mommy. I love Daddy, but Mommy's my favorite.

When Daddy got home later, he and Mommy left for a short time and when they came home they gave me some of my very own toys! They gave me a stuffed animal Lambie whom I love so very much, and some chewy bones because Mommy says I'm "teething." Winnie doesn't like to share his toys so it was nice to have some of my own. (we're getting better at sharing over time).

Me and Daddy
After a day or two getting used to "home," I started to feel more comfortable and my real personality started to come out. I think I surprised Mommy and Daddy with how much energy I have. I love playing chase with Winnie, and barking at the weird puppies, and barking the neighbor dog. And I love waking up early - I have so much energy in the mornings that I can't sit still, so I like running back and forth in the house while Winnie cuddles with Daddy or Mommy. I don't feel I have time for cuddling, when there are so many toys that need to be played with! But anytime I meet someone new, like when Grandma and Grandpa Puppy came to meet me, I get overwhelmed and take a nap. Daddy says he thinks I'm an "extreme introvert" like him.

Sometimes Mommy tells me and Winnie we have to play nicer, and Daddy will say "no growlies," or "no barking," but he knows we only pretend to listen to him. It's been about two weeks since I came here, and even though I miss my sister and all my other friends from the puppy store, I do like this place called home, and I really love my Mommy and Daddy and my brother Winnie.

Me and my brother, Winnie

Winnie's diary, continued

It's hard work taking care of a little puppy! I love Robin so much but no one warned me she'd have so much energy! In the mornings I just want to cuddle with my Daddy and my Mommy, but I also know it's my job to take care of Robin, so if she's off playing by herself, well I have to go supervise (remember I do all the work around the house). The first couple days I was so exhausted, I turned to Mommy and told her, "it's so much work taking care of a little puppy, you just can't understand! I know I was never this rambunctious when I was Robin's age!"

Even though it's a lot of work, I still love my little sister. She is very sweet and loves giving Mommy and Daddy kisses, and like me she loves licking feet. Sometimes when she calms down we get to cuddle together. Those are my favorite moments. Mostly, I'm just so happy to have a friend with me all the time. Life is good.

- Winnie


1Once, Mommy convinced me *I* was a bunny! She said, "bunnies have four paws, you have four paws; bunnies have two ears, you have two ears; bunnies have a fluffy tail, you have a fluffy tail; bunnies eat hay, you eat hay; you must be a bunny!" It's true, I do love eating hay, so I believed her! Then Mommy told me she was just joking and I wasn't actually a bunny.

2From Jeremy: the two dogs are named Cody and Brody, and they were dog-sitting a third dog for a while, whose name we never actually heard, so we just assumed it must be "Frody."

3From Jeremy: it was actually Hydroton clay pellets for our new aquaponics grow beds. See a future, not-yet-written blog post for more than you'll ever want to know about aquaponics.

4From Jeremy: "Big Grey" because dogs (and my friend Doug) are red-green color-blind.

5From Jeremy: Winnie thinks ANY and EVERY new dog he sees is his new best friend.

6From Jeremy: Winnie, as you probably know, was named after Winnie the Pooh; Robin is named after Christopher Robin, even though our Robin is a girl.

Monday, October 21, 2019

3D Printed Stargate: The Journey

On August 17, 2017, my Dad texted me this link of a 3D printed Stargate with lights and movement:

...thus inspiring my foray into the world of 3D printing. My Dad started 3D printing several years ago, and my friend Peter even longer ago than that, so while I'd seen printers in action before, for whatever reason it never held much pull on me. I'm sure partly that was because I already had enough other hobbies that I really didn't need "one more thing" on which to spend my time (and money). At least, until I saw that moving / light-up Stargate model.

I knew very little about 3D printing, except that prints could take an incredibly long time. Years ago I remember when a friend and I asked Peter to print a Star Trek: Deep Space 9 station, and after the first couple layers were down, he told us it would take another 24 hours to finish! That was basically the extent of my knowledge. (I chuckle as I write that now, because many of my prints nowadays take 24+ hours).

Over the past couple years as Dad has gotten into printing, he's created some gorgeous gifts for my Mom and also for my wife (for instance: a vase and roses for Valentine's Day, and a Beauty and the Beast jewelry container), and has offered to print things for me, too. Knowing practically nothing of the time and effort that it takes to get quality prints, I sent him a bunch of links for stuff I'd like, like tokens for one of my favorite board games, and paint racks for my miniature painting paints (unbeknownst to me until later, getting the paint racks to print successfully was no small endeavor in experimentation, and even once Dad had the right settings, it still took a day to print each rack). It's been so much fun watching Dad get into this hobby, and to see Mom cheering him on and sharing in the successes and not-so-successes.

After realizing that held a treasure trove of Things I'd like to print, and feeling like I'd be taking advantage of my Dad if I kept asking him to print dozens and dozens of links, I decided I'd get my own printer. Besides all the other random things I wanted to print, my ultimate goal was to print that working Stargate. I asked Dad and other friends who had printers for their recommendations, and bought a Creality CR-10 in August 2018.

I came into the hobby rather naively (optimistically?), and grossly underestimated how much time 3D printing takes. I don't mean the printing itself, I mean all the behind-the-scenes overhead, like getting a level print bed (I'm convinced this is impossible), cleaning up from failed prints, replacing clogged nozzles, upgrading bits of hardware, configuring a print server (OctoPrint), or installing new firmware (which took the better part of a full day for me to figure out). When the printer is working, it's great! But there are just so many random things that come up that will suck away hours at a time. I wasn't prepared for that going into it, and definitely more than once thought "I'm never going to get this working." But Dad was always there to answer my questions and send me video tutorials and other links to help. And even over a year later I'm still asking him questions (see earlier comments about the firmware - Dad helped me a TON in navigating that experience!).

Each of these pieces took ~24 hours to print

Back to the Stargate project itself. According to the webpage, it has 117 parts, and some I could see were very finely detailed, so I spent a few months getting the hang of printing in general (and tweaking my settings to get better quality prints) before starting in on a project that complex. I started experimenting with my first Stargate pieces in December 2018, opting to start with the most intricate first: the backside of the gate. Each piece took roughly 24 hours to print, then I'd write a number on it, change another setting or two and try again, keeping notes along the way so I could track what gave the best results. It took me roughly three weeks to fine-tune my settings for the high level of detail, with lots of "that's not quite good enough" results along the way.

After going through an entire spool of filament just on my experiments, I started printing parts "for real" sometime right before Christmas. Since I'd honed my high-precision settings already, printing the real pieces was fairly straight-forward, albeit time-consuming. The creator had written "total estimated print time: 112 hours," but I don't know what settings he used that could possibly print that quickly, since (for instance) each of my nine back-side-of-gate pieces took 12+ hours a piece. All told it took me three or four weeks to print everything.

Before trimming/cleaning
After trimming/cleaning

In reading and re-reading the original Stargate model page, I started looking at the builds other people had posted of their Stargate construction projects. One person's in particular stood out to me because he'd expanded upon the original design to add a web page interface for dialing the gate, a speaker to play sound effects, as well as designed a custom circuit board for the electronics. He also had a more thorough set of instructions. Based on his revised design, I started ordering electronics, which was it's own very stressful journey owing to the fact I haven't done anything electronics-y since 9th grade electronics class. I remember reading the lists of required parts and thinking, "I have no clue…" - what on earth is a PCB, LDR, or a Buck Converter? (The answers, I learned, are: "printed circuit board", "light dependent resistor", and something that changes voltage so you don't fry your electronics).

The PCB/printed circuit board came from a manufacturing facility in China, as did all the surface mount resistors, transistors, LEDs, and the like. Dad warned me in advance "are you sure you want to do that…" because as it turns out (I should say, as he already knew, and I was about to find out), the surface mount electronics are TINY!

Electronics in hand, in early January I started visiting Dad for electronics workshops. He got out his soldering equipment, including fine-point tips and tools for holding those miniature transistors in place. Dad asked me again if I was sure I wanted to use the PCB and tiny tiny tiny electronics vs a breadboard with larger, easier-to-handle pieces; I persisted because 1) the PCBs came in a minimum order of 10, so even if I messed a few up in learning, it didn't matter, and 2) I really wanted all the electronics to fit internal to the Stargate vs having to house them externally somehow. We went to work. My first solders were ugly, but functional; by the end though I could definitely see a difference in my soldering quality.

By March 2nd, we'd connected together the Raspberry Pi, motor control circuit board, and Stargate PCB + buck converter, and connected the thing to the motors that would spin the gate and lock/unlock the top chevron; My Mom captured a video of me running a test program on the Pi that would just spin the motor, and me looking very excited and saying, "I drew a star!"

What on earth does THAT mean? It's an old family story - when my Dad was first getting into computer programming (in the early days of personal computers), he excitedly called my Mom into the room so he could show her that he'd drawn a star on the computer screen. My Mom lovingly said (or maybe just thought to herself), "so? If you give me a paper and pencil I can draw a star for you," until Dad explained more about how complicated the programming was, etc. Since then, it's been a comical story my parents tell whenever something looks easy but in fact took an incredible amount of time/effort. As was the case with drawing my "star"[gate].

The next day, I hit what I'll affectionally call one of my most frustrating "roadblocks" :

You might notice in the photo that the hole from the backside of one piece doesn't line up with the hole on the left side of the front piece. It's hard to explain in words, but if you look at this next picture, you can see the Stargate pieces glue together in an overlap pattern:

...and I'd superglued the overlap going the wrong direction. Had I used the original designs for these pieces, it wouldn't have happened, but because I wanted fewer visible seams on the gate I opted to use double-sized pieces that someone had posted; I never pieced together (pun intended) that these might need to be glued in a particular way. So, this was a major bummer, because it meant needing to re-print everything you see in that photo, and I was almost out of filament, and the company was out of stock of that color for the next month. Re-printing took over a week (and luckily I had just enough filament left!), and it gave me an opportunity to tweak my settings yet again to get a slightly better quality. Long after the fact, I thought of a way I easily could have worked around my gluing goof (aka, just using one or two normal-sized pieces to fix the off-set), but, I'm still happier with the end result of re-printing.

Between March and September I procrastinated, and I can cite a very specific reason why: I procrastinated because of my fear of failure. In this time period, I was having difficulty getting the gate symbols to spin smoothly - I could spin the ring by hand, but it would "stick" whenever I tried putting it on top of the motors (not enough torque, I guess). I was terrified of gluing everything together and then not being able to spin the symbols, and having to start over. My own perfectionism was my enemy.

Finally I spent an afternoon "just doing it": I bought and sprayed a plastics lubricant in the track, shaved off some plastic from the symbol ring clips that were catching on the edge of the track (the symbol ring is five pieces glued together in a ring, with small "clips" between pieces that help hold them together), filed down the backs of those joins, and got the whole thing to spin smoothly with the motors. Whew!!

Next challenge: the LEDs. There are nine chevrons around the gate, and each has three surface mount LEDs. I had an evening of despair after struggling for over an hour to solder together three LEDs and their wires onto the tiny LED holder I'd printed. I had no idea at the time how to test if my soldering was even good, and I learned the *wrong* way to test is to plug directly into 12V power. "Pop!" went the first LED. I nearly cried. I couldn't imagine taking over an hour to solder each of the chevrons. I texted my Dad and he said he had tools that would help (like self-closing tweezers and the fine point soldering iron he'd had me use before). Got together with him a couple days later and boy did having the right tools make all the difference. In only a couple hours at most, I'd soldered nine sets of LEDs, and also the two strings of LEDs for the ramp.

I'd printed LED holders someone designed for the Stargate that would position them exactly under each chevron, and twisted the wires so the LEDs lined up, then glued in place. Prior to gluing, I soldered each of the LED sets to longer wires that would run out the bottom of the gate and connect to power+ground (thanks to my Dad who supplied the super thin wire!), and test connected everything into the wires coming from the PCB. I also modified the webpage and server code so I could easily turn on/off each of the LEDs using a touchscreen I'd bought for the Raspberry Pi. This made it SUPER easy to figure out which light was plugged in where later on.

With all LEDs working, I began the exciting task of putting the wires and LEDs into their final position and gluing down the top pieces of the gate. I tested each as I went and surprisingly / thankfully ran into no issues.

That is, until I glued the last piece down and was faced with a bundle of wires sticking out the bottom of the gate. Around this time, I realized I'd never marked which two of the eleven wires were supposed to plug into 12V power. Oops. Paranoid about frying my LEDs now that everything was superglued, I managed to use a multimeter to figure out which wires I wanted (fortunately I hadn't glued the chevron covers on, so I could still stick a probe in to touch the LED wires inside each chevron). I then marked said wires with electrical tape so I wouldn't lose them again :)

After testing all the LEDs "one last time," I started final assembly of the ramp base, taking time to run all the wires nicely through the little wire holders, and of course finagling/weaving all the gate wires through the base.

Fully assembled, I booted the Pi and told it to "home" the gate - if you'll recall my construction goof earlier concerning the small hole, this allows an LED to shine through the gate to the light sensor / LDR on the other side, but only when a particular symbol is lined up; that way the software knows the gate is at "home."

As the gate spun and spun, I discovered two issues. The first is that, despite all my efforts for a smoothly spinning track, the gate was catching in two specific spots. My worst fear. My best guess is I didn't file/smooth out the bottom side of the track enough, and/or that I hadn't trimmed off the printing brim from the gear teeth. I took the gate off, sprayed a ton of plastic lubricant in through the bottom opening and manually spun the ring to get it all around; I also propped the gate up slightly off its base, just a few millimeters, so it didn't sit as tightly on the gear. Between those two remedies, the gate began to spin fully around without catching.

But it kept spinning. And spinning. And never found "home". This was my second issue: I'd assembled the LED and LDR pieces on the wrong side of the gate, and because the see-through-hole was offset from center, the light was in the wrong place and couldn't shine through. It wasn't a huge deal, but still tedious to remove the gate again, unscrew/move/re-attach/re-wire the LED and LDR pieces. Even after lining everything up correctly, though, the LED I had wasn't powerful enough to trigger the sensor, so I went back to my local Radio Shack (whom I lovingly call "Dad") and he had a brighter LED he gave me, which worked more gooder.

Had a couple more issues come up, like the motors spinning in reverse direction (easily fixed by swapping two wires around), and the top chevron not moving up and down smoothly (eventually "fixed" by spraying in a TON of that plastic lubricant), but otherwise, at long last, the gate was finished! I took a video and sent it to my parents, and also of course grabbed Alissa and said "come see! Come see!!"

I'm really proud of how this turned out. I enjoy projects (like this one) that are at the edge of my current abilities; I had a lot of confidence on the software side, but not a lot / any experience on the electronics side of things, but with my Dad there to guide me, it became much more manageable. I've learned a LOT from where I started, and am feeling more confident to tackle other 3D printing + electronics type projects (next up: a Star Trek Next Generation warp core). Things I worried about early on (like the seams showing between pieces of the ring) aren't nearly as visible as I thought they'd be. And I was able to make modifications to the code that I'll publish back to Thingiverse, that might help a future builder when they build their Stargate. If I do say so myself, this thing's pretty darn cool.

Lastly, if you're wondering how much it cost... I'll admit the number surprised me. Here's a rough breakdown:

  • Filament: three rolls at $18 each, plus a couple other colors that I only used a bit of, so let's say $60
  • Raspberry Pi 3 B+: $56
  • Motors, motor circuit board, other electronics from $80
  • Touchscreen for Raspberry Pi: $80
  • HDMI cable: $8
  • Power adapter: 2 for $14, so $7
  • Printed circuit board from China: $20 ($2 for 10 boards, and $18 shipping…)
  • LEDs, transistors, resistors, and other various electronics from LCSC: $21
  • Superglue: $5
  • Wires, tools, solder, buck converter, other electronics and tools: free from the RadioShack of Dad

Grand total: $337. (Shhh don't tell Alissa! :)

Wednesday, May 29, 2019

Winnie the Pup

Anyone who's known me for any length of time probably knows that I'm not a fan of dogs. Over the years I think I've come down from a "phobia" to merely, "I'd rather not be near you," though admittedly I've met a handful of dogs that I could honestly say I liked (my friend Bernadett's Emma, and my Aunt Judi's Guinness and Keighley, to name a couple). So it is with utter amazement that the man who has for many years declared, "I will never own a dog!," announces that... Alissa and I got a dog:

Meet Winnie the Pup (or just "Winnie" for short).

If you'd like the short version of how on earth this happened, I suppose I can summarize with: "he chose me with his puppy eyes."

For the longer version, well, settle in. I tend toward extreme verbosity in my writing, and this life-transformational-story deserves nothing less.


Alissa has always wanted a dog. I have always not wanted a dog, something about which I made no secret during our dating and engagement, so that it wouldn't come as a surprise later. Knowing that we wouldn't actually get a dog, Alissa has frequently teased me with statements like, "if you get another lightsaber, I get a puppy," or adding "puppy" to our grocery shopping list. Chuckles ensued, but no puppies.

When we got our adorable bunnies, we did so in the hopes they might be cuddle-bunnies for Alissa. Sadly, our bunnies don't like to snuggle, they prefer to hop away. So, Alissa's desire for something cute and cuddly has remained (and while plush stuffed animals cut it for me, they don't for her).

A month or so ago, Alissa sent me a link to a puppy store that holds weekend open visiting hours for guests to pet all the puppies. Since the store is an hour-and-a-half drive, we picked a Saturday with nothing else on our calendar and marked the date. Leading up to the day, after telling some friends about our weekend plans, one of our friends helpfully declared (in spite of my protestations), "you're getting a puppy." I, of course, knew this wasn't ever going to happen, but took the joke in stride.

The Road Trip

When Saturday came, Alissa had donned her "I'm here to pet all the dogs" shirt, and also optimistically brought out the bunny carrier, because "it sure would be a shame not to have a doggie carrier 'just in case' we end up needing one..." Ha ha, you're right, Honey, but, you do know we're not actually getting a dog, right? "Right, but 'just in case,' we want to be prepared!"

While I programmed my GPS, Alissa double checked the store's hours. And good thing, because we discovered they would be closing early that day! Even leaving immediately, we'd only just arrive at closing time. Seeing Alissa's crestfallen expression, I didn't know how to "fix" the situation, but knowing that the store also took people by appointment, I gave a call asking if there was any chance they'd be willing to stay open a few extra minutes to meet us. To my relief, they said that'd be no problem! They were hosting a wedding (which is why they planned to close early), but they could stay open a little extra since they knew we were coming. Whew! We sped off toward the puppies.

One might wonder why I'd be willing to drive three hours just to see dogs I didn't want to buy. The answer's so simple: it meant I'd get to spend quality time with my wife, without the myriad interruptions of our busy lives. I thought of the excursion as a quasi-date, and perhaps even more importantly, I knew how happy it'd make her to play with all the "poopays" as we called them.

Arriving at the store, we noticed we were... under-dressed... compared to the wedding guests streaming in ahead of us. When they said on the phone they were hosting a wedding, I hadn't realized it was starting 45 minutes after we got there. After trying and failing to find an alternate door, I called back to ask, "we're here, is there another door we should use?" No, there wasn't, so we found ourselves in hoodies and t-shirts walking in behind folks in elegant dresses and suits. The lady from the phone greeted us immediately (she said we were easy to spot, since I'd said "we'll be walking in the door in 30 seconds"), and directed us through the actual wedding party into the back room of the store where the puppies are. Mildly awkward.

The First Meeting, aka, Puppy Eyes

Emerging into the puppy room we were greeting with the yipping of about two dozen puppies in a fenced play area in the middle of the room. Alissa dove [figuratively not literally] into the cuteness overload and started petting them; meantime I stayed aloof, because, you know: dogs.

Alissa kept asking me, "isn't this one so cute? Do you want a puppy yet?" And we talked a bit with the puppy minder, asking him about the store and the different kinds of dogs, as well as thanking him profusely for staying open late for us.

As Alissa enjoyed her time with the 101 poopayes in the playpen, I started to meander the room's perimeter, where there were puppies in large glass cages built into the walls. I noticed some that I said were "not well behaved," owing to their jumping up against the glass and yipping. Then, I saw one who was being very well-behaved, sitting there calmly, looking at me with puppy eyes (because of course, he's a puppy, so he has puppy eyes), and I said, "this one's really well-behaved." Alissa glommed onto that and said, "oh! you think that one's cute?!" To which the salesman said, "I'll go get him for you so you can hold him!"

"I– uh– um– I didn't ask to–."

The salesman returned and placed the doggie in my arms. He didn't bite or bark (and to my relief, neither did the dog), and so I just stood there - and eventually sat there - for about 10-15 minutes, holding this puppy and petting him. He sat so peacefully, calmly. As we sat, I learned that doggie was a Cavachon, a cross between a King Charles Cavalier and a Bichon; the Bichon breed is hypoallergenic, and the Cavalier breed was bred to be a calm lapdog for the king, which tones down some of the Bichon's hyperness. Alissa was rightfully-amazed at how long I willingly sat with puppy. Frankly I was, too.

Eventually, learning that the salesman was actually attending the wedding in the room next door, I returned the puppy and we took our leave (necessitating winding our way back through the wedding party). Alissa then proceeded to text our friends that I'd willingly held a dog, and if we'd have stayed longer she thinks she could have talked me into buying it. Meantime, I proceeded to have an hour and a half of severe allergy attacks (due to there being a thousand and one puppies in the room, and it being legit rural Minnesota farmland, and it being allergy season in general).

The following week

I'll be honest, I did like that dog. As we drove home, Alissa told me that while I was holding the dog and asking so many questions about it, she took it as a sign of 'Jeremy might actually get this dog!' before realizing that it was more like, 'Jeremy is a naturally curious person and likes to ask lots of questions, but it doesn't necessarily mean anything.

The following days, Alissa kept checking the website and letting me know "Perfect Puppy" was still available. Unbeknownst to her, I also was secretly checking the website, quietly breathing sighs of relief when I saw his photo pop up day after day. I can't explain it.

Alissa also sent me a bunch of links to read about Cavachons and general puppy care/training. Most of our conversations that week began with me saying, "we're not getting a dog, but hypothetically, if we did...". We covered such ground as who would let the dog out, who would clean up the doggie poos, how would this work when we go on vacation, what are our ideas about training, if we got this particular puppy would you say it's "Jeremy's dog" instead of "ours," and so on. Alissa also helpfully kept offering, "would you like me to go pick up Perfect Puppy for you? I can go tonight!"

As I pondered how having a dog would make Alissa so happy (as one of her lifelong dreams), and how having a cute little doggie-that-looks-like-a-live-stuffed-animal-teddy-bear sitting on my lap while we watched TV would also make me so happy, somewhere around Thursday I think I crossed the 50% threshold between "no puppy" to "yes, we can eventually get a puppy". Considering my journey had started at a solid "0% / no way!", I think that was pretty incredible progress, and all thanks to a cute little puppy with his emotive puppy dog eyes.

My biggest concern, then and now, is how much time a puppy might take. I already feel at-capacity on my time-budget, so adding "one more thing" is, frankly, an extremely intimidating proposition. I read a lot of articles, and finally phoned my Aunt Lisa - who trains service dogs - to ask more about training and time commitment, and was comfortable enough with the answers she gave me.

All day Friday I spent hemming-and-hawing, culminating in what I might describe as an anxiety/panic-attack Friday evening. At issue were my conflicting desires of wanting Perfect Puppy, knowing Perfect Puppy could possibly/probably get sold this weekend if we didn't snatch him up now, but knowing we're NOT AT ALL prepared for a dog (I mean this in a pragmatic sense: no kennel/food/toys/etc), and also fearing that all my already-limited free-time would get eaten up by having another pet, but also not wanting to have raised Alissa's hopes so far just to back out at the last minute, AND, having promised the bunnies we'd take them to Hoppy Hour, only to bail on them again at the last minute (yes, I know the bunnies didn't really understand that, but still). I was an emotional mess, trying to sort through all of that. God bless Alissa, she stayed with me for an hour while I tried to figure out my life. It wasn't pretty.

Eventually, I made my decision: let's go get Perfect Puppy. I called the pet store, set up an appointment in two hours, and we headed out. Alissa had the presence of mind to bring some extra supplies - like a towel and package of large pet potty pads for the carrier. Within a few minutes, we were on the road.

When I'd called the store, the puppy man asked me if we wanted to see any others than the Cavachon from last week (pretty sure he remembered us as "those people" who made him run late to the wedding and didn't even buy a dog!); so, along the way, Alissa looked through the website of puppies, and as we talked through each breed we narrowed in on wanting to see the other Cavachons, the pure bred Bichons, and some "Teddy Bears" of a breed mixture I don't recall. I called back the puppy man (who, when answering, consistently sounded so shocked that his phone had rung - it was amusing to me) and he said, yep, no problem, he'd have them all out for us to look at.

Our drive was largely uneventful, EXCEPT FOR driving past what is literally one of my worst recurring nightmares: a road that goes underwater. Shudder! Due to rush hour, my GPS had us taking some back roads to avoid traffic; and due to all the flooding, we passed an intersection where the road off to the right of us went straight down into a river. For years I've had nightmares about driving into a water-covered road of unknown depth, so this was a most unwelcome sight to see so close-up in real life!

The reunion

We arrived at the pet store on time, and went into the puppy room where there were now only eight puppies instead of the several thousand from last time. Perfect Puppy and two other Cavachons were sitting calmly, while the Bichons and Teddy Bears were jumping and yipping. While good to compare, the Cavachons' docile nature pretty much cemented the deal. Puppy Man placed Perfect Puppy in my arms, and we sat for a little bit. Perfect Puppy was so cute; he looked at me with those puppy eyes, and asked me if we were going to take him home. Alissa and I re-confirmed that yes, we'd like this puppy. We told Perfect Puppy we were going to name him "Winnie the Pup", and then I handed him back to Puppy Man who said he'd give him a quick bath before we took him home.

Winnie's Perspective

Pff, pff, I don't like baths! I think I swallowed some shampoo. Pft! Oh, but I feel so clean now, and I look so fluffy and pretty!

Mr Puppy Man leads me back to the door to the playroom, and when I run through I see the new humans who were holding and petting me. One of them tells me they're bringing me to my "forever home" - I'm not sure what that means, but the way he says it it sounds like it's a good thing.

The man holds me in his arms while the woman writes on papers for Mr Puppy Man. He's telling them all about me, and I recognize a picture of myself and my mommy; he says something about "up to date on shots" and that I already have something called a "chip." I'm just a puppy so I don't understand what all of that means, but I do know I'm feeling very loved by the man holding me. He's smiling such a big happy smile. And I know because I just had a bath, that I'm looking my absolute best for him.

He crouches back on the ground and says I should say goodbye to everyone. I don't quite understand, but I think that means maybe I'll be leaving the store now, like some of my other friends who have left with other humans. I will be sad to leave all of my puppy friends - they are my family! But I do want to make these new humans happy, so I will put on a strong face for their sake.

I'm carried out into a larger room I've never seen before. There are toys everywhere! Wooden rectangles with carved shapes (I think the humans call them "letters" and "words"), towels that look like they'd be fun to pull on, little glass sculptures with different colors, sitting on a shelf just waiting to be knocked onto the floor for puppy play-time!

While the man holds me, the woman hands Mr Puppy Man a small plastic rectangle and he hands her a bag of my favorite puppy food and what looks like it might be some treats! I don't really know what those are yet, but my nose says they're probably tasty.

Mr Puppy Man has started talking to some other humans who just arrived, about one of my other friends who was in the playpen with me a few minutes ago.

My carrying human puts me down on the floor and they ask me to walk into a plastic box. I don't know how I feel about this. It's kinda dark and scary in there. But I'm a brave puppy, and I want to be a good puppy, too, so I go into the box thing, and before I know it the box is being lifted off the ground and I'm being carried outside! The air is so fresh out here. Soon, though, my box is inside again; I seem to be in a small room that rumbles like a hungry puppy tummy, and it starts to move when it rumbles! I can feel the room moving backwards, now forwards, now turning to the right, and now I'm sliding back against the wall of my box because the room is moving faster and faster.

The humans are talking, and the woman is sitting next to my plastic box. She opens the plastic box fence so she can reach in and pet me. I can tell she really likes me, too, and is excited that I'm in this plastic box in the rumbling, moving room with her.

I'm starting to feel funny. My tummy is hurting... Now there's something in my throat. Oh no, I'm going to–

Oh no :( I think I just threw up that shampoo I swallowed :(

The moving box is slowing down, and stopping. The humans are talking to each other, and the woman is trying to wipe my face. I'm not feeling well at all, and now I'm feeling even worse because I was so nice and clean and looked so pretty, and now I've ruined my clean fur :( I was trying so hard to be a Good Puppy, but my tummy hurt sooo much!

She's still wiping me down, and the big moving box has started moving again. Uggghhh, I'm not feeling very good again...

I'm such a little puppy, and leaving my home and puppy friends is really stressful, and I'm not used to riding in big moving boxes on wheels. I'm trying my best to be Good, I hope they can understand. I'm really sad that I ruined my clean fur, but the humans don't seem to be mad at me.

The light outside is going away - that means it's past Puppy Bedtime, but I'm still awake, and still a little scared.

The rumbling sound is getting quieter, and I think we've finally stopped moving. The humans are saying those words "forever home" again, and picking me up to smell the fresh air again. It's dark, and I can't really see, but I seem to be on some grass. The grass is wet, so as I run around to sniff and explore, it's like I'm getting another bath, but with no shampoo this time. I think my fur is getting cleaner now! The humans are so excited to see me running around and having fun. I wonder what new adventures I'm going to have here!

Closing thoughts

Back to Jeremy's voice again.

With my Mom retiring from 44 years of teaching this past week, I hadn't wanted to detract from that with puppy stuff, so I suspect it was more than a little surprise when I texted her a photo of her son (me), a man who has for years hated dogs, suddenly holding a puppy! I think our neighbors, and my Aunt and Uncle, also could not have been more surprised. Perhaps hell really has frozen over.

What has surprised me the most, is how easily I've acclimated to a puppy licking treats out of my hand (something I would NEVER EVER have pictured myself being comfortable with), or dealing with puppy accidents on the carpet, or praising Winnie for pooping on our lawn. I don't think I've ever in my life shocked my Uncle more than when he saw me sitting on the dining room floor holding and petting Winnie. I can't explain it - I really love this puppy (I mean, Alissa really loves him, too, but it's my blog so I'm focusing on my own experience).

As for our how our bunnies are handling this change... well, they maybe love Winnie a little less than we do. Winnie looks at them and seems to say, "these are some weird looking puppies," while the bunnies say "that's a weird looking bunny!" The bunnies sometimes thump a leg at Winnie, as if to say, this is our territory (for any fans of The 100, perhaps you'll find humor in something else the bunnies 'say' when we pretend to talk for them: "You are Bun-Kru, or you are the enemy of Bun-Kru!"). And at least once I saw Winnie startle the bunnies so that Luke and Daisy literally jumped into each other mid-air. It was simultaneously hilarious, and also frustrating, since we don't want Winnie scaring the bunnies. But as I sit here writing this, Winnie is sitting by the bunny fence, and the bunnies are casually coming up to sniff him, then hopping away. So I believe there is hope.

Thus concludes the first chapter of bringing Winnie into our lives. As Winnie said, I wonder what adventures we're going to have!