Pages:
Author

Topic: Official FutureBit Apollo BTC Software/Image and Support thread - page 49. (Read 48695 times)

hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
Or do I need a dedicated 5V USB-C power source separate from my laptop?
I do think it makes sense to buy a PSU for the Orange Pi; that's how I would do it.
No problem, but do I also need a powered USB hub so that my laptop can communicate with the Orange Pi? I was assuming that the connection would happen through the USB-C port.
Well you usually don't communicate to it through USB. Keep in mind this is not a microcontroller with simple UART port, it's a full-on computer. When do you ever connect two computers to each other with a USB cable to transfer data? Wink
You'd usually use SSH & SCP, or potentially even use a NAS to sync data between devices on the same network. Same thing with an Orange Pi.

Anyhow, you should be able to power it through a PC USB for initial setup, but once you start hitting it with services, initial blockchain download and similar, you want it to be on its own PSU.
full member
Activity: 626
Merit: 159
I have searched through all the posts on this 88 page thread and cant find the default settings for Power & Frequency for Eco, Balanced or Turbo mode anywhere.

Can someone post this information as I would like to tune off the Turbo settings just a bit more for all of my whooping 24 Apollos which are currently all running in Turbo mode.

Essentially I have 4 x Controllers/Full Nodes each with 5 attached standards each on a 1600W EVGA P2 PSU. That is the current setup I am running.

Also still hoping to see a best share, difficulty per miner hardware and blocks found in the gui Smiley

Thanks in advance!
full member
Activity: 933
Merit: 175
At this point, reflash.
Reboot should suffice, though! Always try that first. I also had to reboot Apollo sometimes to pick up the new settings.

I assumed he did that  Grin I would never attempt anything like that without restarting the troublesome application or entire machine first, and then posting on forums.
member
Activity: 203
Merit: 37
I have tweaked the bottom cover and fan mount for the Apollo BTC a bit more and consider it finished now.
...
...

The Noctua NF-A6x25 is not noisy when running at 12V full speed, but maybe it might be audible in a bedroom during a quiet night. If the Apollo is used as a media center, then the noise from the additional fan is entirely negligible.

Let's try posting a picture again.....







Is that image size OK or do I need to shrink them?
member
Activity: 203
Merit: 37
Or do I need a dedicated 5V USB-C power source separate from my laptop?
I do think it makes sense to buy a PSU for the Orange Pi; that's how I would do it.
No problem, but do I also need a powered USB hub so that my laptop can communicate with the Orange Pi? I was assuming that the connection would happen through the USB-C port.
newbie
Activity: 11
Merit: 1
There is no API, no. You can find more information about this by using TryNinja's search engine and looking for 'API' in this topic: https://ninjastic.space/search?content=API&topic_id=5340015
As jstefanop is saying here, there is a file that's basically the API.

There is a script called miner_stop_all.sh that is called by the GUI when you stop the miner; it should be possible to just execute that instead of killing the process. miner_start_all.sh starts it back up.
Source here: https://github.com/jstefanop/Apollo-Miner-Binaries/blob/main/linux-aarch64/miner_start_all.sh and here: https://github.com/jstefanop/Apollo-Miner-Binaries/blob/main/linux-aarch64/miner_stop_all.sh

Locate those in Futurebit OS and call as you wish.

This approach seems to be working, somewhat.

I did a find for miner_start* and the only thing I could find was located in /opt/apolloapi/backend/apollo-miner. That directory has miner_stop.sh and miner_start.sh.

I stopped the miner in the web GUI and then SSHd into the Futurebit and ran ./miner_start.sh and got the following:
Code:
futurebit@futurebitbtc:/opt/apolloapi/backend/apollo-miner$ ./miner_start.sh
rm: remove write-protected regular file 'apollo-miner.350039001950324E31323320'?
ls: cannot access '/dev/ttyACM*': No such file or directory
Started

This started the miner as evidenced by the power draw and the fact that my pool reported it as back online but the web GUI still shows miner as off even after refresh. Also, using miner_stop.sh also stops the node it seems which is not ideal.

