Voice activated Google Assistant on Raspberry Pi with visual feedback

How to enable Ok google in Google Home running on raspberry pi.

Run as a Service


File Path :

hotword.py :

Enable GPIO in env
pip3 install RPi.GPIO

USB Sound Card Adapter


IoT Project “Smart Home” : Part 1

“Smart Home” my final year MCA project based on Internet of things . The project came from some project seen on Raspberry Pi Website .

The Project is divided into 3 parts

  1. Nodes communicate with Server
  2. Server Mosquitto which uses MQTT Protocol
  3. Android App , which  communicates with server

Each node can have the following functionalities.

  • Turn ON /OFF the multiple devices.
  • Report the current status of the device.
  • Measure the climatic conditions.
  • Detect and report user presence.

All  the above can be obtained using arduino and needed sensors but communicating with server can be very difficult so better is go with a microcontroller with supports both processor and wifi , i chose esp8266  read more about esp8266 here .

MQTT Protocol is used to communicate between nodes , server , android app

Next Part : The Node

#Esp8266 #smarthouse #iot

A post shared by Siddhu Arevindh (@_itsmesid_) on


Pcb for #smarthome using #esp8266 an #iot based project

A post shared by Siddhu Arevindh (@_itsmesid_) on

Load balancing home router with Raspberry Pi

openAfter the fix for Realtek usb ethernet card for openwrt to run on raspberry pi 2,  I started my new project,  Load balancing router.

The working is quite simple, install and configure MWAN3 but I can’t install from repo since I got the source and compiled it with the patch for my usb ethernet card,  purchased a few more of those from eBay and combined to form 2 WANs and  2 LANs.


WAN uses 2 usb ethernet adapters and one configured to dial my PPPoE fiber connection  and another to cable modem, so that I could combine both to  get load balancing.

Then LAN

One lan port is same as the built in of Raspberry pi and another usb adapter.
One lan port is configured to use for my private network which contains few laptops,  a NAS and few cell phones via Dlink DIR850L 1200 dual band AC router .
Another one is to a wireless AP dedicated to guest,  which I keep isolated from my private network.

Since you are much experienced i am not mentioning how to install OS to a memory card for Raspberry pi . I have already compiled a version of OpenWrt for raspberry pi with MWAN3 , Firmware for USB adapter QHM8106 USB 2.0 Lan Adapter , drivers .

It works on Ethernet adapters with following firmware

  • AX88772B ASIX Elec. Corp
  •  RTL8152 Realtek Semiconductor Corp

Few other things like Freifunk [for splash screens on wifi connect ] , VnStat , QoS etc are also included in this build.

Download SD card image from  Google Drive 

Just after you finished your memory card and connected the USB ethernet card , insert it to your Pi 2 and boot  connect a rj45 lan cable from Pi to your PC / Mac .

Point your browser to 

Set the basics such as password  and enable SSH ,

Set up the interfaces 

Here we are configuring eth0 as main LAN ,  eth1 , eth2 as WAN , WAN2 and eth3 as GUEST

To set up the interface to go Network -> Interfaces

Adding new interface

Click on Add new Interface

Enter “Name of the new interface” as  WAN for  interface eth1 , WAN2 for eth2 and Guest for eth3 . [ WAN , WAN2 , GUEST are to entered separately corresponding to interface selection  ]

“Protocol of the new interface” should be static for GUEST  . For WAN , WAN2 it should correspond to connections you have, in my case it was PPPoE for WAN and DHCP for WAN2 since i have a Fiber GPON device and an ordinary cable modem with WiFi .

Adding WAN / WAN2


Step 1 : Adding WAN / WAN2

After clicking submit button on the next window enter the details of the connection such as username and password if required , if the connection type is dhcp there is nothing to do here , go to next step.

Step 2 : Adding WAN with PPPoE connection

Next step is to assign “Use gateway metric” 10 for WAN and 20 for WAN2 . Go to Advanced settings and add gateway matric

Step 3 : Use gateway matric

Now we have to go to the firewall settings tab and and it to WAN zone

Step 4 : Assign to wan Zone

Save and Apply

Repeat the above steps for the WAN2 also.


Adding GUEST interface 

The same way add an interface , name it as guest and set the protocol as static , submit

Step 1 : Adding Guest

On the Next window  Set IP address [ not the same as LAN uses ]  I selected  and the select subnet mask as .

Scroll bottom to DHCP server section , got Advanced and tick “Dynamic DHCP”

Step 2 : Setting IP address and Enable DHCP Server

Next is to assign it to a new Firewall zone called Guest . Go to Firewall setting on the top .

Step 3 : Assign Firewall Zone

Save and Apply


Configuring Interfaces is now complete .

Setting up firewall

In order to allow guest to internet we need to add one rule go to Network – > Firewall scroll down to Zones and Click Add  , use the settings from below image.

Save and Apply

Now connect all cables and check internet connectivity through LAN and GUEST ports . If all working move to next step .

Load balancing

We are using MWAN3 which is pre installed to the image file given above .

Configure MWAN3 

Go to Network -> Load Balancing  

