Category Archives: Hobby

Books read / to read (Paper and Calibre)

  • Je hebt wel iets te verbergen
  • Missing microbe’s
  • John Cleese
  • Michael McIntyre
  • Komt een vrouw bij de hacker
  • The cathedral and the bazaar
  • Ons feilbare denken
  • Singularity is near
  • Randall Munro books
  • Dat wordt niets met Bert Visscher (read, see other post)
  • Ultimate Cigar Book
  • Oak Island

But most of the times manuals/howto books about beer, fermenting, computers .. reference guides.

We used to have a lot of books, but when Monique moved out she took a lot with her. And i’ve got a lot of digital versions of books now. We needed the space, so i got rid of the paper ones.

I’m using Calibre and Calibre in server mode, to access my ebooks and comics.

I use fbreader a lot and sometimes the calibre webreader.
My tunebooks are in there also, and i’m using my DIY bluetooth pageflipper to flip though the pages. (Other post)

Calibre in server mode

 ./calibre-server --userdb /home/fash/calibreusers.sqlite  /tank/Calibre/library /tank/Calibre/adult /tank/Calibre/sortedlibrary /tank/Calibre/comics /tank/Calibre/computer /tank/Calibre/manuals /tank/Calibre/PdfMusic /tank/Calibre/Nasla
g --port=8008 --enable-auth --auth-mode 'basic'

# To manage users
# calibre-server --userdb /srv/calibre/users.sqlite --manage-users

# Server is behind a reverse proxy

Some comics i’ve collected are:

  • Stamgasten
  • Dirkjan
  • Storm
  • Kuifje (TinTin)
  • Klepzeiker
  • Koen Hottentot
  • Guust Flater
  • Maus
  • Metal Hurlant

RTMP / RTSP / HLS Streaming video

UPDATE: 20220906 – Started testing with steaming VR/360 also

RTMP stands for Realtime Messaging Protocol
RTSP stands for Realtime Streaming Protocol
HLS is a HTTP Live Streaming method

I needed a way to stream semi-realtime video to a website.
There are multiple use cases.

  • Streaming a boardgame online
  • Showing my desktop, while i was working on projects.
  • Watched (streamed) Curse of Oak Island with some friends while being in a Jitsi meeting at the same time together.

In all cases i used OBS to stream to the website.

Prepare the stream server:

Install nginx, with the rtmp module

wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
tar -xvf nginx-1.9.7.tar.gz
unzip master.zip
cd nginx-1.9.7
./configure --add-module=../nginx-rtmp-module-master/
make && make install
mkdir -p /HLS/live/test # live is the stream name, test is the pass key
chown -R {nginx user} /HLS

create a config file

