site banner

Tinker Tuesday for October 15, 2024

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers.

Post your project, your progress from last week, and what you hope to accomplish this week.

If you want to be pinged with a reminder asking about your project, let me know, and I'll harass you each week until you cancel the service.

1
Jump in the discussion.

No email address required.

As there seems to be interest in my coming bitcoin mining startup, I thought I’d lay out some of my basic assumptions here, and go over a few (simplified) numbers and the steps I anticipate going through in the next few months. If desired, I’m happy to answer more questions or get more specific, within reason.

Legal:

Here in Russia, the government recently legalized bitcoin mining, and is matching this with opening new crypto exchanges in Moscow and (possibly) St. Petersburg. There will be a new company code in the tax system specifically for miners, and there will be a registry of legal mining companies created in the coming months. For those not in Russia, this is meaningful for a couple of reasons. First, Russia moving in a pro-crypto way implies that there will at least be a few years of trying this liberalized regulatory state, decreasing the risk to an incipient startup of regulatory changes (albeit, not making them zero). Second, this is a trade with the miners to agree to pay relatively higher energy prices ($0.048/kWh) in exchange for legality. This is important because there are many ‘grey zone’ miners operating now; they leech subsidized power from civilian energy grids ($0.0176/kWh), driving up the prices for people and contributing to difficulties in the energy grid. There are also larger political considerations at play; increasing Russia’s connection to the crypto payments system allows them to (potentially) move away from the USD in terms of international trade, with the obvious advantages to both Russia and BRICS in general.

Engineering:

I will be beginning with the S21 Immersion Miner. Immersion mining is an interesting technology; the electronics are submerged in dielectric fluid, an insulating fluid that prevents electrical shorts but is far more efficient at heat transfer than air. Additionally, the miners can be sealed away from the air, preventing dust buildup and the gradual erosion of circuit boards, as well as decreasing the extremely loud sound inherent in bitcoin mining. I see this project as consisting of three parts: the tank, the heat exchanger, and the miners themselves.

The Tank:

This is the easiest part from my perspective, because I don’t need to make it. I will be organizing the miners two deep to make removal from the tank easy. They are individually fairly heavy, even when they aren’t full of oil, and I don’t want to deal with the potential for injury to either personnel or the miner itself when lifting it out of the tank. The tank will therefore be fairly narrow in the Z axis, very long in the X, and about half a meter in the Y. I’ll have it fabricated of thin steel plate to minimize weight and cost, and will have a series of holes drilled in and fittings for copper pipe installed in a U shape around each column of miners. On top, I will cut and fit large sheets of acrylic to cover the miners. This decreases the chance for dust to accumulate in the oil itself, at the cost of adding slightly to maintenance requirements (in terms of taking off the acrylic shell each time). The tank will extend approximately 10 cm above the top of the miners, and I will fill this space with nitrogen gas. Nitrogen will displace the air, decreasing the already admittedly low risk of the oil gradually absorbing water from the air via hygroscopic effects.

The Heat Exchanger:

This will be the fun part, from my perspective. All the electricity I use is turned into heat, which means I need to dissipate a lot of heat. I will install pumps in parallel, flowing heat transfer fluid through the tank to absorb heat and to the outside, where I will build a matching number of heat exchangers from copper pipe and variable drive fans. Both the fans and the pumps will be controlled via a programmable logic controller (PLC), automating their speed to match the heat transfer requirements. I note that the location where the facility will be, Irkutsk, is extremely cold. The average yearly temperature is 0C, with expected average monthly average temperatures in the negative teens over the winter. The record low temperature is -49C, which means that I need a heat exchanger that can be switched off or have very minimal flow to avoid overcooling the liquid. I have looked into special cold-weather bearings for the fans to avoid them seizing, and am planning to wait and see if they are necessary. At the moment, the plan for the external heat exchangers is essentially to run the copper pipe back and forth in an outside duct (a serpentine heat exchanger), and then place the fan at the outer end of the duct (‘sucking’, not ‘blowing’), so that the air actually hitting the fan will hopefully have been warmed beforehand. I will be monitoring pump speed, fan speed, heat transfer fluid flow speed, heat transfer fluid temperature, and tank oil temperature. I am currently learning PLC control logic to attempt to automate this process.

The Miners:

This is a bit of an unknown for me. I have never mined cryptocurrency before, and will have a lot to learn when setting them up. I would like to use BraiinsOS as their operating system, but Braiins does not currently support the S21 Immersion. This should change in the next few months, but in the meantime I will use the stock firmware.

Beyond this, I expect interesting challenges with hiring, security, and leasing industrial space with sufficient available power. The facility will begin as a smaller, proof-of-concept business, but if successful we will raise investment and scale.

