Because it's annoying as fuck if you set up wireless printing. I'm assuming a PM at Brother thought this would save the planet _and_ get them a promotion 🙄
- Go to **General Setup** -> OK
- Scroll with arrow keys to **Ecology** -> OK
- Scroll with arrow keys to **Sleep Time** -> OK
- Set it to 0 minutes -> OK
- Now you have to hold _both_ the back button and down button to see the 'secret' **Deep Sleep** option. Turn it off and you'll see "Accepted".
- Hit OK the appropriate number of times to get back to the main menu
### Update for macOS
This _still_ does not clear deep sleep _sometimes_. There's apparently a maintenance mode option. I read through their [troubleshooting guide](https://help.brother-usa.com/app/answers/detail/a_id/151825/~/unable-to-print-after-the-machine-has-entered-deep-sleep---windows#Recommeded). Then disabled IPv6 and things _appear_ to work. **Update** It's still shit. Nothing works with this freaking thing, not even the latest firmware update. I had to resort to 👇
### Bash Script for Unifi Controller
👉 This only works if you use Unifi gear. Here's a small `bash` script that 'kicks' the printer every hour or so. This is the equivalent of clicking "Reconnect" from the Unifi Controller UI. Unbelievable. There's a PM at Brother who deserves at least one terrible week.
```bash
#!/bin/bash
# REFERENCES:
# https://ubntwiki.com/products/software/unifi-controller/api
set -euo pipefail
USERNAME="your_username"
PASSWORD="lol"
CONTROLLER_URI="https://192.168.1.3:8443"
COOKIE_PATH="./cookie.txt"
CURL_COMMAND="curl -s -S --cookie ${COOKIE_PATH} --cookie-jar ${COOKIE_PATH} --insecure "
MAC_ADDRESS="aa:bb:cc:dd:ee:ff"
login() {
${CURL_COMMAND} \
-H "Content-Type: application/json" \
-X POST \
-d "{\"password\":\"$PASSWORD\",\"username\":\"$USERNAME\"}" \
$CONTROLLER_URI/api/login >/dev/null
}
logout() {
${CURL_COMMAND} $CONTROLLER_URI/logout
}
kick_the_fucking_printer() {
response=$(${CURL_COMMAND} \
-H "Content-Type: application/json" \
-X POST \
--data-binary "{\"cmd\":\"kick-sta\",\"mac\":\"$MAC_ADDRESS\"}" \
$CONTROLLER_URI'/api/s/default/cmd/stamgr' \
--compressed)
# This doesn't return any data, really. Else, you can use jq to parse it.
echo "----------"
echo "$response"
echo "----------"
}
login
kick_the_fucking_printer
logout
```