We broke the internet, by inventing the internet.

Rant… This is a rant.

But in short, by the birth of the internet – interconnected computing, and the applications of that era – why whould not part of the first users take over in a hostile model what they started or, partially took over.

It’s a matter of cost. Looking back at my own involvement with the military – I get it. For low priority stuff you might even hook it up to the interwebs.

But – the problem is, they need to start just do what we do with our normal armies. Stuff ’em as security at the boarder and threatening power. Not enslaving the whole of us. Not stepping on rules, and regulations the majority of us keep. I am not talking about the amount of data. The amount of data is irrelevant. It is the intent of the normal average person connected to the internet. The persona that thinks they have nothing to loose. Nothing to hide, and the worst fear is loosing their smartphone.

Is it really about “defending ours”?

How about it’s time we simply stopped the intelligence community from walking into our livingrooms, and the corporations from owning us instead of us being the consumer of their products.

Time to step up the game, by laying down the rules.

So.. What are the rules?

In war – spare the civilians.

If you have to wage wars on the webs, stop involving us- and our data.

Logging temperature data with Python / MySQL / Arduino over serial

While back, I did create an arduino setup, and has since then been meaning to do something more useful with it.

Well, it took a while. I fiddled around a bit, and now finally managed to combine it with looking into python.

I’ve pasted the pythoncode in below, you will need python-mysql and pyserial (pip install).


import io
import serial
import MySQLdb

ser = serial.Serial('COM3', 9600) 
db = MySQLdb.connect(host="IP", user="USER", passwd="MYSECRET",db="DB")
cursor = db.cursor()
while True:
    out = ser.readline()
    # example output ' Temperature: 21.94 -  Humidity: 21.58\n
    print (out)
    tempdata = out[14:19]
    huedata = out[33:38]
    #trim the output
    tempdata.strip()
    huedata.strip()
    query = ("INSERT INTO mytemperaturetable (`temp`,`hue`) VALUES('%s','%s')") %(tempdata,huedata)
    cursor.execute(query)
    db.commit()
db.close()
ser.close()

You can find my original post here.

For the Arduino you need to hook up it to something that gets the mesurements; I did it and needed to fetch SHT1x.h.
The unclean arduino code looks like this (it still beeps when the obvious heat comes on):


#include 

#define dataPin 8
#define clockPin 12

  int del=100; 
  int delo = 10000;
  int val = 0;
  const int speakerPin = 6;
  const char notes[] = "ccggaagffeeddc ";
  const int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
  const int length = sizeof (beats) / sizeof (beats [0]);
  const int tempo = 50;
  
void playTone(int tone, int duration) {
 for (long i = 0; i < duration * 1000L; i += tone * 2) {
   digitalWrite(speakerPin, HIGH);
   delayMicroseconds(tone);
   digitalWrite(speakerPin, LOW);
   delayMicroseconds(tone);
 }
}
void playNote(char note, int duration) {
  const char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  const int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
  for (int i = 0; i < 8; i++) {
    if (names[i] == note) {
	playTone(tones[i], duration);
    }
   }
}
void playTune (const char* notes, const int* beats, int length, int tempo)
{
  for (int i = 0; i < length; i++) {
    if (notes[i] == ' ') {
     delay(beats[i] * tempo); // rest
  } else {
     playNote(notes[i], beats[i] * tempo);
  }
  }
  delay(tempo / 2);
}

// The setup() method runs once, when the sketch starts
void setup()
{
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);  
}

void loop()
{
  SHT1x sht1x(dataPin, clockPin);
  float tempC = sht1x.readTemperatureC();
  float tempF = sht1x.readTemperatureF();
  float humidity = sht1x.readHumidity(); 
  float maxtemp = 30.10; 
  
 
    if (tempC > maxtemp){
      delo = 1000;
      Serial.print("WARNING - HIGH TEMP");
      digitalWrite(2, HIGH);   // turn on LED on pin 2
      delay(del);              // wait (length determined by value of 'del')
      digitalWrite(2, LOW);    // turn it off

      digitalWrite(3, HIGH);   // turn on LED on pin 3
      delay(del);              // wait
      digitalWrite(3, LOW);    // turn it off
      
      digitalWrite(4, HIGH);   // turn on LED on pin 4
      delay(del);              // wait
      digitalWrite(4, LOW);    // turn it off
      
      digitalWrite(5, HIGH);   // turn on LED on pin 5
      delay(del);              // wait
      digitalWrite(5, LOW);    // turn it off
      
      digitalWrite(4, HIGH);   // turn on LED on pin 4
      delay(del);              // wait
      digitalWrite(4, LOW);    // turn it off

      digitalWrite(3, HIGH);   // turn on LED on pin 3
      delay(del);              // wait
      digitalWrite(3, LOW);    // turn it off

      playTune (notes, beats, length, tempo);
      
    }
    else
    {
     delo = 10000;
     digitalWrite(2, HIGH);   // turn on LED on pin 2
     delay(del);              // wait (length determined by value of 'del')
     digitalWrite(2, LOW);    // turn it off  
    }
 
  Serial.print(" delo = ");
  Serial.print(delo);
  Serial.print(" ");
  Serial.print(" Temp C - F: ");
  Serial.print(tempC);
  Serial.print(" - ");
  Serial.print(tempF);
  Serial.print(" Humidity :");
  Serial.print(humidity);
  Serial.print("\n");
  delay(delo); 
}

