site banner

Tinker Tuesday for October 22, 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

3
Jump in the discussion.

No email address required.

Small update for this week. Most of my prep work is already complete, so I’m in a bit of a holding pattern until I can finalize the purchase of the miners. Seems that part of the team from the distributor I’d like to work with is in Dubai for an expo, which slows things down. Ah well, it’ll come in time.

Beyond that, juggling investors is weird sometimes. I have raised a moderate amount of money for this project, and the people behind it have strange questions sometimes. I do my best to make sure they understand everything (the risks, how Bitcoin mining itself works, how the company is set up)… But there still abound small misunderstandings here and there. I’m not sure whether it’s my own issues with explaining, or their desire to make money taking precedence over reading pages of text.

I saw some of your posts from the past week or two, that you're doing a lot of this from scratch. I'm interested in what you're doing on the utilities side (heat exchanger, PLCs, power). I have about a decade of experience as an engineer in the heavy industrial space, mostly on power distribution (which I can speak to quite well), but I have some basic experience with industrial controls as well (which I have enough knowledge to be dangerous). My day job is a very scaled-up version of what you intend to do, but the principles are the same.

If you're running into technical challenges, I'd be glad to bounce some ideas back and forth.

An unsolicited open-source reference that you might find useful, mostly applicable to North American practices, but might be a good jumping-off point: https://ibiblio.org/kuphaldt/socratic/sinst/doc/liii.html (Lessons in Industrial Instrumentation)

I hope you've had a good weekend!

Thank you for the reference book. I've started looking it over; it looks like it's more in depth than I truly need, but it could prove to be a useful resource, especially if I want to learn more in the future. There's lots I'm unaware of.

As for the utilities... Well, let me give you some numbers (and my reasoning, for context):

Heat Exchanger: I'd like to build it for a 100 kW crypto mining facility, to start. It's possible that the actual facility itself will be smaller in terms of power usage (i.e. 65 kW to begin) due to some differences in the final miners being selected, but I'd like to overbuild the system so that it is relatively easy to scale. Additionally, the long-term goal would be to build up to a 1MW facility--but in that case, I'm thinking of just adding 9 more modular heat-exchanger-and-tanks. This is potentially somewhat less efficient (not to mention a pain in the ass to build out, compared to a larger and combined heat exchanger), but I think it would offer the advantages of 1) modularity, again, and 2) less single points of failure. This plan is very much subject to conditions; I will be flying to Irkutsk this coming weekend and seeking a place to build all this, and the available space will dictate a lot of what future scaling looks like.

The heat exchanger itself is going to have to dissipate 100 kW of energy, at a high potential temperature of 25C (July in Irkutsk). The median use case will be significantly easier, with an average yearly temperature around 0C and months of winter where the weather should stay around -20C. Before I get into details, I want to apologize for any confusion in terminology. As you noticed, I'm doing this from scratch, and my "experience" in this field is entirely autodidactic (my formal studies were entirely unrelated). Please bear with me if something is miswritten or doesn't work the way I think it does, and consider correcting me. I'm writing here to learn and improve, and iron sharpens iron.

The basic function of the heat exchanger is going to be copper piping flowing through the tank (filled with dielectric fluid) and around the miners. The miners themselves are fairly heavy, and will eventually require maintenance. Maintenance is a bit onerous; you need to disconnect the miner, pull it out, clean it with degreaser, and then you can operate on the actual issue itself. In turn, the heavy lifting means that the tank is going to be long and narrow, so that you can always stand by the edge and lift a miner, rather than trying to take one 'from the center', so to speak. Downstream of this comes the shape of the pipes. What I would like to do is to have them in a series of horizontal U shapes, with two miners inside each U, and the heat transfer fluid input/output connecting at the top of the 'U', for lack of better terminology. This means that there will be a significant number of inputs and outputs per tank, and as such I'll have it professionally fabricated.

So, 100 kW. The miners would prefer their cooling liquid input around 30C, and will output it around 55C, meaning I have delta_T of 25. Given the expected true maximum average temperature of 25C, I think that assuming occasional days of 30C outside is reasonable. This also conveniently gets us the same delta_T for the outside heat exchangers as the one internal to the tank, at the cost of potentially overbuilding the heat exchanger somewhat. As I understand it, this also makes the system more reliable, and regardless if we experience a truly anomalous spike in temperature (i.e. outside temps of 40C, above the record high temp there) we can switch the miners into low-power mode and decrease cooling needs anyways.

