Refreshing A 10 Year Old Thinkpad

In this day and age, it’s pretty common for folks to consider replacing their phone, laptop, desktop computer every 3-5 years. It’s a terrible model, because it just adds waste and churn, when in many cases, it’s not even necessary.

I’d been hunting around for a Linux laptop to use for a variety of projects. A fellow up at our makerspace sold me a 2013 Lenovo Thinkpad T440s for $80. At it’s root, it was fine. 4gig RAM, a good keyboard and touchpad – it was missing a hard drive, but otherwise the battery was good and was the right size.

I tested out the unit with a USB-booted version of Ubuntu, and that worked just fine. A little sluggish, both because of the USB drive, but also I suspected I was running into memory limitations. 4gig of RAM in a modern OS with a full desktop really isn’t enough.

I decided to invest in upgrading the machine.

  • First, I picked up a Kingston 256gig 2″ SSD drive for about $20. It’s pretty well known that replacing ‘spinning rust’ drives with SSD’s is a surefire way to speed up a machine tremendously. I was a little startled by how low the prices had gotten, but who am I to argue.
  • Next, RAM. This laptop has 4gig of RAM on the motherboard, but has a SODIMM slot as well. I was pretty sure this slot was empty, so I bought an 8gig SODIMM DDR3 module for $12.

As far as hardware goes, that covered the bases.

Thinkpad T440s internals

Installation of the drive and RAM was a piece o cake. The Thinkpad has an internal battery (which is interesting), which needs to be disabled in the BIOS. Once that was done, I was able to just pop the back off, and install the drive and RAM. The entire operation took a whopping 15m.

Powering back on, the machine was like new. Fast, responsive, and Just Plain Worked.

Considering I’ve spent a grand total of like $115 on this, and I’m able to run Slack, Chrome, discord, various other applications, and it’s not even skipping a beat, that’s fantastic. I’m happy.

Up and running!

Now I have to, after many years of not using Linux as a full time desktop, slowly learn the ins and outs of how the Gnome Desktop has changed and how modern stuff work with it. Exciting!

My Portable Media Carry-Sack

I have a little Case Logic zippered pouch that I carry in my backpack everywhere I go. It’s where I put USB thumb drives, SD cards, Micro SD cards, adapters – pretty much anything I may need while on the road. It’s gotten me out of so many jams where I’m like “I need a quick Micro SD card… where the heck were they again??”

In particular, when I’m out doing photography, having a couple spare cards at hand is a total win.

Today, I fished out a 32gig card so I could re-image my Octoprint server that drives my Creality CR10 3d printer. I’ve been running the “Python 2” version for ages, it’s time to upgrade.

The Sad, Avoidable Downfall of the E-Book Reader Aldiko

I’ve been a staunch user of the Aldiko ebook reader on Android for many many years. It was stable, easy to use, featureful enough to be a comfortable reading experience, and handled local libraries pretty well.

Then in 2014, Aldiko was purchased by Feedbooks. Not that big a deal, the press releases were all glowy about how much they loved Aldiko, things should continue, we all expected some new features.

Aldiko is now owned by DeMarque

In 2019 Feedbooks was aquired by DeMarque. Apparently Feedbooks was in serious trouble, and this acquisition was purely financial as part of a deal to settle up accounts with DeMarque:

What the press release doesn’t dwell on is that Feedbooks had been in receivership since June 2018 and the merger is the result of a Commercial Court settlement whereby De Marque paid 230,000 euros to acquire the assets of Feedbooks and its subsidiary Aldiko as part of a disposal plan.

Aug 29, 2019 – newpublishingstandard.com
Aldiko Next – the lobotomized version of Aldiko

Somewhere in 2021, DeMarque decided the Aldiko app needed a rewrite. Understandable. Old apps need refreshing and updates, sometimes an entire rewrite is in order.

So they published Aldiko Next – an extremely feature light, barely functional book reader (I won’t call it a ‘version of Aldiko’. It isn’t. It’s a rewrite). That’s fine, new versions are published all the time, and then the users are given time to try the new app, and iron out the bugs.

But DeMarque decided “Nope. We’re going to force the literal 20 million installs of Aldiko to the new version. Without notification. Without an Opt-out.”

Aldiko Next is absolute hot garbage. Don’t believe me? Look at the reviews on the play store. They’re universally panning the app.

DeMarque’s answer to bad reviews?

“Hello, In addition to several new features, Aldiko 4 will offer all the ones that were already available, only improved. We’ve decided to deploy them incrementally. So it is normal that some features from previous versions are not yet available. They will be available as future versions are released. Please note that 4.3.6 has just been released.”

November 9, 2021 Play review response

Note, the ‘will offer’. These features are NOT AVAILABLE. Yet they forced ALL the users to upgrade to the new version. When challenged on why this is a bad idea, Hadrian Gardeur, the founder of Feedbooks, doubled down with a basic “Ignore the reviews. We know what we’re doing”

I stopped responding after that message. There didn’t seem to be any point.

So what’s the alternative?

Moon+ Reader on Android

I encourage anyone who is frustrated with DeMarque / Feedbooks destroying a beloved app to simply… take your business elsewhere. I have switched completely to Moon+ Reader, which is an outstanding app, extremely featureful, offers a ‘free, with ads’ and a ‘pro’ version. I’ve simply moved all my books over to that, and things are running beautifully. Everything works as expected, and basic features that should always have been there… are still there, unlike Aldiko.