FreeCom MusicPal

Still have my old trusty Freecom MusicPal as alarmclock. Tried to get another one, but even ebay came out short… Sad sad day.

However, I need to document the following tweakies;

Get usable info from the web interface – and be able to start telnet access;

http://[IP]/admin/cgi-bin/debug

telnet straight over with root. Your web-access usr/pwd also works.

live data is used in /home/etc with symlinks to /etc/ for “changeable” things.

My version, 1.67 uses;

2.6.16.16-88w8xx8 #438 PREEMPT Wed Dec 2 14:00:59 UTC 2009 armv5tejl unknown

With the layout of:

$ df -h
Filesystem Size Used Available Use% Mounted on
/dev/mtdblock0 7.3M 6.8M 460.0k 94% /
tmpfs 9.0M 48.0k 9.0M 1% /tmp
tmpfs 1.0M 0 1.0M 0% /dev
/dev/mtdblock1 384.0k 224.0k 160.0k 58% /home

The superduper cpu is;

$ cat /proc/cpu
/proc/cpu/ /proc/cpuinfo
~ $ cat /proc/cpuinfo
Processor : ARM926EJ-Sid(wb) rev 1 (v5l)
BogoMIPS : 175.30
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TE
CPU variant : 0x1
CPU part : 0x926
CPU revision : 1
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format C
Cache format : Harvard
I size : 32768
I assoc : 1
I line length : 32
I sets : 1024
D size : 32768
D assoc : 4
D line length : 32
D sets : 256

Hardware : MV88W8618-HS35
Revision : 0031
Serial : 0000000000000000

Memory with idle runs around;

$ free
total used free shared buffers
Mem: 29132 13372 15760 0 0
Swap: 0 0 0
Total: 29132 13372 15760

Thanks to tolletechnik for having written this up back in 2008 (in german.. ).

QNAP suprise – The QNAP Q´Center (QCenter)

Imagine my surprise when I stumbled upon one of the actually useful “addons/plugins/apps” that was available from the official repo.

It’s for managing multiple QNAP NAS units. And It’s light – in features so far, but it actually gives some graphs, possibility to create rules, and generic alarm settings!

captureqnapqcenter

So, stepping to the left, we got the goodie-list:

Dashboard – main start/stop page, a … dashboard with some graphs and general shorthand info.
Server – the servers in question – pop in a new one and enjoy.
Report – Aha – here comes the fun stuff – get reports on your disks / usage / shared vols / storage pools / performance ( IOPS etc ) / temp / fan / S.M.A.R.T alarms… Me like.
Log – system logs all in one place. Nifty.
Rule – this is were it gets interesting –
capturecreaterule

You can set general settings for specific NAS devices ( you select them in the previous screens for creating a rule). You can also group the rules inte rulesets.

Firmware lib – Check for firmware of the connected devices – from the menu. Dunno yet if the upgrade part works straight of here.
Notification – Get your alerts, get your alerts here! Well, create your triggers and outbound parties (SNMP traps / email ) here.
Settings – Contains nice sub-menus – Account | LDAP Configuration | AD Configuration | Patch | Export/Import settings | Remote Backup | Update Agent.

All in all – you can manage your administrative accounts straight off here, your LDAP / AD configs, specific patches, export and import QCenter settings, setup remote backup (rsync) from this central place as well (your hand made local settings will not show here ), and of course make sure that the agent package that gets installed upon first handshake hold a valid version.

Give yourself an headache – upgrade from apache 2.2 to apache 2.4

