Archive for the 'hardware' Category

Thinkpad volume buttons with openbox/lubuntu 18.04

Saturday, May 26th, 2018

Because I copied my old home partition from Linux Mint 17 to Lubuntu 18.04 I had to fix my ~/.config/openbox/lubuntu-rc.xml

<keybind key=”XF86AudioRaiseVolume”>
<action name=”Execute”>
<command>amixer -q sset Master 3%+</command>
</action>
</keybind>

<keybind key=”XF86AudioLowerVolume”>
<action name=”Execute”>
<command>amixer -q sset Master 3%-</command>
</action>
</keybind>

<keybind key=”XF86AudioMute”>
<action name=”Execute”>
<command>amixer -q sset Master 0%</command>
</action>
</keybind>

Thinkpad suspend button with lubuntu 18.04

Saturday, May 26th, 2018

I use Fn-F4 to put my Thinkpad T500 to sleep. So far that worked out of the box with all Linux Versions that I tried. But not this time with lubuntu 18.04. I fixed it like this:

2 new files :

/etc/acpi/events/lenovo-sleep

event=button/sleep SBTN 00000080 00000000 K
action=/etc/acpi/lenovo-sleep.sh

/etc/acpi/lenovo-sleep.sh

#!/bin/sh
pm-suspend

… and 3 commands:

sudo chmod 755 lenovo-sleep.sh
sudo /etc/init.d/acpid restart
sudo apt install pm-utils

text to speech

Monday, April 9th, 2018

I have a notebook with a broken display. I removed the display and want to use TTS instead. So on boot the machine can say things like “conected to Wifi SSID ….” and “my IP adress is …”

When I know the IP then I can connect via ssh or vnc. That might also be useful for Raspberry Pi. Another option can be a LCD connected via usb-to serial cable.

I found 3 solutions ; one for bash and one for python:

bash 1:
apt-get install libttspico-utils


A=`echo "hello world"` ; pico2wave --wave /tmp/Test.wav "$A" ; play /tmp/Test.wav; rm /tmp/Test.wav

bash 2:
apt-get install festival festvox-don


(echo "my IP adress is " ; hostname -I ) |festival --tts

python:

pip install pyttsx3

import pyttsx3;
engine = pyttsx3.init();
engine.say("hello world");
engine.runAndWait() ;

MAX7219

Friday, September 15th, 2017

Heute kam wieder Spielzeug aus China: 4 Stück 32×8 LED Matrix Displays mit je 4 x MAX7219 als Controller. Preis bei aliexpress: $3,75 für ein 4er Modul – entspricht $0,93 für 8×8 pixel. Ein 4-er Modul(32×8 pixel) hat die Abmessungen: 32mm x 128mm x 15mm. Module verschiedener Hersteller sind unterschiedlich verdrahtet. Es gibt mindestens 3 Varianten.

Die Arduino Library “LEDMatrixDriver.hpp” passte sofort zu meinem Modul – zumindest wenn man sie nur in X Richtung verbindet. Ein 32×16 habe ich damit noch nicht hingekrigt. Sie kann bitmaps in 4 Richtungen scrollen. Es gibt eine Laufschrift Demo mit einem Text-Font. Der Font ist aber nicht hübsch und hat keine Kleinbuchstaben.

Die Arduino Library “MD_MAX72XX” (geht auch mit ESP8266) passte erst, nachdem ich 2 Zeilen in libraries/MD_MAX72XX/src/MD_MAX72xx.h gändert habe:

#define USE_PAROLA_HW 0
#define USE_FC16_HW 1

Die “Daft Punk” Demo hat einige schöne Animationen:

(in dem Video sieht man 2 Stück 4er Module)

64x16 LED Display

16pixel font

64×8 rote LEDs

Thursday, June 15th, 2017

Anno 1993 habe ich aus 8 LED Boards ein 64×8 LED Display gebaut. Ein einzelnes Board sieht so aus:

LED Streifen

Ein LED Board ist ein horizontaler Streifen mit 64 LEDs, 8 x 74LS164N Schieberegister, einem 74LS14 und einem BD 244 Transistor (für Blank und LED Strom)

