1. Stump Anvil - Sawyer Type?

    Great early Stump Anvil.  Came out of a logging camp in Maine.  Basically a portable anvil, shop made, that was used on logging sites.  Fell a tree, hollow the stump to accept the hardy-esque end and use in on site until you move on.

    Img 20181214 210413126 Img 20181214 210435207 Img 20181214 210338739

    read more
  2. Baldor 1/3HP Grinder - Done Enough

    Finished up the Baldor Model 610 - Not typically my style to paint but it was far enough gone that it needed it. Fun little project - going to start working on cleaning up a older Rockwell Double Carbide Grinder Soon .. actually underway but will post some pics shortly.

    Img 20180910 213040390 Img 20180901 103156477 Img 20180901 103209247 Img 20180910 213032433

    read more
  3. RaspberryPi on AWS IoT - MQTT simple PubSub Example

    Simple RaspberryPi B+ with BMP180 and LED on GPIO22 for demonstration of AWS/IOT with MQTT.  The following code was modified from the Connecting your RaspberryPi to AWS IoT tutorial.

    '''
    /*
     * Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
     *
     * Licensed under the Apache License, Version 2.0 (the "License").
     * You may not use this file except in compliance with the License.
     * A copy of the License is located at
     *
     *  http://aws.amazon.com/apache2.0
     *
     * or in the "license" file accompanying this file. This file is distributed
     * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
     * express or implied. See the License for the specific language governing
     * permissions and limitations under the License.
     */
     '''
    
    from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
    import logging
    import time
    import argparse
    import json
    
    #import for GPIO Usage on RaspberryPi
    import RPi.GPIO as GPIO
    #Pins for LED Example
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(22,GPIO.OUT)
    
    # Import / Setup  BMP Sensor 
    import Adafruit_BMP.BMP085 as BMP085
    sensor = BMP085.BMP085()
    
    AllowedActions = ['both', 'publish', 'subscribe']
    
    # Custom MQTT message callback 
    # Added Temp info from BMP Sensor and logic to turn on/off led
    # when temp above 20.2C 
    def customCallback(client, userdata, message):
        print("Received a new message: ")
        print(message.payload)
        Mytemp = json.loads(message.payload)
        print("MY TEMP IN THE OFFICE: ")
        print (Mytemp['Temp'])
        if (Mytemp['Temp'] > 20.2):
            GPIO.output(22,1)
        else:
            GPIO.output(22,0)
    
        print("from topic: ")
        print(message.topic)
        print("--------------\n\n")
    
    # Read in command-line parameters
    parser = argparse.ArgumentParser()
    parser.add_argument("-e", "--endpoint", action="store", required=True, dest="host", help="Your AWS IoT custom endpoint")
    parser.add_argument("-r", "--rootCA", action="store", required=True, dest="rootCAPath", help="Root CA file path")
    parser.add_argument("-c", "--cert", action="store", dest="certificatePath", help="Certificate file path")
    parser.add_argument("-k", "--key", action="store", dest="privateKeyPath", help="Private key file path")
    parser.add_argument("-p", "--port", action="store", dest="port", type=int, help="Port number override")
    parser.add_argument("-w", "--websocket", action="store_true", dest="useWebsocket", default=False,
                        help="Use MQTT over WebSocket")
    parser.add_argument("-id", "--clientId", action="store", dest="clientId", default="basicPubSub",
                        help="Targeted client id")
    parser.add_argument("-t", "--topic", action="store", dest="topic", default="sdk/test/Python", help="Targeted topic")
    parser.add_argument("-m", "--mode", action="store", dest="mode", default="both",
                        help="Operation modes: %s"%str(AllowedActions))
    parser.add_argument("-M", "--message", action="store", dest="message", default="Hello World!",
                        help="Message to publish")
    
    args = parser.parse_args()
    host = args.host
    rootCAPath = args.rootCAPath
    certificatePath = args.certificatePath
    privateKeyPath = args.privateKeyPath
    port = args.port
    useWebsocket = args.useWebsocket
    clientId = args.clientId
    topic = args.topic
    
    if args.mode not in AllowedActions:
        parser.error("Unknown --mode option %s. Must be one of %s" % (args.mode, str(AllowedActions)))
        exit(2)
    
    if args.useWebsocket and args.certificatePath and args.privateKeyPath:
        parser.error("X.509 cert authentication and WebSocket are mutual exclusive. Please pick one.")
        exit(2)
    
    if not args.useWebsocket and (not args.certificatePath or not args.privateKeyPath):
        parser.error("Missing credentials for authentication.")
        exit(2)
    
    # Port defaults
    if args.useWebsocket and not args.port:  # When no port override for WebSocket, default to 443
        port = 443
    if not args.useWebsocket and not args.port:  # When no port override for non-WebSocket, default to 8883
        port = 8883
    
    # Configure logging
    logger = logging.getLogger("AWSIoTPythonSDK.core")
    logger.setLevel(logging.DEBUG)
    streamHandler = logging.StreamHandler()
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    streamHandler.setFormatter(formatter)
    logger.addHandler(streamHandler)
    
    # Init AWSIoTMQTTClient
    myAWSIoTMQTTClient = None
    if useWebsocket:
        myAWSIoTMQTTClient = AWSIoTMQTTClient(clientId, useWebsocket=True)
        myAWSIoTMQTTClient.configureEndpoint(host, port)
        myAWSIoTMQTTClient.configureCredentials(rootCAPath)
    else:
        myAWSIoTMQTTClient = AWSIoTMQTTClient(clientId)
        myAWSIoTMQTTClient.configureEndpoint(host, port)
        myAWSIoTMQTTClient.configureCredentials(rootCAPath, privateKeyPath, certificatePath)
    
    # AWSIoTMQTTClient connection configuration
    myAWSIoTMQTTClient.configureAutoReconnectBackoffTime(1, 32, 20)
    myAWSIoTMQTTClient.configureOfflinePublishQueueing(-1)  # Infinite offline Publish queueing
    myAWSIoTMQTTClient.configureDrainingFrequency(2)  # Draining: 2 Hz
    myAWSIoTMQTTClient.configureConnectDisconnectTimeout(10)  # 10 sec
    myAWSIoTMQTTClient.configureMQTTOperationTimeout(5)  # 5 sec
    
    # Connect and subscribe to AWS IoT
    myAWSIoTMQTTClient.connect()
    if args.mode == 'both' or args.mode == 'subscribe':
        myAWSIoTMQTTClient.subscribe(topic, 1, customCallback)
    time.sleep(2)
    
    # Publish to the same topic in a loop forever
    loopCount = 10
    while True:
    
        Temp = sensor.read_temperature()
        print ("TEMP: " + str(Temp))
        if args.mode == 'both' or args.mode == 'publish':
            message = {}
            message['Temp'] = Temp
            message['sequence'] = loopCount
            messageJson = json.dumps(message)
            myAWSIoTMQTTClient.publish(topic, messageJson, 1)
            if args.mode == 'publish':
                print('Published topic %s: %s\n' % (topic, messageJson))
            loopCount += 1
        time.sleep(2) 
    
    python basicPubSub.py -e YOURAWSIOTSHADOW.us-east-1.amazonaws.com -r root-CA.crt -c MyRasp.cert.pem -k MyRasp.private.key
    

    I am still learning the AWS IoT basics and have posted this as a reminder to myself as to how it got setup. I planned on refining this into tutorial but really did not see the need as the AWS Samples are pretty good. Connecting your RaspberryPi to AWS IoT  is your best place to start.

    read more
  4. American Beauty 3125 Soldering Iron

    Found this soldering iron while organizing the shop.  Not sure where/when I got it.  Must have been an auction box lot.  Looked it up and found American Beauty is still going strong.  Was able to pickup some replacement tips and set screws (yes, could have got those anywhere but was too easy not to order them with the tips).

    It heats up great and really gets the job done.  Posted a few pics of some initial tinning.  Certainly an industrial / production type iron, no bells and whistles, not even a switch.  Going to try tinning some thin cable (bicycle - brake and shift).

    Img 20181114 165544766 Img 20181114 204824841 Img 20181114 165559839 Img 20181114 165617284 Img 20181114 170105358 Img 20181114 170720293 Img 20181114 170713766 Img 20181114 170744693

    read more
  5. Baldor 1/3 hp Bench Grinder Cleanup

    The recent Foley Belt Sander/Grinder went so well I could not help myself.  Eyed this one from the roadside at local residence close to home.  Been exposed to the weather for almost too long.  Plugged her in and she fired right up and in classic Baldor form took 10 minutes to stop spinning after turning off.  Was not going to re-paint but now I am in deep so what the heck.  Came apart relatively easily (nice to work on quality products).  Missing side covers - may have to make some or deal without.

    Img 20180801 165005350 3 Img 20180801 164956628 2 Img 20180820 184923516 Img 20180820 174444664 Img 20180820 190627214 Img 20180820 190647728 Img 20180820 190914992 Img 20180820 191025430 Img 20180820 191053294 Img 20180823 134755138 Img 20180823 143446695 Img 20180823 143507162 Img 20180823 143503629 Img 20180823 143450899

    read more
  6. Foley Belt Sander Grinder Model 371

    Nifty little 1x42Belt Grinder/Sander made by Rockwell for Foley.  It is basically the same as the Rockwell 31-350.  Freebie from a barn clean-out (Thanks MB!).  Took some scouting around for replacement wheels but alas a shout out to James Liechty (jimliechty@yahoo.com) who has sourced replacement pulleys and other parts for these and offers them at very reasonable prices.

    Took her apart, cleaned up all the saw dust cake, installed new wheels for sanding belts, replaced one v-belt pulley, replaced the power cord (not done yet) and that was pretty much it. My initial thoughts when it showed up were it was pretty flimsy construction and the plastic wheels made me skeptical but all those thoughts have passed now that it is up and running.  Runs great, hit a few pieces of metal with it, no problem.

    ![Refurbish Complete]({static}/wp-content/uploads/2018/07/img_20180731_0705322773755278533459340274-768x1024.jpg) *Refurbish Complete*

    ![Manual]({static}/wp-content/uploads/2018/07/RockwellBelt.jpg) *Manual*

    Img 20180721 210645610 1 Img 20180721 210705670 1 Img 20180721 210714984 1 Img 20180723 212148593 Img 20180729 203652191 Img 20180729 203645766 Img 20180721 210702795 1 Img 20180730 192522847 Img 20180730 190806528 Img 20180730 192510392 Img 20180730 192545227 Img 20180730 193231594 Img 20180729 203402738 Img 20180729 214230891 Img 20180729 214201772 Img 20180730 203004023 Img 20180730 202942050 Img 20180731 0705322773755278533459340274

    read more

links

social