Body and Mind Hacking (An experience with physical therapy and conferences.)

ng-conf 2015 logoSo recently I went to the excellent ng-conf in Salt Lake City, Utah. Going to conferences has always been something that I have enjoyed to one degree or another, and ng-conf was no different. The people have a passion for what they do, and how they do it. Except for one person, which I will relate later.

Going to ng-conf opened my eyes, again, as to why I am a developer and why I love what I do. Sometimes what is needed to take a look at yourself and your condition is to do something different for a while, and the conference did that for me. It allowed me to think about the work I am doing and see the architecture I develop through the eyes of the presenters and the people I met at the conference. This fresh perspective is something I will take back with me to my team, and I sincerely hope that I can give them at least a fraction of the energy and insight I gained from going.

Meeting other developers and talking with them in a positive manner is a great way to learn new things, introspect the things you are doing, and to come up with better solutions for things that have been pain points in the past. Doing this is similar to my experiences with physical therapy that I have had recently. (See that segue there? As smooth and soft as a gravel driveway.)

I’ve had back pain for years, many people do. You wouldn’t see commercials about it, billboards, internet ads, and all manner of snake oil offering ways to cure it if it wasn’t a big problem today (at least in the United States). I’ve lived with it, done some exercises, gone to a gym and hired a physical trainer for a while to see if I could solve it. Inevitably, it comes back, and recently the pain has been one that has been more localized than what I was used to, at times preventing me from standing up out of a chair or picking up things from the floor. Sounds bad, right? You would think I was eighty, but I’m not, not for a while yet anyway.

The situation was intollerable, and I want it gone. (I’m not out of complete pain yet, but I am working on it.) So I did the sensible thing, I talked with my doctor. I had talked with my doctor before about the pain, so he knew it was a recurring issue, and he listened as I described the slightly newer kind of pain I was in. He gave me some possible areas the pain could be coming from, and some of the options I had in treatment. I love my doctor, because he’s both a person, and a knowledgeable medical practitioner, and has intelligent and reasonable discussions with me about my care.

So after talking it over with him, we both knew I didn’t want something more invasive like surgery, or even imaging, which I had done a few years back. Physical therapy sounded the best, and the main reason I chose it is the same reason I enjoy going to conferences. It gives me perspective on myself, shows me things that are part of me yet I am not aware of myself, the invisible things that you don’t see without someone else holding up a mirror and showing them to you.

I wanted physical therapy because I wanted to know what was wrong, but more importantly, have the knowledge to how I could continue to improve and prevent a relapse like had happened before. To get a set of exercises and life changes that could make my pain go away. (My daughter likes to jump up and hug me, which I love, but at the wrong time can murder my back.)

You remember that guy I mentioned earlier? The one that wasn’t passionate about being at ng-conf? I said I would talk about him later, now is later. During one of the first parts of the first day of the conference, I sat down in the audience to listen to the talks. I was enjoying them, listening to them with an open mind and thinking of how at least the concepts of the code being talked about could help my own work, even if the library or code couldn’t be used directly. Inevitably, the man would scoff, or shake his head, or utter a ‘yeah right’ as a point would come up or some new innovation was presented.

It was distracting, but it was even more concerning for me. After all, this man had come to this conference, I assume willingly, and was here to participate right? I have seen developers, people, like him before. I can only assume what his life was like up until I met him, but to me it seemed he was usually under pressure, dealt with timelines, unreasonable expectations, or broken promises. I felt sorry for him, and I also realized, that I have been like him at points in my past. Points I didn’t realize at the time that I had the power within me to change.

Coming back to my physical therapy. Up until I spoke with my doctor, I dealt with my pain. I said to myself that going to the doctor was too much trouble, hassle, he couldn’t do any thing for me, all manner of fleeting excuses that was me telling myself that I could just live with it and be lazy by not having to leave the house on an errand. I was like that man, complaining about the pain, but not actually doing anything about it.

Eventually, the incidents of pain became too much, and I realized that treating the problem now was going to be a lot easier than treating it when I was eighty. Not to mention that I would have many years of pain if I waited that long to treat it. I want my kids to be able to jump on me, and to be a superhero for them. It was that decision that changed me from the man complaining about things, into someone who was taking control over their own body.

I love hacking. I’m a programmer, woodworker, writer, electronics enthusiast, you name it. If it has a puzzle involved, I am all for diving in to solve it.

I decided, and this is important, I had the presence of mind to decide to look at my physical therapy as a puzzle. My back pain is something that I can solve. I need help, information, on how to hack my back, and so I looked for good resources, my doctor, and my physical therapist. That mindset has made a world of difference. I am hacking my back, and I’m getting results.