Calculating heat transfer seems to be Q = U * A * delta_T (or, for anyone else reading, heat transfer = material heat transfer coefficient [W/m^2] * area * difference in temperature). I know that I want to be able to dissipate 100 kW, and the heat transfer coefficient of copper pipe is 385 W/m^2. Delta_T is going to be 25 degrees. This leaves us with calculating the area, which is equal to 100,000/(385*25), or 10.38 m^2 of surface area. Now, surface area A = pi * diameter * length, so 10.38 = 3.1415 * 7.5 cm (0.075) * L. Solving for L gives us 44.06 meters of pipe. Notably, this also means we need the same amount of pipe inside the tank.

Now, the astute reader may note I used a pipe diameter of 7.5 cm. This is the pipe I have determined is the best to use for this use case. It's cheapest for moving large quantities of heat transfer fluid (and I need a flow rate of 4.938 kg/s).

Flow rate was determined as follows: Q = m_dot * C * delta_T (heat exchange = mass flow rate * heat transfer fluid specific heat capacity * difference in temperature). 100 kW = m_dot * C (which varies from 0.76 to 0.81 for various temperatures of 60% ethylene glycol / 40% water mix) * delta_T, which we determined to be 25C. Here, we get m_dot = 100 kw / (0.81 * 25), or 4.938 kg/s. I took the highest temperature's specific heat in an attempt to better model a borderline or edge case condition; if we look at a colder temperature outside (and presumably colder heat transfer fluid as a result) then the difference in heat exchange efficiency very rapidly outpaces the change in specific heat capacity.

So, needing a flow rate of about 5 kg/s, using large diameter pipe seems ideal. This keeps head pressure down on the pumps and makes it feasible to pump what seems to me to be a large amount of fluid per second. Specifically, with 60% ethylene glycol/40% water mixtures, 5 kg/s is equal to 3 kg/s EG and 2 kg/s H2O, with a density of 1.1132 g/cm^2 and 1, respectively, for a cumulative volume of 2695 + 2000 cm^2/s, or about 4.7 L/S, or (as pumps seem to be sold in m^3/h) 16.92 m^3/h.

Bringing all this back around, I would like to have 5 pumps in sequence, each capable of 4 m^3/h. This means that on the hottest expected operating days, the pumps will be running around 85% of capacity. I expect the average utilization to be significantly lower, however. Additionally, the external heat exchanger will have variable speed fans as well, also controlled (as with the pumps) by PID. The goal is to avoid overtaxing the pumps on hot days by also spinning the fans higher, and increasing airflow over the external heat exchangers.

Now, the external heat exchangers will be the same total surface area, and will also be split into 5 modular parts. Bypass valves will connect the system in case of failure of one part. I am learning PLC control with Paul Lynn's excellent PLC Dojo. I certainly have much more I could write, but this is already getting long and I don't want to overwhelm you or anyone else reading! Happy to continue (perhaps in tomorrow's Tinker Tuesday) and discuss the external heat exchanger design, PLC principles and basic ladder logic I'm trying to create, and my plans for power (though this last is probably the thing I know least about). I invite any questions anyone may have.

My own questions/musings: -- Given the space between the coolant pipes and the miners themselves, does it make sense to target a lower temperature for coolant input, e.g. 25C, and count on admixture to raise that to 30C by the time it's brought into the miners? (Note: I'll of course be trying different temps and finding the best performance for my particular setup, but I think a professional opinion would be interesting) -- Do I want to install a propeller (fan?) in the tank to increase fluid mixing? -- Any advice on shopping for temperature or flow sensors that can be controlled via PLC? -- I was planning on using Ignition as a SCADA. Any advice on the best communications protocol?

This is quite an undertaking for a solo venture. I'm assuming that you've got some other folks on the side working with you but it sounds like you're doing most of the heavy lifting yourself. I wish you good luck on your travels this upcoming weekend.

I don't think I follow the schematic of your cooling system entirely. So it's hard to follow your calculations if I don't quite get the whole picture, even if the equations by themselves make sense. Maybe drawing a P&ID would assist the audience? I know, asking a lot from an internet stranger.

