Posted on 2 Comments

PiHole Status Display – Official Raspberry Pi LCD

PiHole Status Display

On my home network I have a system running PiHole – a DNS server that blocks all unwanted traffic, such as ads. Since I have an official Pi LCD with a broken touch panel, I decided to use the bare LCD as a status display for PiHole.

This requires some extra packages installing onto the base system after PiHole is installed & configured, and the interface automatically starts on bootup. I used the latest Raspbian Jessie Minimal image for this system, and ran everything over a SSH connection.

First thing, get the required packages installed onto the Pi:

sudo apt-get update 
sudo apt-get install -y midori matchbox unclutter x11-xserver-utils xinit xserver-xorg

Once these are installed, it’s time to configure the startup script for Midori to display the status page. Create StartMidori.sh in /home/pi and fill with the following:

#!/bin/sh export DISPLAY=:0 
xset -dpms 
xset s off 
xset s noblank 
unclutter & 
matchbox-window-manager & 
midori -e Fullscreen -a http://127.0.0.1/admin/

This script disables all power management on the system to keep the LCD on, starts unclutter to hide the mouse pointer and finally starts the Matchbox Window Manager to run Midori, which itself is set to fullscreen mode, and the URL of the admin panel is provided.
The next step is to test, give the script executable permissions, and run the script:

chmod +x /home/pi/StartMidori.sh
sudo xinit /home/pi/StartMidori.sh

Once this is run, the LCD should come to life after a short delay with the PiHole stats screen. Close the test & return to the terminal by hitting CTRL+C.

Now the Pi can be configured to autorun this script on boot, the first thing to do here is to enable autologin on the console. This can be done with raspi-config, select Option 3 (Boot Options), then Option B1 (Desktop/CLI), then Option B2 (Console Autologin). When prompted to reboot, select No, as we’ll be finishing off the config before we reboot the system.

The next file to edit is /etc/rc.local, add the command to start the status browser up:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
sudo xinit /home/pi/StartMidori.sh &
exit 0

Here I’ve added in the command just above “exit 0”. This will start the browser as the last thing on bootup. The Pi can now be rebooted, and the status display should start on boot!

PiHole Status Display
PiHole Status Display
Posted on Leave a comment

Wearable Raspberry Pi – Some Adjustments

USB Hub
USB Hub

As the first USB hub I was using was certainly not stable – it would not enumerate between boots & to get it working again would require waiting around 12 hours before applying power, it has been replaced. This is a cheapie eBay USB hub, of the type shown below.

These hubs are fantastic for hobbyists, as the connections for power & data are broken out on the internal PCB into a very convenient row of pads, perfect for integration into many projects.

Breakout Hub
Breakout Hub

I now have two internal spare USB ports, for the inbuilt keyboard/mouse receiver & the GPS receiver I plan to integrate into the build.

These hubs are also made in 7-port versions, however I am not sure if these have the same kind of breakout board internally. As they have the same cable layout, I would assume so.

 

Connector Panel
Connector Panel

Here is a closeup of the back of the connectors, showing a couple of additions.

I have added a pair of 470µF capacitors across the power rails, to further smooth out the ripple in the switching power supply, as I was having noise issues on the display.

Also, there is a new reset button added between the main interface connectors, which will be wired into the pair of pads that the Raspberry Pi has to reset the CPU.
This can be used as a power switch in the event the Pi is powered down when not in use & also to reset the unit if it becomes unresponsive.

 

Posted on Leave a comment

Wearable Raspberry Pi Part 1.75

USB Hub
USB Hub

The hub for the external USB ports has been fitted here, with the two ports hardwired to the pads where once there were USB A sockets. This hub will also accommodate the wireless receiver for the mini keyboard & mouse, in the remaining port that will sit between the external USB ports.

USB Ports
USB Ports

In this gap between the ports is where the wireless receiver will sit for the keyboard & mouse, the pair of screws securing the external ports in the centre have been shortened to make more room.

Posted on Leave a comment

Belkin 2 Port KVM Switch

Main Body
Main Body

Here is an old type KVM switch, PS/2 & VGA interface.

Label
Label

Details Label

Top Removed
Top Removed

Top removed from the main body, the cables coming in from the bottom connect to the VGA, keyboard & mouse ports on the slave computers, the connectors at the top connect to the single monitor, keyboard & mouse.

PCB
PCB

PCB removed from the body. This is driven by a PIC16C57C-04 microcontroller.
The pair of LEDs indicate which computer is using the peripherals at any one time.

Posted on Leave a comment

Cheap Ball Mouse

Mouse
Mouse

Cheap old style ball mouse. PS/2 interface.

Top Removed
Top Removed

Top removed from the mouse, the ball fits in the gap in the centre. The slotted discs are visible which contact the ball & move relative to the surface the mouse is on.

PCB
PCB

PCB removed from the shell. Pairs of IR LEDs & Phototransistors make rotary encoders with the slotted discs. The microswitches read the mouse buttons & wheel.
IC in the centre interfaces with the PC over a PS/2 connection.

Posted on Leave a comment

Logitech Cordless Ball Mouse

Top
Top

This is an old legacy wireless mouse from Logitech. This uses a ball rather than optical technology.

Bottom
Bottom

Bottom of the mouse, showing the battery cover & the mouse ball.

PCB Bottom
PCB Bottom

Top removed from the mouse, showing the PCB inside. The smaller PCB on the left supports the microswitches for the buttons & mouse wheel.

Switches
Switches

Closeup of small PCB showing the microswitches & the IR LED & phototransistor pair for the mouse wheel encoder.

Main PCB
Main PCB

View of main PCB, with interface IC lower right. Pair of quartz crystals provide clocking for the transmitter & internal µC.
Battery contacts are on lower left of the PCB. At the top are the IR pairs for the X & Y axis of the mouse ball.

Encoder Pairs
Encoder Pairs

Closeup of the pairs of IR LEDs & phototransistors that make up the encoders for X/Y movement of the mouse, together with the slotted wheels in the mouse base that rotate with the ball. Steel wire around the smaller PCB is the antenna.