outsourcing your work as a captcha

I guess everyone’s seen the robot test captcha thing on Google these days. If you try to use their websearch engine too fast, then you’ll soon be proving that you’re not a script that’s running on some spammer’s computer.


Often, though, you’re then next asked to select which squares have store fronts, or doors, or signs or food.


And of course, since we want that content, we dutifully “prove” that we’re not a robot. But—and I realize this might sound a little cynical of me—what if we’re actually being forced into conscripted labor, as if we were Google’s robots?

What if we’re actually being forced into conscripted labor, as if we were Google’s robots?

Try to follow along…

Amazon Mechanical Turk

Amazon has a variety of services within the AWS space. The one I’m thinking about at this moment is their Amazon Mechanical Turk. If you have a computer and Internet and want to make some money doing (usually) mundane tasks, then Amazon will pay you to do so.

For instance, Amazon might pay a hundred people to look at one image after another and to indicate/highlight where in the image they see a sign or a store front or whatever it is that Amazon needs highlighted. Humans are great at this. Artificial intelligence applications are getting there, only it takes a supercomputer these days in order to do these tasks.

What if Google doesn’t want to use their supercomputers nor wants to pay anyone to do object recognition either?

Google Maps Streetview

Google’s mapping featureset with Streetview represents a way for them to make a lot of money. And their collection of project managers would love to know where storefronts are within all that captured data. (Imagine that they’ve paid drivers to drive around a car with 360° cameras.) Because behind every storefront is a business who could pay Google money for placement within Google Local.

Now, Google has datacenters with plenty of available processing power to do this. But what if… they’re using us instead.

Think about it, we’re asked to identify objects within photos (which look like they’re taken from the Streetview data) and we’re being asked to identify things (businesses) which could make Google money or things (signs) which could be used in mapping directions.

Call me cynical but Google is looking a little guilty on this one. Why aren’t we identifying the squares with puppies in them? Because puppies don’t buy listing upgrades, that’s why.


don’t make me clamp you… (part 2)

You wouldn’t believe the difficulty I just had getting Autodesk Fusion 360 to do what I’d thought would be trivial: I wanted to cut down an existing part from Thingiverse to meet my needs.

Thingiverse ≠ OpenSource

The first thing I learned yesterday from this is that—even though Thingiverse seems like a wonderfully collaborative place—it isn’t actually open-source. If this were open-source, then in addition to the mesh (STL) files that are shared, each author would also include their project file as well (DWG, for example).

Don’t get me wrong, Thingiverse allows people to share their work. And yet, it isn’t the same as github which allows someone to take 100% of what you worked on, tweak it and then share that as well. It’s this iterative modification that makes open-source so powerful. And the reason behind that is that each new person doesn’t have to start from scratch.

CAD Project File

A typical computer-aided design file will include a variety of information. Most, though, are built around the concept of an initial sketch in two dimensions with a variety of measured constraints, for example. One then brings that 2D sketch into the third dimension and suddenly you have a part.

If you’d like to then edit the sketch or change the height of the sketch in that third dimension, you’d need to have that project file. (Thingiverse does not share project files.)

Mesh File

At the end of a design session, it would be necessary then to export that part into a 3D model which is usually a collection of points and triangular faces. The sum of these describes a solid in 3D space. (These STL files are shared on Thingiverse.)

Toolpaths File

Once you’ve exported your own design to an STL file (or you’ve downloaded one from someplace like Thingiverse), the file is taken into software like Cura if you’re trying to print to a 3D printer. This is known as “slicing” since it’s Cura’s job to know your printer well enough that it may slice your part from the bottom, up. Each layer then is converted into a number of instructions called G-code which tells the printer exactly what to do at every step of the way. (Thingiverse does not share these files either.)

Autodesk Wants You to Design in Autodesk

It was clear from my initial interaction with Autodesk’s support that they don’t want you to work using other software. They want you to start over and redesign your part in their software. Given that they charge $40/month to use the software, it’s easy to see why.

They actually do support the conversion of a mesh file into your project file in such a way that you can cut it, for example. They just hide the feature as an Easter Egg; only after turning off project journaling (Time Line) can you see the Mesh-to-BRep option. Granted, the program became painfully slow using this feature since it was grappling with about 50,000 triangular faces. Eventually, though, it processed the mesh file and I was able to apply the cutting action to remove some of the clamp from Thingiverse.

Progress So Far

Knowing that I could further modify the C part of the clamp should I need to, I then set the first of two prints into motion.

With the standard white PLA filament in the printer, I was able to print this in just over twelve hours last night. It’s a collection of eight screws plus their respective protector caps for the ends of those ball points. And tonight, I’ll print the C-shaped parts in black carbon fiber PLA for its added strength. (I’ll need to break them away from the adhesion raft, of course.)


In case you’re wondering, I had to laboriously place each of the sixteen individual parts into Cura’s workplace, carefully including enough space between them. The tighter you bunch them, the less movement the printer will have to do and the faster it will print. Get them too close and the extruder might bump into one of the other parts or perhaps merge two parts together.

As you can see from the slight bit of raft curl on the right side in the second photo, these clamps in theory will do a nice job of holding the raft down into the bed for the first inch or so of the part’s printing. In some cases, they should save what would otherwise be a failed printout.

don’t make me clamp you…

Trying to push the envelope in print volume on the Robo C2 printer, I’m finding that the part wants to curl on the bed (since the latter isn’t heated). Hmm…


This is a common occurrence, I understand.  It’s due to the uneven temperatures of plastic on the bed versus the new (hot) layers of added plastic. To get a part this big, I actually had to lie to the software and to suggest that the printer has a bigger range than this. This sort of tweaking is commonplace.

Hairspraying the bed is a known gimmick for 3D printing, but as you can see, the painter’s tape is well-stuck to the part.  Instead, I’m thinking of 1) printing the raft at the bottom, 2) pausing the print at this point, 3) removing the bed, 4) applying clamps around the edges and finally, 5) resuming the print job.

Tool-Making 101

From my experience in a plastic manufacturing plant, I learned that if something doesn’t work:  modify it, build a helper tool or change the process somehow so that it does work. Here, I’m opting to build a set of clamps to assist in the 3D print process and to insert a pause into those instructions (“GCODE”) at the proper moment.

Half the battle, then, is designing and building a number of clamps.  To be useful, they should allow their placement at a variety of distances from the edges of the bed. They should hold throughout the job even if things are vibrating and moving around. They should never restrict bed movement. Since the print job goes for perhaps ten hours, they must not fail in any way if I’m not there to watch their performance.

The other half of the battle is to create something which modifies the GCODE instructions to place a pause at the right moment (as soon as the raft has been laid down). My guess is that this will look like an OctoPrint plugin. There probably already are a number of plugins which pause at a particular z, meaning that they will pause the print job when it comes to a particular vertical layer. I was thinking that I might invent a different approach somehow in this space but I’ll see what I can come up with. I like the concept of pause after raft, though, and would imagine that this would be useful enough to others.

This should save a lot of print jobs from curl, I hope. And that should translate into a lot of money saved in filament, as well as time.


keeping your pi cool

An average computer’s operating system maintains some logistics about the cpu, like its input voltage, temperature and the like. The Raspberry Pi single board computer is no exception and will even scale back its speed if it determines that its internal temperature is getting too high. That’s a good thing but another approach is to proactively cool the cpu with a fan when it’s approaching that threshhold.


Since I’m creating a cube-like chassis to hold four of these Raspberry Pi 3 computers, I’ll soon need this functionality. So I’ve just created a new repository with JavaScript code to return the cpu’s temperature in fahrenheit/celsius as a string or a number. One could then programmatically turn on/off a fan using the GPIO pins using this information.

Here’s that repository:  raspi-temp

3d cover for the pi noir camera

Using the (included) industrial-grade Autodesk Fusion 360 software, I was able to design a part for my Robo C2 printer. It’s a cover and mount for the Raspberry Pi NoIR v2 camera (8MP resolution @ $27). I picked up several cheap suction cups (@ $0.99) from Ace Hardware yesterday and used a digital caliper to carefully measure the distances all around. I’ll sand it a little to make it smooth; the photos below is what it looks like after removing the raft and supports (throw-away extras to make everything print correctly). The jaggies inside the suction cup slot I’ll leave since they’ll grip tightly. I’ll likely also keep some of the jaggies in the fitting between lid and base for the same reason.

I’ll still need to receive the longer cable from Adafruit for this to work so I haven’t snapped down the parts firmly yet. In the meantime, I might create a ribbon clip with a second suction cup (editing the money clip from an earlier post).

If you’d like the STL files for the part now, let me know and I can shoot you the URL for those but I’ll eventually write up a step-by-step tutorial on the full upgrade to adding the video feed capability.



a robot which builds robots