I understand the need for companies to make a profit, and do business. It takes money to develop, market, and support applications. But there’s also a responsibility to the userbase to not destroy the experience for them. This seems like a no brainer, but apparently, some people just don’t get it.

If you’re going to upgrade an app, then do so. Engage your users, make the migration an accepting and functional experience. Do not slam everyone into an incomplete codebase and then dismiss their complaints.

That is a textbook recipe for how to drive your users to your competitors platforms.

Well done DeMarque. Well done.

Creality CR-10 – How I Fixed Stuttering / Levelling Problems

About 6 months ago I bought a Creality CR-10 3d Printer. All the cool kids were using 3d printers for just abouyt everything, I was starting to feel left out. Our makerspace has some great printers, but with the pandemic (and also that the space was 45 minutes away), I wanted something nearby that I could tinker with on my own time.

Secondarily, there’s something attractive about being your own fabricator. Having a printer means I can manufacture my own items. That’s pretty cool. I needed to learn how to do that.

For the most part, the printer works great. 3d printing with PLA is not a fast process. Most prints take hours to complete. The CR-10 worked like a champ though. Prints were clean, the end results were useable, and the machine was dependable and easy to manage. I learned to use Ultimaker Cura to set up the jobs and all was well.

I didn’t print anything for a month or so, then went back to print some cable runners to try and organize my desk wiring a bit. When home-ing the print bed, I heard a sort of chattering / stuttering noise during Y axis motion:

I didn’t think much about it, but the print failed with layers shifting in a weird way. Obviously something was wrong.

I spent some time trying to find problems with wiring, stuff blocking the motion of the stepper – nothing was obvious. It was weird though, because the chattering would only happen in one direction, and even odder, it happened when the printer was completely powered off. Moving the bed by hand would cause this sound even when nothing was powered up.

Hmmmmm.

Yesterday I decided enough was enough. Posting on reddit asking for help got no good feedback. I submitted a bug report to Creality, unsurprisingly, I never even got an acknowledgement to the message. I chatted with friends who suggested stepper motor failure, bed misalignment, power supply problems – a whole host of things. None of these were it.

Turns out, like so many things, it was something stupid.

On the front of the Y axis travel arm, there’s a bracket that holds the pully for the belt. This bracket ‘sticks out’ from the frame of the printer, and apparently, somewhere along the line, I had bumped into this bracket, pushing it down about a cm. That was enough to have the belt rub against the end of the track. Travel in one direciton was smooth, but in the other, the teeth on the belt would catch on the end of the track.

Correct position of front assembly
Incorrect / bent position of front assembly

The answer of course was to just move the assembly up into the right position, and BEHOLD! No chattering, no stuttering, no problems. Thus ended a month of having the printer mocking me in its uselessness.

I did, however, run into one other problem. Bed levelling is the nemesis of any 3d printer owner. It can be tedious and time consuming, but is absolutely critical to getting good, solid, well formed prints.

On the CR-10, levelling is accomplished via a set of wheels under the bed that compress set of strong springs to get the bed where you want it. In this case, the springs were 100% compressed, and I couldn’t get enough clearance between the glass and the print head. In the past I was able to wrangle enough slack to make it happen, but today, maybe due to humidity or whatever, I just couldnt’ get it to clear.

Fully compressed spring on the CR-10 levelling knobs.

I solved the problem by essentially raising the 0 position on the Z axis stepper. Because there’s no built-in function to do this on the printer, but being the ever adaptive type, I made do with 4 strips of electrical tape, added to the Z gantry just above the homing switch. This effectively told the printer to stop the the print head about a mm higher than it had before, thus giving me some working room to adjust the bed

MAGIC TAPE

Conclusions

I really do like the CR-10. When it’s running, it’s rock solid, and prints like a dream. I’m hoping to do some mods to it once the office situation settles down a few notches, but right now I’m just happy to have a working, non-chattery, dependable machine again.

PDP-11/70 Retrocomputing Build

Back when dinosaurs roamed the earth, I attended a very technical college to start getting my degree in Computer Science. Note, this wasn’t ‘programming’ ‘systems design’ ‘databases’ ‘AI’ or any of that, no, the industry was young enough that just HAVING a computer science degree was notable.

While the college experience didn’t work out well for me, I have a very strong memory of my first semester (back then the college called them trimesters I believe) walking into the computer science building and seeing a glassed in room with a bunch of racked equipment in it. On the front of one of the racks was a brightly colored panel, with a lot of purple and red switches, and many blinking lights. In the corner, it said PDP-11/70, and I thought it was the coolest thing I had ever seen.

Turns out this machine was used in the undergraduate program to teach students Unix. We had a classroom full of DEC GiGI terminals and students would plunk away at shell scripts, learning ‘vi’ and generally making a lot of beeping noises. There were about 16 terminals, which meant that machine, which was approximately 1/5000’th the speed of a modern Core i7 process (MWIPS 0.535 for the 11/70 vs 3124 for the i7) was supporting 16 concurrent users programming away on remote terminals.

Well, life moved on, and while I did build my own DEC minicomputers, I never actually owned an 11/70. They were temperamental, that were designed to be powered up and left running for years. Not exactly a hobbyist machine.

