Innosilicon LTCMaster Miner Review

Introduction

Innosilicon LTCMaster Miner Review
Innosilicon LTCMaster Miner Review

This article will be about my experience using the Innosilicon LTCMaster Miner Review.

Did you know that even in 2022 Litecoin mining is still profitable?

I will break this review in the following sections:

  • My experience using Innosilicon products and if they are trustworthy
  • I will rank them in terms of performance, reliability and support
  • I will discuss about the two LTCMaster models the A4+ and the A6

More specifically I will be talking about my personal experience with mining over the years. I started mining crypto back in 2016 when things were still relatively new and early. Getting ahold of a mining device required a lot of effort, high costs and long shipping times. I have done it all from buying ready made miners, building my own and even experimenting on writing my own code to mine and extending existing ones.

I believe I have vast experience in all the types of traditional and newer mining as I have invested a lot of money in them and have learned lot of things in the process. In this guide I will try to teach you what to avoid and not repeat my mistakes so you can hopefully learn and make something in the process if you are willing to put in the time.

One important thing to keep in mind is that mining is not what most people portray it to you as where you are going to sit back do nothing and reap the benefits. It’s actually a big investment in both time and money. If you think this is a get rich easy thing you are probably misinformed by all those people just posting stuff in social media and not actually following through. Anyone with actual experience will tell you the opposite, so read on and you will see why this may or may not be for you.

I have been working in the Software industry for over 23 years now and I have been a software architect, manager, developer and engineer. I am a machine learning and crypto enthusiast with emphasis in security. I have experience in various industries such as entertainment, broadcasting, healthcare, security, education, retail and finance.

Before continuing to read this article please take note that I am not a financial analyst and anything you read here is just my opinion. I’m not qualified in any way to predict the future of crypto as a professional. If you are serious about this please seek proper analysts that do this as a day time job. I’m merely a programmer that has a good understanding of how things behind the scenes and based on that I draw my own conclusions.

You can find more about the Innosilicon products here.

More specifically on the LTC master models you can find the:

  • A4+ LTC master here
  • A6 LTC Master here

All source code associated with this article can be found in my GitHub here.

Is LiteCoin Mining Still Profitable

You will be surprised to know that even well into 2022 LiteCoin Mining is still profitable. Offcourse there are some factors that this may slightly decrease the profitability that you have so I will try to break them down below and how each may handicap your profit.

How To Calculate LiteCoin Mining Profitability

First of all I’d ilke to say that LiteCoin pool has a nice profitability calculator that lets you quickly find out how much you’d be earning based on all the factors that we will talk about such as electricity.

Is LiteCoin Mining Profitable
Is LiteCoin Mining Profitable

The calculation above is based on using my stack of 20 x Innosilicon A4+ LTCMasters. The hash rate and the power calculations are based on that.

As you can see the monthly profit comes to about $2168 per month which is not bad if you include the cost of electricity and other things.

How To Improve Profitability Using Innosilicon A4+ LTCMaster

The Innosilicon firmware has an option that allows you to overclock the speed of your cores. This does come with some problems but lets see how you can do this.

How To Increase Profitability LiteCoin Mining
How To Increase Profitability LiteCoin Mining

As it can be seen above you just need to adjust the voltage setting to a lower value to improve the speed and hashrate of mining.

In my experimentation this can take you all the way up to 840MH/s which is significant. The reason this is significant is that it gives you approximately 200 MH/s per device which means this could be closer to 4000 MH/s with a 20 miner stack.

If we plug in the numbers again into Litecoinpool calculator we will see the new profit comes to about: 3024.34 USD

This is close to a 30% increase or $1000 extra profitability per month!

Is Overclocking The Innosilicon Miner Worth It

The simple answer if you ask me is that it depends. We will need to see the reasons of why this depends. First lets say that in the calculations I accounted for the increased voltage the miner takes which is approximately 100-150watts per miner.

Now that this out of the way lets see the bigger picture here. We need to see a graph of how much higher our chances are to solving a block as a lot of profit may come from there too and how much the miners get affected over time in terms of hardware.

Solo Mining LiteCoin Probabilities
Solo Mining LiteCoin Probabilities

As you can see above the graph is exponential in terms of time and speed. This is very important for our profits as it will take into account more money in the long run especially over the spend of a 30 day period reaching to as much as 53.37% !!