So essentially, both the miner and node are stopped when you run miner_stop.sh which causes the web GUI to show both as stopped. Then when you run miner_start.sh the miner is started (and maybe the node) but both the miner and node still show as off in the web GUI even though the miner is running. I don't currently have a way of verifying that the node also comes back up as the GUI just shows it as offline.


EDIT: Did a find for *miner* and found that there's a service called apollo-miner that's started or stopped when you click the start or stop button in the web GUI so if you just send sudo systemctl stop apollo-miner it stops the miner only and the web GUI updates accordingly. You can then send sudo systemctl start apollo-miner to start it back up and the web GUI updates accordingly as well. Seems like this is the best way to to start and stop the miner.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
cant seem to control my miners through the web UI...try and change the speed to eco but it still stays in turbo mode same as hitting the stop mining button it continues to mine shutdown doesn't work either
any help is appreciated
At this point, reflash.
Reboot should suffice, though! Always try that first. I also had to reboot Apollo sometimes to pick up the new settings.

Excellent, thank you very much!

I suppose this also means that I don't need a separate enclosure for the Orange Pi. It could stay in the Apollo (with the white connector unplugged).

Or am I missing some risk of creating a ground loop that will fry something?
No worries! That's indeed possible. In theory, your hashboard and Pi will have different grounds, but will be connected through the enclosure. That's a loop, but I don't think it will cause significant issues.

Could I safely power the O-Pi via USB-C from the same laptop that runs the software for the "Standardized' Apollo part, and program the O-Pi through the same USB-C connection?
I honestly don't know that a laptop can provide enough power. The hashboard won't pull power from USB anyway,  since it has a dedicated power supply, but the Orange Pi will.

Or do I need a dedicated 5V USB-C power source separate from my laptop?
I do think it makes sense to buy a PSU for the Orange Pi; that's how I would do it.
member
Activity: 203
Merit: 37
I would like to separate the Apollo BTC full node into a standard node and an Orange Pi.
Yes, you just need an appropriate 5V, 15W USB power brick and a USB-C cable.

Excellent, thank you very much!

I suppose this also means that I don't need a separate enclosure for the Orange Pi. It could stay in the Apollo (with the white connector unplugged).

Or am I missing some risk of creating a ground loop that will fry something?

Could I safely power the O-Pi via USB-C from the same laptop that runs the software for the "Standardized' Apollo part, and program the O-Pi through the same USB-C connection?
Or do I need a dedicated 5V USB-C power source separate from my laptop?
full member
Activity: 933
Merit: 175
cant seem to control my miners through the web UI...try and change the speed to eco but it still stays in turbo mode same as hitting the stop mining button it continues to mine shutdown doesn't work either
any help is appreciated

At this point, reflash.
newbie
Activity: 15
Merit: 0
cant seem to control my miners through the web UI...try and change the speed to eco but it still stays in turbo mode same as hitting the stop mining button it continues to mine shutdown doesn't work either
any help is appreciated
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
I would like to separate the Apollo BTC full node into a standard node and an Orange Pi.

This would allow me to run the 44 ASIC's via USB while building an OS for the Orange Pi, avoiding mining downtime.

Looking at the connections between Orange Pi (FutureBit version) and the mining board, it looks like disconnecting the white connector between the Pi and the Asics will turn the Apollo into a Apollo Standard unit with regard to it's functioning when using the micro USB port.

Is that correct?
Absolutely correct. The Apollo will run without Orange Pi attached, as a standard unit, through a microUSB cable.
Do make sure to be careful with that port though; they can rip off if you don't.. Wink

If so, can I operate the Orange Pi by itself somehow while the ASICs are mining?

I could print an enclosure for it but am not sure what power to apply to it to fire it up.
Yes, you just need an appropriate 5V, 15W USB power brick and a USB-C cable.
member
Activity: 203
Merit: 37
I would like to separate the Apollo BTC full node into a standard node and an Orange Pi.

This would allow me to run the 44 ASIC's via USB while building an OS for the Orange Pi, avoiding mining downtime.

