Bitcoin Forum
May 12, 2026, 03:11:01 PM *
News: Latest Bitcoin Core release: 31.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Fix Reboot Loop After Switching to Turbo Mode on Apollo BTC MCU 1 with OS v2.1  (Read 51 times)
super0 (OP)
Newbie
*
Offline

Activity: 7
Merit: 1


View Profile
May 02, 2026, 09:09:33 AM
Last edit: May 02, 2026, 12:08:44 PM by super0
 #1

A step-by-step recovery guide using SSH when the Web UI is inaccessible

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

THE PROBLEM

After upgrading to Apollo OS v2.1 and switching the miner from Balanced to Turbo mode via the Web UI, some Apollo BTC MCU1 units get stuck in a continuous reboot loop. The device reaches the Linux login screen briefly (visible over HDMI) before rebooting again — making the Web UI completely inaccessible.

Root cause: The Apollo miner backend reads power mode from TWO separate locations:
  • The SQLite database /opt/apolloapi/futurebit.sqlite — used by the Web UI
  • A plain text file /opt/apolloapi/backend/apollo-miner/mode — read directly by the miner binary at startup
When Turbo mode causes a crash before the system can cleanly shut down, the mode file can be left set to turbo even after you think you've changed it back. Every boot, the miner launches in Turbo, draws too much power or crashes, and the system reboots — creating the loop.

Affected devices: Apollo BTC MCU1 running Apollo OS v2.x
Confirmed on: Apollo OS v2.1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

WHAT YOU NEED

  • A computer on the same local network as your Apollo
  • SSH client (Terminal on Mac/Linux, PuTTY or Windows Terminal on Windows)
  • Your Apollo's local IP address (check your router's device list — look for "FutureBit Apollo" or find it via the HDMI screen during the brief boot window)

Default SSH credentials:
  • Username: futurebit
  • Password: futurebit123

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STEP 1 — STOP THE SERVICES BEFORE THEY CRASH

The reboot window is short. You need to SSH in and paste commands immediately after the prompt appears. Prepare this command in your clipboard before connecting:

Code:
sudo systemctl stop apollo-api.service apollo-ui-v2.service && sudo systemctl disable apollo-api.service apollo-ui-v2.service && echo "DONE"

Connect via SSH:
Code:
ssh futurebit@YOUR_APOLLO_IP

The moment you see the $ prompt, paste and hit Enter. You should see:
Code:
Removed /etc/systemd/system/multi-user.target.wants/apollo-api.service.
Removed /etc/systemd/system/multi-user.target.wants/apollo-ui-v2.service.
DONE

The machine may still reboot once more if the miner was already running. That's normal — the disable took effect and the services won't auto-start on the next boot.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STEP 2 — WAIT FOR A STABLE SESSION

SSH in again after the next reboot. This time the machine should stay up since the Apollo services are disabled. Kill any lingering miner processes just in case:

Code:
sudo pkill -9 -f apollo; sudo pkill -9 -f miner; sudo pkill -9 -f bfg

You should now have a stable SSH session.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STEP 3 — FIX THE MODE FILE (THE REAL FIX)

This is the critical step. Check what the miner mode file currently says and overwrite it with balanced:

Code:
cat /opt/apolloapi/backend/apollo-miner/mode && echo "balanced" > /opt/apolloapi/backend/apollo-miner/mode && cat /opt/apolloapi/backend/apollo-miner/mode

The first cat will show turbo (the culprit). After the command runs, the second cat should show only:
Code:
balanced

Important: If the output shows turbobalanced as one word, the file had no trailing newline. Run the command again — the echo with > will overwrite it completely:
Code:
echo "balanced" > /opt/apolloapi/backend/apollo-miner/mode && cat /opt/apolloapi/backend/apollo-miner/mode

Confirm the output shows balanced alone on its own line before proceeding.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STEP 4 — FIX THE DATABASE (KEEPS THE UI IN SYNC)

Also update the SQLite database so the Web UI reflects the correct mode. Check the current latest entry:

Code:
sqlite3 /opt/apolloapi/futurebit.sqlite "SELECT * FROM settings ORDER BY id DESC LIMIT 1;"

If the last row shows turbo as the 4th column, insert a new balanced row. Copy the values from the last row but change turbo to balanced. Based on a standard MCU1 v2.1 install:

Code:
sqlite3 /opt/apolloapi/futurebit.sqlite "INSERT INTO settings SELECT (SELECT MAX(id)+1 FROM settings), datetime('now'), datetime('now'), 'balanced', 30, 25, '', 1, 1, 0, 'c', 0, 0, 40, 60, (SELECT col16 FROM settings ORDER BY id DESC LIMIT 1), 0, '', 1, 0, 64, 1, 'mined by Solo Apollo', 'core-28.1', '', 1024;"

Verify the new row:
Code:
sqlite3 /opt/apolloapi/futurebit.sqlite "SELECT id, created_at, col4 FROM settings ORDER BY id DESC LIMIT 1;"

The output should show balanced in the third column.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STEP 5 — RE-ENABLE SERVICES AND REBOOT

Code:
sudo systemctl enable apollo-api.service apollo-ui-v2.service && sudo reboot