I suppose the problem with buying a 3D plastic printer is that it makes the owner imagine all sorts of modifications to that very same printer, especially so when it’s largely open-sourced in the first place.


I must admit that owning this Robo C2 printer has been a blast. I’m now past the let’s print some demos phase to the let’s print our own designs next step. And part of that design process is envisioning a better printer from this one. And what better way to modify it than printing some 3D parts, right?

So, here’s a list of some of the current things I’m doing with it.

Sound Events

It’s a wonderful printer and often, just because of the sounds you get from its collection of servo/stepper motors, it vaguely sounds a bit like R2D2, the cute robot of Star Wars fame. I’m working up a modification to add sound events from a variety of Star Wars WAV files related to R2D2.

As themes go, the movie Iron Man includes an AI character named J.A.R.V.I.S. (as voiced by Paul Bethany) who had some fun dialog with the Tony Stark character (as played by Robert Downing, Jr.) I’ve often thought that it would be sweet to add a sound event theme set based around Paul Bethany’s voicing of J.A.R.V.I.S. as well.

Video Feed and Time-Lapse Photography

I’ve just picked up a Pi NiOR camera which I’ll be adding to the printer. Next, I’ll need a longer ribbon cable, some suction cups and a designed/printed part to hold the camera itself inside the chassis.

Given the resolution of the camera, I’ll likely need to upgrade the microSD card inside to accommodate the files from the streaming activities.

Enhanced Spool Feeder

The out-of-box spool feeder seems a bit minimalistic to me. I’d like to upgrade that with a feeder which allows the spool to spin more freely. I imagine that the part needs to be more rounded at the top.

Heated Bed

The Robo C2 doesn’t include a heated bed in its design like some of its more-expensive Robo alternatives. So I’d like to machine an aluminum bed with a heating element and add this to the system.

Side-to-side Conveyor Bed

The maximum build size for the Robo C2 is a mere 5″x5″ square at the base so that’s a bit restrictive. There are techniques for joining a series of smaller parts (say, to make a sword) but I’m guessing that a possible approach is to remove the two blue side windows and rig up a conveyor system which is accurately positioned left/right as required. In this way, a very long part could be printed.

Remote Control via Joystick

I’ve purchased a Raspberry Pi Sense Hat which includes a small joystick control. I think I’d like to write something so that, using remote GPIO, I could then control the stepper motors of the printer indirectly via wi-fi.

OctoPrint Plugins

The underlying web server which runs on the printer is called OctoPrint and since it’s open-source, there are a variety of plugins for this already. I think I’d be interested in writing some plugins, especially so that someone may pause jobs in the middle so that internal components may then be assembled inside.

I’ll likely add some SMS notifications so that I can remotely know how a print job is going.

Voice Control

I also like the idea of adding voice control to the printer. How awesome would it be to just tell the printer to do something?

So basically, since the Amazon Alexa code is completely available and can be setup on a Raspberry Pi 3 computer, I can imagine then interacting with this piece (as installed on a Raspberry Pi) and having it direct activities on the printer itself.

traveling at the speed of open-source

pull request:  An external-repository modification to someone else’s code which you’d like them to adopt into the master copy of the original repository, specifically the notification request to ask for this.

It’s funny, I put in a pull request in March of this year for a timezone calculation bug which I’d discovered somewhere out there in someone else’s code.  I guess I was trying to be a good net citizen and giving back to the community.  I’d forgotten completely about it until now.  The original author merged my commit into his code yesterday and blessed it, basically.  This would actually be my very first pull request in the world of open source so I suppose that’s special in some way.

In this particular case, it took the author almost three months to see the request and get around to responding to it.  Granted, few of us would be paid to maintain our open-source repositories so they’re usually just considered hobbies for most of us, something we do in our spare time.

As a coder with many decades of experience, this pacing is a bit odd to me.  (As in, “wow, three months to bless a quick-and-dirty code fix”.)

I’m not complaining…  Okay, maybe I’m complaining.  Maybe I was just a bit naive to the average amount of effort people are putting into this.

The entire collective force of open-source is something to behold.  Almost every day some huge effort is being launched and thousands—even millions—of downloads occur from these repositories.  But what happens to the original codebase when the author gets side-tracked with their next great idea?

But what happens to the original codebase when the author gets side-tracked with their next great idea?

The New, New Thing

All this reminds me of the biographical book “The New, New Thing” about a serial-entrepreneur, Jim Clark (of Netscape fame).  The biography doesn’t really paint a pretty picture of the billionaire, instead suggesting that he was perhaps suffering from Attention Deficit Hyperactivity Disorder (ADD) or possibly Hypomania.  He couldn’t focus on a project after the second year, opting to push the work onto others and move to the next project.