Yeah. I am old. And I do fancy other webbies than Apache. But, since I have found setups to work over a decade ( until now..) configuration wise (minor mods since first 2.x release..) – the “new” 2.4 release did kick me in the nuts quite well.. Still working through the config changes that has occurred and figuring out what needs to change to improve and secure. At least – it’s all up again, and works in some fashion ;).

Dump1090

So I was bored one day (happens ever so often), Put up a Raspberry Pi with a SDR, and tuned in with Dump1090. Tracking airplanes have never been easier, or more enjoyable when you know you are getting the data out of the sky yourself.

screenshot-from-2016-09-20-200659

Tinkering with the cheaper Intel Compute Stick

So, a while ago Intel released a “Intel Compute Stick”. It’s kindof tiny, doesn’t perform perfectly – but is quite a nice, quiet alternative for those whack-a-terminal-an-stream-some-music nights.

Problem is – I don’t care that much for the Ubuntu 14.04 LTS pre-loaded (yes, I am talking about the version with only 1Gb mem, and whatissit – 8gb storage?).

Good thing is – if you can survive with the built in realtek wifi, only thing you need to take heed to is the Intel drivers, from the proprietary locked down section of the binary world (or, almost – they are available in slightly different format..).

So far, you can grab ’em from https://01.org/linuxgraphics.

Problem is – if you really wanna use the built in wifi, mail realtek. Yes.. email – to get drivers. It’s lovely.

http://www.realtek.com.tw/contact/contentView.aspx?Langid=1&PNid=1&PFid=4&Level=2

Wireless LAN ICs
Email: wlanfae@realtek.com

There is someone that seems to have put the source on git for a working wifi-driver;

do the following;

sudo apt-get install build-essential linux-headers-generic git
git clone https://github.com/codeTom/rtl8723bs.git
cd rtl8723bs
make
sudo make install
sudo depmod -a
sudo modprobe r8723bs

Either way, I got it cheap – works – and runs. Yay.

Raspberry Pi 3, WiFi gone with the wind (but now back).

I dunno… Is it just me, or did the wireless just go away with the latest build of Rasbpian (as of today 2016-08, build from before summer).
Tried it out on two different 3´s – with both the full blown version and the lite one. Did not matter. There’s bluetooth, but no wifi.
The module(s) is loaded – but to no avail.

Been using both ones with the official Pi Screen. Been pondering if there is a bad glitch with not powering stuff separately ( power connected over GPIO ).

I’ll try it out without the interconnect and power them separately…

The whole of the interwebs seems to know nothing about it. What have I done that no one else seems to have noticed?

EDIT/UPDATE:
So … Just reconnected the lab-machine again after having it connected over ethernet, and guess what – the drivers seems to be back, for some odd reason. Odd… Odd.. Odd..

EDIT2/UPDATE2:

Seems to be related to power consumtion.. It’s a bit weird.

Elari Cardphone.

Needed a temporary phone, so I ran to the store and got amazed. A small “anti-smartphone” (in plaintext – it’s just a phone..).
It does voice, sms, got bluetooth, “mass storage” (half a mb!), and com-port features.

20160511_142608

Tinkering a bit with it proves that the soft keys are a bit of a burden, and proves that the older hard keys, even tho smaller back in the day are much more easy to use.
The display – well, it is tiny and the viewing angle is hilarious.

http://elari.net/wp-content/uploads/2015/11/Manual-CardPhone_English.pdf

The fun continues. There is firmware updates on their homepage – divided into two – one for the new display, and one for the old. I have NO idea what is what…

Elari-cardphone

But, besides that, it got bluetooth 3. That is a good thing!

Wack up your laptop or whatnot with bluetooth – and use it as a handheld… Tested with skype – and, guess what – it works ;).

Now, I have MicroSIP on the same machine against my asterisk server. Guess what, works great too.

Yes – I have to use the dial parts in the applications, but thats fine. It is the answering part that is my main concern, because that does not work with skype, nor does the hangup. I am currently unable to test how MicroSIP holds up the bargain chip when it comes to answering and hanging up…

Jumping straight into the communication part – the firmware parts contains serial drivers, the flash tool, and of course the firmware itself.

Charing is amuzing as well. The tiny device got no real communicationports, or ports what so ever. It do have a few connections on the back (you do get a gel like cover to use on a daily basis for protecting it).

One day I might find the time to dig deeper into this little fellow. But for now, I will use it as … a phone!