[RaspiPi] RF24 Radio Link between 2 Raspberry Pis

Hi there,

awesome coder TMRh20 did write some cool librarys for the widely used RF24 radio modules.
These tiny things work with SPI and thanks to TMRh20s work, you can use them quite easily to connect two RPis.
You can find his/her Github on https://github.com/TMRh20, as well as a lot of good documentation on his/her blog http://tmrh20.blogspot.de/ and github.io http://tmrh20.github.io/

To make it short and connect to RPis, this is my reciepe, worked out with TMRh20 - Thanks a lot!

1.) You should connect the RF24 modules to your two RPis like shown here:
https://github.com/TMRh20/RF24Network/tree/Development#connection-info
I did not change anything in the config but did just connect the modules like mentioned in the table:

Pins:

PIN -- NRF24L01 -RPI --------- RPi -P1 Connector
1 ---- GND ----- rpi-gnd ----- (25)
2 ---- VCC ----- rpi-3v3 ----- (17)
3 ---- CE ------ rpi-gpio22 -- (15)
4 ---- CSN ----- rpi-gpio8 --- (24)
5 ---- SCK ----- rpi-sckl ---- (23)
6 ---- MOSI ---- rpi-mosi ---- (19)
7 ---- MISO ---- rpi-miso ---- (21)
8 ---- IRQ ---- - ------------- -

2.) Install dependencies:
sudo apt-get install libboost1.50-all

3.) Install RF24toTUN on all RPis
mkdir rf24
cd rf24
wget http://tmrh20.github.io/RF24Installer/RPi/install.sh
chmod +x install.sh
sudo ./install.sh

Do you want to install the RF24 core library, Y/N?Y
Do you want to install the RF24Network library?Y
Do you want to install the RF24Mesh library?Y
Do you want to install the RF24toTUN library?Y
Do you want to compile RF24toTUN with RF24Mesh support?N

cd rf24libs/RF24Network/

vi RF24Network_config.h
change #define MAX_PAYLOAD_SIZE
to #define MAX_PAYLOAD_SIZE 1514

sudo make install -B

cd ..
cd RF24toTUN/

vi rf24totun.cpp
goto line 209: while(!radioTxQueue.empty() ) { // && !radio.available() ) {
and change it to: while(!radioTxQueue.empty() && !radio.available() ) {

sudo make install -B

4.) Use the Tunnel on both RPis (you're in the RF24toTUN folder :)!):
Node 1, Master:
sudo rf24totun_configAndPing.sh 1 2
answer 0 for Master
got now IP: 192.168.1.1

Node 2, Client:
rf24totun_configAndPing.sh 2 1
answer 1 for Client
got now IP: 192.168.1.2

After that you can ping each other, even with -s100 for 108 bytes payload, or use ssh and such.

Addition:
If you want to use the LAN/WAN Connection of the Master RPi from your Client, you need to do following:
a) Master Site:
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
# To forward and allow traffic, as mentioned here: http://tmrh20.github.io/RF24Ethernet/

b) Client Site:
sudo route add default gw 192.168.1.1 tun_nrf24
# Configure default gateway to the IP of your Master RPi and use the RF24 device to connect to it

[Win7+] Software Accesspoint

Sometimes you just need to give wireless access to one of your little toys (i.e. Tablets, Smartphones, Raspberry Pis with Wifi - you name it) - but you got no wifi accesspoint with you. Starting with Windows 7, this ain't a problem anymore. You can setup an software ap in just a minute:

Enter following code into your command line interface to start an software accesspoint with the SSID WiBridge and the password mh28-dyi9-txwt:


netsh wlan set hostednetwork mode=allow ssid="WiBridge" key="mh28-dyi9-txwt" keyUsage=persistent
netsh wlan start hostednetwork

You can check upon your ap via:


netsh wlan show hostednetwork

And you can stop it with:


netsh wlan stop hostednetwork

Update HP Procurve via XModem

I got an old HP Procurve Switch and wanted to upgrade the firmware.
After booting the switch, we configure the serial link to an Baudrate of 115200, so we won't have to wait all-night for the update to finish.


config
console baud-rate 115200
exit
write memory
reload

After reloading the switch and configuring our terminal software to 115200 baud, we can start the XModem Upload via:


copy xmodem flash primary

After that command, the switch waits for an XModem datatransfer to beginn. So, just upload your new firmware image via your terminal software, using XModem.

Another reload after copying the image will complete the setup.

[RaspPi] Raspberry Pi and the ili9341 Display

https://www.youtube.com/watch?v=cEcIem6R4aQ

1.) Enable SPI
# remove or comment out the spi blacklist line
sudo nano /etc/modprobe.d/raspi-blacklist.conf

2.) Install
a) FBTFT drivers as loadable modules
sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update
sudo shutdown -r now

OR

b) FBTFT drivers built into the kernel proper
sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=builtin rpi-update
sudo shutdown -r now

3.) Install the frame buffer driver (as root):
apt-get install xserver-xorg-video-fbdev

4.) Configure frame buffer driver:
sudo vi /usr/share/X11/xorg.conf.d/99-fbdev.conf
Section "Device"
Identifier "myfb"
Driver "fbdev"
Option "fbdev" "/dev/fb1"
EndSection

5.) add Autostart:
( the gpios= Pins need to be changed to YOUR specification and connection! )
sudo vi /etc/modules
fbtft_device custom name=tm022hdh26 gpios=reset:25,led:23,dc:24 rotate=90 bgr=1
#on my selfbuild shield
#from usb -> sd card laengs
#fbtft_device custom name=tm022hdh26 gpios=reset:25,led:23,dc:24 rotate=180 bgr=1
#from cinch -> hdmi quer
#fbtft_device custom name=tm022hdh26 gpios=reset:25,led:23,dc:24 rotate=270 bgr=1

6.) add Auto login:
sudo vi /etc/inittab
#1:2345:respawn:/sbin/getty --noclear 38400 tty1
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1

7.) add Autostart X:
sudo vi /etc/rc.local
su -l pi -c "env FRAMEBUFFER=/dev/fb1 startx &"

8.) Console at boot
Add kernel argument to file /boot/cmdline.txt
fbcon=map:10

Infos taken from:
https://github.com/notro/fbtft/wiki#install
http://marcosgildavid.blogspot.de/2014/02/getting-ili9341-spi-screen-working-on.html

Video was played with this worm-of-a-command-string:
sudo mplayer -nolirc -vo fbdev2:/dev/fb1 -fs -x 320 -y 240 -zoom -framedrop -lavdopts lowres=1:fast:skiploopfilter=all ~/BadApple.avi

[Security Spotlight] Upgrade OpenSSL to 1.0.1g - Heartbleed Bug - Urgent!

So, thats no joke: OpenSSL broke badly!
Here is the background: http://heartbleed.com/

And as there is no zero-hour-fix for Ubuntu (including 12.04 LTS...), I decided to take chances and overwrite my existing OpenSSL 1.0.1 with the new code. It worked out flawlessly - but your system could *REALLY* break. Thats as dirty as it possibly could get!


wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -xvzf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g/
./config --prefix=/usr
sudo make
sudo make test
sudo make install