I leave for Irkutsk in 9 days and want to hit the ground running. I’ll update next Tinker Tuesday with my progress finalizing things here before spending a winter in Siberia.

Let us know how Irkutsk is. I think most non-Russians have only heard of it from the Risk board.

Will do! I admit, I wasn’t very familiar with it myself. I settled on it as a location because the electricity prices are the lowest in Russia, but the weather is ideal for this purpose as well.

I imagine it’ll be… Cold. Industrial. The Russians I’ve spoken to about it are rather grim when I mention I’ll go there.

I put my existing writing project on temporary? hiatus. It was the first thing I've ever written of that length (~170k words), and though I did have that publishing offer for it, I didn't quite feel like it was good enough to put out in book form without revisions I kept procrastinating on. So I just plowed forward on a second xianxia novel instead (With a more defined book structure). After playing Black Myth Wukong, I ended up with a persistent itch to write an alcoholic monkey cultivator story and I've decided to give in and just do it. I've been on a tear, knocking it near ten thousand words per week at the moment (37k! Aiming to hit 39 by end of day!). The publisher I was in talks with for the other project is tentatively open to considering this one as well, so I'm hoping to have a manuscript for book one completed by the end of the year.

Little anxious about it, because it's been viewed by a much smaller audience to date so I have limited feedback, but it appears to be mostly pretty postive so far. Tbh it's super weird that xianxia is now kinda my thing, considering I don't speak chinese and it's not even my favorite genre, but it's just been flowing out of me much more smoothly than my urban fantasy and western high fantasy projects lately.

I will soon be founding a Bitcoin mining startup. I have never mined crypto before, but there are a confluence of factors (cheap power, extremely cold weather, low taxes) that make me believe the region I have selected is ideal, and make me willing to spend the time and effort on beginning this company.

As part of the process, I will be finding an industrial site, learning to program programmable logic controllers (PLCs), and designing as well as building a heat exchanger. This will involve some skills I have never done before (brazing, the aforementioned PLC control, setup of BTC miners) and some I have (I’m comfortable with industrial machinery, though far from experienced).

Is this something that the people of the Motte would be interested in updates on?

I will soon be founding a Bitcoin mining startup

It seems pretty late to get into this now.

Updates are always interesting.

Speaking of mining and updates, I wonder what happened to that guy who had a physical mine? I think it was gold deposits IIRC.

I would be interested in updates, but I also think we should have a forum policy to instaban anyone shilling crypto on here.

Not anti crypto as a concept, just don't want to see this place turn into a zoo for scammers.

Glad to hear your interest, I enjoy your posts (though I myself am mostly a lurker).

Don’t worry about shilling from me, at least. The reason I posted here (as opposed to the main thread) was because I’d like to share the process. I anticipate it being an interesting journey.

In short, I am planning on beginning with a 100 kW facility in Irkutsk, Russia. Irkutsk is one of the largest cities in Siberia, and offers significant hydroelectric power availability due to its proximity to Lake Baikal, the world’s largest freshwater lake by volume.

Yeah I wasn't flagging this post or you in particular. Just registering concern that the genre can be very dangerous. I've seen several forums/channels/etc end up inundated with a firehose of bullshit that way.

I'm also of the opinion that the primary thing keeping this forum interesting is that it is totally impossible to monetize at the moment. Former posters from this very forum have gone on to monetize work that is very similar to what they used to post here, and you can see how they've gotten (in my humble opinion) significantly less interesting as they've run into the rutted wagon wheels of how you make money at shitposting.

Shitcoin shilling is one way the forum could become monetizable for someone, and then you get an avalanche of shit flowing down from there. Keep this place useless.

I’ve seen that happen and it’s always a shame. Whether I liked or disliked the poster (or both, on different occasions—looking at you, Kulak) the incentives of making money on one’s writing push them to agree with the greater egregore.

This place is very useful! Iron sharpens iron. One of my hopes in posting is that someone with more experience might make suggestions that turn out to be helpful (and the other is simply to give back, in the sense of producing rather than merely being a consumer of the rest of the forum’s efforts). But yes, monetization is often a kiss of death for the spark of originality that makes something interesting.

I'm not opposed to this, but I trust the mods enough that I'm not that worried about them being too tolerant of crypto scams. Not exactly the sort of content we encourage here.

You may be interested in trading on my exchange, www.Bitnomial.com

We offer hashrate futures which can be used to hedge against price fluctuations and power shortages. It's mostly useful for larger, crypto native businesses, but if you wanted to reach out to our FCM (the part of the business that handles customers) they may be able to give you more insight into costs and on-boarding.

At a minimum, you might want to look into this site: https://hashrateindex.com/?ref=changelog