Looking at the connections between Orange Pi (FutureBit version) and the mining board, it looks like disconnecting the white connector between the Pi and the Asics will turn the Apollo into a Apollo Standard unit with regard to it's functioning when using the micro USB port.

Is that correct?

If so, can I operate the Orange Pi by itself somehow while the ASICs are mining?

I could print an enclosure for it but am not sure what power to apply to it to fire it up.
newbie
Activity: 10
Merit: 1
hey guys,
its possible to use stratum V2 with the Apollo miner?
member
Activity: 203
Merit: 37
I have tweaked the bottom cover and fan mount for the Apollo BTC a bit more and consider it finished now.

It fits well without taking paint off, but does not stay stuck by itself any longer.

Running temperature monitoring tests of the GPU and CPU, (while hashing on Turbo, node off and playing a full-sceen youtube continuous news fees at high resolution in 25degC air temp) shows significant temperature reduction with and without powering the fan.
I have taken some screenshots and will post them once I am a Jr member.

- adding a bottom cover with short (7mm) feet has almost no effect. CPU temperature drops almost imperceptably from 84degC to 83degC. But at least it's not making it hotter while providing some protection to the exposed components.

- adding a bottom cover with 45mm long legs and a fan (not powered up) drops the CPU temperature to 79degC.

- running the fan on low noise setting (hooked up to a lab power supply and restricted to 0.04A max, I figured that would be very similar to using the 100ohm 'low noise cable') causes a temperature drop to 70degC

- running the fan @12VDC without current restriction (it then uses 0.07A) causes a CPU temperature drop to about 63degC.

The Noctua NF-A6x25 is not noisy when running at 12V full speed, but maybe it might be audible in a bedroom during a quiet night. If the Apollo is used as a media center, then the noise from the additional fan is entirely negligible.

So, I might add a switch to route the amps to the fan either through a resistor, or straight from the 12V source. Might even have an Off position. Off - Quiet - Full Speed

I have hopefully added enough notes to the OpenScad code to make it useful for others who want to tweak it or use a different fan or whatever.

Code:
$fn=60;


// Polli bottom cover

// purpose: Protection from physical damage
// better air entry
// Wifi antenna outside

