2016 – Year End Economic Review

Data Log Everything…

2016 ended and we now review how the savings & spending went.  Like any stereotypical older millennial, borderline traditionalist, that experienced an economic crash, we save as much as possible and try to spend in the most responsible method imaginable.  This means not living on my own, avoiding a car loan payment by keeping the old clunker running, and trying to plan for retirement…  Yes, spending 46% of my income on goods and services (insurance), squirreling away 38% for when I am old (or to lose in the markets), and keeping the rest for a rainy day and/or paying off any debts; this year turned out boring and financially responsible.

  • Interesting: Using the Amazon Prime membership, 30% of all tangible goods and services (not insurance) went through Amazon.  Including the membership cost, this had a net savings of $213 for the year when compared to purchasing the same items from a local store.  Oddly enough, average prices were about 15% lower from January through November, then flipped to being 13% more expensive during December.  Most of this reversal was caused by 3rd party vendors offering faster Prime shipping and charging a premium for the item.  Goals: Next year, don’t wait until middle of December to do holiday shopping.
  • Health Insurance reached 16% of all expenses.  Annoying… considering that I haven’t used the insurance since 2010. Over 6 years, the monthly premium has gone up by about 104% (yet only 2% over last year).
  • Priorities… Tech gadgets (ChromeCast, Arduino, 3D Printer, Photo printer, etc) consumed as many resources as Food.
  • I spent twice as much money on Coffee as I did on Cell Phone service.
  • Did I go on Vacation this year?  Not that I can remember. Spending was down 81% over last year.
  • And, Car Repairs were up by 31% as compared to 2015 (must have been those new tires and dead battery).


New Year’s Resolutions for 2017:
1. Reduce tech gadget spending
2. Increase coupon use
3. Increase the vacation allocation!
4. Drink less coffee 🙂

— Happy New Year!


2016 Spending Distribution.  Looks like Fuel and Health Insurance took the most.  Too bad I can’t reduce  either of those.



Fuel Tracking – 2016 – End of Year

Three months into winter up here in the North and the MPG takes a dive!

All 2016 data is based on a highway commute averaging 2,468 ± 247 miles per month.  This was done over the same stretch of highway, in the same 2004 V6 Impala LS, with the same driver, at about the same times each day.  My commute to work is about an hour each direction.  In Total for this year: I used 1,009 gallons of gas, drove 29,624 miles, and spent $2,171 on fuel.  Yea, this car has about 289,000 miles.

In November the Walmart Goodyear Viva 2 tires were replaced with new Douglas All Season Tires… a much smoother ride.  The rear bearings were also replaced in November (much quieter now), the A/C condenser in June, and oil every month (except for March and October), rear brakes were completely rebuilt (including emergency cables) in April.  Tire pressure is 30 PSI… that is critical for a good efficient ride.


Average miles per gallon (MPG) continues it sharp decline into the winter months. The gas prices are mostly stable, with a slight holiday inspired uptick.


Average MPG generally follows the average temperature for the month… with some deviation at the upper ends. Oct, Nov, Dec generally fall on the line, as expected.

3D Printing – Settings, Photos, Problems

With more than expected traffic on the 3D printer setup and instructions… a few comments that might help.

PROBLEM: Leak in printer nozzle

The printer nozzle initially leaked melted plastic through the threads and later broke when I tried to tighten it… (while it was hot).  If you look at the last photo in the build instructions, there was a small puddle of white plastic on the top of the printer nozzle as it made the test part.  This is not supposed to happen.  The threads are large and didn’t seal correctly to hold in the melted plastic. 3D printer nozzle leak

Eventually, the plastic flowed over the printer nozzle and onto the part.  Not good…  So, I removed the plastic and cleaned the extruder head with solvents – very messy.  Re-assembled everything, tighter.  Yea, it didn’t fix the problem.  Actually, plastic started leaking from both ends of the extruder.  When I tried to over tighten the nozzle and feed tube, the threads cracked in the housing (see photo below).  I ended up replacing the entire heated nozzle assembly.  Lesson: Do not try to over tighten anything on the printer.