Where am I going with this rambling tale? I’m sure that I haven’t been entirely clear on my point, in fact, there are several points inside my narrative, so let me see if I can tease them out for you.

  • If something pains you, do something about it. Gather information you need, and solve that puzzle.
  • Be self-aware. If you don’t look at yourself, you won’t see places you can make change, only feel the pain of the things that are wrong.
  • Get a mirror to help you see. If something is paining you, code, your body, your relationships, anything, then find something or someone to help you get a perspective on it.
  • We only live the one life we have, so why suffer, in any way, to just get through it. Make it the best life you can live. Will you fail at things? Sure. There’s information there, learn from it, and then use that to go at it again.
  • Be critical, but not closed minded. Look at new things with a critical eye and you will always find some grain of knowledge that you can tease out of it that can help you on your journey.

This was written just after the closing of ng-conf 2015. I’m riding a pretty good high of energy and excitement from the things that I learned over the last two days. I’ve also got a head swimming with thoughts and ideas, which accounts for some of the excited ramble above. I hope to organize my thoughts more over the next few days, but I also hope not to lose any of the excitement, the passion, that I have absorbed.

If I do, then you can expect more articles from me here, and I will make the effort to have them be a more focused version of my enthusiasm.

3D Printing: The Stepper Conundrum

Today’s conundrum from my 3D printer has vexed me for three days now.

So, an update since the last one.

Last time, I estimated I was at 60% complete with the build and needed to finish that, install the firmware, get the filament, and begin printing. Well… that was almost what I had to do.

I’ve completed the physical build, as much as I can but more on that later. I’ve installed the firmware and tested that it works with the software on my computer. I’ve even attempted to do a test print to start calibrating the settings. Oh, and I got the filament (after ordering the wrong type of plastic the first time).

Filament, just realized that some of you might not know what that is. Filament for 3D printers is basically thread made of plastic. Really thick thread, but it comes on a spool and is fed into the 3D printer like thread into a sewing machine. It comes in two main sizes 3 mm and 1.75 mm. I am using the 1.75 mm, since it has been found to work better than the 3 mm filament. which sometimes overwhelms the heater that melts the plastic.

So anyway, that’s where the problems started.

The trouble presented itself as an inability to push the plastic out to be printed. It comes out like frosting from a cake funnel, or like toothpaste from a tube, and is supposed to be layered up, one on top of the other, until you have a completed object.

At least that’s the idea.

You see, there’s a motor that pushes the filament into the extruder (that’s the toothpaste tube). The motor is a special kind, called a stepper motor. Named that because it can take individual steps of rotation, unlike most DC motors that just spin. Because it can do this, it can push just a little, or a lot, of plastic through the hot end of the extruder in measured amounts.

Mine however, was not doing that.

What it was doing was pushing a little of plastic out, but then reversing direction and pulling the filament back, then pushing it back in or pulling it out more, depending on fate and whimsy. It wasn’t so whimsical for me though. The melted plastic cools very fast, but ends up leaving little spiderweb threads of plastic as it comes out. I went through a fair amount of plastic in the last three days troubleshooting things.

Something said at work today, along with thinking about all of the settings are available finally led me to the solution.

I had tried everything I could think of over the last few days. Switching stepper motors, switching driver circuits, changing the amount of plastic to be extruded. All of those things done one at a time to see the result of the change, and making note of how it improved or made worse the problem. At work yesterday though, one of my co-workers was wrestling with an issue and it was suggested that while he was going through the same process as I was with the 3D printer (it’s a common troubleshooting process for code), that perhaps he had more than just one problem to fix.

This was no surprise to me, having just come off another project where I was tracking down a bug that led to several other bugs being uncovered and needing fixing before I could fix what the client actually wanted fixed. It wasn’t until I got home and looked through the firmware that I realized there was a setting I missed.

Going through the calculations, I realized that the stepping code wasn’t set correctly for my printer. I adjusted that, but still had a problem. It was a bit better, but still would reverse seemingly at random. I switched stepper drivers again, and voila! a working stepper motor.

So long story short, I have a solution for my problem, and as soon as the new stepper driver arrives, I will have a working printer.

I’m keeping the bad driver board for now, to learn from and see if I can eventually fix it. Right now though, with the deck, the secret project, the 3D printer, NaNoWriMo, and HoNoToGroABeMo coming up, I have enough on my plate to last through November!

If any of you have any questions or suggestions about 3D printing, or stepper motors and their drivers specifically, feel free to drop me a line in the comments.

A 3D printer is coming!

Nearly a year ago, I Kickstarted a project called Eventorbot. It seemed a good project, an open source plan by a young man who had come up with a good design for a stable and easy to build 3D printer. It had some good rewards, and after hearing about some Kickstarter horror stories, they didn’t seem overreaching. The creator also had built a machine, and claimed he also owned an import business. Overall, it seemed to be a good deal, so I put my money in.

Well…

It’s been a few months since anyone has heard from the creator, and even Kickstarter can’t get hold of him. His last few posts were telling us that he needed to order some more parts, and then, nothing. The circumstantial evidence points to some bad parts from China, mainly the frames not being square as they should be. A rigid and square frame is essential for precise printing. If that’s the actual case, we don’t know for certain, but it’s the predominant opinion. We’d all be more forgiving if the creator were more communicative, but he’s most likely terrified of the things that he has promised and can’t deliver.

That’s the past, and a lesson about Kickstarter. Take from it what you will.

When I ordered the parts for the Eventorbot, I didn’t get a full printer. I knew I had some of the parts already, and could source some of the rest for less than the full kit price. So for nearly a year I have had rods, stepper motors, a control board, linear bearings, skate bearings, bolts and nuts, just sitting in a box in my basement.

Until a few days ago.

That is when I discovered the Printrbot Simple. I’ve known about Printrbot for a while now. They did a Kickstarter too, but obviously that one went better on deliveries than the one I was in on. They’ve put out several printers from their first, and the Printrbot Simple is their most recent one.

It’s small, a starter printer at an economy size. The print area is 100mm x 100mm x 100mm, about a 4″ cube for those that still prefer the English units. It prints PLA instead of ABS, and doesn’t have a heated bed. That’s actually good in this case, since cost is a factor in the economy printer. For the fully assembled printer, it is only $399. As a kit, $299! It is the cheapest printer I have seen in a while, unless you happen to have access to a laser cutter or someone who can print plastic parts for you already. I don’t, but I do have all those parts laying in a box.

That’s when I saw they offered just the laser cut wood frame for $40! (Total of about $50 with shipping.)

So sometime next week, I will be getting a package of wooden parts in the mail, and hopefully another package from Ebay for the hot ends that I ordered to complete the build. I’m enthusiastic, you would not believe how much. It helps out with my secret project, it lets me actually use the couple hundred dollars in parts that I had ordered, and I’ll have a 3D printer when it’s all done.

So, anyone want anything printed?

One project down. On to the next!

So yesterday, I talked about all of the projects I have been doing this year, and how I’ve finished a few. Today I can chalk up another one done.

The laser engraver that I have been reworking is finally running smoothly. The small one I had posted about before has been up-sized to be useful for what I wanted it for in the first place, that being cutting vinyl templates for etching glass. It’s cutting second template right now. Well, not now as you read it of course, but as I write this. There are still some kinks to work out by dialing in the settings, and the electronics all need to go into an enclosure, but the bulk of the work is complete.

Pictures? You want pictures?!? *sigh* Ok, here’s pictures. The original, next to the new version:

IMG_20131006_200858

As you can see, the new one is quite a bit bigger than the original. I haven’t used the whole bed yet, and I may not, since the part you can see in the picture is actually all I need for what I had originally planned. Perhaps larger templates are in my future.

I just looked at the image again, wow, what a mess! That’s boxes from the office, my dog’s feet, an old QuickCam from my Quadra 660AV days, and some plaster molds. As you can see, I still have a lot of cleaning to do in the basement.

What next?

Well, I have the deck still, though I got in all of the posts for the main portion this weekend. Given all the delays with getting holes dug, and family emergencies, I am going to have to get an extension on the building permit. Hopefully they actually give extensions. It’s coming along though, and the octagon’s posts should go in tomorrow, weather permitting. After that are the beams and inspection, before moving on to the joists and decking.┬áThat will be my main focus over this next week while daylight permitting.

Work is research right now. I’ve reached out to a friend, Jim Van Verth, to help me with some of the higher order math involved. At least it’s higher order enough to me that I don’t know what the symbols mean. I am sure Jim can shed some light on them for me. Thanks in advance Jim!

I’m also working on AngularJS, since it’s something I’ve been seeing worked on more and more. I have a nice little test project for learning it. It’s an interface to a home kegging system for beer. The original project Kegerface, was php and a flat file with beer information. I’m using it for inspiration, but will be completely rewriting it in AngularJS and running on a NodeJS server. More on that in the future, and links to my Github repo when I’m ready for people to hack on it with me.

Don't forget to wear these. Your safety glasses.
Don’t forget to wear these. Your safety glasses.

Work on the secret project also got done this weekend, and it’s running even smoother now. If I can dial in the base rotation system, I will be just about done with the prototype. I’ll keep teasing you with the details until I can talk about it.

I could keep going, but I have more to get done!

A final note. When working with lasers, don’t forget these, your safety glasses. (With thanks to Norm Abrams.)