Wait 60–90 seconds, then access the Web UI. The Apollo Web UI is served on port 3000 with an iptables redirect from port 80. Try:


Note: If you get ERR_ADDRESS_UNREACHABLE in your browser but the device is reachable via SSH/ping, check if you have a VPN running on your computer — VPNs commonly block access to local network IPs. Disconnect your VPN and try again, or use a phone on the same WiFi to access the UI.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STEP 6 — VERIFY

Once the Web UI loads, confirm:
  • The dashboard shows Balanced mode
  • Hashrate is climbing (typically 3–3.8 TH/s in Balanced on MCU1)
  • The fan is running but not at full blast
  • No reboot loop

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ADDITIONAL TIPS

Do NOT run apt upgrade — this is a known issue with Apollo OS. Running standard Ubuntu/Armbian package upgrades can break the Apollo software stack and force you to reflash the SD card. The update warnings you see on SSH login are for the base OS and are intentionally blocked by FutureBit.

To free up disk space safely (the root partition fills up over time):
Code:
sudo apt clean && sudo journalctl --vacuum-size=200M

If you ever get into a reboot loop again after changing modes, you now know the two files to check first:
  • /opt/apolloapi/backend/apollo-miner/mode — fix this first
  • /opt/apolloapi/futurebit.sqlite — fix this second

Turbo mode on MCU1 is demanding on the hardware. FutureBit themselves note it is only recommended for expert users with good cooling and monitoring in place. Balanced mode offers a solid compromise between hashrate and stability.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

QUICK REFERENCE — ALL COMMANDS IN ORDER

Code:
# Step 1 - Stop and disable services (paste immediately after SSH login)
sudo systemctl stop apollo-api.service apollo-ui-v2.service && sudo systemctl disable apollo-api.service apollo-ui-v2.service && echo "DONE"

# Step 2 - Kill any lingering miner processes
sudo pkill -9 -f apollo; sudo pkill -9 -f miner; sudo pkill -9 -f bfg

# Step 3 - Fix the mode file (THE CRITICAL FIX)
echo "balanced" > /opt/apolloapi/backend/apollo-miner/mode && cat /opt/apolloapi/backend/apollo-miner/mode

# Step 4 - Fix the database
sqlite3 /opt/apolloapi/futurebit.sqlite "INSERT INTO settings SELECT (SELECT MAX(id)+1 FROM settings), datetime('now'), datetime('now'), 'balanced', 30, 25, '', 1, 1, 0, 'c', 0, 0, 40, 60, (SELECT col16 FROM settings ORDER BY id DESC LIMIT 1), 0, '', 1, 0, 64, 1, 'mined by Solo Apollo', 'core-28.1', '', 1024;"

# Step 5 - Re-enable services and reboot
sudo systemctl enable apollo-api.service apollo-ui-v2.service && sudo reboot

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Tested on: FutureBit Apollo BTC MCU1 running Apollo OS v2.1 — May 2026
If this guide helped you, consider sharing it in the official FutureBit support thread.

Official FutureBit Apollo II/BTC Software/Image and Support Thread
DaveF
Legendary
*
Offline

Activity: 4200
Merit: 7280


✅ NO KYC


View Profile WWW
May 02, 2026, 10:54:33 AM
 #2

Wouldn't it just be easier to re-flash the card?
All you have to do at that point is just re-enter your pool info.

It's been a while but I know I messed up a few things when playing around and just re-flashed and went on my way.

-Dave

 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
super0 (OP)
Newbie
*
Offline

Activity: 7
Merit: 1


View Profile
May 02, 2026, 12:06:24 PM
Merited by DaveF (1)
 #3

Wouldn't it just be easier to re-flash the card?
All you have to do at that point is just re-enter your pool info.

It's been a while but I know I messed up a few things when playing around and just re-flashed and went on my way.

-Dave

Thanks for your fair comment. Yes indeed, it would have been much easier. Truth is, I've other software installed on it and I'd not have preferred reinstall and setup all again.
DaveF
Legendary
*
Offline

Activity: 4200
Merit: 7280


✅ NO KYC


View Profile WWW
May 02, 2026, 01:00:33 PM
Last edit: May 02, 2026, 02:02:37 PM by DaveF
 #4

Wouldn't it just be easier to re-flash the card?
All you have to do at that point is just re-enter your pool info.

It's been a while but I know I messed up a few things when playing around and just re-flashed and went on my way.

-Dave

Thanks for your fair comment. Yes indeed, it would have been much easier. Truth is, I've other software installed on it and I'd not have preferred reinstall and setup all again.

That I get. Reinstalling all the other stuff could get to be a pain.

Just as a side comment: https://bitcointalk.org/index.php?topic=5571166.msg66309811#msg66309811
If there are things on there you want dd a copy to another SD card. Because they are just not as reliable as they used to be.
At least that is what I am seeing.

-Dave

 
 b1exch.to 
  ETH      DAI   
  BTC      LTC   
  USDT     XMR    
.███████████▄▀▄▀
█████████▄█▄▀
███████████
███████▄█▀
█▀█
▄▄▀░░██▄▄
▄▀██▄▀█████▄
██▄▀░▄██████
███████░█████
█░████░█████████
█░█░█░████░█████
█░█░█░██░█████
▀▀▀▄█▄████▀▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!