Sunday, January 31, 2016

Raspberry Pi vs. Next-Big-Thing's CHIP SoC Computer


Feature
RPI 1 Model A
RPI 1 Model B
RPI 1 Model A+
RPI 1 Model B+
RPI 2ModelB
NBT CHIP

SoC
BRCM 2835
BRCM 2835
BRCM 2835
BRCM 2835

AllWinner's R8
Standard SoC Speed (MHz)
700
700
700
700
900
1000

RAM (MB)
256
512
256
512

512
Ethernet (Mbps)
N/A
100
100
100
1000
N/A

HDMI output
N/A
Yes
Yes
Yes
Yes
With extra module

Composite Video out
Yes
Yes
via 3.5 mm jack
via 3.5 mm jack
via 3.5 mm jackYes

Number of USB2.0
2
2
1
4
4
1

CPU Cores111141
StorageSD CardSD Cardmicro SDmicro SDMicroSDBuilt-in Flash
Internal Storage CapacityN/AN/AN/AN/AN/A4 MB
Camera Interface (CSI)
yesyesyesyesyes
Display Interface (DSI)
yesyesyesyesyes
Video/Graphic CoprocessorVideoCore IVVideoCore IVVideoCore IVVideoCore IVVideoCore IVPowerVR SGX544
ArchitectureARM11v6ARM11v6ARM11v6ARM11v6ARMv7ARMv7
GPIO Pins2640404040

Thursday, September 10, 2015

OpenFrameworks: Another cool Multi-platform Framework for Graphics

Steps to download and build OpenFrameWorks:
  • git clone https://github.com/openframeworks/openFrameworks.git
  • goto the OF root.  This is usually the folder openFrameworks.  Change directory to ./scripts/linux/ubuntu (e.g: cd openFrameworks/scripts/linux/ubuntu)
  • Execute the scripts in the folder as root:
sudo ./install_dependencies.sh
sudo ./install_codecs.sh

Go to ./scripts/linux and execute:

./compileOF.sh
./compilePG.sh

To generate projects (Makefile etc.)  for all the examples, goto OF root, then type:

projectGenerator -v -r examples/

wxWidgets 3.0

To add the repository, first import the key:
sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc
 
Then add the source:


sudo tee /etc/apt/sources.list.d/wxwidgets.list
deb http://repos.codelite.org/wx3.0.2/ubuntu/  $(lsb_release -sc) universe
sudo apt-get update

Install wxWidgets modules:

sudo apt-get install libwxbase3.0-0-unofficial libwxbase3.0-dbg libwxbase3.0-dev libwxgtk3.0-0-unofficial libwxgtk3.0-dbg wx3.0-doc wx3.0-examples 

Create soft-link:
sudo ln -s /usr/include/wx-3.0-unofficial/wx /usr/include/wx 
To compile a single file, create a script named wxcompile and edit it with the content as below (assume with have subdirectory obj/Debug and bin/Debug:

#!/bin/bash

if [ -z "${1}" ]
then
    echo "$0 "
    exit 1
fi

FILE=`basename $1`
CPPF=$FILE
OBJF=`basename -s .cpp $CPPF`
OBJF=${OBJF}.o
g++ -g -c -Wall -DWX_PRECOMP -Winvalid-pch `wx-config --cppflags` -o obj/Debug/${OBJF} ${CPPF}


To link, create a script file name 'wxlink' and its content as below:



#!/bin/bash

if [ -z "${1}" ]
then
    echo "$0 "
    exit 1
fi

FOUT=$1
OBJF=obj/Debug/*.o

g++ -v obj/Debug/*.o `wx-config --libs` -o obj/Debug/$FOUT

For a bigger project which requires more complicated and conditional compilation, use Makefile.

Friday, July 3, 2015

Watching Nabawi-TV via VLC on Raspberry Pi

A new Indonesian da'wah TV has provided a streaming.

To watch, install vlc.  Once installed, open the VLC, click "Media", and then "Open Network Stream".  Enter:

rtsp://wowza60.indostreamserver.com:1935/nabawitv/live

Friday, April 3, 2015

Script to simulate multiple DHCP clients

#!/bin/sh
#simulate 255 IPhones requesting DHCP
 
 
# Apple OUI = D8:96:95
BASE="d8:96:95:08:96"
FROM=$1
shift
TO=$2
 
if [ -e $FROM ]; then FROM=1; fi
if [ -e $TO ]; then TO=1; fi
 
for i in `seq $FROM $TO`
do
    LSB=`echo "obase=16; $i" | bc`
    MAC="$BASE:$LSB"
    HNAME="`uname -n`-fakehost-$i"
    #CMD="$HOME/bin/dhtest -m $MAC -V -i eth1 -h '$HNAME'"
    CMD="$HOME/bin/dhtest -m $MAC -i eth1 -h '$HNAME'"
    echo $CMD
    $CMD
    sleep 1
done

Another way, the program dhtest (source code) can be download from  https://github.com/saravana815/dhtest.  

For example:
 
git clone https://github.com/saravana815/dhtest
cd dhtest
make

Daily backup of local git changes

While working on a ticket and not ready to commit, it's a good idea to backup all of our changes to an archive file.

The following script does all that and executed daily by cronjob automatically.
  1. create a file, say "backup" in /etc/cron.daily
  2. Type the following (change '<yourhome directory>' to your own login name and <git location> to the git directory where source codes are located):
backing up changed files to tarball
#!/bin/sh
pushd <your source-code location>
LIST=`git status --porcelain | sed -n -e '/^ [D|M]/p' | sed -e 's/^ [D|M] //'`
backupname=`git branch | sed -n -e "/^* /p" | sed  -e 's/** //'`
backupname=$backupname-`date "+%s"`.backup.tar.bz2
dest='<your home directory>'
if [ ! -d "$dest" ]
then
    mkdir -p $dest
fi
tar jcvf $dest/$backupname $LIST > /dev/null

Make the file executable:
chmod +x /etc/cron.daily/backup