Damals wurde es mit dem (“Centronics” / Parallelport ) Duckerausgang eines Atari ST angesteuert: 8 Datenleitungen (für jede Zeile eine) eine Taktleitung und 1 x blank. Der Atari hat Buchstaben mit einstellbarer Geschwindigkeit scheibchenweise von rechts ‘rein geschoben. Der Atari ST war also der erste Controller für dieses LED Display.

Ungefähr 10 Jahre später habe ich das Display mit einem ATMEL ATmega32 und der “2D Borg” Software von www.das-labor.org angesteuert. Die Firmware hat Treiber für verschiedene Displays. Damit die Hardware besser zur Firmware passt, habe ich die 8 Taktleitungen aufgetrennt und die 8 Datenleitungen zu einer zusammengeführt. Das sah dann so aus:

Weitere >10 Jahre später (2017) habe ich die Schaltung wieder modifiziert, weil ich das Display mit einem ESP8266 steuern möchte. Diesmal verbinde ich 7 x Data out (Pin 13) des letzten Schieberegisters eines Streifens mit Data In des darunter liegenden Streifen. Dadurch benötige ich nur noch 3 IO Pins des Microcontrollers statt bisher 10. Ein erster Test mit einem Arduino war erfolgreich:



FN LED Baord 1000/1
Stecker1
1 -
2 GND
3 clear/reset: 1k Ohm pull up nach +5V
4 clock
5 blank (PWM)
6 -
7 Data In

Stecker2
8 Data Out
9 clock
10 clear/reset
11 +5V
12 +5V
13 GND
14 GND

feed flightradar24 and planefinder.net with one Raspberry Pi

Monday, May 23rd, 2016

First I installed fr24feed, which looks like a modified dump1090.


root@raspberrypi:/etc# cat fr24feed.ini
receiver="dvbt"
fr24key="XXXXXXXXXXXX"
path="/usr/lib/fr24/dump1090"
bs="yes"
raw="yes"
logmode="0"
mlat="yes"
mlat-without-gps="yes"

root@raspberrypi:/etc# service fr24feed status
[ ok ] FR24 Feeder/Decoder Process: running.
[ ok ] FR24 Stats Timestamp: 2016-05-22 22:52:07.
[ ok ] FR24 Link: connected [UDP].
[ ok ] FR24 Radar: T-XXXXX.
[ ok ] FR24 Tracked AC: 1.
[ ok ] Receiver: connected (1504210 MSGS/0 SYNC).
[ ok ] FR24 MLAT: ok [UDP].
[ ok ] FR24 MLAT AC seen: 0.

Then I installed pfclient

wget http://client.planefinder.net/pfclient_3.4.30_armhf.deb
dpkg -i pfclient_3.4.30_armhf.deb

…and configured it via the Web interface:
http://192.168.1.101:30053
Data Format: AVR-TCP
IP: localhost
port: 30002

Similar to dump1090 pfclient has a nice web-GUI with various views.

Then I installed piaware, which had some (tcl) dependencies:

wget http://de.flightaware.com/adsb/piaware/files/piaware_2.1-5_armhf.deb
dpkg -i piaware_2.1-5_armhf.deb
apt-get install -fy

I did not try piaware, because I don’t have a Flightaware accout yet.

install linuxcnc on Linux Mint 17.1 Rebecca

Thursday, November 12th, 2015

install linuxcnc on Linux Mint 17.1 Rebecca
(without real time kernel)

http://linuxcnc.org/docs/2.7/html/getting-started/getting-linuxcnc.html#_installing_on_debian_wheezy_and_debian_jessie_with_preempt_rt_kernel

Add a new apt source that looks like this:

deb http://linuxcnc.org/ jessie base 2.7-uspace


then:

apt-get update
apt-get install linuxcnc-uspace

after installation you can start LinuxCNC:

linuxcnc

3D Drucker

Friday, June 13th, 2014