I’m familiar with Hashrate Index, but thank you for sharing!

As for your exchange… Again, thank you for sharing. The area I’ll be in is a large industrial one; I hope to not be dealing with consistent power outages, but we shall see. I’ll consider it if I see a larger future need to hedge against changes in hash price.

Edit: I’m out of the US, and think using this could be difficult.

I want to post an update on the status of my effortpost on the state of mental health care in my state. The first draft has weighed in at 8,202 words and, as trying to write the conclusion made clear to me, is heavy on legal and regulatory explanation. In fact, it is mostly a narrative of the impact of said legal and regulatory framework on our various clinics, seen through the lens of my own role in that, but light on outcomes, client stories and the like. While I can cram some of that into the conclusion, I'm planning on a rewrite that will try and flesh out how things have changed for our clients a little bit more than just the standard, "client care in these departments is suffering," and streamline the legal and narrative stuff, hopefully significantly. Or perhaps my perfectionism is getting the better of me. Either way, I'll find out as I get into the second draft. Stay tuned!

and streamline the legal and narrative stuff, hopefully significantly

I for one would also be interested in your views on the legal and regulatory stuff. But then "here is what the regulations say, here is how they're interpreted, this is what the situation on the ground actually looks like, and here are the specific problem areas where the regulatory incentives result in stupid outcomes" is catnip to me.

Running DOS and Windows 9x games natively on fresh new silicon.

https://www.vogons.org/viewtopic.php&t=93480&start=540

https://github.com/eivindbohler/itxllama

https://www.hackster.io/news/the-itx-llama-does-dos-right-ad88bfa80ca6.amp

Going to get in on this. CPU has weak IPC so at 500mhz is equivalent to Pentium 233 MMX. Might pair it with Riva TNT2 Pro AGP, the AGP is just overclock PCI so it isn’t very compatible with newer cards.

https://youtube.com/watch?v=ogHqmjn6sY4

Hey, are you trying to run tiny ML models on low powered and cheap SOM? If so could you share why you selected that specific board?

Not at all, that would be impossible. This is for running Windows 98SE on bare metal native hardware with period correct performance to play old computer games.

Yeah I saw your repo again, got confused by the name TinyLlama.

I recently bought a Meshtastic board, a Heltec v3. For those who aren't familiar, this is a license-free low-bandwidth LoRA (long range-radio) device that can reach out very long distances on minimal power. The Meshtastic platform is a peer-to-peer network that supports text and data communication, the most notable part being that each device on the network is a node that receives and re-transmits messages to other nodes around them. In areas with good coverage, it means that you can potentially send messages to someone several hundred miles away from a board the size of a pack of gum.

I'm in a metropolitan area but at the base of a hill and don't have a very good connection to the rest of the nodes in my area. If I had the space, I would make a solar node (enclosure, solar panel, charge controller, battery, Meshtastic board, and antenna) and mount it on the roof, but unfortunately I live in an apartment and can't quite do that. However, if I find a good spot in the future, I might perform a guerilla installation somewhere nearby. Ideally it would be somewhere I frequent, since I would need Wifi or Bluetooth to connect to the node with my phone.

You can find a Meshtastic kit on Aliexpress for maybe $35 shipped, I would highly encourage anyone with even a passing interest in radio to pick one up and play around with it for a weekend.

The Heltec v3s are really nice boards, whether you want to use them in a Meshtastic setup or just for direct Arduino programming. The API for the latter is a little rough, but unfortunately pretty much every LoRA board is like that given the underlying chips. Only big complaint is that the external antenna cable placement sucks: there's no good way to just zip tie some strain relief in place, so if you end up wanting to use the external antenna (and you should!), either use some potting compound (if permanent), silicone rubber (if semi-permanent) or hot glue (otherwise) the thing into place or it will inevitably work its way loose.

A number of the Heltec CubeCell boards have a built-in solar charge circuit. I'm most familiar with the AB02S, but I think you can get displayless and GPS-less versions with the same capability with options like the AB01. Much more annoying to develop with, given the lack of display, though.

If you're interested in guerilla installs, I'd also look at the LilyGo T-Beams. Including both an 18650 battery slot out of the box is really convenient and a lot more robust than those tiny JST-SH battery leads on Heltec boards (and most competitors like Adafruit offerings). And you can get the simpler version cheap. Avoid other LilyGo equipment, though; the LilyGo TTGO boards are famously bad for batteries.

Very nice!

I've idly wondered before how hard something like Meshtastic would be, so this has definitely got me interested.

How did you choose the Heltec v3 over the many other options?

Are "guerilla installations" common in the Meshtastic community?

