Didier Stevens

Monday 10 February 2025

Quickpost: Electrical Power & Mining

Filed under: Hardware,Quickpost — Didier Stevens @ 0:00

I was wondering: how costly is crypto mining for me?

I let an easy-to-use mining application run on my desktop computer (RTX 3080 GPU) for 24 hours.
After 24 hours, the miner reported that I had mined 0,00000365 BTC, and that this would earn me €0,39. The electrical power consumption of my desktop computer for that period was 13,024 kWh.

How much does 13 kWh cost me? Here in Belgium, we pay a lot of taxes on our utility bill. So just multiplying 13 kWh with the cost for 1 kWh would not produce realistic costs.
What I did instead: I took my utility bill of December 2024, with all the taxes, and created a spreadsheet that re-calculates all of the costs and taxes. That gives me a spreadsheet were I can simulate changes to my bill and see what the final result is. And with that spreadsheet, I increased my electrical power consumption for December 2024 with 13,024 kWh. That gave me an extra cost of €3,91.

Spending €3,91 to earn €0,39 is not viable at all.

But what if I would run the miner only when my solar panels produce enough power? That’s free electricity, right?

Yes, but … my electricity supplier also pays me money for the solar power I produce and don’t consume (e.g., inject).
Injecting 13,024 kWh would earn me €0,86. So that’s at least double the amount that mining would earn me.

Conclusion: as long as electricity tariffs don’t change significantly, mining is not financially viable for me. One would be better of buying BTC with the small payouts for injected power.


Quickpost info

Sunday 9 February 2025

Update: strings.py Version 0.0.11

Filed under: My Software,Update — Didier Stevens @ 8:50

This new version brings @ support for option search.

strings_V0_0_11.zip (http)
MD5: 2047669C7F4AB00F75553F396C812E2D
SHA256: 08DF9078B5EA41D50A3B06D2915B54246D02A932193D06C6130F9B9B8AD9F7A9

Saturday 8 February 2025

Overview of Content Published in January

Filed under: Announcement — Didier Stevens @ 0:00
Here is an overview of content I published in January:

SANS ISC Diary entries:

Wednesday 1 January 2025

Overview of Content Published in December

Filed under: Announcement — Didier Stevens @ 8:52
Here is an overview of content I published in December:

Blog posts: SANS ISC Diary entries:

Wednesday 25 December 2024

Update: oledump.py Version 0.0.78

Filed under: My Software,Update — Didier Stevens @ 0:00

This is a bugfix version.

oledump_V0_0_78.zip (http)
MD5: EAE4457988371D88FED6F063BBBDADC7
SHA256: 01D314C505C1C5A0AFF8CE8A5910223FA8511E27F1B2DB6054864723B5677581

Tuesday 3 December 2024

Update: 1768.py Version 0.0.22

Filed under: My Software,Update — Didier Stevens @ 0:00

This is a bug fix version.

1768_v0_0_22.zip (http)
MD5: 6446F5C09BF70FAFBB3171734844B350
SHA256: 4716A4A72FB4C0265CAF541D5FF709615B9CB4129C20C98F1BBA535AA5D40717

Monday 2 December 2024

Overview of Content Published in November

Filed under: Announcement — Didier Stevens @ 0:00
Here is an overview of content I published in November:

Blog posts: SANS ISC Diary entries:

Sunday 24 November 2024

Update: base64dump.py Version 0.0.27

Filed under: My Software,Update — Didier Stevens @ 21:13

When all items are selected with -s A and option -d from this new version on, items are decoded and dumped to stdout en separated by end-of-line character(s).

base64dump_V0_0_27.zip (http)
MD5: 6C3AE99A7FA0C525FF17B938A632AE53
SHA256: CDD84F574E25C93675BC0C14D954B59799B1FFEECC253A906B72A6DD669BDF4C

Friday 22 November 2024

Interfacing With A Cheap Geiger Counter

Filed under: Hardware,My Software — Didier Stevens @ 0:00

I got a cheap Geiger counter from Aliexpress:

This picture was taken on an airplane: you have more radiation (cosmic rays) at high altitude.

I figured out how to interface with this counter in Python to log real time data:

#!/usr/bin/env python

from __future__ import print_function

__description__ = "Program for geiger meter"
__author__ = 'Didier Stevens'
__version__ = '0.0.1'
__date__ = '2024/05/11'

"""

Source code put in the public domain by Didier Stevens, no Copyright
https://DidierStevens.com
Use at your own risk

History:
  2024/05/11: start

Todo:
"""

import optparse
import serial
import time

def FormatTime(epoch=None):
    if epoch == None:
        epoch = time.time()
    return '%04d%02d%02d-%02d%02d%02d' % time.localtime(epoch)[0:6]

def FindCOMPorts():
    ports = []
    for number in range(1, 10):
        try:
            comport = 'COM%d' % number
            with serial.Serial(comport) as oSerial:
                ports.append(comport)
        except serial.serialutil.SerialException as e:
            if 'PermissionError' in e.args[0]:
                ports.append(comport)
    return ports

def LogToCSV(comport):
    ser = serial.Serial(comport, 115200, timeout=0, write_timeout=0)
    ser.write(b'\xAA\x05\x0E\x01\xBE\x55\x00')
    alldata = b''
    fOut = open('geiger.csv', 'a')
    while True:
        data = ser.read(1000)
        if data != b'':
            alldata += data
            lines = alldata.split(b'\xaaU\x0e')
            alldata = lines[-1]
            lines = lines[:-1]
            for line in lines:
                if line != b'':
                    out = FormatTime() + ';' + line.decode('latin')
                    print(out)
                    fOut.write(out + '\n')
            if alldata.endswith(b'U') and not alldata.endswith(b'\xaaU'):
                out = FormatTime() + ';' + alldata.decode('latin')
                print(out)
                fOut.write(out + '\n')
                alldata = b''
            time.sleep(0.40)

def Main():
    oParser = optparse.OptionParser(usage='usage: %prog [options]\n' + __description__ , version='%prog ' + __version__)
    oParser.add_option('-l', '--listports', action='store_true', default=False, help='List ports')
    (options, args) = oParser.parse_args()

    comports = FindCOMPorts()
    if options.listports:
        print('Available ports:')
        for comport in comports:
            print(' %s' % comport)
        return

    if len(args) == 1:
        LogToCSV(args[0])
    elif len(comports) == 1:
        print('Using %s' % comports[0])
        LogToCSV(comports[0])
    else:
        print('Provide the COM port as argument')
        print('Available ports:')
        for comport in comports:
            print(' %s' % comport)

if __name__ == '__main__':
    Main()

Thursday 21 November 2024

Quickpost: The Electric Energy Consumption Of A Soundbar

Filed under: Hardware,Quickpost — Didier Stevens @ 0:00

I have a Samsung Neo QLED 65 inch TV.

Its standby power consumption is pretty good: 1,3 Watt.

It comes with a soundbar, and its standby power consumption is pretty awful: 5,5 Watt!


Quickpost info

« Previous PageNext Page »

Blog at WordPress.com.