Gestern hatte ich nach 2 Wochen Pause mal wieder 4 Stunden Zeit für den 3D Drucker. Beim Druckbett habe ich die 4 Abstands-Klötze aus PLA gegen Stapel aus je 3 Metall-Muttern getauscht. Die 15x15cm Speigelfliese wurde durch eine 20x20cm ersetzt – Nun kann ich Maul-Klemmen benutzen um diese Platte zu befestigen. Die kleine Dauerdruckplatte im warmen Zustand mit Kapton darauf fixiert – keine Wölbung mehr zu sehen / zu spüren. Das kleine Ritzel im Extruder hat sich mal wieder gelockert – leider hatte ich kein Locktite dabei.
Folgende Temperaturen habe ich gemessen:

am Schraubenkopf des Heizblocks:
Software: 230° gemessen: 195°
Software: 210° gemessen: 175°

Druckplatte:
Software: 60° gemessen: 45°

Das Druck-Ergebnis vom Testobjekt war wie beim letzten Mal. Das kühlen des Werkstücks mit einem langsam laufendem Lüfter hatte keinen Effekt. nach 1cm Druckhöhe musste ich abbrechen weil der Extruder mal wieder versagte.

lockeres Ritzel ?
Verstopfung ?
Luft oder Feuchtigkeit im Material ?
Klemmt das Filament wegen der Kerben, die der Vorschub verursacht ?

Ich will demnächst probieren, ob ich das Filament heraus ziehen kann wenn der Extruder kalt ist. Angeblich soll es ja an dem Edelstahl nicht haften.
Den Lüfter, der den oberen Teil des Hotends kühlt, werde ich direkt an 12V anschließen – Es ist schon zu oft passiert, dass ich vergaß, ihn per Software einzuschalten.

3D Drucker druckt

Monday, May 19th, 2014

heute habe ich das erste Teil gedruckt! Der erste Druck fing gut an, aber dann kam kein Material mehr. Das Ritzel, welches nur mit einer Madenschraube befestigt war, saß nicht mehr fest auf der “Welle”. Die “Welle” ist aber keine richtige Welle sondern eine einseitig abgeflachte Schraube. Ich werde versuchen, dafür eine stabilere Lösung zu finden. Als Temperatur war 230° eingestellt. Mit dem Multimeter konnte ich aber nur 180° messen. Der zweite Druck hat von Anfang bis Ende funktioniert, nur die Seitenwände der Treppenstufen wurden nicht genau die 90° Winkel abgebildet sondern mit ca. 45° “abgekürzt”
die folgenden 2 Versuche waren erfolglos: Die erste Lage haftete nicht richtig. 10°C weniger war vielleicht keine gute Idee, oder der Abstand zwischen Düse und Platte war zu groß.

q-bert

3D Drucker

Thursday, May 15th, 2014

Prusa Mendel i2. Ich hätte den warscheinlich nicht gekauft, aber nun steht er hier im Unperfekthaus und die Jungs, die ihn gebaut haben, haben keine Lust mehr sich weiter damit zu beschäftigen. So… let’s give it a try…

Zuerst habe ich eine aktive Luftkühlung für den oberen Bereich der Nozzle gebaut – mit 30mm Lüfter und Kühltunnel aus Blech. Dann habe ich die Platform umgebaut: weg mit der krummen Alu-Platte. Jetzt nur noch das Hotbed mit einer Glasplatte drauf.
Als ich heute hier an kam war einer der 2 Z-Motoren falsch eingesteckt – Sabotage! Sehr ärgerlich. Mit richtig anschließen war es nicht getan. Der Motortreiber hat die Last der 2 Motoren nicht geschafft. Hab die Treiber für Y und Z getauscht – jetzt läuft’s wieder.
Weil ich überall gelesen habe, dass PLA einfacher zu benutzen ist als ABS hab ich bei 230°C mit dem PLA Filament den Rest ABS aus der Düse gedrückt. Für PLA war 185° eingestellt, das schmolz aber nicht. Jetzt hab ich PLA mit 230°C ein paar mal “in die Luft” extrudiert und das sah ganz ok aus.

to be continued…