Broken Print Nozzle

SOLUTION: With the new extruder, I wrapped PTFE (Teflon) pipe tape on the threads.  Problem solved.  No more leaks.  Also, PTFE melts at 327°C.

New Printer Nozzle


QUESTION: Close up of the filament path in the feed mechanism.

Here is a photo of PLA filament as it enters the extruder nozzle.  Yep, it just sits in there and can be difficult to get in the tube at the bottom if the filament is curved (as most are).  Make sure you press down on the thumb screw area when installing the filament (while supporting the extruder from the bottom).  This compresses the spring and moves the silver wheel away from the motor driven gear to allow the filament to pass to the intake tube.  If the nozzle is hot, you should see the plastic squirt out of the nozzle when successful.

Please note: The cooling fan and exchanger has been removed to show the filament path (these need to be reinstalled). Also, the cartridge heater and temperature sensor have been pulled out for this photo… These must be in place before trying to heat anything (else the heater will be damaged).

PLA Filament Enter Nozzle


QUESTION: Can you show a photo of the drive belt connections? 

The drive belt is held in by these little gripper teeth with two parts.  Push the belt through the part with the slot, insert the screw, and tighten into the part that mounts on the extruder assembly (with teeth facing outwards to grip the belt).

Drive Belt Back View



QUESTION: Print not going well.  What are your typical print settings?  

I have been using PLA and had a few problems.  First, make sure your print bed is level and very close to the printer nozzle (0.3 mm is my initial layer thickness).  Move the printer nozzle to all corners of the printer bed, make sure the distances are the same at all corners.  The build bed cannot touch the nozzle!  Yet, if it is too far way the material will not stick.  I have tried glue stick, wet glue coating, masking tape, bare metal and now the cheapest painter’s tape possible – it didn’t seem to matter as much as the nozzle position to the print bed.  The closeness is important.  Almost touching…

For the settings:  Too hot, it warps, too cold it doesn’t stick, too much inner fill and the part can curl up into a ball (this happened to me when I tried to print a flat part).  Too hot of an extruder and the part comes looking melted.  Too fast and the extruder just grinds away and does nothing.  Too fine of a build and the layers just melted together loosing all details (I had to lower the temperature to <205 for really fine details to work).

Lately, I have been using Cura with a slightly hotter temperature… It seems to work alright… Here is a screen shot of the settings.

Cura Settings 1Cura Settings 2











Good Luck!

Chart Finished DHT-Trinket-LCD in Frame

Trinket Pro Humidity and Temperature Sensor for Your Desk

So, I wanted to measure the temperature and humidity in my office.  Typically, a simple hygrometer and thermometer could work.  But, how do you log the information?  Paper and pencil?  What happens when I am away?  So, in this project we wire up a small micro-controller, temperature and humidity sensor, screen, and a micro-SD card adapter to log the data. Then we use the 3D printer to make a nice little frame.

Adafruit Pro Trinket – 5V
10k Ohm Resistors (3)
DHT11 basic temperature-humidity sensor
Small Prototype Boards
SainSmart IIC/I2C/TWI Serial 2004 20×4 LCD Module Shield For Arduino UNO MEGA R3
MicroSD card breakout board+
A small SD card
Jumper Wires
Old USB phone charger

Step 1: Solder on the header pins to the trinket micro controller and SD card breakout board

Adafruit Pro Trinket 5V Chip new and pinsheader pins in prototyping boardadafruit 5V microSD breakout board about to have pins soldered onSolder chip to pins
New Trinket Pro Chip
Pin Header
Set on Chip
Solder in Pins

Step 2: Press the trinket, card board, and DHT into the prototyping board

Trinket Pro on prototyping board - onlySD board, DHT, Trinket Pro on prototyping board - no wires yet
Pro Trinket
SD Board, DHT, Trinket