translate([0,0,5])// to visually separate cover and legs -DISABLE (*) TO RENDER LEGS
union(){// Main part of Polli bottom cover

difference(){// remove bits from cube above zero line

*cube([160, 109, 17.5]);//the part above ground level that slides onto the original housing; adding 2.5mm each side for wall thickness FIRST PRINT- TOO SMALL
cube([160.5, 109, 17.5]);//the part above ground level that slides onto the original housing; adding 2.5mm each side for wall thickness


union(){// Peg holes for legs for Polli Bottom Cover

union(){// Pegs

translate([12,3.5,0])
cylinder(h=2.5,r=2.5);

translate([3.5,12,0])
cylinder(h=2.5,r=2.5);

translate([147,3.5,0])
cylinder(h=2.5,r=2.5);

translate([157,13,0])
cylinder(h=2.5,r=2.5);

translate([147,105.5,0])
cylinder(h=2.5,r=2.5);

translate([157,96,0])
cylinder(h=2.5,r=2.5);


translate([12,105.5,0])
cylinder(h=2.5,r=2.5);

translate([3.5,96,0])
cylinder(h=2.5,r=2.5);
}
// End union pegs

translate([0,0,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([7,7,0])
cube([20,20,45]);

}
// End difference making first

translate([140.5,0,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([-7,7,0])
cube([20,20,45]);

}
// End difference making 1 leg

translate([140.5,89,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([-7,-7,0])
cube([20,20,45]);

}
// End difference making 1 leg

translate([0,89,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([7,-7,0])
cube([20,20,45]);

}
// End difference making 1 leg







}
// End of union Peg holes for legs of Polli Bottom Cover


*translate([2.5,2.5,2.5])
cube([155, 104, 17.5]);// removing the space where the Polli body will be FIRST PRINT- TOO SMALL

*translate([2.5,2.5,2.5])
cube([155.5, 104, 17.5]);// removing the space where the Polli body will be - This size is for use with or without a Noctua NF-A6x25 FLX 60x25mm Premium Fan
// Hole spacing: 50mm; hole size 4.4mm diameter

translate([2.5,2.25,2.5])// Shifted -0.25mm on Y-axis
cube([155.5, 104.5, 17.5]);// 0.5mm wider 3rd attempt - removing the space where the Polli body will be - This size is for use with or without a Noctua NF-A6x25 FLX 60x25mm Premium Fan
// Hole spacing: 50mm; hole size 4.4mm diameter

// side connectors and antenna hole cutout: 20mm to 90mm from rear side edge and 4mm from bottom (included // 6VDC hole: 23.6mm from side edge;' 10.9mm wide; 7.7mm high; 5.2mm from bottom edge)
translate([67.5,-47.5,6.5])
cube([70, 50, 17.5]);//Cutout for side connectors and antenna


// Rear USB and ETH connectors: Continuous cutout 5mm from bottom and side and stretching to 55mm from side
translate([110.5,7.5,7.5])
cube([50, 50, 17.5]);//Cutout for rear USB and ETH connectors

*translate([-2,0,0])
union(){// making lots of holes (9mm optimised) in bottom plate DISABLE FOR PRINTING WITH FAN

*translate([0,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([9,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([18,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([27,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([36,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([45,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([54,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([63,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([72,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([81,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([90,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([99,4.5,0])
union(){//one row of holes

translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes
translate([108,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([117,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([126,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([135,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([144,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes











}
// End union making up to 150 holes (9mm optimised) in bottom plate

translate([-2,0,0])
union(){//  Making fewer holes for use with fan (9mm optimised) in bottom plate

*translate([0,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([9,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

*translate([10,27.5,0])
cylinder(5,4.5,4.5);

*translate([10,37.5,0])
cylinder(5,4.5,4.5);

*translate([10,47.5,0])
cylinder(5,4.5,4.5);

*translate([10,57.5,0])
cylinder(5,4.5,4.5);

*translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

*translate([10,87.5,0])
cylinder(5,4.5,4.5);

*translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([18,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

*translate([10,27.5,0])
cylinder(5,4.5,4.5);

*translate([10,37.5,0])
cylinder(5,4.5,4.5);

*translate([10,47.5,0])
cylinder(5,4.5,4.5);

*translate([10,57.5,0])
cylinder(5,4.5,4.5);

*translate([10,67.5,0])
cylinder(5,4.5,4.5);

*translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([27,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

*translate([10,17.5,0])
cylinder(5,4.5,4.5);

*translate([10,27.5,0])
cylinder(5,4.5,4.5);

*translate([10,37.5,0])
cylinder(5,4.5,4.5);

*translate([10,47.5,0])
cylinder(5,4.5,4.5);

*translate([10,57.5,0])
cylinder(5,4.5,4.5);

*translate([10,67.5,0])
cylinder(5,4.5,4.5);

*translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([36,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

*translate([10,27.5,0])
cylinder(5,4.5,4.5);

*translate([10,37.5,0])
cylinder(5,4.5,4.5);

*translate([10,47.5,0])
cylinder(5,4.5,4.5);

*translate([10,57.5,0])
cylinder(5,4.5,4.5);

*translate([10,67.5,0])
cylinder(5,4.5,4.5);

*translate([10,77.5,0])
cylinder(5,4.5,4.5);

*translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([45,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

*translate([10,27.5,0])
cylinder(5,4.5,4.5);

*translate([10,37.5,0])
cylinder(5,4.5,4.5);

*translate([10,47.5,0])
cylinder(5,4.5,4.5);

*translate([10,57.5,0])
cylinder(5,4.5,4.5);

*translate([10,67.5,0])
cylinder(5,4.5,4.5);

*translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([54,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

*translate([10,37.5,0])
cylinder(5,4.5,4.5);

*translate([10,47.5,0])
cylinder(5,4.5,4.5);

*translate([10,57.5,0])
cylinder(5,4.5,4.5);

*translate([10,67.5,0])
cylinder(5,4.5,4.5);

*translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([63,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([72,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([81,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([90,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([99,4.5,0])
union(){//one row of holes

translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes
translate([108,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([117,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([126,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

translate([135,4.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

*translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

*translate([144,-0.5,0])
union(){//one row of holes
translate([10,7.5,0])
cylinder(5,4.5,4.5);

translate([10,17.5,0])
cylinder(5,4.5,4.5);

translate([10,27.5,0])
cylinder(5,4.5,4.5);

translate([10,37.5,0])
cylinder(5,4.5,4.5);

translate([10,47.5,0])
cylinder(5,4.5,4.5);

translate([10,57.5,0])
cylinder(5,4.5,4.5);

translate([10,67.5,0])
cylinder(5,4.5,4.5);

translate([10,77.5,0])
cylinder(5,4.5,4.5);

translate([10,87.5,0])
cylinder(5,4.5,4.5);

translate([10,97.5,0])
cylinder(5,4.5,4.5);
}
// End union 1 row of holes

}
// End union making fewer holes for use with fan (9mm optimised) in bottom plate


union(){// Fan mount holes and fan hole - disable for fan-less cover
*translate([40.75,55.75,0])
cylinder(h=10, r=25);// Big hole for fan TOO SMALL

translate([40.75,55.75,0])
cylinder(h=10, r=30);// Bigger hole for fan

translate([15.75,30.75,0])
cylinder(h=10, r=2.2);

translate([15.75,30.75,1])
cylinder(h=10, r=5);// recess for rubber mount

translate([15.75,80.75,0])
cylinder(h=10, r=2.2);

translate([15.75,80.75,1])
cylinder(h=10, r=5);// recess for rubber mount

translate([65.75,30.75,0])
cylinder(h=10, r=2.2);

translate([65.75,30.75,1])
cylinder(h=10, r=5);// recess for rubber mount

translate([65.75,80.75,0])
cylinder(h=10, r=2.2);

translate([65.75,80.75,1])
cylinder(h=10, r=5);// recess for rubber mount

}
// End union fan mount holes

// 131.6mm x 100.5mm inner
translate([14.5,4.5,0.4])
cube([131,100,2.5]);// thinning out the perforated area


}
// End difference remove bits from cube above zero line



// Adding fan mount reinforcements
difference(){// making mount holes in reinforcements
union(){// the reinforcing blocks to make part of the mesh thicker than 2 print layers = 0.4mm
translate([10,25,0])
cube([11.5,11.5,2.5]);

translate([10,75,0])
cube([11.5,11.5,2.5]);

translate([58,0,0])// central reinforcing block
cube([15.5,109,2.5]);
}
// End union reinforcing blocks

union(){// Fan mount holes
*translate([40.75,55.75,0])
cylinder(h=10, r=25);// Big hole for fan

translate([40.75,55.75,0])
cylinder(h=10, r=30);// Bigger hole for fan

translate([15.75,30.75,0])
cylinder(h=10, r=2.2);

translate([15.75,30.75,1])
cylinder(h=10, r=5);// recess for rubber mount

translate([15.75,80.75,0])
cylinder(h=10, r=2.2);

translate([15.75,80.75,1])
cylinder(h=10, r=5);// recess for rubber mount

translate([65.75,30.75,0])
cylinder(h=10, r=2.2);

translate([65.75,30.75,1])
cylinder(h=10, r=5);// recess for rubber mount

translate([65.75,80.75,0])
cylinder(h=10, r=2.2);

translate([65.75,80.75,1])
cylinder(h=10, r=5);// recess for rubber mount

}
// End union fan mount holes

}
// End difference making mount holes for fan

}
// End of union all of Main Part of Polli bottom cover


difference(){// For reducing legs length as needed -DISABLE (*) TO RENDER ONLY THE BOTTOM COVER
union(){// Legs for Polli Bottom Cover

*union(){// Pegs FIRST PRINT - FIT IS TOO TIGHT
// pegs are 4.8mm diameter for 5mm diameter holes
translate([12,3.5,0])
cylinder(h=2.5,r=2.4);

translate([3.5,12,0])
cylinder(h=2.5,r=2.4);

translate([147,3.5,0])
cylinder(h=2.5,r=2.4);

translate([157,13,0])
cylinder(h=2.5,r=2.4);

translate([147,105.5,0])
cylinder(h=2.5,r=2.4);

translate([157,96,0])
cylinder(h=2.5,r=2.4);


translate([12,105.5,0])
cylinder(h=2.5,r=2.4);

translate([3.5,96,0])
cylinder(h=2.5,r=2.4);
}
// End union pegs

*union(){// Pegs a bit narrower - A BIT TOO LOSE
// pegs are 4.6mm diameter for 5mm diameter holes
translate([12,3.5,0])
cylinder(h=2.5,r=2.3);

translate([3.5,12,0])
cylinder(h=2.5,r=2.3);

translate([147,3.5,0])
cylinder(h=2.5,r=2.3);

translate([157,13,0])
cylinder(h=2.5,r=2.3);

translate([147,105.5,0])
cylinder(h=2.5,r=2.3);

translate([157,96,0])
cylinder(h=2.5,r=2.3);

translate([12,105.5,0])
cylinder(h=2.5,r=2.3);

translate([3.5,96,0])
cylinder(h=2.5,r=2.3);
}
// End union pegs

union(){// Pegs medium width
// pegs are 4.7mm diameter for 5mm diameter holes
translate([12,3.5,0])
cylinder(h=2.5,r=2.35);

translate([3.5,12,0])
cylinder(h=2.5,r=2.35);

translate([147,3.5,0])
cylinder(h=2.5,r=2.35);

translate([157,13,0])
cylinder(h=2.5,r=2.35);

translate([147,105.5,0])
cylinder(h=2.5,r=2.35);

translate([157,96,0])
cylinder(h=2.5,r=2.35);

translate([12,105.5,0])
cylinder(h=2.5,r=2.35);

translate([3.5,96,0])
cylinder(h=2.5,r=2.35);
}
// End union pegs

translate([0,0,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([7,7,0])
cube([20,20,45]);

}
// End difference making first

translate([140.5,0,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([-7,7,0])
cube([20,20,45]);

}
// End difference making 1 leg

translate([140.5,89,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([-7,-7,0])
cube([20,20,45]);

}
// End difference making 1 leg

translate([0,89,-45])
difference(){// Making 1 leg

cube([20,20,45]);

translate([7,-7,0])
cube([20,20,45]);

}
// End difference making 1 leg

union(){// leg connectors
translate([0,0,-45])
cube([140.5,7,0.6]);

translate([0,102,-45])
cube([140.5,7,0.6]);

translate([0,0,-45])
cube([7,89,0.6]);

translate([153.5,0,-45])
cube([7,89,0.6]);

}
// END union leg connectors

}
// End of union Legs of Polli Bottom Cover

*translate([0,0,-57])// z=-57 for short feet to be used without a fan _DISABLE (*) to print long legs for use with fan
cube([200,200,50]);// for removing most of the legs for quick test print

translate([20,0,-50])// z=-57 for short feet to be used without a fan

*cube([300,300,100]);// for making just 1 foot

*translate([0,20,-50])// z=-57 for short feet to be used without a fan _DISABLE (*) to print long legs for use with fan
cube([300,300,100]);// for making just 1 foot

}
// End sectioning legs for test print


hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
Thank you for your answer, I did the updates. Problem now is the miner does not mine anymore. The node is running but the miner starts but does not hash and then shuts down
I am now looking to install electrs, however in your guide you say sometimes to log into bitcoin user. Is it necessary to do this step with the Apollo or can I just do everything with futurebit user
Does the issue persist? Have you tried rebooting after those updates?
You can replace my bitcoin user with futurebit, yes. Technically, in my setup, that user is less privileged so it's a little bit more secure, but it's still fine.

Thanks, I do have to install OpenSUSE on my Apollo though right? Looks like some commands are not working and I think it's because I need this to be installed.
My guides are made to work on OpenSUSE, but the procedures can be replicated on Debian / Armbian; you will have to either install the zypper package manager or figure out the (usually slightly different) package names (e.g. through a simple web search). Then install them with the built-in package manager apt. But the idea and process, the service files and configuration files, that's all the same - independent from the Linux distribution you're running.
member
Activity: 203
Merit: 37
How can I shut down the Apollo BTC without connecting the HDMI monitor?
Plug in its IP address in a browser on another device on the same network, and access the web interface. It has a shutdown option somewhere up top, if I remember correctly.
Thanks for the help, much appreciated.

I worked out the detail and maybe they will help someone else to do this.

While connected to the same WiFi network as the Apollo:

In terminal type:  ip a

The output has several sections:
1: lo: loopback etc etc etc
2: eth0: etc etc etc
3: wlan0: This one has the ip address which works

It does not seem to matter if I enter the ip address xxx.xxx.x.xx or if I include the xxx.xx.x.xx/24 - both lead to the login screen for the Apollo web interface. Enter password and off you go.
It even works on the phone while connected to the same WiFi network.

Neat!

newbie
Activity: 53
Merit: 0
Thank you for your answer, I did the updates. Problem now is the miner does not mine anymore. The node is running but the miner starts but does not hash and then shuts down
I am now looking to install electrs, however in your guide you say sometimes to log into bitcoin user. Is it necessary to do this step with the Apollo or can I just do everything with futurebit user
Does the issue persist? Have you tried rebooting after those updates?
You can replace my bitcoin user with futurebit, yes. Technically, in my setup, that user is less privileged so it's a little bit more secure, but it's still fine.

Thanks, I do have to install OpenSUSE on my Apollo though right? Looks like some commands are not working and I think it's because I need this to be installed.
member
Activity: 203
Merit: 37
I think the bottom cover including fan is finished, printing it at the moment. Both parts fit on the same printbed and will take about 6h30min to print.

I'm not sure if the picture links will work.





My multimeter tells me that the Noctua low noise cable has a 100ohm resister in the red cable. So I should be able to tweak the fan speed very easily.

The bottom cover will also fit on the top of the Apollo BTC and will be easy to modify for attaching a big quiet fan on top, leaving the stock fan in place as safety backup.
member
Activity: 100
Merit: 29
There is no API, no. You can find more information about this by using TryNinja's search engine and looking for 'API' in this topic: https://ninjastic.space/search?content=API&topic_id=5340015
As jstefanop is saying here, there is a file that's basically the API.

There is a script called miner_stop_all.sh that is called by the GUI when you stop the miner; it should be possible to just execute that instead of killing the process. miner_start_all.sh starts it back up.
Source here: https://github.com/jstefanop/Apollo-Miner-Binaries/blob/main/linux-aarch64/miner_start_all.sh and here: https://github.com/jstefanop/Apollo-Miner-Binaries/blob/main/linux-aarch64/miner_stop_all.sh

Locate those in Futurebit OS and call as you wish.

Amazing information! Thank you so much! That's extremely helpful. Really appreciate it.
That is good info indeed. So if there already is a screen session running, you might send it the quit command like in the script on github. Or you do a kill -3 on the miner PID, that should have the same effect of a graceful shutdown. Whichever you prefer  Wink
newbie
Activity: 11
Merit: 1
There is no API, no. You can find more information about this by using TryNinja's search engine and looking for 'API' in this topic: https://ninjastic.space/search?content=API&topic_id=5340015
As jstefanop is saying here, there is a file that's basically the API.

There is a script called miner_stop_all.sh that is called by the GUI when you stop the miner; it should be possible to just execute that instead of killing the process. miner_start_all.sh starts it back up.
Source here: https://github.com/jstefanop/Apollo-Miner-Binaries/blob/main/linux-aarch64/miner_start_all.sh and here: https://github.com/jstefanop/Apollo-Miner-Binaries/blob/main/linux-aarch64/miner_stop_all.sh

Locate those in Futurebit OS and call as you wish.

Amazing information! Thank you so much! That's extremely helpful. Really appreciate it.
Pages:
Jump to: