Saturday, June 24, 2017

What a life!

This is a retrospective describing how fortunate I've been since first arriving in San Diego in 1975, focusing primarily on the technical aspects of my career.  I'll try to make this more of a time-line, with just enough detail to stand on its own.  I can always add more detailed posts later, if needed.

After graduating High School in the Midwest in 1974, I had no burning desire to immediately start college.  There were many issues involved, but the main one was my having no idea of what long-term career I wanted.  I needed an income, so I got some typical low-wage jobs suitable for folks without a degree, and within months decided I needed something more.

I joined the US Navy in February 1975, enlisting under the Nuclear Power Program (NPP).  At that time, four enlisted ratings (job categories) existed in the NPP: Electronics Technician (ET), Interior Communications Electrician (IC), Electrician's Mate (EM) and Machinist's Mate (MM).  My oldest brother was a HAM radio operator and had been an ET in the Navy, and I very much wanted to learn electronics.  Though I had qualified for ET, the most technically advanced of the four ratings, I was told that I would not be assigned to a rating until after I started boot camp.

I was assigned to the IC rating, which was initially a severe disappointment.  However, two factors about the IC rating combined to ease my disappointment:  First, the IC rating was responsible for equipment located throughout the ship, in literally every single part of it, covering a wide range of technologies.  Perhaps none were at the level ETs worked on, but the scope and breadth was very intriguing.  Second, IC school was in San Diego, a place of fables this Midwestern boy had never seen.

I arrived in San Diego in the spring of 1975, seeing my first palm trees as I exited the airport terminal.  I sailed through the IC coursework and totally fell in love not only with electronics, but also with electromechanical systems and the technologies of sensors and actuators.

A few months later I was sent to Vallejo, California for 6 months to attend Nuclear Power School (NPS) at the Mare Island Naval Shipyard (MINSY).  Here I fell in love with applied physics, especially nuclear physics, thermodynamics and hydrodynamics.

After that came 6 months attending Nuclear Prototype at the Idaho National Energy Laboratory reservation (INEL) west of Idaho Falls.  I was assigned to the S5G prototype, the newest one there, and also the most technically interesting.  Unfortunately, the continuous intense effort required exhausted me just before the end, and I was unable to meet graduation requirements.

As my friends and classmates moved on to their new duty stations, I stayed behind while a place in the regular (non-nuclear) fleet was found for me.  During this time I learned about non-destructive testing (NDT) and the differences between quality assurance (QA) and quality control (QC).

I was overjoyed when my first choice of duty station, San Diego, was granted.  Unfortunately, the ship I was assigned to, the USS Blue Ridge (LCC-19), was on deployment in the western Pacific at the time, and I wouldn't get back to San Diego for several months.  This was not a bad thing!  I flew out to meet the ship in Japan, and had lots of shipboard time underway without the distraction of trying to have a life ashore.  This let me focus on quickly learning my new responsibilities.

I also had the opportunity to learn about many of the ship's other ratings and their equipment.  The Blue Ridge was a command ship, and had a large computing suite that was exceeded only by those on aircraft carriers.  I learned hands-on programming of the CP-642B mainframe system, and I instantly knew I wanted my future professional career to include computers.

At the time, the IC rating seemed more like a "catch all" rating for equipment that doesn't quite fit within the responsibilities of other ratings.  Two critical pieces of equipment we were responsible for were the ship's gyrocompasses.  Our current gyro technician was scheduled to leave the ship, and since a replacement was not readily available, I was selected to attend Gyrocompass "C" school, exposing me to yet more theory and its application.

While at gyro school, I learned about the Gas Turbine Controls school, which was training technicians to maintain and operate the Spruance class of jet-powered destroyers (the same technology used today in the Arleigh Burke and Ticonderoga classes of ships).  I applied to change over to the "Gas Turbine Systems Technician (Electrical)" (GSE) rating.

I was selected, and I was exposed to yet more new technologies.  I did very well, and was selected to the pre-commissioning crew of a brand new destroyer that would be based in San Diego.  Getting a new ship from the shipyard into active service is very demanding, and by the time all of our shakedown trials and refits and updates had been completed it was late 1979, and I had only about a year left on my 6-year enlistment.