In the last year or two, some folks have been taking advantage of the SIMH project (a hardware simulation environment) to emulate these old machines, and run the original operating systems on them. When I saw that Oscar had put out a kit for the PiDP-11/70, a fully functional PDP-11/70 front panel that mirrors precisely the original machine, I had to have one.

The kit is powered by a Raspberry Pi-4 loaded with the SIMH package anda . bunch of disk images. The system happily runs any number of old DEC operating systems, as well as Unix 2.11BSD, and various other Unix versions. On bootup, you simply select which disk image you want to run, and after a few moments, you’re looking at an operational console happily booting RSX-11MPlus, RSTS, RT-11, BSD Unix, whatever you’d like.

Total build time was somewhere around 7-8 hours. Imaging and setting up the Pi took about 2 hours (mostly downloading packages), and the actual physical build of the front panel took another 6+ hours.

The experience of using the machine is somewhat surreal. In the past, I spent a lot of time learning Unix and then VMS. I also worked on DEC Pro/350’s for a while, which run a modified RSX-11MPlus, so it feel great to be back in that environment again, but I have so much to re-learn.

Having the delightful blinking lights nearby showing activities in realtime is a delightful way to have a visual representation of the inner workings of computers, something we don’t see a lot of in modern systems.

Here’s some pics of the build in progress. It’s a great addition to the home office collection!

I Built an Evil Genius Sign for Halloween

It’s no secret I’m a huge fan of Warner Brothers cartoons. My sister and I were basically raised on this stuff, and so much of our cultural reference points (and humor) comes from watching Bugs Bunny when we were growing up.

So, as Halloween approached, I thought it might be cool to recreate an iconic image from the 1952 cartoon “Water Water Every Hare”, where Bugs is taken to a big scary castle on the edge of a waterfall. The castle is inhabited by, naturally, an Evil Scientist, who advertises the fact with a blinking sign on the towers of his castle.

Okay, I’m not really a scientist, I’m an engineer, but I figure I could apply a little artistic license and make a sign like that for my house for Halloween.

I wanted it big enough so I could put it in an upstairs window and have it visible from the pathway. We get a LOT of kids through our community over Halloween, and tons of parents as well (since mostly the parents would get the reference), so it needed to be visible. In order to constrain the glare, I decided to put it in basically a shadowbox configuration. An enclosed box, LED lighting inside, with a cutout pattern on front that would show the text.

First step was to use the laser cutter at the Makerspace to cut out the lettering. As anyone who does stencils will recognize, the second line (“BOO”) would have floating elements in it, and would have to be glued down after the box was made.

I found some old acrylic sheeting that still had one strip of white backing on that, and that made a dandy diffuser, as well as a place to mount the center parts of the lettering.

Next, based on the size of the lettering, I whipped up a box out of some scrap wood, and painted it black. I also painted the letter stencils so the shadowmask wouldn’t show up at night, but the lettering shining through would.

The colored lighting was done with some LED strips and an arduino. The sketch was painfully simple. Just first row on, wait a second, off, wait a half second, second row on, wait a half second, off, then wait a half second and then repeat. The most challenging part was soldering up the strips (I needed 3 rows), and mounting the arduino.

The only thing I had to go ‘buy’ was the backing board. A quick trip to Michaels got me a sheet of the plastic corrugated ‘cardboard’ for $4. This stuff is awesome, and I think I’m going to use it more in future projects. I mounted the LED strips and the arduino to it initially using hot glue, but while that’s the default ‘go to’ for DIY projects, I ended up ziptying the strips to the backing board, and doing the same for the arduino. Since the board is flexible, hot glue just didn’t make sense.

Once everything was screwed together, it was just a matter of putting it in the window and plugging it in. Yay! It worked!

I slightly misjudged the width of the window, so it doesn’t quite have the margins I had hoped, but when it got dark, it looked great. Very happy with the end result!

Wizardry 1 : Proving Grounds of the Mad Overlord

In 1982, I was a freshman at Rochester Institute of Technology. I had already been geeking out with Apple and TRS-80 computers through high school, and had enjoyed my share of games, but RIT was a whole new social crew, new computers, and new connections.

I wandered into one of the labs and met up with a group of gamers that would end up being my Crew for my time at RIT. One of the games they were most passionate about was Wizardry, from Sir-Tech Software, a Sword and Sorcery game that in many ways is the root of the “squad based” RPG games that became so popular. Instead of playing just one character, you controlled a group of 6 at a time, each with different skills and equipment.

The game was fantastic, and I became a huge fan, even writing a lame knock-off of my own called Explorer. (Interestingly, I got mail from a fellow named Rich Katz who apparently did some artwork on Explorer – I vaguely remember him from 1987. He has a great page up about it and the work he did. Thanks Rich!)

Anyway, a few weeks ago I was at the Vintage Computer Festival East down in Wall New Jersey. I have lots of good stories from it, but one particular exchange stands out.

The VCF has mounds of software, still in boxes, they were trying to sell / get out of the warehouse. They set up an awesome ‘computer store’ with boxed copies of old software right there on the shelves. It was pretty awesome going through all the old still-boxed software. I noticed a set of boxes on a high shelf, and… yes! They were original copies of Wizardry! But it was for a later version. I wanted the first one, the one I played the most in high school. I spoke with one of the organizers for a while, and he said he’d check in the warehouse to see if there were any of the original boxes. I said I’d be happy to pay for them the next day.

Sunday rolled around, and I stopped over at the store. Sure enough, they had found a boxed copy of Wizardry 1, Proving Grounds of the Mad Overlord, and had put it aside for me. I was a proud owner of an original, still in box, copy of a game I played over 35 years ago.

No, I’m not going to try and use this disk, there are plenty of copies / versions on the internet. But having this box, with all the original documentation, and of course the master disk, and the cover artwork – it’s a great addition to my retro computing museum.

If you’re interested in playing Wizardry 1, there’s a working version on Archive.org.

Router Upgrade – Netgear Nighthawk AC2300 (R7000P)

It’s been a long time coming. I’ve been having some serious problems with bandwidth from home. Since I work remotely, this has gotten to be a serious issue. Regular daily checks against Speedtest would result in abysmal numbers (we’re talking between 8 and 15 Mbps.) I knew my cable modem could do better, and after a bunch of debugging, I realized it was most likely the Archer C7 TP-Link router I was using. This was originally supposed to be a decent performer, but in the end, it’s turned out to be absolute crap. So I went shopping.

The fix turned out to be replacing the router with a Nighthawk AC2300 Dual Band Router The installation was super-duper easy, and setting it up with my reserved IP addresses, guest network, customized DHCP range, etc was a breeze. The initial config was done via an app on my phone, which was pretty helpful, as it allowed configuration while hopping around on the new Wifi network I was creating.

So how fast is it? Well, here’s what Speedtest is showing me now. To say this is an improvement would be a gross understatement. This is epic.

Thanks Netgear for providing an excellent product with excellent performance results. I’m a fan.

I Fixed a Thing

Is it weird that I feel relaxed and accomplished after repairing a desklamp at the end of a day of super geeking?

Never done this before. The pullchain socket had disintegrated. So a quick stop in Lowe’s, and $4 later (with some soldering and fiddling) I have a repaired desk lamp.

Solved: Problems with WyzeCam Android Client

I’ve become a huge fan of the WyzeCam IP cameras. They’re small, very high quality, and have a very good mobile client to connect to them. But sometimes, the mobile client will refuse to start. It comes up with the startup screen, and never proceeds.

Searching around the Reddit and WyzeCam forums, many people have seen this happen, but there’s not a clear reason why.

I’ve had this happen on occasion on my Samsung S9+, and I’ve finally found a pattern – it’s quite simple actually.

On the loading screen, the client is making it’s initial connections to WyzeCam’s cloud services. But it’s quite common for providers, corporate networks, and sometimes even hotels or wifi hotspots to block connections to certain services. If the phone cannot connect to the cloud service, it will sit stuck at that startup screen forever, without ever doing anything.

I discovered this when my phone had connected to a mobile hotspot in the office which required authentication to start operating. The phone was connected, but could not reach the internet. The WyzeCam app was sticking at the opening screen. Once I completed the registration, and reloaded the Cam app, it came up super-fast.

I was able to duplicate this experience at a hotel stay recently as well. The local wifi was extremely crowded and performing extremely badly. The WyzeCam app was hanging at the startup screen again. As soon as I switched my phone from the WiFi to my carrier data, the screen loaded correctly!

I think Wyze could fix this very easily by giving some feedback on the loading screen, showing it’s trying to connect, and giving a timeout message if it fails after X amount of time. But for now, this frustrating behaviour is easy to understand and deal with.

Up in the Air – Returning to building and flying racing drones

Over the last year or two I’ve taken time off building and flying quadcopters. Life and other things has been taking up my brain, so some hobbies took a back seat.

Up at the lab, an event was coming up that would bring in some other pilots from New Hampshire and do a race day. I decided it was time to build a new quad, and get some race time in.

The last big event I went to was NAFPV 2017. It was great fun, and I ended up winning a 220mm carbon fiber frame. With that in hand, I began building up a new quad.

The technology has changed dramatically since my first builds. All in one components, ‘stacks’, and other tech has made the builds both more complicated (lots of tiny wire soldering), and easier (most boards are the same size, and can be stacked on top of one another). Turns out pretty much none of the components I had on hand would work on the new quad, so I had to purchase all new pieces. Here’s what I ended up with:

  • Wolfwhoop TX1912 5.8 video transmitter – I chose this board for the MMCX small antenna connection, and the ability to select bands and channels easily via a button and an LED display on the top. Super handy.
  • CaddX FPV Camera
  • CrazyPony 4in1 ESC This is probably the biggest change for me. Originally I built quads using separate discrete ESC’s. This board puts all 4 ESC’s on a single board. It definitely makes the wiring cleaner, but a little denser on the stack.
  • Crazypony 2206 2700kv motors
  • Betaflight F4 flight controller Betaflight is certainly the star as far as flight controllers and software goes right now. Their configuration tool is excellent, and the board is very good. I was slightly concerened about working with a board that had no header pins, but decided to roll up my sleeves and get experience in very tight soldering setups.
  • FS-X6B Flysky receiver – Yeah, I’m still rocking the FlySky setup. It’s still working well for me. I like this receiver because it can mount on the component stack (even though it’s a half-board).

Quadzilla
The build went off without too much trouble. I found all the missing tiny bits I needed, did lots of very small soldering, and over the space of 3 weeks, got everything assembled and tested. It worked! All the components were talking to each other properly, and I even have a fully function OSD (on screen display) showing stats from the batteries, flight controller, and receiver. Even got the LED strip showing the arming state and a set of ‘tail lights’. Hurray!