I guess I have to ask what part this plays in the world of open-source software.  As an inventive person, I stare at my To-Do list of project ideas and realize that it could be argued that this is some mark of my own internal restlessness.  Could I be content working on one project for year after year?

I’m a former CEO and at one time I did run a software development firm for nine years.  Fortunately, though, I had project after project then to develop so that kept things lively. I’m impressed by those who literally spent most of their lifetime devoted to a single project.

A Lifetime of Service

Dr. Royal Rife comes to mind as one of these people.  He was curing cancer and a variety of diseases back in the 1930 decade but he spent much of his life before this inventing the microscopes and medical device equipment which he would use in the culmination of his life’s achievement.  His original home site is now the location of one of the Scripps hospitals here in San Diego but seemingly nobody knows his story.  He spent a lifetime curing cancer and he isn’t famous for it.

I guess we as a society aren’t really conditioned to reward and remember someone who did one thing very well.  To be famous or respected now, presumably you have to produce project after project, never satisfied with the maintenance of same, always chasing the next big thing.

If You Build It, Own It

I guess my word of caution in the world of open-source then is to own what you’ve built.  Try to revisit it from time to time, like you might keep a plant alive by watering it once in a while.  Do new things, of course.  But don’t forget that your last thing could actually be ticket to your success.

taking the bite out of stamps.com

Stamps.com offers an online service in which you can digitally apply postage to an envelope.  They even include a nifty/free digital scale to attach to your computer.


The problem of course is that in order to make back the cost of that “free” device, Stamps.com wants to charge you on a monthly basis to use this service and most people decide that it’s not worth those charges.  I often see these sitting idly on someone’s desk and it’s only useful for measuring the weight of something.  Without their service, you’d then need to manually lookup the postage and then count the right number and types of stamps.

I’ve written a Windows program which will do all that for you, weighing the envelope, calculating the postage and letting you know how many stamps of which kind to put on it.


Here is the new repository on github.com.  You can run it directly or build the program yourself if you have a copy of  Visual Studio, to include the free Community version.  Your computer will need the .NET Framework 4.5.2, for what it’s worth.

autodesk fusion 360

The new Robo C2 comes with a one-year trial of CAD software which appears to be none other than the probably-expensive Autodesk Fusion 360.  It looks like it allows you to design a part, engineer & simulate forces as well as to create tool paths (slice) a part for 3D printing, for example.  I’ve been attempting to use the open-sourced FreeCAD but the learning curve has been slow for me and I’ve run into some Mac-related bugs when attempting to create a screw thread, unfortunately.  So I hope to give this trial software some of my attention to see if I can design some parts.


First Thoughts

Wow.  It’s just a beautiful interface.  It starts things up with a clean working space set in a useful 3D perspective.

Because of the barren space they’re trying to create, Autodesk has pushed the typical  File -> Open commands off into a hidden panel.  It’s that tic-tac-toe menu icon in the upper left.  Opening this, I’m guessing that there is some kind of change control software running since they have indicators for “master” (branch), View Project History, Branch / Merge Options, Upload files from your desktop.  So perhaps they store all your files in a cloud-based repository, if I’m guessing correctly.  Additionally, there is built-in support for team members.

From what I’m seeing, there are no example files typical of a design program.  Still within the Data Panel, pressing what I thought was a “back” triangle, I’m now seeing a different collection of options:  My Recent Data, Demo Project, My First Project and then under Samples, Basic Training, CAM Samples, Design Samples, Simulation Samples and finally, Workshops & Events.  So I was wrong in suggesting that there are no samples, they’re just an Easter Egg within the interface.  Double-clicking Design Samples includes three very-sexy designs:  bike frame, lamp and utility knife.  I’m bringing in the lamp.

Viewing a Part

It takes a bit to learn Autodesk’s methods of changing viewpoint but I think I’ve got it.  By interacting with that cube in the upper-right corner, this is how you can quickly move around your part.  Note that clicking the little home symbol returns to the original perspective.  Click a labelled face of the cube, go to that perspective.  Grab and move the corner of the cube and you have the usual behavior in most 3D programs when you grab-and-move the part itself.  It feels like they only want you to click on the part when doing a selection process, so that’s probably a good idea to separate the two activities.


Selecting Something (a Sketch) to Modify