The issue in my experience is that the Innosilicon miners tend to run very hot and this may affect their running speed. I have actually written a Python script to monitor them and accordingly adjust the cooling temperature in the room I hosted them in.

So the choice is ultimately yours if you want to take the risk and lose cards over gaining profit. It also depends on the actual costs of the miner at the time. If that’s insignificant it may be worth it.

In all my tests while doing this I ended up losing 4 cards overall in the span of 4 months. Note each miner has about 4 cards so the miner still operates just at a handicapped rate.

How To Monitor The Temprature In Innosilicon LiteCoin Miner

If you care about long term sustainability for your miners one of the most crucial parts as mentioned earlier is to monitor the temperature of your devices.

Based on what the highest cap is (I think 65C.) you can start taking actions and remediate the problem by introducing what I call fixes listed below.

Increase Cooling

By far the easiest and fastest method to improve the miners temprature is to drop the temprature of the room they are in and you can do this by increasing the cooling speed your fans/airconditioning units use.

If you use home automation for this like me you can do this programmatically based on what device you have at your home. Otherwise the manual approach also works.

Improve Air Circulation

If you improve the air circulation it can also lower the temprature that your miners are operating on. In order to do this you can either keep them in an open air with filters or you can use air intakes and exhausts.

The idea is that the hot air that the miners produce has to be channeled out via a pipe or an air duct that sucks out the air and at the same time you need to bring in cold air into the room either via your air conditioning unit or using an induct pipe from the outside.

Keep in mind the latter won’t work if you live in a warm climate as it will just bring in warm air which is not good for you.

Furthermore if you have a fan it can also help circulate the air provided the area is big and it can go somewhere else aside from where the miners are.

Code To Monitor Miner Temprature

Let’s start by reviewing the code that does the monitoring of the miners. There’s a few points we need to start having before hand:

  • List of IPs of fully working miners
  • List of IPs of handicapped miners (in case some of the cards have failed)
  • Thresholds you want to set as tempratures
  • A source and destination email address to be notified

As mentioned earlier there’s an automation part to this to turn on cooling units which is not included in this code as this is a separate thing and very device specific.

#!/usr/bin/env python

import sys
import time
import json
import logging
import httplib
import urllib2
import datetime

sys.path.append('.')

# if you need this email libraries will be happy to provide them otherwise
# you can skip the notification 
# you can ping me on my twitter account twitter.com/unbiasedcoder

from lib.email_helper import EmailHelper
from lib.logger_helper import setup_logger