I did a very quick flight test to check stability, then went up to the lab to put the final touches on things. This is where I made my first mistake.

Kids, don’t do this.
I decided to take Quadzilla outside for a quick LOS test fly. My FPV gear wasn’t ready for flight testing, but I wanted to see the LED’s and play around. I put the quad on the ground, armed it (which spin the props slowly), stepped back, and gave it a little throttle. The quad lifted, started to move backwards, and basically… fell into my hands… still throttled and running. Those props HURT. I scraped up my hands a bit before I was able to disarm.

So what did I do wrong? Pretty easy actually.

  • I flew Line of Sight at night. LOS requires visibility on the yaw, pitch, and roll of your craft. I coudln’t see it, it was too dark.
  • The rear LEDs were pointing at me, which made it even harder to see.
  • I was in Air mode, not Angle mode, which means there was no flight stabilization. Quad did what I told it to, which in this case was to fly right at me.

Embarrassing, slightly painful, but no major harm done. Bleeding stopped within 10 minutes.

Chagrined, I took the quad home, cleaned up, and started prepping for the race, which would be in 3 days. The quad was pretty much ready to fly, I needed to set the mode selector properly, and tweak the LEDs. I also decided to move the battery from underneath the frame to on top of the top deck. Plenty of room there, and the quad would sit on the ground when taking off or landing, not on the battery. Win!

Turns out my batteries needed some love. The 1300mah 90C batteries i got last summer had been sitting idle for a year. Of the 8 batteries I had, one melted while charging, another was puffy so I decided not to use it. That left 6, which charged okay, but my parallel charger has seen better days. A new gang charging situation is needed, more on this in another post.

I charged all my other gear, including a nifty little all in one 9″ monitor with build in 5.8 receiver I carry with me. Great for checking video and watching other pilots fly. I packed up everything into the Jeep and on Sunday, headed up to the lab for race day.

The folks from the 603 Southern New Hampshire Drone Pilots group showed up, bringing our total pilots to about 10. We ran a couple heats with 4-5 craft in the air at once, on a short ‘H’ shaped course that had several gates and a ‘turnaround’ cube in the middle. The course was off the end of the back parking lot, so there was plenty of room to drive up, park, set up your tables, and get flying without fear of getting hit or getting in anyone’s way.