You can see Live status as of interfaces .

Go to Configuration and  click on edit against WAN2

Edit WAN2


Select Enabled to Yes


Save and Apply

Now you will be able to use both connections  . Wiki Article on Load Balancing 

Use MWAN Member Configuration to fine tune settings .

To test it download a torrent since normal web connection’s speed can’t be increased since it should be done using same IP .  Please read below reference material to know how to configure MWAN3 for your best performance .

Reference : MWAN3 ,OpenWrt , OpenWrt Ethernet USB Dongle Compatibility  , Another post on MWAN3

Notes :

In order to install packages from OpenWrt Repo

Go to System – > Software – > Configuration 

Replace the distribution feeds with

src/gz chaos_calmer_base http://downloads.openwrt.org/chaos_calmer/15.05/brcm2708/bcm2709/packages/base
src/gz chaos_calmer_luci http://downloads.openwrt.org/chaos_calmer/15.05/brcm2708/bcm2709/packages/luci
src/gz chaos_calmer_packages http://downloads.openwrt.org/chaos_calmer/15.05/brcm2708/bcm2709/packages/packages
src/gz chaos_calmer_routing http://downloads.openwrt.org/chaos_calmer/15.05/brcm2708/bcm2709/packages/routing
src/gz chaos_calmer_telephony http://downloads.openwrt.org/chaos_calmer/15.05/brcm2708/bcm2709/packages/telephony
src/gz chaos_calmer_management http://downloads.openwrt.org/chaos_calmer/15.05/brcm2708/bcm2709/packages/management

Then Save and Apply 

If there is any mistakes or corrections , please comment below .

Seminar on Internet of things ( IoT )

The Internet of Things (IoT) is defined in many different ways, and it encompasses many aspects of life from connected homes and cities to connected cars and roads, roads to devices that track an individual’s behavior and use the data collected for push services. Some mention one trillion Internet connected devices by 2025 and define mobile phones as the eyes and ears of the applications connecting all of those connected things. By these internet of things billions objects can communicate over worldwide over a public, private internet protocol network in 2010, the number of everyday physical objects and devices connected to the Internet was around 12.5 billion. Smart cities, Smart cars, Public safety, Smart Industries and Environmental Protection has been given the high intention for future protection by IoT Ecosystem. For the development the government of Europe, Asia and America has considered the Internet of Things has area innovation and growth. Many visionaries have seized on the phrase Internet of Things to refer to the general idea of things, especially everyday objects, that are readable, recognizable, locatable, addressable, and/or controllable via the Internet, irrespective of the communication means (whether via RFID, wireless LAN, wide- area networks, or other means).Radio Frequency Identification (RFID) and sensor network technologies will rise to meet this new challenge, in which information and communication systems are invisibly embedded in the environment around us.

This results in the generation of enormous amounts of data which have to be stored, processed and presented in a seamless, efficient, and easily interpretable form. This model will consist of services that are commodities and delivered in a manner similar to traditional commodities. Due to internet of things hospitals are shifting to remote self-monitoring for patients. Due self-monitoring it gives the patient greater freedom and independence for their health and free the equipment for emergency propose for patients.

Download Seminar Report : Report.PDF


OpenWRT with rtl8152 for Raspberry Pi 2

