various bambu, bangle, and arch additions
This commit is contained in:
@@ -6,12 +6,19 @@ A project to store homelab stuff.
|
|||||||
|
|
||||||
- [Homelab](#homelab)
|
- [Homelab](#homelab)
|
||||||
- [Table of Contents](#table-of-contents)
|
- [Table of Contents](#table-of-contents)
|
||||||
|
- [Fun Facts](#fun-facts)
|
||||||
- [Project Lifecycle](#project-lifecycle)
|
- [Project Lifecycle](#project-lifecycle)
|
||||||
- [Supported Projects](#supported-projects)
|
- [Supported Projects](#supported-projects)
|
||||||
- [Graduation Requirements](#graduation-requirements)
|
- [Graduation Requirements](#graduation-requirements)
|
||||||
- [Retirement Requirements](#retirement-requirements)
|
- [Retirement Requirements](#retirement-requirements)
|
||||||
- [Order of Operations](#order-of-operations)
|
- [Order of Operations](#order-of-operations)
|
||||||
|
|
||||||
|
## Fun Facts
|
||||||
|
|
||||||
|
On linux, <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>u</kbd>, then, while holding
|
||||||
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>, typing <kbd>b</kbd>+<kbd>0</kbd> will type a ° symbol. Also you
|
||||||
|
can enter any unicode symbol this way.
|
||||||
|
|
||||||
## Project Lifecycle
|
## Project Lifecycle
|
||||||
|
|
||||||
Projects will fall into one of the three following categories:
|
Projects will fall into one of the three following categories:
|
||||||
|
|||||||
@@ -10,4 +10,16 @@ If you want to set up WiFi without logging in follow this:
|
|||||||
|
|
||||||
### Connecting via LAN mode
|
### 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.
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
- [Glances](#glances)
|
- [Glances](#glances)
|
||||||
- [VirtualBox](#virtualbox)
|
- [VirtualBox](#virtualbox)
|
||||||
- [Email](#email)
|
- [Email](#email)
|
||||||
|
- [Traffic Usage](#traffic-usage)
|
||||||
|
|
||||||
## Pacman Packages
|
## Pacman Packages
|
||||||
|
|
||||||
@@ -636,6 +637,16 @@ Install with flatpak.
|
|||||||
flatpak install com.bambulab.BambuStudio
|
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
|
## Orca Slicer
|
||||||
|
|
||||||
<https://github.com/SoftFever/OrcaSlicer>
|
<https://github.com/SoftFever/OrcaSlicer>
|
||||||
@@ -811,3 +822,14 @@ pacman -S geary
|
|||||||
|
|
||||||
- Open geary
|
- Open geary
|
||||||
- Add the account following protonmail bridge's instructions
|
- 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
|
||||||
|
```
|
||||||
38
infrastructure/graduated/bangle.js/README.md
Normal file
38
infrastructure/graduated/bangle.js/README.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Bangle JS
|
||||||
|
|
||||||
|
## Browser
|
||||||
|
|
||||||
|
<https://www.espruino.com/Quick+Start+BLE#with-web-bluetooth>
|
||||||
|
|
||||||
|
## Android
|
||||||
|
|
||||||
|
<https://github.com/espruino/BangleApps/wiki#phone-integration>
|
||||||
|
|
||||||
|
## 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(<raw sleep value>,<cell with 0>:<cell with deep sleep>,2)` to convert number to human
|
||||||
|
readable value.
|
||||||
|
|
||||||
|
Use `=(<end date>-<start date>)*1440` to calculate minutes between each timestamp.
|
||||||
@@ -47,3 +47,14 @@ claim it's been around for a while and Nextcloud doesn't seem to be fixing it.
|
|||||||
<https://www.wireguard.com/install/#android-play-store-direct-apk-file>
|
<https://www.wireguard.com/install/#android-play-store-direct-apk-file>
|
||||||
|
|
||||||
Since we don't have the play store we'll need to download from the website.
|
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.
|
||||||
|
|
||||||
|

|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 213 KiB |
111
infrastructure/graduated/ios/README.md
Normal file
111
infrastructure/graduated/ios/README.md
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
# iOS
|
||||||
|
|
||||||
|
## Photos Export
|
||||||
|
|
||||||
|
<https://github.com/icloud-photos-downloader/icloud_photos_downloader>
|
||||||
|
|
||||||
|
```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])"
|
||||||
|
```
|
||||||
@@ -34,3 +34,13 @@ helm upgrade --install \
|
|||||||
--namespace minecraft \
|
--namespace minecraft \
|
||||||
--create-namespace
|
--create-namespace
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Camcraft
|
||||||
|
|
||||||
|
```bash
|
||||||
|
helm upgrade --install \
|
||||||
|
camcraft1 \
|
||||||
|
./kubernetes/graduated/minecraft \
|
||||||
|
--namespace minecraft \
|
||||||
|
--create-namespace
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user