I flew 3 batteries. First flight was a very basic FPV test (as really this was my first FPV time on the new quad this year, and things went fine. Video was strong and clear, and the quad was very responsive. I flew completely in Angle mode, which is a VERY simple flight mode. I wasn’t comfortable enough yet to go into anything that would let me go more crazy. This was a first time out, I didn’t want to shatter anything.

Second battery apparently was in bad shape. No strong thrust, just running limp. I figured out later the 4S pack had a dead cell, and was functioning as a 3S. That explains that.

Last battery was in good shape, and I was feeling the power of that 4S setup. Unfrotunately, because I was in angle mode, I couldn’t pitch forward enough to get decent speed out of it (I’d just climb), so I was taking it pretty easy. I flew a gate or two, then went through the last one on the course – I caught a motor on that, which spun me out into the trees. The damage to Quadzilla is pretty minor, but I did rip out my VTX antenna, so that ended me for the day. I’m not complaining, I flew, I had a great time with the other pilots, and you’ll be damned sure to see me flying again soon.

My Personal EDC Geek Kit

This month finds me in France for a few weeks, away from hearth, home, family, and all my worldly posessions. While getting ready for this trip, I spent a bunch of time reviewing what I carry in my backpack – cleaning out debris that had accumulated (A few handfuls of receipts, some cold meds, and cables that didn’t make sense anymore), and making sure I had everything I’d need while away from home for an extended trip.

Contents of my every day carry backpack.

I realized while double-checking my kit that it really doesn’t change much. And since I got here (about a week ago) I haven’t had to replace or change anything, and I haven’t gone “Dammit, I’m missing something, guess I’ll go buy it.”

Now I’m not off in the wild jungle or anything – Paris does in fact have stores – but I’m pleased to say everything I’ve needed for work, and for my various jaunts around the city, have all been pretty well covered.

Someone on Slack asked about what I’m carrying for kit gear, so I decided to quickly write it up…

  • OGIO Camera bag – I got this bag something like 5 years ago, and it’s been great. It’s starting to get a little worn, but nothing is broken, and it came with a rain shroud that I’ve used a few times. It has a special pouch along the bottom specifically for camera gear.
  • Macbook Pro 13 – this is my every day computer. I don’t have a desktop machine at home.
    This is both my work and my personal machine. I’m typing on it as we speak!
  • Camera Flash – A small electronic flash for my Olympus
  • Memory cards – This bag contains about 20 memory cards – some USB3, some SD, a few microSD cards, and adapters. I used to have a specialized plastic case for cards, but there’s no reason to keep them that organized. Just toss ’em in the bag.
  • Earplugs – These are wax custom forming earplugs. I’ve used them on overnight plane flights, or in hotels that are just Too Damned Noisy
  • Macbook power supply – The smallest configuration I could get
  • Checkbook – Yes, there’s circumstances where I may need to use a check. I will probably just pick a few checks off this and put them in my wallet soon.
  • My journal – I have a journal. This was a gift from my sweetie – it’s about 3/4 full of a lot of dense writing. I find the act of writing in it cathartic. It slows me down and lets me think without all the geekery
  • Brainwavez Delta IEM Headphones – This is my second set of these (and I’m using them right now). They’re still fantastic sounding, and roll up into a nice light zippered case. The only reason I replaced them was the laptop fell off my lap at one point and bent the headphone connector all out of whack. Oops
  • Yes, I carry a rubiks cube around. It’s a great fidget toy, and a great way to relax. Also tends to start conversations. Best time right now is 1 minute 14 seconds for a full solve. But I’m out of practice, so nowadays it’s closer to 2 minutes. Also, a friend just reminded me that I sometimes use it for showing scale in a photo. Everyone knows how big a rubiks cube is.
  • Generic clip-on Sunglasses – these are a pair of clip on sunglasses I got off Amazon. They work remarkably well
  • My work ID pass
  • My passport – I don’t keep this with me all the time, just for this trip. I keep it in a buried pocket in the pack, very difficult to reach unless you’re trying hard Pickpocket proof as best I can do it.
  • Cleaning cloth for glasses – I wear glasses. I have sunglasses. Not having a good cleaning cloth at hand can be infuriating, particularly if you’re not wearing a cotton shirt or something.
  • KMASHI K-MP816 10000 mAh battery – This is critical. This battery has saved my ass a dozen times. It’s your typical portable battery pack. The reviews on it aren’t particularly stellar on Amazon, but for $12, I’ve totally gotten my money out of it. It’s a good balance between weight and capacity.
  • LKY DIGITAL Travel Adapter – This is a nifty little cube (it’s int he black zippered case) that has also been a godsend. It is a multi country adapter, able to plug into most European countries, as well as Japan and others I don’t know about. The real kicker is it has 2 USB charging ports on it also, so at night I can plug in my laptop, my cell phone, and my watch for recharging (or my travel battery), and have enough plugs for them all.
  • Apple Displayport to Ethernet adapter – Sometimes you’re in a place where the wifi just plain sucks or isn’t available (like a datacenter).
  • Charge cable for my Android Smartwatch
  • WMZ Multi Charger Cable – I love this thing. It’s a single USB cable with 3 ends on it. Lightning, Micro USB, and USB-C. It’s pretty rare I need more than one at a time, but I have a very good cable in case I need to charge my SO’s iPhone, or charge my KMASHI battery. My phone uses USB-C, so I’m all set no matter what I need. The cable itself is very well built, with a little velcro keeper and everything.
  • A spare small USB multiport charger, just in case.
  • Gerber Bear Grylls Compact Multitool – So, this is a bit of a problem. This is a very small (and inexpensive) multitool that I like to have with me, because having a multitool is handy. I normally carry that inside the Altoids tin with the rest of my ‘support stuff’, but out of the last 10 plane flights, two of them have been pulled out by the TSA and confiscated. Now what I do is take the multitool out of my bag and put it in my checked luggage (if I’m bringing some). If I don’t have checked luggage, I leave the multitool at home. Frustrating, because this thing is tiny, and incredibly useful.
  • Altoids ‘kit’ – It’s a little hard to see in this pic, but there’s 2 altoids tins there. One is full of tasty altoids goodness. The other is a sort of emergency kit I build after reading some of the more sane prepper sites. In that second tin I carry:
    • Bandaids
    • Antibiotic ointment
    • Advil
    • A small LED flashlight
    • Some cash
    • Several rubber bands
    • Several paper clips (these things have come in handy SO MANY TIMES, I honestly cannot tell you. Seriously, carry some.
    • Some anti-itch cream
    • Alcohol wipes
  • The rest of the items are specifically for my Olympus PEN-F Mirrorless Camera. A note here – this is the first long trip I’ve taken with the smaller camera, and I LOVE IT. I’m already having ideas for different lenses to carry but my current set is working quite well.
    • Spare lens caps
    • Olympus 25mm F1.8 Lens – The equivalent of the standard ‘nifty fifty’ lens so common on 35mm bodies. It’s been okay for my work, though I think I’d like faster glass.
    • Spare batteries and charger. I carry 3 batteries with me, because I’m almost ALWAYS having one go down, so having one to switch to that’s fresh, and one in the wings is great They charge pretty fast, so keeping them all charged isn’t much of a challenge.
    • Panasonic Lumix 20mm F1.7 Lens (on camera) – A great landscape lens. Flat and easy to work with, great for scenery and tourism shots!
    • Olympus 40-150mm Zoom Lens – This is equivalent to a 300mm lens in the 35mm body family. It’s great for doing ‘long lens’ work, and is extremely light.
    • Olympus PEN-F Mirrorless Four-Thirds Camera – See my other blog post about this camera, but this is now my everyday shooter. I love it.
    • Leather case for PEN-F – I freely admit one of the reasons I got the PEN-F was it’s retro styling. This brown leather case completes the image, and of course works really well protecting the camera. I leave the lens cover off when carrying it around on shoots, and bundle it up when it’s on it’s way any long distance (like on a plane).

Theres naturally other stuff I have that’s not in the pic, like my cell phone, but one thing I’d like to add in is I carry a Pocketmonkey Wallet Multitool. This is a super handy thin credit card sized piece of metal that has things like a bottle opener, screwdriver, wrench, etc etc on it. I’ve used it half a dozen times, and it is 100% TSA approved (I’ve only gotten nudged on it once, where an overzealous TSA agent asked about it, took it out of my wallet, went over to confer with his supervisor, and came back “Huh, these are 100% okay. Cool!” and off I went.

I’m sure there’s stuff I’m missing. Leave a comment if you think of something I should change or get. I will probably be looking to replace my Ogio pack soon, as it’s a little long in the tooth. Something a little more outdoorsey would be nice.

Best Amazon Echo Dot Wall Mount Ever

I have 4 Echo Dots, plus a full size Echo in the living room. Love the durned little buggers, and calling out ‘alexa!’ has become a normal part of every day life. I use it for music, news, shopping lists, and home control of lights and dimmers. I can see the days of carrying on conversations with your house getting closer and closer.

The Dots are cute, but they need to sit on a surface somewhere. That takes up space and clutter. I’d been digging around to try and find a 3d printed mount or something similar so I could mount the Dots on the wall.

This morning while cleaning up my workbench, I realized there was a very simple way of hanging the dot on the wall. A pair of 3″ framing nails later, and voila. The dot is up and off my workbench, it’s stable, the speaker is cleared enough to be heard and sounds fine, victory.

I know many people dont’ have 2×6 studs exposed everywhere, but goshdarnit, this was a quicky fix that works great.

Creating Timelapse Videos from a Synology NAS

About a year and a half ago, I bought a Synology 216+ NAS .  The primary purpose was to do photography archiving locally (before syncing them up to Amazon S3 Glacier for long term storage).  The box has been a rock solid tool, and I’ve been slowly finding other uses for it.  It’s basically a fully functional Linux box with an outstanding GUI front end on it.

One of the tools included with the NAS is called ‘Surveillance Station’, and even though it has a fairly sinister name, it’s a good tool that allows control and viewing of IP connected cameras, including recording video for later review, motion detection, and other tidbits.  The system by default allows 2 cameras free, but you can add ‘packs’ that allow more cameras (these packs are not inexpensive – to go up to 4 cameras cost $200, but given this is a pretty decent commercial video system, and the rest of the software came free with the NAS, I opted to go ahead and buy into it to get my 4 cameras online).

It just so happens, in September, 2017, we had a contractor come on site and install solar panels on several houses within our community. What I really wanted to do is use the Synology and it’s attached cameras to not only record the installation, but do a timelapse of the panel installs. Sounds cool, right?

Here’s how I did it.

The Cameras

The first thing needed obviously were cameras. They needed to be wireless, and relatively easy to configure. A year or two ago, I picked up a D-Link DCS-920L IP camera. While the camera is okay (small, compact, pretty bulletproof), I was less than thrilled with the D-Link website and other tools. They were clunky and poorly written. A little googling around told me “hey, these cameras are running an embedded OS that you can configure apart from the D-Link tools”. Sure enough, they were right. The cameras have an ethernet port on them, so plugging that into my router and powering up let me see a new Mac address on my network. http://192.168.11.xxx/ and I got an HTTP authentication page. Logging in with the ‘admin’ user, and the default password of… nothing (!), I had a wonderful screen showing me all the configuration options for the camera. I’m in!

First thing, natch, I changed the admin password (and stored it in 1Password), then I set them up to connect to my wireless network. A quick rebooot later, and I had a wireless device I could plug into any power outlet, and I’d have a remote camera. Win!

Next, these cameras needed to be added to the Synology Surveillance Station. There’s a nice simple wizard in Surveillance Station that makes the adding of IP camera pretty straighforward. There’s a pulldown that lets you select what camera type you’re using, and then other fields appear as needed. I added all of my cameras, and they came up in the grid display no problem. This is a very well designed interface that made selecting, configuring, testing, and adding the camera(s) pretty much a zero-hassle process.

If you’re planning on doing time lapses over any particular length of time, it’s a good idea to go into ‘Edit Camera’ and set the retention timeperiod to some long amount of time (I have mine set to 30 days). This’ll give you enough room to record the video necessary for the timelapse, but you won’t fill your drive with video recordings. They’ll expire out automatically.

At this point you just need to let the cameras record whatever you’ll be animating later. The Synology will make 30 minute long video files, storing them in /volume1/surveillance/(cameraname).

For the next steps, you’ll need to make sure you have ssh access to your NAS. This is configured via Control Panel -> Terminal / SNMP -> Enable ssh. DO NOT use telnet. Once that’s enabled, you should be able to ssh into the NAS from any other device on the local network, using the port number you specify (I’m using 1022).

ssh -p 1022 shevett@192.168.11.100

(If you’re using Windows, I recommend ‘putty’ – a freely downloadable ssh client application.)

Using ‘ssh’ requires some basic comfort with command line tools under linux.  I’ll try and give a basic rundown of the process here, but there are many tutorials out on the net that can help with basic shell operations.

Putting It All Together

Lets assume you’ve had camera DCS-930LB running for a week now, and you’d like to make a timelapse of the videos produced there.

  1. ssh into the NAS as above
  2. Locate the directory of the recordings.  For a camera named ‘DCS-930LB’, the directory will be /volume1/surveillance/DCS-930LB
  3. Within this directory, you’ll see subdirectories with the AM and PM recordings, formatted with a datestamp.  For the morning recordings for August 28th, 2017 ,the full directory path will be /volume1/surveillance/DCS-930LB/20170828AM/.  The files within that directory will be datestamped with the date, the camera name, and what time they were opened for saving:
  4. Next we’ll need to create a file that has all the filenames for this camera that we want to time.   A simple command to do this would be:
    find /volume1/surveillance/DCS-930LB/ -type f -name '*201708*' > /tmp/files.txt

    This gives us a file in the tmp directory called ‘files.txt’ which is a list of all the mp4 files from the camera that we want to timelapse together.

  5. It’s a good idea to look at this file and make sure you have the list you want. Type
    pico /tmp/files.txt

    to open the file in an editor and check out out.  This is a great way to review the range of times and dates that will be used to generate the timelapse.  Feel free to modify the filename list to list the range of dates and times you want to use for the source of your video.

  6. Create a working directory.  This will hold your ‘interim’ video files, as well as the scripts and files we’ll be using
    cd 
    mkdir timelapse
    cd timelapse
  7. Create a script file, say, ‘process.sh’ using pico, and put the following lines into it.  This script will do the timelapse proceessing itself, taking the input files from the list creatived above, and shortening them down to individual ‘timelapsed’ mp4 files. The ‘setpts’ value defines how many frames will be dropped when the video is compressed. A factor of .25 will take every 4th frame. A factor of .001 will take every thousandth frame, compressing 8 hours of video down to about 8 seconds.
    #!/bin/bash
    
    counter=0;
    for i in `cat /tmp/files.txt`
    do
        ffmpeg -i $i -r 16 -filter:v "setpts=0.001*PTS" ${counter}.mp4
        counter=$((counter + 1))
    done
  8. Okay, now it’s time to compress the video down into timelapsed short clips.  Run the above script via the command ‘. ./process.sh’.  This will take a while.  Each half hour video file is xxx meg, and we need to process that down.  Expect about a minute per file, if you have a days worth of files, that’s 24 minutes of processing.
  9. When done, you’ll have a directory full of numbered files:
    $ ls
    1.mp4
    2.mp4
    3.mp4
  10. These files are the shortened half hour videos.  The next thing we need to do is ‘stitch’ these together into a single video.  ffmpeg can do this, but it needs a file describing what to load in.  To create that file, run the following command:

    ls *.mp4|sort -n| sed -e "s/^\(.*\)$/file '\1'/" > final.txt
  11. Now it’s time to assemble the final mp4 file.  The ‘final.txt’ file contains a list of all the components, all we have to do is connect them up into one big mp4.
    ffmpeg -f concat -safe 0 -i final.txt -c copy output.mp4
  12. The resulting ‘output.mp4’ is your finalized video.   If you’re working in a directory you can see from the Synology desktop, you can now play the video right from the web interface.  Just right click on it, and select ‘play’.

Here’s two of the three timelapses I did, using a remote camera in my neighbors house.  Considering the low quality of the camera, it came out okay…

This entire tutorial is the result of a lot of experimentation and tinkering.  There are holes, though.  For instance, I’d like to be able to set text labels on the videos showing the datestamp, but the ffmpeg that’s compiled on the NAS doesn’t have the text extension built into it.

Let me know if you have any suggestions / improvements / success stories!

Handheld Retrocomputing Collection and Display

Okay, so everyone loves retrocomputing stuff.  Looking at a piece of equipment or an item and going “Gosh I remember using one of those ${back_in_some_day}.” Well, I finally decided to formalize my collection a bit, and set some goals for myself.

I’ve decided to focus on handheld computing devices that had a significant impact on the industry, or I have a special emotional connection with.  Handhelds in particularly are attractive because, well, I don’t have a lot of space.  So while I’m sorely tempted to collect Apple II’s, old CP/M machines, and DEC minicomputers, living in an 800sq ft townhouse makes that a practical impossibility.

So I’ve focused on handhelds.

It became quickly apparent that I’d need a place to store and display them.  My partner had a glass fronted wooden display case that was a good starting place.  It had a storage space underneath it for boxes and cables, and nice glass windows on the front.  I had some custom glass shelves made to replace the wooden interior shelving, and installed some LED lighting across the top.  With everything done, I was able to put all the things I had (so far!) into it, and it doesn’t look too bad!. (Here’s what it looks like with the doors closed.)

Many of these were items I already owned, but I’ve fleshed things out a bit with finds from eBay and other auction sites.  So far, here’s what I have.  All items work, and have functional batteries, except where noted.

  • Apple Newton Messagepad 2000.  (1995)
  • Palm Zire M150 (2002)
  • Atari Lynx (1989)
  • Palm Treo 750 (Sprint) (2006)
  • PalmPilot (1996)
  • Compaq IPAQ (2000)
  • Sharp Zaurus 5500 (2002)
  • Radio Shack TRS-80 Model 100 (1983)

I hope to expand the collection going forward.  Here’s my current wishlist:

  • Atari Portfolio (first palmtop computer running DOS!)
  • Newton Messagepad 2100 (the best of the breed, and the equivelent of the unit I used to have)
  • Apple eMate 300 (This is pushing the bounds of a ‘handheld’, but they’re amazingly cool devices regardless)
  • Toshiba Libretto (I used these when i worked at Wildfire, and remember them fondly)
  • IBM Simon – This was the first real ‘smartphone’.  I used one for a while, and ended up either giving it away or selling it.  They’re scary rare now, I’m kicking myself for tossing it.

If I do end up getting these things, I may need to expand my cabinet.  But right now, I’m pretty happy with what I’ve got.

Update: I now have a page specifically for the collection.