class A4WorkerMon(EmailHelper):
    """
    Class that monitors workers in A4 innosilicon workers
    """
    
    def __init__(self, poll_time = 600, temp_threshold = 55):
        """
        Poll time specifies how long to wait between checks
        """

        super(A4WorkerMon, self).__init__()
        
        self.poll_time         = poll_time

        setup_logger('a4_worker_mon', 'a4_worker_mon.txt')
        self.log = logging.getLogger(__name__)

        self.src_email = '[email protected]'
        self.dst_email = '[email protected]'

        self.temp_threshold = temp_threshold

        # if you have any handicapped miners like I did replace the IPs here
        self.handicapped_ips = [
            '192.168.1.246',
            '192.168.1.245'
        ]
        
        # replace this with your list
        self.ip_list = [
            '192.168.1.241',
            '192.168.1.242',
            '192.168.1.243',
            '192.168.1.244',
            '192.168.1.245',
            '192.168.1.246',
            '192.168.1.247',
            '192.168.1.248',
            '192.168.1.250',
            '192.168.1.251',
            '192.168.1.252',
            '192.168.1.253'
        ]

    def send_notification_email(self, subject, email_msg):
        """
        Sends notification email
        """
        self.log.warning(email_msg)
        self.send_email(self.src_email, self.dst_email, subject, email_msg)

    def monitor_workers(self):
        """
        Monitors if all works are alive
        """

        try:
            while True:
                
                # iterate through all IPs
                for ip in self.ip_list:

                    # Download the JSON with the content information
                    try:
                        response = urllib2.urlopen('http://%s/cgi-bin/temper.py'%ip)
                    except (urllib2.URLError, httplib.BadStatusLine), e:
                        self.log.error('Failed downloading API data from innosilicon A4 IP: %s'%ip)
                        continue

                    # Parse JSON result from litecoinpool
                    try:
                        data = json.load(response)
                    except ValueError:
                        self.log.error('Failed parsing json data from IP: %s'%ip)
                        continue

                    # Check if JSON has worker field
                    if not data.has_key('DEVS'):
                        self.log.error('Result has no DEVS field from IP: %s'%ip)
                        continue


                    dateformat = str(datetime.datetime.now())
                                     
                    # Iterate through all the available workers
                    asc_count = 0
                    for asc in data['DEVS']:
                        asc_count += 1
                                            
                        # Check if we have not exceeded an avg temp of the threshold we specified above
                        if not asc.has_key('TempAVG'):
                            self.log.error('Worker has no TempAVG field IP: %s'%ip)
                            continue
                        else:
                            avg_temp = int(asc['TempAVG'])
                            if avg_temp >= self.temp_threshold:
                                subject = '%s is overheating (%d C.)'%(ip, avg_temp)
                                email_msg = '[%s] - WARNING IP: %s is overheating ASIC: %d Temp: %d C.'%(dateformat, ip, asc['ASC'], avg_temp)
                                self.send_notification_email(subject, email_msg)

                        # check if an ASIC has died
                        if not asc.has_key('Status'):
                            self.log.error('Worker has no Status field IP: %s'%ip)
                            continue
                        else:
                            status = asc['Status']
                            if status == 'Dead':
                                subject = '%s has an ASC dead consider rebooting'%ip
                                email_msg = '[%s] - WARNING IP: %s has an ASC dead number: %d'%(dateformat, ip, asc['ASC'])
                                self.send_notification_email(subject, email_msg)

                    # If we have less than 4 ASICs active send email (except for .246 which is temporarily handicapped
                    if asc_count != 4:
                        subject = '%s has only %d ASICS'%(ip, asc_count)
                        email_msg = '[%s] - WARNING IP: %s has only %d ASICs active'%(dateformat, ip, asc_count)

                        # Make sure this isn't .246 and .245
                        if ip not in self.handicapped_ips:
                            self.send_notification_email(subject, email_msg)
                        else:
                            if ip == '192.168.1.245' and asc_count != 3:
                                self.send_notification_email(subject, email_msg)
                            elif ip == '192.168.1.246' and asc_count != 3:
                                self.send_notification_email(subject, email_msg)

                time.sleep(self.poll_time)
                
        except KeyboardInterrupt:
            self.log.warning('Keyboard interrupt caught exiting')
            return

if __name__ == '__main__':
    a4m = A4WorkerMon(temp_threshold = 55)
    a4m.monitor_workers()

As you can see the code does the following tasks:

  • Connects to the miners one by one and makes a request for the temperatures of each unit.
  • It checks if the miner is even active and if it’s not it reports it as a failure via email
  • It checks if the miner is handicapped (when in reality it shouldn’t be) and reports it
  • It checks if the miner is overheating

The part that’s missing is the notification library which I can provide separately. I didn’t include it here as I did not think it was in scope with the rest of the article. If you need it I will be happy to send it out to you. Feel free to ping me on twitter or via my contact page here.

This script will run forever so you can add it in your rc.local code in your system startup. Make sure you set it to run as a background so an example usage of this would look something like this:

python innosilicon-temp-check.py &

Also you need to ensure whatever machine this is running from needs to have internet connectivity as it will to notify you via emails for any of the failure cases described above.

Conclusion

If you found the Innosilicon LTCMaster Miner Review useful and you think it may have helped you please drop me a cheer below I would appreciate it.

If you have any questions, comments please post them below I check periodically and try to answer them in the priority they come in. Also if you have any corrections please do let me know and I’ll update the article with new updates or mistakes I did.

Which mining method you think will prevail in the future?

My personal favorite is proof of stake, however I know this requires an upfront capital investment but I think it’s ever-green and will eventually prevail in the future. The old method is too resource consuming and environmentally unfriendly. Also with the taxes going up on electricity and the inflation hitting record highs it will become nearly unprofitable.

If you would like to learn more about Crypto related stuff, I have a few articles below:

Leave a Comment

Your email address will not be published. Required fields are marked *