I wanted to update my hardware setup for the Docker Swarm cluster from post Portable #Docker #Swarm made of #RaspberryPI.
The idea was to make it more portable, more reliable and a bit faster. The following steps were done:
Add ethernet support
The original setup used a small Edimax router with the Raspberry Pi nodes connected to the wifi hotspot of the router. Because that is sometimes problematic and it is in fact faster to use ethernet and also because Raspberry PIs already have an ethernet port I decided to add some extra hardware.
First I found a nice small 8 port switch that can be powered from USB. See the white box bellow the router. Then I connected all the Raspberry PIs and the router to the switch with some nice 25cm red ethernet cables.
Add power redundancy
Because I wanted redundancy and also extra power ports as more USB components are added an extra high power (12A) USB PROMATE power hub with 6 ports was integrated in the setup.
Add cooling and case stacking
Now having spare USB power sockets it was easy to add an USB powered Notebook Cooler to provide some ventilation to the setup. Note that there is also an extra external hard drive powered by a Y USB cable.
I also improved the case “stacking” of the cluster. The cases are nice enough to stack but due to the pull strain of so many cables pulling in difference directions it was very hard to keep them stacked. The problem was solved with the help of some small plastic plates plus some 3M Velcro strips. It is surprisingly stable, very usable (I can remove or insert a Raspberry PI very easy) and looks nice enough.
Add a monitor
To have better usage of the Raspberry PI capabilities I also added 5 color coded HDMI cables trunk-ed together for easy use. I plan to add an HDMI Switch soon.
For portability I found a nice small monitor from JOY-IT that integrates directly on the GPIO port.
This is a very common 3.2“ TFT-Display monitor that is in fact compatible waveshare32b monitor.
I have a German only manual but bellow I will summarize the installation steps.
All the bellow configurations are done on the 5th Raspberry Pi on which the monitor is added.
STEP 1: Add boot configurations
Edit /boot/config.txt and add the following lines:
dtparam=spi=on dtoverlay=waveshare32b:rotate=270
Edit /boot/cmdline.txt and add the following lines:
fbcon=map:10
STEP2: Add X11 configuration
Create a new configuration file entry for the monitor under /usr/share/X11/xorg.conf.d/99-calibration.conf with the following content:
Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "160 3723 3896 181" Option "SwapAxes" "1" EndSection
Then edit /usr/share/X11/xorg.conf.d/99-fbturbo.conf and change the entry:
Option "fbdev" "/dev/fb0"
to
Option "fbdev" "/dev/fb1"
STEP3:Install the driver
To install the necessary driver support do the following:
cd /tmp wget http://www.joy-it.net/anleitungen/rpi/tft32b/waveshare32b-overlay.dtb sudo cp waveshare32b-overlay.dtb /boot/overlays/
A copy of the driver files can be also saved from the following link:
waveshare32b-overlay
The monitor also has 3 buttons on the edge of the display. These are covered by the following GPIOs
Raspberry Pi’s:
-[Key1]-> GPIO12
-[Key2]-> GPIO16
-[Key3]-> GPIO18
When pressed, the applied signal is pulled to GND (Active_LOW).