It's not difficult at all to get a board connected to your phone (via bluetooth) or home wifi network. About an hour or two of tinkering should get you up and running. If your home is located at a good vantage point and in a populated area, you should be able to connect to other folks quite easily, otherwise you might have to try going up a hill, or mounting the device outside. I use a portable USB battery pack to power it up on the go.

This was a month or two already, but when I was searching around online it seemed like the Heltec v3 was the cheapest and most popular product available that came with a case and antenna, so I figured to jump on the bandwagon. Worst case you'd be $20 in the hole. Make sure you get the one with the correct frequency for your country.

Not sure how many guerilla Meshtastic installations there are out there! If you ever run into any issues you might have to take it down so it needs to be at least somewhat accessible.

@Southkraut, how are you doing?

Also, @ArjinFerman, just for you: https://github.com/Shrugger/F7s

Feel free to make fun of everything in there. Right now it doesn't even compile, and if it did it wouldn't even be so much as a "Hello World".

I don't usually publish repos ever since I had to scrub the entire commit history of one thanks to a prank. Don't make me re-learn that lesson!

Noice!

This works (well, if it compiled) as a standalone project, or do I have to figure out Stride to get it working?

You'll probably need Stride to compile and run it, but don't fret - there's nothing to run yet. With the latest commit the whole thing is ready to compile, but so far all I've done is migrate over whatever was reasonably salvageable from the Godot days and ram it into a Stride project with zero finesse. If you were to compile and run it, you'd get a whole lot of nothing.

Next up is me getting my bearings and putting my code where my mouth was last week, i.e., getting some agents to visibly do things. Until then, there's nothing you could really do with the project. And once there is, I can indeed be assed to build an executable for you so that you needn't bother with Stride or getting your Visual Studio in order.

Migrated most of my backend code from Godot to Stride. It's still WIP; I ended up leaving out a lot of elements that could not be ported cleanly with big old "// TODO: Redo for Stride." comments; a lot of work that would need to be done to get it all back up and running.

Qustion is - do I want to reactivate all that, or reinvent it from the ground up again? Or should I maybe do something simpler for once, rather than try to build yet another overcomplicated, undervisualized and non-interactive simulation?

Other than that, a recurring theme was which data types (Vectors, Quaternions, Matrices etc.) to use for coordinate systems and geometry. Dotnet types, Stride types, or homebrew types? Each has advantages - the dotnet ones migrate cleanly, the Stride types should have the best performance since no casting is necessary, and the homebrew types migrate cleanly and would be best-adapted to my backend use-cases, but of course probably contain more errors than the dotnet types.

Right now I think using the Stride types is the best option; it will hurt migratability (is that even a word?) for future engine switches, but the performance benefits and reduced need to cast will be valuable. OTOH they won't cover all use cases, since much of my physics backend runs on double-precision, and indeed should continue to do so. I am not confident in my decision.

At this point I have almost completed the migration of my Godot backend to Stride. Over 900 compiler errors fixed. There are holes though. anything that did rely on builtin engine classes got a makeshift makeover that didn't always take prisoners. I have a lot of NotImplementedExceptions on my hands now. I did get some refactoring done on the way, but overall the damages exceed the benefits for now. None of this is going to work without many days of additional effort.

I'm thinking of just fixing the last few compiler errors and then putting together a simplified demo that doesn't require the more borked parts of my backend for now, so I have something visual to tinker with while working on the simulation aspects in parallel.

Highspace

On one hand things are moving, but on the other I feel a bit stuck. Last week's task was to create a "save game" feature, at least on the backend, to make future testing a bit easier, however:

  • A few weeks ago I decided it might be time to bump up the version of the FS2 binary. Since most of the project is is LUA, I figured it shouldn't be an issue. Turns out I actually had a bugfix there that made the in-mission "tactical view" even possible (FS2 forgot to reset lights when rendering a frame from LUA, causing them to accumulate, and performance to drop). I didn't open a pull request with FS2, and no one else noticed the bug, so updating the source reintroduced. Oops.
  • Then I noticed that the game gets stuck in tactical mode. At first I thought it must be an issue on the LUA end, but after some amount of painful debugging I thought that maybe it's also a result of the FS2 binary update - yup! So it looks like I'll have to roll everything back to the previous version for now, because I'm not in the mood for debugging the FS2 source.
  • Found another bug in the System Map that causes everything to disappear if the time compression is set too high, and enemy ships run into you. I'm still on debugging this one.

Redot

Somehow I got excited for the Godot fork and wanted to set it up, but it looks like their compiled binaries are incompatible with my distro, which either means:

  • upgrading the OS (which I'm not really in the mood for either at the moment)
  • compiling Redot from source, which I might to if I have some spare time.

Redot

It's more alive than I expected. My confidence in it going places is still low, but I do suppose I'm already somewhat surprised.