Slow Internet? Try annoying your ISP!

So my roommate and I were annoyed about our internet beeing slow.

I thought about speedtesting my connection every so often and save the results to send them to my ISP when the internet is slow again.

I quickly binged my way to through some tutorials and the simplest way was to use speedtest-cli, cron, scp and a windows shortcut in the startup folder.

You could follow this tutorial for the basics:

but I extended the idea with a cronjob and an scp command under windows to backup the file to my pc.

Lets go:

Im assuming you have a device with linux at home.


Install speedtest-cli on the pi with python-pip.

create a cronjob with “crontab -e” and enter something along these lines:

30 00 * * * date >> /var/tmp/speedlog.txt
30 00 * * * /usr/local/bin/speedtest-cli >> /var/tmp/speedlog.txt

This saves the current date in the speedlog file and adds the speedtest output.

I did not consider log-file rollover here – because this file will eventually be huge otherwise.


sync your file via scp or rsync to your desktop pc. Have ssh enabled and sync your file. I did it with another cronjob inside my WSL (Windows Subsystem for Linux) and copy the file from my pi to my HDD with:

00 22 * * * scp pi@ ../../mnt/d/speedlog.txt

Then it dawned on me, that the WSL has to be kept open, so i found this:

Especially this part:

Open sudo config file:

sudo visudo

Add the following line:

%sudo ALL=NOPASSWD: /etc/init.d/cron start


win+r, enter shell:startup , create a shortcut for wsl.exe (see below) and paste something along this in the destination field:

C:\Windows\System32\wsl.exe sudo /etc/init.d/cron start

Then a linux terminal should start on pc boot. If you picked your time for the file backup at a reasonable time thats inside the window of you using your pc, that should run one time and you should see your updated file at your chosen location.


Meanwhile I did not want to send the files manually to my ISP. So I added a twitter bot and a python script to automatically notify my ISP about my network being slow.

It didn´t take them a week to ban the bot from posting to them.


As it turns out, my ISP was just partly the problem.

A friend of mine had the idea to just disable my freifunk router to see if that helps.

SPOILER: it did.

Now why does it help?

Vodafone Germany fucked up their ipv6 routing and therefore my freifunk router took over the ipv6 handling,which slowed down my internet speed significantly ( predictably to 16Mbit/s ).

As of now, vodafone still hasn´t fixed that. I´ll have to try and disable ipv6 routing in my freifunk router and see if that helps – because i still want to use the router as my guest wifi.

So, if you run into the same problem, and you are sure its not on their part (by checking your ISP´s speedtest, which sometimes shows the speed to your router and the network internal speed seperately) – try disabling some of your equipment, especially routers and see if that helps.

Selfmade NAS with TrueNAS Core

This post is about:

  • building your own NAS with TrueNAS Core
  • Problems i ran into while setting it up
  • Plugins I used (Plex and Nextcloud)
  • and how many times i had to reinstall shit on it

Just to show:

what not to do! 😉


My roommate and I thought about buying a NAS System – noticed, that they were pretty expensive and we would need to buy hard drives seperately anyway – so I came up with the idea to just reuse the old living room PC to build our own NAS System.

A search later, I found out about TrueNAS (Core) – which is an open source, linux based and most importantly FREE OS/Software package to create your own NAS with plugins for (almost) anything in a VM on your encrypted drives.

I wont go into detail on how to set this up but basically:

  • USB drive
  • flash .ISO
  • click ok a few times
  • voilá

Main Part:

For me, it wasnt intuitive at first, but after some tutorials, i had a grasp on how Id go about further steps of using it. I had a 1.5tb HDD laying around, I just connected it, used it for my own cloud plugins (nextcloud + plexmediaserver) and was ready for the hard part:

Setting up the plugins the right way.

Just make sure you have enough free space on your server (got this “no error” – error really fast). While I had to upgrade on space, I also ordered a backup drive for my 2nd drive – a drive i had used for encrypted backups for some time, encrypted with Bitlocker (Win10 encryption). TrueNAS doesnt recognize those, so i had to decrypt it “real quick” – took 2,5 DAYS – so keep that in mind, while picking your device for doing so. I had to keep my PC running for that, basically at idle, but it still drew power from the wall …

Also: make sure you dont use spaces ” “ in your pool names, as this will fuck you sideways while installing plugins – this is linux after all – dots “.” for example are okay though.

This brought me to my first reinstall of my HDD, luckily not everything, so I could keep my settings made in TrueNAS.

Quick Tipp:

Pools->Datasets->Shares (ie. SMB)->Users / Plugins (which then create their own vaults)

Also: dont update your plugins while they run, or anything while it runs!