The Navy had been exceedingly good to me, and I seriously considered becoming a "lifer", staying in until retirement at 20-30 years of service.  However, I had advanced through the ranks very quickly, and my next promotion would have been to Chief Petty Officer, a paygrade focused more on managerial, administrative and training duties, than hands-on equipment operation and maintenance.

I really enjoyed being a hands-on technician and operator, and didn't want to give it up.

Since I had the GI Bill available to me, along with some savings I had accumulated over the years, I decided to let my enlistment expire, so I could take a closer look at my future civilian career path.  I would stay in the Navy Reserves, so I could easily return to active duty should I choose to do so.

During this last year of active duty, I bought my first PC, an Apple ][+ complete with the 48K Language Card and UCSD Pascal, a massive $2000 investment in 1980 dollars (about $6000 in 2017 dollars).  Most of my programming was done in BASIC: I was impressed with UCSD Pascal, but was having problems learning it on my own.

Being in San Diego, and with the University of California at San Diego (UCSD) right here, I immediately decided that, should I choose to go to college, UCSD would get my first application.

I left the Navy and within months was soon making use of my nuclear and electronics training working at General Atomics performing factory calibration of radiation detection systems used in many commercial nuclear power plants.  I was soon working on debugging new prototype instrumentation, and soon after that I became an R&D (research and development) technician assigned to work with the division's chief researcher, who had a PhD.

Working shoulder-to-shoulder with a PhD made one thing very clear to me:  We were both equally smart, but his education permitted him to work at an amazing higher level.  I immediately submitted applications to 6 of the top engineering universities (Cal Tech, UC Berkeley, UC San Diego, Carnegie Mellon, MIT, Champaign-Urbana) and by mid-summer I had been accepted by all but one of them.  Most importantly I was accepted by UCSD, and that's the offer I accepted.

I majored in Computer Engineering, an overloaded degree program that included all of a Computer Science (CS) degree along with the digital half of an Electrical Engineering (EE) degree.  Needless to say, I soon knew I was on the "5 year plan".

I continued to work at General Atomics (GA) during school: Full-time during summers and breaks, but also part-time when classes permitted.  GA was extremely supportive: Every time I learned something useful, they'd find ways to let me use it, simultaneously give me a promotion.

I graduated from college wealthier than when I started!  This was thanks primarily to the combination of the GI Bill, the Navy Reserves, and General Atomics.  And also to UCSD, who gave me opportunities to be a paid tutor and lab proctor for lower-level Physics courses.

Leading up to my graduation in 1986, I was eagerly recruited by several top tech companies, receiving some great job offers.  Fortunately, the best offer by far was also the only one that would keep me in San Diego:  My offer from General Atomics was generous to the point of embarrassment, 30% higher than my next highest offer (which was also very generous).  GA management repeatedly assured me they felt they were getting a bargain. So of course I accepted their offer.

I continued to design and implement radiation detection instruments, and even got to get into the Navy side of things by working on the reactor control and monitoring systems for the Navy's next-generation nuclear attack submarine.

During this time I tried to get involved in work being done in San Diego by other parts of GA.  The San Diego Super Computer Center (SDSCC) was created just as I graduated, and for the next year I tried to get a position there to help bring up their new Cray XMP.  In late 1990 GA's expertise in fusion technologies lead to San Diego becoming the first home for the ITER (International Tokamak Experimental Reactor) project, and again I tried hard to join their early staff, without success.

Then our division's top-level management started making changes that made my job much more difficult.  Perhaps I had been spoiled by having "too much fun" in my career, but I decided to move on.  I first tried to transfer to another division within GA, but there were few openings at the time, so I decided to leave GA for another company that had been started by GA veterans: SAIC (Science Applications International Corporation, now Leidos).

There my radiation instrumentation experience was leveraged to build inspection systems using X-Ray and neutron beams.  In particular, I got to work on bleeding-edge technology for real-time automated video inspection systems.

By 1991 SAIC was "strongly encouraging" (pushing) me to move into technical management. I gave it a try and did well at it, but it gave me little joy. The experience convinced me I was happiest when doing engineering myself, rather than enabling others to do it.  However, having successfully entered the ranks of management, SAIC was reluctant to let me switch back to being an engineer.

Given my wide and deep experience, I decided to become an independent contractor.  I was soon working with yet more technologies and targets for embedded systems, including satellites, cable boxes, and security systems.

I was doing well, but I soon realized I sucked at marketing myself: 100% of my contracts came from referrals.  Within four years I started to encounter significant gaps without a contract.  I took some work through temp agencies to fill these gaps, but just before deciding to throw in the contracting towel and return to a "regular" job, in 1998 the "dotcom bubble" came to my rescue.

While the primary heat was up in Silicon Valley, San Diego became known as "Silicon Beach".  Our relaxed atmosphere and diverse tech community attracted many startups, and I got to help a few of them, working on an ever-increasing array of new technologies.  By late 2000 it was clear the bubble had popped, and my career as an independent contractor evaporated.

One boom I missed was San Diego's biotech explosion. Another boom I missed was the explosion in digital cellular phone technology centered around San Diego's Qualcomm.  But I did catch another important wave: High-speed digital photography.

I became part of a team designing a digital video camera capable of 100,000 frames per second.  I had two different areas of responsibility:  Color processing and the low-level camera command interface.  Both of which exposed me to yet more new theory, technology and applications.

Immediately after releasing our new camera, the company was purchased and relocated to Arizona.  I chose to stay in San Diego and was soon working for an aircraft instrument company.  While the underlying technologies were not new to me, the process of getting an instrument through FAA certification certainly was.  My prior experience in nuclear systems was primarily focused on industrial and operator safety.  Now I was directly affecting human safety: If my instruments malfunctioned, people could easily die.

A few years later I was asked to help a startup making a new radiation detection system for Homeland Security applications, so I left the aircraft instrument company.  Unfortunately, the startup folded 6 months later.

I next worked at a maker of surveillance equipment, most of whose customers were government agencies known as "TLAs" (Three-Letter Agencies, such as the FBI).  Here I got my first exposure working with digital radios, and helped design and implement a broadband point-to-point communication system for smaller UAVs, giving them the ability to handle the same sensors as the "big boys" (such as the Predator and Global Hawk), and do so without need for expensive satellite uplinks.

Since then I've gone back into contracting, both for myself and through temp agencies, and have worked in areas as diverse as cybersecurity and underwater navigation.

All this was done within San Diego, actually within a 30-minute commute from my home.  That's not a bad lifestyle!  I'm also a triathlete (San Diego is the birthplace of the modern triathlon), a volunteer swim instructor, a wanna-be musician, a volunteer supporter of local live theater, and an inveterate hacker on my home automation system and 3D printer.

If you want to find that precious intersection of a fulfilling and diverse technical career with a rich and abundant lifestyle, San Diego is tough to beat!

Tuesday, June 20, 2017

101Hero - Now Less Bendy!

As I experimented with increasing print speed and acceleration, my 101Hero would noticeably shake, twist and flex.

I looked at some of the stiffening and support solutions tried by other 101Hero owners, and to me they all felt like overkill in engineering and/or cost.

I imposed some restrictions on my solution:

  1. It must not require modifying the 101Hero itself.  No new holes, no glue, no bolts.  The solution must be completely removable.
  2. Cheap.  Like the 101Hero.
  3. It must be truly rigid, and not require fussing to make the printer geometry correct.
My solution was simple and provided the extra benefit of also serving as most of an enclosure: Clear Acrylic panels slid in the outer grooves between the pillars/pylons.

My Setup
The Acrylic
The Printer
The acrylic panels had to be about 3 mm thick to be strong enough not to bend and actually add rigidity to the printer.  That's also about all that will fit against the pylons and still leave room for the slides to travel freely.  But the groove width was only about 1.5 mm away from the ends.

So I made three 304.8 mm x 18.5 mm panels from 3 mm acrylic.  Then I reduced the edge thickness to 1.5 mm, and added a 60° bevel on each long edge.

The above pictured aren't very good (need a macro attachment for my phone), but they should get the point across.

The printer is now amazingly rigid!

You'll also notice the $5 Walmart fan up against the pillar: It provides less cooling than it did before adding the panels, but it seems to be enough.

Saturday, June 17, 2017

A Better Temperature Tower

I finally printed a custom temperature tower that shows the useful "indicated" temperature range for my Ziro Gold PLA filament. The following images show the high temperature to the right, as indicated by the grainy surface, to the low temperature on the left, as indicated by the under-extrusion.




The "Sweet Spot" for this filament is an indicated temperature of 180C.  I did some test prints at 175C and 170C, and the layer adhesion was detectably weaker at 170C.  And the stringiness at 180C was much reduced compared to that seen at 185C.

I want to stay far away from possible layer adhesion issues, so I picked 180C as my new default temperature for this filament.

And here's my Benchy printed at 180C with 0.4 mm nozzle and 0.18 layer height, next to the $5 WalMart 5" desk fan I had blowing on it during the print:


The Benchy had some cotton-candy strings on it, most of which I removed prior to taking the picture.  The biggest differences compared to my prior Benchy are that 1) the stringiness is massively reduced, 2) much more detail is present around all holes and openings, and 3) the smoke stack is just about perfect, which is due to the fan.

While this is a massive improvement, all is not yet perfect.  Tall, thin items, such as the Eiffel Tower, still have a bit more stringiness and a bit less detail than I'd prefer, but I'm attributing that to not having a fan right at the nozzle.  An off-printer fan certainly helps, but it doesn't fix everything.

I really need to dig into the 101Hero Marlin firmware to fix a few things, most importantly the temperature sensor calibration, and also some minor delta geometry tweaks.

Unfortunately, the 101Hero folks have so far failed to identify the Marlin version they are using, along with the configuration files.  That's not only a violation of the GPL, but also a PITA for 101Hero users who simply want to make the printer perform better.

Thursday, June 8, 2017

Moron, the Little 3D Printer

Wait.  Did I mean to say "More on the Little 3D Printer"?

No.  No I did not.

My 101Hero has no idea what it's extruder temperature actually is.

The highest possible indicated extruder temperature is 208C. That's as hot as it goes when I set a temperature of 208 or higher.

The internal (firmware) low temperature cutoff is set for about 178C, meaning you get a "Low temperature extrusion prevented" message when trying to print at that temperature or lower.

The Ziro gold PLA filament I'm using has a recommended temperature range of 190C-220C, a range of 30C.  The test prints for the 101Hero all seem to use a temperature of 203C, and with the Ziro filament, the test prints I tried all printed with a dull, sandy finish.

From what Google tells me, dull PLA means over-temperature, essentially cooking it into a runny, stringy mess.

By experimentation, I found that a setting of 185C yields much better-looking prints.

I wanted to understand the accuracy of the temperature indication on my 101Hero 3D printer.  So I chose the Customizable Temperature Calibration Tower from Thingiverse, configured it to cover the range from 208C down to 164C by steps of 4C in a height of 96 mm, which is 12 steps of 8 mm each.

I downloaded the customized model and installed the "Vary Temperature With Height" Cura plugin that came with it.  I then opened the STL file in Cura, selected the plugin and set its values to match the model configuration.

I set the layer thickness to 0.18", with no infill and no top, with only a one-layer base, with a wall thickness of 0.80 (2 layers), and with a starting temperature of 208C.

Then I saved the GCode and started the print.  Which abruptly ended when it tried to print the step at 176C.  Because that value is less than 178C. So instead of printing, it generated countless "low temperature" error messages.

I aborted the print, selected Start/End-GCode -> end.gcode, then inserted an "M302" command to be the next-to-last command in the file.  This command disables the "low extrusion temperature" logic.

I then saved the GCode again and restarted the print, with the following results:

The temperature scale, with hot on the left (bottom) and cold on the right (top).
The legend side, which says: "101Hero / Ziro Gold PLA"
The step test side.
The smooth side.
First, it is important to note that all layers in this test were well bonded together: I tried twisting the tower, and none of the layers separated.  This could be due to having a 2-layer wall - perhaps a single-layer wall would have been a better test, but I wanted to allow lots of time for the temperature to settle early in each step.

Update: I did a single-wall print, and it was very similar to the double-wall, but easier to test the wall quality. Again it was remarkably consistent, with the 184C region maybe being slightly superior.

It is clear that the left end is rough and grainy, a sign of overheated PLA filament. The graininess is not present at (indicated) temperatures of 192C and below.  Ideally, the coolest layer of a temperature tower should show some blobiness due to partial filament melting.  This tells me that I need to repeat the test down to even lower (indicated) temperatures.

The step test side looks best at 184C, though it really doesn't look bad in any of the other steps.  This is the only clue I have that my guessed temperature of 185C is anywhere close to ideal.

If we say an indicated temperature of 185C is near the middle of the range given on the spool label, then the actual extruder temperature is closer to 205C, an error of 20C!

Bottom line, the indicated temperature reading of my 101Hero is insane.

Which doesn't really matter: It's just a number!  So long as I know the right number to use for my prints, it's not a problem.

The lesson here is to always print a temperature tower for each new filament.

Next test: A Speed Calibration Tower.  I've been printing everything at a rate of 10 mm/s because that's what most users have recommended.  But how fast can the 101Hero go, and how bad does it get with increasing speed?

Monday, June 5, 2017

Tiny, Cheap 3D Printer Working!

My ultra-inexpensive 101Hero 3D printer arrived about a month ago with a bad motor.  Fortunately, another owner had started a group-buy for better replacement motors, which I joined, and which had arrived just before the printer.  I replaced the bad motor, though I had to swap the pink and orange wires in the connector to get it to rotate in the right direction.  I probably should replace them all, but I want to see how long the other two original motors will last.

I covered the build plate with the horrible yellow masking tape that came with the printer, because the blue tape I had was dried out and I didn't want to wait to get more.

I set up Cura using the 101Hero config file provided by the manufacturer.

Next, I followed the abundant setup advice on the 101Hero User Forum (the site is independent of the 101Hero manufacturer).

I added rubber bands to the arms to reduce the looseness/shakiness of the print carriage.  The arms are so flexible that putting the rubber bands in the middle caused bending (which would throw off the geometry), so I put them up near the top of each arm pair.  The rubber band tension was as low as I could get it and still have them stay in place.

I did a few 1-3 layer prints to calibrate the printer (and use up some of the questionable white filament that came with it).

Despite the print bed being level and at the right height, I still had adhesion issues, so I made the first layer 50% thicker (rather than do a brim or raft).

I then switched to this inexpensive PLA filament from Amazon because I could get it delivered the same day for free (via Amazon Prime).  It came well packaged, including a zip-lock storage bag.

Then I tried my first "real" print, a tiny phone stand.  The print is completely functional, but is far from perfect.

I saved the GCode, primed the extruder until the new color came out, then started the print.  I waited four long hours, hovering over the machine like a husband during a delivery.

The resulting print was strong (good layer adhesion), but does have issues.  Here's what it looks like:

  

   


Here's what I observed, and what I think it means.
  • Not in photo: The skirt (the outline printed around the part to prime the extruder) was almost completely missing, and the little bit that was there was thread-thin.  This happened despite priming the extruder moments before starting the print.  Extrusion rate too low?  Blocked extruder nozzle?
  • Print is fuzzy. I removed most of the fuzz prior to taking the photos, but some is still visible in the interior.  Too little retraction?  Temperature too high?
  • Bottom has a combination of adhesion failure and Elephant's Foot.  Easy: I screwed up the calibration.  And I really should get some blue tape.  Any other factors?
  • Fill isn't tightly joined to outer wall.  Under-extrusion?  Need to increase fill overlap?
  • One layer about 1/4" from the start is totally squished.  Easy: I bumped the printer, hard.
  • About halfway up the whole print steps over a bit.  I didn't have a spool stand and the filament was getting pulled tighter and tighter.  This is when I moved the spool onto a stick.  Any other possible factors?
  • There are small "waves" crossing multiple layers in the later half of the print.  My guess is I still have filament tension problems that will be fixed by getting a real spool holder.  Are there other causes?

Those are all the defects I see (as a 3D printing newbie).  Are there more?  Are the photos good enough to tell?

I then put Blue Tape on the print bed and rigged an emergency spool holder using a paint roller (which works awesomely):




Print quality immediately improved to an amazing degree.  I then printed the other stand included in the above link (visible above), and then printed a Star Trek TNG communicator badge (which was printing when I took the above photo).  Here's a close-up of it:



The upper surface is a bit rough, but that's no surprise given the 0.18 mm layer thickness.  I may try it again at 0.10.

My next plan is to do some prints for dimensional (geometry) calibration and for temperature calibration (should be done for each filament spool).