worker_processes  1;
error_log  logs/error.log debug;
events {
worker_connections  1024;
}
rtmp {
server {
listen 1935;
allow play all;

application live {
allow play all;
live on;
record all;
record_path /video_recordings;
record_unique on;
hls on;
hls_nested on;
hls_path /HLS/live;
hls_fragment 10s;

}

application vod {
play /video_recordings;
}

http {
include       mime.types;
default_type  application/octet-stream;

server {
listen 80;
server_name www.fash.nu;
add_header Access-Control-Allow-Origin *;

location /live {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/live;
add_header Cache-Control no-cache;
}

location /mobile {
types {
application/vnd.apple.mpegurl m3u8;
}
alias /HLS/mobile;
add_header Cache-Control no-cache;
}

location / {
root   html;
index  index.html index.htm;
}
}

You need a webpage containing the embedded player

<!-- HTML -->
<video id='hls-example'  class="video-js vjs-default-skin" width="400" height="300" controls>
<source type="application/x-mpegURL" src="http://www.fash.nu:8080/live/test/index.m3u8">
</video>


<!-- JS code -->
<!-- If you'd like to support IE8 (for Video.js versions prior to v7) -->
<script src="https://vjs.zencdn.net/ie8/ie8-version/videojs-ie8.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.14.1/videojs-contrib-hls.js"></script>
<script src="https://vjs.zencdn.net/7.2.3/video.js"></script>

<script>
var player = videojs('hls-example');
player.play();
</script>

Run the server part:

/usr/local/nginx/sbin/nginx -c /root/stream.conf

Now you can connect OBS to the streaming server

Open the webpage and enjoy!

2nd webcam showed card details. Also text boxes appeared who’s turn it was.

UPDATE: 20220906 – Started testing with steaming VR/360 also

When attending the MCH2022 talk about streaming 360 video, i made a mental note to try this with my Vuze cam, using current setup and the one suggested in the talk : https://www.youtube.com/watch?v=460vo1O5pC4

To check : EGJS

Vuze Android App

Winecellar – rack

Winerack finished .. at last, with laser engraved labels. (See 3D printer posts)
Enough space for 160 bottles.

No glue, only tacks.

Een eerste design in sketchup
1st design in sketchup (old)

Engraving using a laser engraver on my 3D printer

Laser engraving

Bought a laser engraving kit, which can be mounted on my 3D Creality Printer, using magnets.

I’ve connected the power to a fan connector in 3D printer. So it can be controlled with gcode’s

M18 Z; stop Z axes, use only X and Y
M106 ; laser on command
M107 ; laser stop command

I’ve created a bash script which outlines our design with minimal and maximal x and y coordinates, so you can allign your object just in the right place.
It uses a low voltage on you laser, so its visible but it doesn’t burn you object.

#!/bin/bash
myz=100
MAXX=$(cat "$1" | grep "G0 X" | awk '{ print $2 }' | cut -c2- | sort -n | tail -1)
MINX=$(cat "$1" | grep "G0 X" | awk '{ print $2 }' | cut -c2- | sort -n | head -1)
MAXY=$(cat "$1" | grep "G0 X" | awk '{ print $3 }' | cut -c2- | sort -n | tail -1)
MINY=$(cat "$1" | grep "G0 X" | awk '{ print $3 }' | cut -c2- | sort -n | head -1)

cat > "pointtest - $1" << EOF
;BingoStart
G90
M17 Z
G0 F3000
G0 $myz F3000
M18 Z
G0 X${MINX} Y${MINY}
M106 S2
G0 F3000
G0 X${MINX} Y${MAXY}
M106 S2
G0 F3000
G0 X${MAXX} Y${MAXY}
M106 S2
G0 F3000
G0 X${MAXX} Y${MINY}
M106 S2
G0 F3000
G0 X${MINX} Y${MINY}
M106 S2
G0 F3000
G0 X${MINX} Y${MAXY}
M106 S2
G0 F3000
G0 X${MAXX} Y${MAXY}
M106 S2
G0 F3000
G0 X${MAXX} Y${MINY}
M106 S2
G0 F3000
G0 X${MINX} Y${MINY}
M106 S2
M107
;end
EOF

Below a offset fixer

#!/bin/bash
myz=100
cat "$1" | sed s/Z1/Z${myz}/g | sed s/Z6/Z${myz}/g > "fixed.$1"

Internals of my Creality 3D Printer .. using fan controller to power/control engraving laser

Uboot Game

2019-06-08 I’ve bought myself Uboot the game.

It is one of my favourite board games.

Playing with a cardboard uboot is … okay. But when you have a 3D printer .. do i need to say more?

Parts printed

3D printed version assembled and completed in Jan 2021

All assembled and put Leds inside.

Led’s are controlled by a Arduino, Mqtt or a fysical button can be used.

3D Printing

In 2012 I started with 3D printing, I didn’t have my own yet. So it was done using shapeways.
April 2019 I ordered my own, a Creality CR-10S.

Specs

  • Build Volume: 300 x 300 x 400mm
  • Layer Thickness: 0.1-0.4mm
  • Positioning Precision: Z-axis – 0.0025mm, X & Y-axis – 0.015mm
  • Nozzle Temperature: 250°C
  • Printing Speed: 200mm/s
  • Filament Diameter: 1.75mm
  • Printer Weight: 9kg
  • Printing Filament: PLA, ABS, TPU, Wood, Carbon fiber, etc.
  • Input Support: SD card/USB
  • File Types: STL/OBJ/G-Code/JPG
  • Supports(OS): Windows/Linux/Mac/XP
  • Printing Software: Cura/Repetier-Host
  • Frame & Body: Imported V-Slot Aluminum Bearings
  • Power Requirement Input: AC110V~220V, Output: 12V, Power 270W
  • Output: DC12V, 10A 100~120W (Support storage battery)
  • Working Condition Temp:10-30°C, Humidity: 20-50%

Problem with this 3D Printer is the lack of a thermal runaway detection. My solution is a MQTT/Nodered warning system which plays an alarm and uses a shelly to disconnect the power.
https://www.henriaanstoot.nl/2022/05/11/mqtt-bash-nodered-notify/

Software I Use – see other posts

  • Openscad
  • Cura
  • Meshroom
  • Blender
  • Sketchup

Hardware

  • Octoprint on a raspberry pi – (with Octoscreen)
Octoscreen (image from internet) I’m using a faytec touchscreen monitor
  • Octoprint monitor
Little display on my desk which monitors the progress

I’m using a filament sensor like the one in below picture

It used to be a DIY thingy using an arduino. (below)

Filament under my table ( in the “dark” )

Software on my mobile

  • Octoremote
    https://play.google.com/store/apps/details?id=com.kabacon.octoremote

Hints and tips

  • Use painters tape against bending of the glass, it will warp because of the heat.
  • Use 3D spray to fix model to base-plate.
    (I used a gluestick before)
  • Always think of model placement, less support the better.
  • Try to remember which fill-in is the best for your purpose.
  • Calibrate distance print tool and glass using printing paper.
  • Know your printer, make a lot of test prints when starting.
  • Learn / read about 3D printing finishing. Sanding/smoothing/melting.
    I’ve got some smoothing liquid (print coating) , a dremel and below tool
  • Use a print model to test your leveling
    ( https://www.printables.com/model/69956-bed-level-calibration-square-grid )
  • Learn how gcode’s work!

Laser engraving using my 3D printer (pre lasercutter)

Websites

  • Yeggi
  • Thingiverse
  • printables – not that much

UPDATE 20230803

Best gap filler i found which is easily sanded down with a dremel.
Alabastine Polyester Plamuur

3D printed a stone

Why? Because i can

While on holiday in New Zealand i made photos of a rock i found on the campsite we where. Nothing special about the rock, but it was a nice subject to try to replicate.

So i took many many pictures of the stone from all sides.

Imported those images in meshroom and convered it to a 3D stl object.

Blender object

Printing and airbrushing

Added some grass from our clock project