Raspberry pi OpenWrt with rtl8152 USB Ethernet dongle support . By default it is disabled in kernel we can enable it and compile [ Refer : https://forum.openwrt.org/viewtopic.php?pid=279394 ] here the one i have compiled for my Raspberry Pi 2.

Working Flashable image with rtl8152 support


How to manually do it 

Refer : How to build OpenWrt

Refer : https://forum.openwrt.org/viewtopic.php?pid=279394

The following lines should add the 2 realtek USB-Ethernet modules to OpenWrt:
(in packages/linux/modules/usb.mk)


define KernelPackage/usb-net-rtl8150
  TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
  AUTOLOAD:=$(call AutoProbe,rtl8150)
  $(call AddDepends/usb-net)
define KernelPackage/usb-net-rtl8150/description
Kernel module for USB-to-Ethernet Realtek 8150 convertors

$(eval $(call KernelPackage,usb-net-rtl8150))

define KernelPackage/usb-net-rtl8152
TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
AUTOLOAD:=$(call AutoProbe,r8152)
$(call AddDepends/usb-net)

define KernelPackage/usb-net-rtl8152/description
Kernel module for USB-to-Ethernet Realtek 8152 USB2.0/3.0 convertors

$(eval $(call KernelPackage,usb-net-rtl8152))

Add those two modules in Kernel -> Modules – > Usb support 

Then compile the whole code

Raspberry Pi 2 Hands on Review

Raspberry Pi 2 is the Latest Version of the Raspberry pi family.

Got it Delivered from Crazy Pi On 10th Feb 2014, shipping was done very fast by them.  Buy From Here : Link

First Review 

The boot time was pretty fast , almost 7 seconds . It is equipped with a 900MHz quad-core Broadcom BCM2836 CPU with 1GB DDR2 RAM with makes the whole thing run Fast . Its claimed that its 6 time faster than the previous one. It have 4 USB ports as the Previous version (B+) have  and 10/100T Base Ethernet.  Another happy news is Windows recently told that the are gonna provide Windows 10 for Raspberry pi for FREE .

For Wifi connection the same settings as previous versions of the pi can be used, Ubuntu version for Raspberry Pi is also released and can be downloaded form Raspberry Pi website .


First Test 

Inserted OLD SD card (used on Raspberry pi Mode B )   -> Not Working

Downloaded the image from raspberry Pi website -> It worked

Raspberry Pi restarts when exposed to Xenon Flash Link

WIll Post the results about tests conducted on it soon.


  • 900MHz quad-core Broadcom BCM2836 CPU with 1GB DDR2 RAM
  • VideoCore IV 3D graphics core
  • 40 pin extended pins – with 27 GPIO pins
  • Micro SD slot
  • Multiple ports: Four USB ports, full sized HDMI, four pole stereo output and composite video port. CSI camera port and DSI display port
  • 10/100 BaseT Ethernet
  • Micro-USB power source 5V, 2A
  • Dimensions: 85 x 56 x 17mm

WiFi to Ethernet using Raspberry Pi

You can use your PI as a router to share the ethernet connection to  WiFi Devices , What about the other way ?

Here is tut for Ethernet to WiFihttp://elinux.org/RPI-Wireless-Hotspot ( This tut helped me to get idea )


  • A Raspberry Pi, model B.
  • A boot SD card for the Raspberry Pi.
  • Connected to Networking Via WiFi
  • An Ethernet cable to connect PC

Assumes that you have connected your device via WiFi and ssh logged in using WiFi .

If wifi is not setup perfectly please see this one :

Wifi auto connect : http://blog.arevindh.com/solved-raspberry-pi-wifi-disconnect-problems.html


1. Install the necessary software.

sudo apt-get install udhcpd

2. Configure DHCP. Edit the file /etc/udhcpd.conf and configure it like this:

start # This is the range of IPs that the hostspot will give to client devices.
interface eth0 # The device uDHCP listens on.
remaining yes
opt dns # The DNS servers client devices will use.
opt subnet
opt router # The Pi's IP address on wlan0 which we will set up shortly.
opt lease 864000 # 10 day DHCP lease time in seconds

Edit the file /etc/default/udhcpd and change the line:




You will need to give the Pi a static IP address with the following command:

sudo ifconfig eth0

To set this up automatically on boot, edit the file /etc/network/interfaces and replace the line “iface eth0 inet dhcp” to:

iface eth0 inet static

If the line “iface eth0 inet dhcp” is not present, add the above lines to the bottom of the file.

Configure Your WiFi

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
 wpa-ssid "HOME"  // your wifi ssid
 wpa-psk "xxxxxxxx" // your wifi pass


3. Configure NAT (Network Address Translation). First, enable IP forwarding in the kernel:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

To set this up automatically on boot, edit the file /etc/sysctl.conf and add the following line to the bottom of the file:


Second, to enable NAT in the kernel, run the following commands:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT

Your Pi is now NAT-ing. To make this permanent so you don’t have to run the commands after each reboot, run the following command:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Now edit the file /etc/network/interfaces and add the following line to the bottom of the file:

up iptables-restore < /etc/iptables.ipv4.nat

4. Issue commands to start the dhcp server:

sudo service udhcpd start

Your Pi should now be hosting a ethernet hotspot. To get the hotspot to start on boot, run these additional commands:

sudo update-rc.d udhcpd enable

Reboot  Pi and plugin the LAN cable and you can see the auto allocated ip on command ipconfig (on windows) / ifconfig (on linux).

If you have any problems please comment Below .

Buy Raspberry Pi Model A Plus India

The Raspberry Pi Model A+ is the perfect board for the minimalist Pi fan. This low-cost Pi uses the same processor as the model B+, but does away with the Ethernet jack and three of the USB Ports. This makes it lower power, less expensive and much lighter & smaller! It’s still compatible with all Pi operating systems and software, and has the exact same 40 pin GPIO connector and camera/display sockets, so any HATs or Pi Plates or other things that plug into the model B+ will work just the same.

It also has the same HDMI, sound/composite connector and micro USB connector for power.

Unlike the Raspberry Model B+, there’s only one USB port and no ethernet jack but it’s also significantly smaller at 65mm x 56mm if you don’t include overhang from the connectors. Also, there is only 256 MB of RAM onboard instead of 512, so if you have a RAM-intensive application you may need to stick with the B+


Technical Specs :

  • Dimensions: 65mm x 56mm / 2.5″ x 2.25″
  • Processor: ARM 700Mhz CPU
  • USB: One USB 2.0 Port – Keeping it compact means minifying the footprint as much as possible
  • Video Output: HDMI and Composite
  • Sound: L/R Stereo (via 3.5mm 4 Pole Cable)
  • Memory: 256MB Ram
  • Operating System: Uses microSD card slot to load O/S
  • Digital interfaces: 2 onboard ribbon slots for Camera and Display
  • GPIO: 40 GPIO pins, backwards compatible to B board
  • No Ethernet jack