Step 3: Connections:
— Trinket Pin 10 to SD Card “CS”
— Trinket Pin 11 to SD Card “DI”
— Trinket Pin 12 to SD Card “DO”
— Trinket Pin 13 to SD Card “CLK”
— Trinket Pin “5V” to SD Card “5V”
— Trinket Pin “G” to SD Card “GND”
— Trinket Pin “5V to DHT Pin 1 (looking at it from the front Left pin is 1)
— Trinket Pin “GND” to DHT Pin 4
— Trinket Pin 8 to DHT Pin 2
— 10kΩ Resistor from Trinket “5V” to Trinket Pin 8 (this is a 5V digital pull-up)
— 10kΩ Resistor from Trinket Pin A4  (this is a I2C 5V pull-up, hidden under chip in photo)
— 10kΩ Resistor from Trinket Pin A5 (this is a I2C 5V pull-up, hidden under chip in photo)
— Cable from Trinket Pin A4 to Screen Pin “SDA”
— Cable from Trinket Pin A5 to Screen Pin “SCL”
— Cable from Trinket Pin “BUS” to Screen Pin “VCC”
— Calbe from Trinket Pin “G” to Screen Pin “GND”

Trinket Pro, DHT, SD Card Board - Wired up on Prototyping Board


Step 4: Write the software
The software needs to do 3 things:
a) collect temperature and humidity from DHT
b) Format and display the info on the screen
c) Save a copy to the SD card

Software Structure:

// Libs for the Screen (Need wire for I2C and Liquid Crystal to setup Display
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Libs for Sensor (Provides sensor functions)
#include "DHT.h"

// Libs for SD card
#include <SPI.h>
#include <SD.h>

// Constants for Sensor
#define DHTPIN 8 // What digital pin we're connected to?
#define DHTTYPE DHT11 // Sensor Type

// Constants for SD Card
const int chipSelect = 10;

// Setup DHT sensor's connection pin and type

// Setup Screen Settings
// Set the LCD I2C address to 0x27
// It has 20 chars and 4 lines
LiquidCrystal_I2C lcd(0x27,20,4); 