As Im writing this, Im not really finished setting everything up, i just wanted to take a break from reinstalling plugins and setting things up again…

Keep in mind, that you will have to upgrade your system on a regular basis, if you plan to open it to the WWW, therefore i wont do that 🙂

Future plans:

Setting up Wake On LAN (WOL) so that the old PC wont suck my wallet dry. Sadly, TrueNAS isnt supporting that feature, even though my PC does. I therefore opted for setting my HDDs to sleep after 180sec and power mode 1 (spindown). This reduces the power pulled, but isnt really what i wanted and HDDs dont really like to be spun up and down repeatedly.

I´ll keep you posted on what im going to do about this in the future 🙂

A new member of the PC-Community

One of my friends wanted to join the PC-Family after years of only using consoles to game and asked me to build her a Cube 1.0 Case, too!

So I started printing her the corner parts. Good thing then, that I still had all .stl files and just had to slice the parts again, eliminating possible settings change errors from older gcode files. I also wanted to print it in PETG this time around.

My research about finding laser cutting services happened to be a dead end in Germany – as they dont do it for a price, that I´d be okay with.

So next thing I´ll buy is a laser cutter 😀

As we did not have access to a laser cutter anymore, we had to cut the panels manually.
For the closed sides that was relatively easy, but for the front fan cover we replaced the line-holes by just drilling A LOT OF HOLES in the panel. For the GPU-sidepanel we ended up cutting a big hole and fitting a 3d-printed replacement inside.

While this was pretty janky, it did fit in the end and boots, too!

Here are some photos of the result:

She drew all the logos and characters herself with acrylic pens.

2022 Update:

She now uses my old sidepanel instead of the cut, 3d printed and glued one.

And I still dont have a laser cutter 🙁

Printer Upgrades and Octolapse Stabilisation Stringing

The printer is reassembled after upgrading its fans ( hotend fan is going to be changed later, as we didnt have the right 24v to 12v board yet).

And as we printed another test, we saw that octolapse – especially after update 0.4 and with PETG, ozzes like you know what when moving from the print to its stabilized position and builds its own little tower on the side of the original print.

Update 0.4 changed the settings you need to enter for octolapse to detect layer changes to a minimum, but also seems to mess up retraction.

I then dug into some more posts and videos on what settings to use but none really addressed the problem in combination with PETG.

So i guess, ill have to test some settings to see, if it improves:

Trigger setting to classic gcode and then in cura adding the “snap” command after each layer with a plugin uselessly called “post processing”.

This seems to produce good snapshots for now, but lets wait on the finished print for how much oozing happens after some layers.


The printer is still stringing. But on the upside: this wasnt the setting i was looking for.

I finally decided to read the documentation and found out, i have to integrate a code snippet to my gcode, for octolapse to extract my printing settings:

; Script based on an original created by tjjfvi (
; An up-to-date version of the tjjfvi's original script can be found
; here:
; Note - This script will only work in Cura V4.2 and above!
; --- Global Settings
; layer_height = {layer_height}
; smooth_spiralized_contours = {smooth_spiralized_contours}
; magic_mesh_surface_mode = {magic_mesh_surface_mode}
; machine_extruder_count = {machine_extruder_count}
; --- Single Extruder Settings
; speed_z_hop = {speed_z_hop}
; retraction_amount = {retraction_amount}
; retraction_hop = {retraction_hop}
; retraction_hop_enabled = {retraction_hop_enabled}
; retraction_enable = {retraction_enable}
; retraction_speed = {retraction_speed}
; retraction_retract_speed = {retraction_retract_speed}
; retraction_prime_speed = {retraction_prime_speed}
; speed_travel = {speed_travel}

Ill test,if that helps and return to smart triggers.


Helped a bit, but still those strings along the print.
Next, ill try:

  • Enabling Snap to print, to reduce overlighting
  • Lowering snapshot delay to a value below 125,which seems to be standard, but 0 would be best
  • Using smart layer trigger, instead of smart compatibility


Changed the angle of the camera for better lighting.

  • snapshot delay set to 0 – works
  • smart high quality trigger with centered back stabilization for smaller prints
  • smart snap to print for larger prints without stabilization, especially ones where print quality is important, as this doesnt produce strings (at least outside of the print)


As it turned out, Octolapse wasnt the problem.

I tested a print with and without Octolapse and both got screwed up (while without it, there werent as many strings to the side of the print, obviously)

Which concluded: my overall print settings werent tweaked enough for PETG.

After some trial and error, i found out, that by adjusting the flow percentage i got rid of most of the excess filament oozing.

Silver lining though: we now have brown oozing filament IN the prints, which neither looks good nor is an idicator for good printing settings.

But: I already have an idea about what is causing it: The standard replica hotend shipped with the creality printer and the shrinking and expanding of the nozzle, which causes leakage at the heater(area) and then onto the print.

Next, I´ll try to lower the temps and or increase the retraction length to counter the oozing.

Fixing phones

So a friend asked me to save his phone from a bootloop. He updated his Mi A1 with lineageOS from inside android and since then it stuck on boot.

As Im a good friend and had flashed quite some phones before, I accepted. Mind you, also rescued half of mine after flashing them the wrong way…

He had already unlocked the bootloader (which differs between manufacturers) but i couldnt enter the TWRP recovery, which prevented me from copying the installers to the phone.

Well, it seems like some of the new phones like this Mi have 2 boot partitions now and switch these between reboots, if not flashed correctly. Yay.

While at it, I decided on rooting it, too, before using it for too long, as the root process includes wiping some partitions.

I took some wrong turns here and there, as always with this stuff, but what i did, and what worked was:

  • boot to bootloader
  • flash boot partition(s) with twrp image
  • reboot to twrp, to check if its still working
  • copy lineageOS, Open_gApps and Magisk to phone
  • install OS, then gApps, then Magisk – which took me way longer to figure out, than i wanted
  • dont reboot inbetween!
  • reboot after installing all zips
  • profit

Honestly, i wasnt sure, if it would boot, but it does!

Resources – obviously differing from phone to phone, but the steps are the same.

2022 Update: Cube 2.0 – revisited

Starting this year, I reconnected with a friend from way back and he got an idea for my Cube 2.0 – laying the sfx psu flat on the bottom of the case, instead of sideways inside the case.
Which in itself I knew would be a better idea, but would also mean I had to make the case longer and wider – which I did not want until looking at the RX 6000 GPUs custom designs…
By the way, you can check out his blog over at:

Again a few renders:

2021 Update: The Idea of Cube 2.0

I used the case for nearly 2 years now, only changed the PSU to an SFX one and mounted it with a 3d printed adapter.
But I started designing an updated version: “Cube 2.0”.

While germany ordered quarantine for everyone, i had time to think about how the case could be improved.

My thoughts were:

  • Eliminate the riser cable
  • SFX PSU compatibility, as a larger PSU wouldnt be needed anyway
  • More space for cooling, in my Case the large AF Scythe Mugen 5 cooler i had laying around from my previous case (Lian Li A05B)
  • Better airflow – which kind of got destroyed by my idea of keeping the case cube-like and small
  • This time: actually include the front-IO ports to the offside

For this, i moved the PSU from under the motherboard, lowered the tray as far as i could and keeping openings for airflow underneath.
I redesigned the backside – which until now is the biggest problem, as I dont know yet, if the parts will fill as good as they did before redesigning.
Furthermore I designed a custom adapter for the PSU mounted to the offside of the Case.

Things to keep in mind:

  • Wont fit a 25mm fan in front, if the GPU is longer than 280-ish mm.
  • Aiflow is probably pretty bad, but still better then the old case, as air may now flow in a line across the parts, instead of only being pushed on the motherboard and then pushed out the back and sucked out from the front fan.

Since I did not have access to a laser cutter anymore, without sacrificing a few years of my life by inhaling acrylic fumes – I did only 3d print the parts I thought i was going to use.

Here are some renders again:

Cube Case 1.0

In Germany the SFF-Community is still pretty small and shipping SFF-Cases from America to Germany is costly and slow. So I thought: Why not make my own SFF-Case and get to know CAD-Design while at it.

So with the help of some people online, I overhauled a 3d-printed and laser-cut sff pc case design by Gunnar Bjorkman.
Special thanks to him for the basis:

After altering Gunnars design, having to change some of the imperial measurements and wanting to change some other aspects, i ended up with my own design. I kept the general aesthetics and mounting systems.
As i wanted to upgrade my hardware soon to, I extended the case, did my own airflow-cutouts and built some options for the sides to choose from.

Here are some renders


  • 300mm GPU
  • full ATX PSU
  • iTX Motherboard
  • 3.5 inch HDDs and 2.5inch SSDs
  • 140mm Fans (0 – 4, based on the panel I/You choose)


As only the corners are 3D-Printed, every side panel can be changed and the interior plates can be made out of what you want!

  • changeable side panel designs for better cooling
  • side panel material

I chose a closed top and “offside” panel made from acrylic in black, darkened transparent and milky white.

Next, I´ll be printing the corners and cutting the acrylic panels and after weeks of waiting and fine tuning the case, finally assemble it!

The Final Assembly

With the finished design and a prototype build , I got the idea of selling this online.
SPOILER: that did not work out.