A couple of thoughts that came to me as I was reading through your post - wondering if there is any benefit in sizing down the cooling system to better deploy the capital elsewhere? Obviously it is important to have engineering margin, and it sounds like you're building the cooling system to accommodate the hottest of days. The other option would be to size it down slightly, and decrease the number of miners you run on the hottest days of the year. In other words, instead of 99.9% uptime for the cooling system, might it be worth evaluating what 99% uptime can get you? You can always upsize the cooling system on the next build. Or you could add provisions in the piping so that you can connect additional cooling in the future, in case the design doesn't perform the way you expected.

Will be glad to talk about electrical when you get there.

Thank you for being (upfront!) willing to help! It is basically entirely a solo venture. I will have outside startup capital, but no help in making things happen. I do plan on hiring someone to babysit the miners; I don't want to live there, so the plan is to have someone local who can show up and do needed maintenance without me having to fly back each time. And thank you for the luck; my flight may be delayed another week (we'll see) due to last-minute contract wrangling with the investors. I think that's the most frustrating part for me.

It's not asking a lot at all; asking a lot is asking an internet stranger to look over my calculations! Here's my sketched-out P&ID; forgive me if it's not to scale and if I don't have a ruler with me. I hope it gets the idea across. If you have strong feelings about having a proper one, suggest a program to do so and I can make one up. This seems to me to be a useful skill to gain, anyways; my preparation consists of a sketch similar to the one I just made, along with a series of numerical calculations and markings.

Well, I'm not averse to downsizing the cooling. It's just such a small part of the overall cost that it seems to me to be okay to overbuild, especially since there is a potentially-unknown amount of extra heat being added. More specifically, the cooling system as is will cost about 3% of the overall startup cost (the miners are by far the most expensive part). That number includes generous margin of error; my actual predicted cost is 2348.75 (plus shipping), which is rather under 3% and anyways rounds up on some small parts. When I say that there could be additional heat being added... Well, I'd love to overclock the miners. Exactly how much I can do that by will be directly proportional to my ability to cool them. And cooling itself is generally going to be very easy; I mean, no worrying about chillers or anything, just dumping the heat outside.

With that said, adding provisions to connect additional piping in the future is a good idea. And, again, I'm not against downsizing the cooling... I just think that doing so would save me relatively little (0.5% of the project cost? limited upside) and have uncertain downside (potential lack of cooling).

You’re the man! Thank you for reaching out, I did figure there were some smart people here and I might get lucky :)

I appreciate the resource and will check it out. It’s late here and I’m calling it a night for now, but I’ll come back and go over what I’m thinking in more depth tomorrow. A sanity check would be appreciated. I feel confident that I can do this, but I am acutely aware that there are a bunch of lessons that have to be learned through experience… And that it’s both easier and cheaper for someone else to already have that experience.

Another idle week as far as programming goes, how's your stuff going @Southkraut?

Also, re: last week's comment on 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

Yeah, I was a bit more hopeful from the start. Looking at their social media, there seemed to be a decent amount of activity. Also, as far as I can gather, politics was not the primary / only motivation for the fork, it seems like people where getting frustrated with the technical side of how the engine was managed, and the political drama was just a good opportunity to channel that frustration.

Eyeballing people's reactions, it seems the userbase wasn't actually as political as the community managers would like, and you were far from alone. Let's see how it goes.

Thanks for asking. Please keep it up; it's expectedly motivational.

Got a good deal done this week, but sadly most of it is firmly in the technical-rabbit-hole category, with practically no progress on the visible-and-interactive goal I had set for myself.

Managed to completely disentangle and sort out which parts of my codebase should be in double-precision and which in single, replaced many old double-precision data types of mine with new and improved ones or the ones Stride ships with, and made sure that no casting between precisions takes place except when talking to the engine. The code's in much better shape now.

I also unified all my mathematical utility classes, and this too has cut down on a good bit of harmful redundancy and made it nicer to work with. So overall I worked on my tools rather than the actual workpiece.

Today I started getting back to trying something visible and interactive and...you can't see a damn thing. All I get is a grey screen. I'm guessing my approach to keep the whole thing independent of the Stride editor is backfiring on me and now I have two parallel scene hierarchies and somehow my rendering operates on a different one from the one that all my 3D geometry is in. Not sure about the exact cause yet. Will tackle this next.

This thread looks deleted? What's up?

All posts need to be manually approved by mods, even for veteran posters.

TIL this takes the form of threads looking like they're deleted. Weird UX, but so it goes.

Also your comments still make it to the site-wide comment page. And the context button will still bring me in here with you guys before it’s approved.