💾 Archived View for home.plueschbit.de › minilog.gmi captured on 2023-07-22 at 16:02:14. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
New project: "GeschTAp" - the story telling telephone.
A couple of years ago I tried to modify an old telephone from the 1980th and
include an MP3 player that can be controlled by the telephone keys and output
audio over the receiver. I used an old MP3 player but controlling the buttons
of the player with the telephone keys (microcontroller in between) was very
complicated. Finally, I abandoned this project.
Nowadays, you have easier options. I found the DFPlayer Mini module which is
essentially a media player that can play sound files from a SD card and can be
controlled via IO ports.
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299
This module is perfect to revive this project. In the end the device should
serve as a media player for my little son, kinda similar to a Toniebox or
Tonuino.
https://us.tonies.com/pages/toniebox
Instead of using figures (with RFID tags) to select the audio file to play like
for the Toniebox or Tonuino on the GeschTAp you will have to dial a number like
you would like to call someone.
I already played with the DFPlayer Mini module and successfully got it to
output audio over the speaker from the phone's receiver. However, the
"indexing" of files on the SD card is rather annoying. You cannot simply select
a file by its name.
I initially thought to use one of my Raspberry Pi Picos. But wrt. processing
power as well as power consumption they are an overkill. To avoid too much
level shifting I think I will use a 3.3V Arduino Pro Mini. The Arduino will
read any number dialed in or if the receiver is hung up. It also reads a
potentiometer to adjust the output volume. It controls the audio module to play
the correct audio file from the SD card.
Finally, the whole GeschTAp shall be powered by a USB power bank sitting inside
the telephone body. Fortunately, there is enough space inside to accomodate all
necessary items.
The adapter PCB mentioned in my last post arrived already a couple of days. I
integrated it into my PiDP-8/i and it worked.
The computer is now sitting in the shelf in the living room and looks really
cool. :D
https://social.tchncs.de/@rzbrk/109715923454887988
Long time not seen here.
Today, I want to talk about one of my cool christmas presents: A kit for a
PiDP-8/i. If you like old computers like me and not already know it you
have to check it out!
https://obsolescence.wixsite.com/obsolescence/pidp-8
The kit is a down-scaled replica of the legendary PDP-8/i from DEC. Core of
the PiDP-8 is a Raspberry Pi (all versions with the 40 pin GPIO connector
work) running the simulator SimH.
You have to provide yout own Raspberry Pi to complete the kit. I choosed a
Raspbbery Pi 3 which has more than enough power and runs at acceptable
temperatures with passive cooling.
I deviated a bit from the build instructions:
screwed it to the outside of the back plane. This allows access to all ports
of the Raspberry Pi. The main PCB inside the housing and the Raspberry Pi are
connected with a flexible ribbon cable running through a slit in the back#
panel. Unfortunately, this way the pinning of the cable does not match on
both ends and I had to design a little adapter PCB to mirror the 40 pin
connector along the long side of the connector (effectively swapping even and
odd pins).
that is now already 2 years old. Instead, I choosed to go with DietPi (my
preferred OS for all my Raspberry Pi computers) and installed the necessary
software manually. It was a small fight with the Makefile of the adapted
simulator for the kit but in the end I git the software to work. I plan to
make the list iof necessary commands and modifications available.
The adapter PCB that I designed is currently in production but not here yet.
But I already temporarily wired everything up using dupont cables and
ensured the kit is correctly built and working.
I will make another post when I finally finished the kit.
Crazy, how many dudes try to log into my server via SSH. Currently, I have more
than 600 IP addresses banned by fail2ban. Lately, I myself had problems with
SSH. I pinned the problem to a "broken" SSH server on my bastion host. The
server terminated service after a series of MaxStartups throttling.
Good news: No system is compromised ... the defense held.
My 3D printer is printing again. <3 <3 <3
The last print is ~ half a year ago. I needed "feeds" for my 24 port managed
switch.
So cool to see it printing again.
I found a little treasure in my basement: An AVR-NET-IO from Pollin.
This is a ATMEGA32 microcontroller board with a ENC28J60 network controller.
A couple of in and ouputs can be controlled via TCP/IP.
The last time I played with this board was long ago. But instead of the
stock firmware I used Ethersex.
It seems, the AVR-NET-IO board is no longer available on the Pollin website.
But an extension board with SD card and IR is still available.
Maybe, I will get this little piece back to life.
https://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin
https://www.ethersex.de/index.php/Ethersex
Since a couple of weeks we have baby at home. <3 Did you know you can calm
down a crying baby by playing brown noise? It really works! You could use a
hair dryer or a extractor hood. But to save electric power you can also
create a sound file with brown noise and play it near the baby.
Brown noise sounds a little bit more comfortable than e.g. white noise.
https://en.wikipedia.org/wiki/Brownian_noise
Of course, there are apps for this or ready-made videos on YouTube. But with
the open source tools sox and ffmpeg you can create a MP3 file with brown
noise yourself:
$ sox -n brownnoise.wav synth mm:ss brownnoise $ fmpeg -i brownnoise.wav -acodec mp3 brownnoise.mp3
The backup is progressing ...
As a compagnion to restic I use resticprofile to configure the backup
profiles for restic. I really love the new [previously to me unknown] function
to define the schedule of the backup tasks also in the profiles file. Then,
you can simply install the schedule by:
# resticprofile -n job schedule
https://creativeprojects.github.io/resticprofile/schedules/index.html
Parallel to implementing the backup I reverted some decisions from the past.
For example, I separated the database, redis and webserver of my cloud to
different Linux containers in Proxmox. However, this makes a consistent
backup of the data very complicated. I therefore decided to merge nginx,
mariadb and redis for Nextcloud onto a single container. My initial idea was
so save ressources by e.g. sharing a central database instance with different
machines. But I currently have plenty of ressources left on my little server.
Some progress on backup. I stick to restic, the tool I use for years now. But
unlike in the past I backup my machines to a local restic respository. Later,
this repository is synced to a remote cloud storage via rsync. In the past,
the backups were very slow. No, the local backup is very fast using the local
network speed and the services are interrupted for a shorter time now. The
sync of the data over the slower uplink is done by the scheduler in the
background.
I also changed from Strato Hidrive to Hetzner Storage Box. Hetzner is not
only cheaper but faster.
There is still a lot do. Only a few machines are configured to perform
backups. The rest ogf the machines will follow in the next days.
I love IRC! <3
I wanted to set up nginx with user dir (http://example.com/~user/). I added the
necessary location block to the nginx config and created the ~/public_html
folders in the user home directories. But I always got 403 (forbidden).
In the #nginx channel on libera.chat I got the hint that did the trick. EVERY
parent dir of ~/public_html needs +x permission for the nginx user (or
"others"). In my case, this was not the case for the dir "user" in
/home/user/public_html. Someone in the channel recommended the command iname
to debug situation like this:
root@host:# namei -om /home/user/public_html/index.html f: /home/user/public_html/index.html drwxr-xr-x root root / drwxr-xr-x root root home drwxr-x--- user user user drwxr-xr-x user user public_html -rw-r--r-- user user index.html
A chmod o+x /home/user solved the issue and the client browser successfully
opened the index.html in the user dir.
The user dir festure may seem outdated. I use it on an internal linux container
to test static websites created with nikola before updating my actual website(s).
One side effect from transferring to Proxmox is that I now have around a
dozen of Linux containers that need regular maintenance instead of one
physical server. It is very annoying to log into every machine to perform
updates. Fortunately, there is Ansible. Until now, I had not much
experience with this software tool. But the very first playbook to perform
apt updates on Debian and Ubuntu containers is already up and running. This is
really a time saver!
https://www.redhat.com/en/topics/automation/learning-ansible-tutorial
Backup again ...
I think I will mostly rely on restic when performing backup. I can reuse my
profiles scripts and already know that restic is reliable. In addition, I can
build up on my already existing backup repository.
In addition, I could use the Proxmox backup tools. With the Proxmox archives
I can quickly spin up any broken container and use the restic backup to feed
in the latest data.
The new server is almost finished. One important thing is missing: BACKUPS.
On my "old" server I did backups using restic and this was very reliable. It
features encrypted backups, deduplication and off-site backups via scp. The
other option would be to use the Proxmox backup tool. From the archives one
can very easily recover the Linux containers. However, you end up with big
monolithic archives that I would have to transfer to my off-site cloud
space.
Finally ...
... I managed to set up a Linux container running Gitea. I struggled to login
into the web GUI after installation. All the time I assumed the admin account
is "admin" ... but actually it is "gitea". Before finding this out I repeated
the installation multiple times.
How did I found out? I logged in into the gitea MariaDB database with
# mysql -D gitea
and queried the existing users with
> select id,name,is_admin from user;
This showed me that an admin user "gitea" with id 1 was present.
Beside this odysee I am very pleased with Gitea and will use it mainly for
repositories I would like to keep private. The public repositories will stay
on my Github account.
Back online! :)
Fresh new capsule with new URL. I changed to another DynDNS
provider simply because dyn.com became too expensive after it was purchased by
Oracle. However, this change took quite long because this was a major change to
my network. I took the chance when I made an upgrade to my server at home and
changed the DynDNS provider.
((( CC-BY 4.0 Jan Grosser )))