diff --git a/README.md b/README.md
index 1d86f99..7d3dfca 100644
--- a/README.md
+++ b/README.md
@@ -6,12 +6,19 @@ A project to store homelab stuff.
- [Homelab](#homelab)
- [Table of Contents](#table-of-contents)
+ - [Fun Facts](#fun-facts)
- [Project Lifecycle](#project-lifecycle)
- [Supported Projects](#supported-projects)
- [Graduation Requirements](#graduation-requirements)
- [Retirement Requirements](#retirement-requirements)
- [Order of Operations](#order-of-operations)
+## Fun Facts
+
+On linux, ctrl+shift+u, then, while holding
+ctrl+shift, typing b+0 will type a ° symbol. Also you
+can enter any unicode symbol this way.
+
## Project Lifecycle
Projects will fall into one of the three following categories:
diff --git a/hardware/incubating/bambu_p1s/README.md b/hardware/incubating/bambu_p1s/README.md
index 8337a4c..2f466cb 100644
--- a/hardware/incubating/bambu_p1s/README.md
+++ b/hardware/incubating/bambu_p1s/README.md
@@ -10,4 +10,16 @@ If you want to set up WiFi without logging in follow this:
### Connecting via LAN mode
-- Make sure you open 1990 and 2021 in your firewall application.
+- Make sure you open 1990 and 2021 (tcp + udp) in your firewall application.
+
+### Troubleshooting
+
+#### Under Extruding
+
+I've had an issue where prints will look "clumpy" or "rough". This was resolved after a complete
+hotend swap. I did some testing on the bad nozzle before replacing it and found it could still
+extrude decently but I had to raise the temperature 50-60°C above 220° to get the plastic flowing
+well. I don't think the ceramic heater was broken since the nozzle was clearly heating just fine.
+This leads me to believe the thermistor went bad or became disconnected from the nozzle somehow. My
+guess is Bambu didn't use enough thermal compound at the factory and it became dry and cracked,
+creating a layer of air between the thermistor and the nozzle.
diff --git a/infrastructure/graduated/arch/workstation.md b/infrastructure/graduated/arch/workstation.md
index 82dc8dc..e701ec3 100644
--- a/infrastructure/graduated/arch/workstation.md
+++ b/infrastructure/graduated/arch/workstation.md
@@ -49,6 +49,7 @@
- [Glances](#glances)
- [VirtualBox](#virtualbox)
- [Email](#email)
+ - [Traffic Usage](#traffic-usage)
## Pacman Packages
@@ -636,6 +637,16 @@ Install with flatpak.
flatpak install com.bambulab.BambuStudio
```
+The config is located at `~/.var/app/com.bambulab.BambuStudio/config/BambuStudio/BambuStudio.conf`
+
+At the very top of the config you can add a pin for a printer permanently with:
+
+```json
+"access_code": {
+ "printer serial number": "access code here"
+},
+```
+
## Orca Slicer
@@ -811,3 +822,14 @@ pacman -S geary
- Open geary
- Add the account following protonmail bridge's instructions
+
+## Traffic Usage
+
+Nethogs shows per-app network utilization.
+
+```bash
+pacman -S nethogs
+
+# You'll need to run this with sudo if you aren't root
+nethogs
+```
\ No newline at end of file
diff --git a/infrastructure/graduated/bangle.js/README.md b/infrastructure/graduated/bangle.js/README.md
new file mode 100644
index 0000000..d399ae2
--- /dev/null
+++ b/infrastructure/graduated/bangle.js/README.md
@@ -0,0 +1,38 @@
+# Bangle JS
+
+## Browser
+
+
+
+## Android
+
+
+
+## Apps
+
+- [Android](https://banglejs.com/apps/?id=android)
+- [Home Assistant](https://banglejs.com/apps/?id=ha)
+- [Spotify](https://banglejs.com/apps/?id=spotrem)
+- [Find Phone](https://banglejs.com/apps/?id=findphone)
+- [Weather](https://banglejs.com/apps/?id=weather)
+
+## Sleep Data
+
+Export in javascript format.
+
+Use `=(A7/(1000*60*60*24)+25569)+(-4/24)` to convert javascript to date.
+
+Use the following table to convert `sleep` values to human-readable:
+
+| key | value |
+| --- | ----------- |
+| 0 | unknown |
+| 1 | not worn |
+| 2 | awake |
+| 3 | light sleep |
+| 4 | deep sleep |
+
+Use `=VLOOKUP(,:| ,2)` to convert number to human
+readable value.
+
+Use `=(-)*1440` to calculate minutes between each timestamp.
\ No newline at end of file
diff --git a/infrastructure/graduated/eos/README.md b/infrastructure/graduated/eos/README.md
index bbdc5d9..961abd0 100644
--- a/infrastructure/graduated/eos/README.md
+++ b/infrastructure/graduated/eos/README.md
@@ -47,3 +47,14 @@ claim it's been around for a while and Nextcloud doesn't seem to be fixing it.
Since we don't have the play store we'll need to download from the website.
+
+### PhoneTrack
+
+1. `Significant motion mode: off`. This seems to break phonetrack.
+2. `Minimum distance: 0`. This ensures a location update is sent every time regardless of distance moved.
+3. `Minimum time: 60`. Send a location update every minute.
+4. `Minimum accuracy: 100`. Don't worry about being super accurate, just get a location out.
+5. `Keep GPS on between fixes: off`. This drains battery but does make location updates super accurate.
+6. `Location timeout: 30`. Wait 30 seconds for GPS fix before using less accurate location.
+
+
\ No newline at end of file
diff --git a/infrastructure/graduated/eos/images/Screenshot_20240904-121037_PhoneTrack.png b/infrastructure/graduated/eos/images/Screenshot_20240904-121037_PhoneTrack.png
new file mode 100644
index 0000000..3869460
Binary files /dev/null and b/infrastructure/graduated/eos/images/Screenshot_20240904-121037_PhoneTrack.png differ
diff --git a/infrastructure/graduated/ios/README.md b/infrastructure/graduated/ios/README.md
new file mode 100644
index 0000000..932b513
--- /dev/null
+++ b/infrastructure/graduated/ios/README.md
@@ -0,0 +1,111 @@
+# iOS
+
+## Photos Export
+
+
+
+```bash
+podman run -it --rm --name icloudpd \
+ -v $(pwd)/iPhotos:/data \
+ -e TZ=America/New_York \
+ icloudpd/icloudpd:latest \
+ icloudpd \
+ --directory /data \
+ --username apple@ducoterra.net \
+ --watch-with-interval 3600
+```
+
+You can browse all downloaded photos with `feh`:
+
+```bash
+pacman -S feh
+
+feh --recursive --scale-down -d -S filename $(pwd)/iPhotos
+```
+
+## Extensions
+
+- PNG
+- HEIC: iOS HDR photo
+- MOV
+- DNG: iOS raw photo
+- JPG
+- 3gp: quicktime video file
+- MP4
+- GIF
+- WEBP: Google photo container
+- CR2: Canon raw photo
+
+## Conversion
+
+You will need `imagemagick` and `libraw`:
+
+```bash
+pacman -S imagemagick libraw
+```
+
+Then you can convert any image with magick:
+
+```bash
+magick input.HEIC output.png
+magick input.HEIC output.jpeg
+```
+
+You get a list of all unique file extensions with:
+
+```bash
+find . -type f | awk -F. '!a[$NF]++{print $NF}'
+```
+
+Then use those file extensions to create a find command:
+
+```bash
+# -o means "or" in this case
+# Parentheses are required
+find . -type f -printf '%p\n' \( \
+ -iname '*.jpg' \
+ -o -iname '*.heic' \
+ -o -iname '*.dng' \
+ -o -iname '*.png' \
+ -o -iname '*.WEBP' \
+ -o -iname '*.cr2' \
+\)
+```
+
+And then use xargs with magick to convert the images:
+
+```bash
+find . -type f \( \
+ -iname '*.jpg' \
+ -o -iname '*.heic' \
+ -o -iname '*.dng' \
+ -o -iname '*.png' \
+ -o -iname '*.WEBP' \
+ -o -iname '*.cr2' \
+\) -print0 | xargs -0 -P $(nproc) -I % python -c "\
+import subprocess; \
+from pathlib import Path; \
+to_folder = '/run/media/ducoterra/photos/'; \
+p = Path(\"%\"); \
+realpath = (str(p.parent) + '/' if str(p.parent) != '.' else '') + p.stem + '.jpg'; \
+subprocess.run(['mkdir', '-p', to_folder + str(Path(realpath).parent)]); \
+subprocess.run(['magick', \"%\", to_folder + realpath])"
+```
+
+And then videos:
+
+```bash
+find . -type f \( \
+ -iname '*.MOV' \
+ -o -iname '*.3gp' \
+ -o -iname '*.MP4' \
+ -o -iname '*.GIF' \
+\) -print0 | xargs -0 -I % python -c "\
+import subprocess; \
+from pathlib import Path; \
+to_folder = '/run/media/ducoterra/photos/'; \
+p = Path(\"%\"); \
+realpath = (str(p.parent) + '/' if str(p.parent) != '.' else '') + p.stem + '.mp4'; \
+subprocess.run(['mkdir', '-p', to_folder + str(Path(realpath).parent)]); \
+subprocess.run(['ffmpeg', '-i', '%', '-c', 'copy', to_folder + realpath])"
+```
\ No newline at end of file
diff --git a/kubernetes/graduated/minecraft/README.md b/kubernetes/graduated/minecraft/README.md
index 09efaa2..7a2fc49 100644
--- a/kubernetes/graduated/minecraft/README.md
+++ b/kubernetes/graduated/minecraft/README.md
@@ -34,3 +34,13 @@ helm upgrade --install \
--namespace minecraft \
--create-namespace
```
+
+## Camcraft
+
+```bash
+helm upgrade --install \
+ camcraft1 \
+ ./kubernetes/graduated/minecraft \
+ --namespace minecraft \
+ --create-namespace
+```
| |