void setup() { 
 lcd.init();          // Initialize the lcd
 lcd.backlight();     // turns off the backlight for effect
 lcd.print("Initializing SD card...");
 // See if the SD card is inserted and can be initialized:
 if (!SD.begin(chipSelect)) {
 lcd.print("Card failed, or not present");
 // can't do do anything with it
 lcd.print("card initialized.");  //Found the card!

dht.begin();  //Start the DHT functions

//Main program Goes HERE!
void loop() {
 // Wait a few seconds between measurements.

 // Clear the Screen
 // Get humidity from Sensor and store as variable "h"
 float h = dht.readHumidity();
 // Read temperature as Celsius (the default)
 // Store temperature in variable "t"
 float t = dht.readTemperature();
 // Read temperature as Fahrenheit (isFahrenheit = true)
 float f = dht.readTemperature(true);

 // Compute heat index in Fahrenheit (the default)
 float hif = dht.computeHeatIndex(f, h);
 // Compute heat index in Celsius (isFahreheit = false)
 float hic = dht.computeHeatIndex(t, h, false);

 // Print info to the screen
 lcd.setCursor(0,0);  // Top Line
 lcd.print("Humidity: ") & lcd.print(h) & lcd.print(" %");
 lcd.setCursor(0,1);  // 2nd line
 lcd.print("Temp: ") & lcd.print(t) & lcd.print(" *C ");
 lcd.setCursor(0,2);  // 3rd line 
 lcd.print("Temp: ") & lcd.print(f) & lcd.print(" *F "); 
 lcd.setCursor(0,3);  // 4th line
 lcd.print("Heat Index: ") & lcd.print(hif) & lcd.print(" *F");

 // Make a string for assembling the data to save in log file
 // This a comma separated file that will look like this:
 // H = 10 %, T = 32 *F, T = 0 *C, HI = 12 *F
 String dataString = "";
 dataString += "H = " ;
 dataString += String(h);
 dataString += " %, T = ";
 dataString += String(f);
 dataString += "*F , T = ";
 dataString += String(t);
 dataString += "*C , HI = ";
 dataString += String(hif);
 dataString += "*F";

 // Open the file. Only one file can be open at a time
 // The file is or will be called datalog.txt
 File dataFile = SD.open("datalog.txt", FILE_WRITE);
 // If the file is open, you can write to it
 // You print the assembled string (called dataString) into the file
 // println command prints the string and moved down one line in the file
 // the next reading will be printed on the next line
 // then close the file and start all over again, go back to the top of loop code 
 if (dataFile) {

Step 5: Upload the software

Step 6: 3D print the screen holder

You can get the stl file here.

3d printing of a lcd screen frame holder

3D Printing the Frame

Step 7: Insert LCD into the Frame, stick on the control board

Screen Connected to Trinket Pro For DHT Sensor Project

Screen and board inserted into the frame.

Temp-Humidity-Sensor Frame Assembled Back

Control board fits on the frame ledge.

Step 8: DONE!

Finished DHT-Trinket-LCD in Frame

Finished Temperature and Humidity Sensor Powered by a USB phone charger



MacBook Pro Battery Life, 1 Year Old

About a year ago, my workhorse computer started to die.  As its screen dimmed and voltage regulators started screaming, it was time to replace it.  Yes, my always-on, number crunching, Fujitsu Lifebook Tablet started to give out (after its 5th battery, 2nd fan, 3rd hard drive and 2nd set of ram – all easy to replace).  So, I purchased a new laptop.

Having dealt with the joys of Win 8.0 & 8.1, I purchased a Apple Mac Book Pro.  Apple hasn’t really changed their OS interface since I started installing it way back in the early 2000s.  That was a nice feature.  Combined with Parallels, it is a good combination.  Win Vista and my old software needed for work can live on (I program in VBA and Mac Office doesn’t do VBA, half my software has no Mac version).

The Mac Book Pro Retina Early 2015 laptop is ok. Yes, it is quiet (ssd) and smooth.  However, it is lacking enough USB ports and the OS software is cranky.  Multi-tasking in Mac OS is like catching balloons in a wind storm.  The neutered linux underpinnings are fun to poke around with and see what is going on in there.  And, the console logs are enough to hurt your eyes with all the constant errors, daemons, and tasks that never stop having problems and reporting back.  Surprisingly, it still functions…

After upgrading to the new OS 10.11, the battery life started to take a hit.  At one year out, I notice the battery capacity is lower.  Everything is still covered under a 3 year extended warranty (about $250 extra).  The battery is covered if it drops below 80% capacity before it reaches 1000 cycles (assuming it is still under warranty).  So, like any good computer user, I tracked the battery capacity as a function of time and cycle count.  Apple’s Mac OS System Report gives information on the power and battery status.

In the figure below, we have the self reported Full Charge Capacity as a function of cycle count. Although the data does have some scatter, it looks like the starting capacity was 6516 mAh (intercept).  For each charge cycle, we are looking about 3.7 mAh of full charge capacity lost.  That means at 1000 cycles, the battery would be at about 44% capacity!  This also suggests that the warranty should kick in at about 352 charge cycles… that is when the battery will drop below the 80% marker.  Averaging 150 charge cycles per year, I will reach that just over 2.5 years… about 6 months before the extended warranty ends!

Mac Battery Plot by Cycle 2016


Now, older LiOn batteries have been known to degrade with time and charge cycle.  In the figure below, we have the full charge capacity as a function the date.  Much like the cycle count, we see a gradual drop in the Full Charge Capacity with respect to time… This makes sense, I am averaging 0.43 charge cycles per day. If we take the -1.603/0.43 = 3.72. This indicates that the battery isn’t really showing a time degradation.

Mac Battery Plot by Date 2016


Conclusion, the extended warranty might have been a good investment (especially if something else dies first – like the ssd, fan, or toasty power supply).  If the battery capacity continues to drop as expected, a new battery will be needed just before, or just after (most likely) the coverage ends.  I suspect that the 3 year limit of warranty coverage is based on similar data.  Although, I have heard anecdotal stores of the drop rate leveling off after a year and then holding steady for awhile.  Furthermore, the high scatter as the battery ages could provide a wide margin of error to determine the actual battery capacity.  I’ll you posted on any major changes over the next year or two.



Gas Stats Chart updated for july

Fuel Tracking – June 2016 – Chart

June Gasoline Use and Statistics:

MPG and Gas Price as of June 2016

Since MPG is usually related to operating temperatures, with colder temperatures being less efficient for automobiles. We can see a nearly linear correlation between the average daily temperature and the car’s fuel efficiency (MPG). From this relation we see the MPG is 25.128 plus the temperature times 0.087.  Next month, the temperatures may increase. We can start see a slight tapering off, at temperatures above 55F. This might indicate a plateau, where temperature no longer has a major effect… More data is needed…

MPG vs Temperatuer Correlation as of June 2016

Table Data:

Distance driven (miles)2,764
Fuel used (gallons)89.739
Efficiency (MPG)30.80 ± 1.5
Fuel cost ($)$221.89
Average fuel cost per gallon ($/gal)$2.47
Carbon dioxide released (LBS)*1,586
CO2 efficiency (LBS/mile)0.574

*Assumes 10% ethanol for 17.68 lbs-CO2/gallon.

Diagram showing where the radiator and condenser are located

Car Air Conditioner Condenser Replacement – 2004 Impala

Some time before last summer, that is way back in 2014 the air conditioner on my 2004 Impala went out. And, I put in a can of dye to see where the leak was at. No luck, I could hear the leak, but I didn’t see anything… After toasting for most of last summer and roasting on a 4 hour 92F drive to my sisters house, I finally purchased a new condenser.  Actually, I wasn’t completely sure that I had found the leak.  You can hear and see the gas coming out, but I wasn’t able to figure out where… The hoses all looked ok, the compressor, filter, dryer, and such all seemed ok. So, I was assuming the leak was on the back side of the condenser.

In your car, your air conditioner contains 6 major parts. There is a compressor (usually belt driven, unless you have a Prius) that squeezes the gas (normally Freon 134a) into the condenser. The condenser is up front before the radiator and is air cooled with fans and by driving. It is here that the higher pressure freon vapor is being forced into a smaller space and tries to give up extra energy as heat as it becomes a liquid. Basically, you are making the gas into a liquid, the free energy that kept the molecules flying about needs to go somewhere – which is why iti air cooled. Then, the liquid goes through a filter-dryer to screen out solids and catch any impurities. Then it is pushed through a small restriction to make a sudden pressure drop into the inlet of the evaporator. This makes an adiabatic expansion, where the liquid is being forced into a vapor state with out any heat being applied. The compressor is sucking on the evaporator to make the pressure lower. The lower pressure causes the liquid to try and go into the gas state (forced boiling). This needs energy to keep the molecules moving about as a vapor, and so, the evaporator gets cold. A fan then blows air over your evaporator to cool your car, and give heat to the cold freon.  You get air conditioning!


To replace the condenser… it is simple.  I am assuming you have a good leak, and all the freon is out of your car.  If it is not, you need to have a technician reclaim it for you.  Technically, R143a is used as a canned dusters… so, releasing it is not that bad.  Still, try to save the ozone layer.

New Condenser: Almost OEM style…


New Seal Kit and Plastic Clamp

A/C Seals KitAC Plastic Clip Clamp

Step 1: Locate the parts. The condenser is typically in the front of the car, in front of the radiator. As shown in the photo, they are actually under the front frame of the car. We will need to remove all the parts that are in the way.

Step 2: Start by removing the engine mounting supports. These are held in with 4 bolts on the front and a single longer bolt on the engine. You might be able to swing them up on top of the engine and out of the way.

Step 3: Remove the two diagonal support rods on the right and left. These have two bolts at the front and one at the rear. These are for crash stability to deflect force outward to the sides of the car.Diagram showing where the radiator and condenser are located

Step 4: Remove the air intake. A large rubber hose connects from the right of the engine top (throttle body assembly) to the filter box. The rubber hose as a temperature sensor wire that needs to be removed first. Then pull of the hose with a twisting motion. The other side of the hose is connected to the filter box. There is a large hose clamp that can be removed to help free up mobility.

Diagram 2 - Engine Mount Removed

Step 5: Remove the air filter cover and take out the filter.

Step 6: There are two screws on the top of the air filter box (shown by the computer label  in In the photo below). Loosen these and open up the filter box. One of the control computers is hidden in this box. You will need to take out the computer (set is up on the engine – don’t damage the wires) and remove the plastic housing to get to the A/C lines.


Diagram 16 - Reinstall air box, pcm, hoses

Step 7: On the left side of the car, remove the battery. You will also need to loosen up the fuse box to help get the battery out of its little cubby.

Diagram 3 - Battery Removed


Step 8: Now unbolt the radiator assembly. There are two bolts (top right and left).

Step 9: Unbolt the fan assembly. There are three bolts (middle right and left, and top middle).

Diagram 4 - Radiator Assembly Bolts Removed

Step 10: Unclip the power wires that go to the fan.

Step 11: Unclip the transmission lines at the bottom of the fan assembly.

Step 12: Unclip the 3-4 wire harness holders that are attached to the fan assembly.

Step 13: Lift out the fan assembly.  You might need to loosen up and remove the right radiator hose to help make space.

Diagram 7 - Fan Assembly Removed

Step 14: Unbolt the A/C lies from the condenser. These are on the right side, in the middle. There are two. One is held together with a screw/bolt thing. The other has a plastic snap clip (you will likely need to break the plastic clip to get it off). The photo below is before the fan was removed.

Step 15: Unbolt the condenser lines mounting bracket from the radiator. Save this bracket! You will install it on the new condenser.

Diagram 6 - AC Hoses Connections

Step 16: Pull the assembly forward and lift out the condenser. That is the front exchanger. The back exchanger is the radiator and is attached. The photo below show the condenser removed. The condenser sits in 4 small clips that hold it in place. You need to either pry them open or just pull up and it will come out.

Diagram 8 - Pull back radiator - condenser removed

Step 17: Install the new condenser. Slide the new one into the front of the radiator. Make certain the new one sits into the 4 clips. Diagram 10 - Insert new condenser

Step 18: Replace the o-ring on the lines. I only replaced the one, you may need to replace both on the other line as well.

Diagram 9 - Remove old o-ring

Step 19: Install the fan assembly. Bolt into place. Clip in the transmission lines. Reconnect the power to the fans. Secure the wires into their clips.

Step 20: Install the condenser lines bracket.

Diagram 11 - Connect condenser tube bracket

Step 21: Connect the A/C lies. One uses the bolt, the other has the plastic clip.

Step 22: Move the assembly forward and re-bolt to the front of the car frame. Shown below where the screw clip is at.

Diagram 12 - Connect condenser tubes, wires, etc.


Step 23: Bolt the assembly to the frame on the left side too…

Diagram 13 - Bolt on fan and assembly to front of car


Step 24: Reinstall the battery.

Step 25: Reinstall the engine mounting brackets.

Diagram 19 - Reinstall battery


Step 25: Reinstall the air intake box, filter, and hose. Be careful not to damage the wires on the PCM Computer.

Diagram 16 - Reinstall air box, pcm, hoses

Step 26: Reinstall the diagonal support rods.

Step 27: Connect a vacuum pump to the low pressure line and pull the air out of the A/C system. It should hold a vacuum. (Note: the photo below doesn’t have the diagonal support rods installed yet.)

Diagram 19 - Pull vacuum on system


Step 28: Add freon. The sticker shown in the photo above (front of the car frame) indicates the amount of freon to add.

Diagram 20 - Add Freon


Step 29: (Optional) If you removed your radiator hose, refill the coolant.

Step 30: (Optional) If you removed the engine cover, replace it.




Fuel Tracking – May 2016

May Gasoline Use and Statistics:

Distance driven (miles)2,860
Fuel used (gallons)93.314
Efficiency (MPG)30.65 ± 1.1
Fuel cost ($)$211.81
Average fuel cost per gallon ($/gal)$2.27
Carbon dioxide released (LBS)*1,646
CO2 efficiency (LBS/mile)0.576

*Assumes 10% ethanol for 17.68 lbs-CO2/gallon.