Looks like their basic building block is a Sketch (a 2D drawing) so when I click on the top of the lamp’s base, this sketch is selected.  Now that it’s highlighted, I’m clicking the Modify icon in the Toolbar.


Attempting to do a Physical Material replace didn’t seem to work for me.  The method appears to be to click on the top of the base, then shift-click each of the other two parts, then right-click to bring up a contextual menu, choosing Appearance from there.  I then changed the material to a gray aluminum.


A mere ten minutes into it and without reverting to Google searches for answers, I’ve managed to do something in here.  That’s seriously better than my results from FreeCAD.


Okay, so I just had to know how much this would cost me after the trial period.  It’s $40/month as a month-to-month subscription or $25/month if paid up-front annually ($300/year).  That’s probably worth it if you do this for a living.  Is it worth it for a standard hobbyist/maker?  That’s a tough call.  You usually end up spending your money on the hardware and consumables, to be honest.

I think Autodesk needs a notch in their software for the new world of amateurs who need to design parts.  Certainly, their three-year trial for students is awesome but that doesn’t help the rest of us who aren’t commercial.

Overall Thoughts

I guess I’ll need to go into crunch mode this year and to produce most of the 3D designs that I had in mind.  But I will circle back after one project and see if it exports nicely for other (free) softwares out there.  Otherwise, you’d be stuck in Autodesk’s business model and that sounds a bit expensive in the long haul.

robotics and you

I’ve kind of gotten into a robotics kick lately while looking for cool projects and thought I’d share some of the information with you.  We can probably thank Fab Lab for the motivation since I stopped by there recently for a visit.

I think I’d like to make a remote-control tank with an additional autonomous mode in which it drives itself.  I’d probably put a webcam on there, sensors… not sure, really.

I’m thinking that the closed ecosystem could use a shrimp pellet (food) dispensing system.  I do worry though that one of the shrimp is getting bigger and more of a bully around feeding time, for what it’s worth.  <_<

I’ve also been thinking about a re-breathing device which recaptures the moisture lost when hiking in the desert.  I’m guessing that some sort of breather like scuba gear could additionally inject moisture into the incoming air in such a way that the hiker doesn’t suffer the effects of dehydration.  Unlike the stillsuit of the Dune movie fame for recapturing sweat, I’d suggest that most water is lost by someone in the desert due to the humidity of the air we’re breathing out.  As each new dry breath is taken in, this normally is a very effective means of drying someone to their death, if you think about it. So this invention would presumably avoid this normal loss by trying to recapture that moisture or merely to insert back what is normally lost in the process.  I’m thinking that a system like this might introduce enough water through the bloodstream via the lungs that drinking wouldn’t even be necessary.  Taking this another step, what if you could introduce sugars and nutrients into the mist?  If you google “parenteral nutrition” you can see that someone can be fed intravenously through an IV.  You’d have to balance pH, osmolarity and lipid content of the “food” (glucose, protein and lipids) to make this work and it would need to be sterile.  Something to think about…

So, another trip to Frye’s.  Here’s what I snagged, along with some follow-up research.


There’s an awesome company named OSEPP which makes Arduino-compatible robotic parts, accessories and even kits.  Frye’s Electronics appears to be carrying some of their stuff now which is good if—like me—you don’t enjoy having things shipped from somewhere else.

I just picked up their Tank Mechanical Kit as well as a Motor & Servo Shield and a Motor Driver Module.  I’ve put the tank together and it looks wonderfully sturdy since it’s made out of aluminum for the most part.  Even though it was intended for the Arduino, I’ll drive it with a Raspberry Pi Zero W, probably.  I also got a Joystick Module which I’ll use on a remote, likely a Raspberry Pi 3 in this case.

Tank MotorServoShield MotorDriver Joystick


Frye’s also carries a number of parts by Actobotics which appears to be made by RobotZone (Servocity’s parent company).  They’re likely behind the system of aluminum plates with overlapping hole design often seen throughout these projects.

The demonstration photo on their website was really too big to put here but you can see it if you click this.  So they reasonably have you covered if you’re trying to build anything.  I’m thinking that it must be fun to work there.  I just picked up their 0.1227″ Pitch Plastic Chain for some future project.



Another great company within this space is Servocity.  This company has some seriously heavy-duty linear servo motors.  Someday I’d love to build an exoskeleton robotics project and these would be the servos for that job.  rawr!

Much of what’s being done now in the robotics area involves extruded aluminum channels, beams, plates, brackets and some very polished mounts, clamps and what-have-you.