Smart Azan Clock and Prayer Times Display by AlAleem Systems

I’m glad to introduce our first Smart Consumer Product, the Smart Prayer Times Display & Azan Clock through our Startup AlAleem Systems. This is a first of it’s kind Smart WiFi Enabled IoT Prayer Times Display & Azan Clock for use in Masjids, Islamic Centers, Schools, Offices, Industries & Homes.
Key features include:

  • Smartphone/PC Controlled:
    • Use your Smartphone/PC to update Jamath Times & configure the Display directly from Browser without installing any Apps
  • WiFi Enabled
    • The display itself becomes a WiFi Router/Hotspot and doesn’t require any external WiFi Router or Internet to operate or update data
  • International Taqweem Support
    • This display works for most Taqweems (prayer calculation methods) and supports thousands of cities
  • Firmware Update Over the Air
    • The Smart Display supports upgrading of device firmware directly from Phone wirelessly as and when newer features are available, thereby making device in sync with newer developments and additional features as and when available
  • Jamath, Azan Times and other Info
    • The Smart Display Shows Start & End times of Prayer, Jamath Times, Ishraq Time, Saher/Iftar Times in Ramazan, Date, Masjid/Org Name, etc
  • Customizable Modules
    • [Coming Soon] Add on modules allow to extend the functionality of Display as required. Eg: Custom Languages (Urdu, Hindi, etc), Scrolling Text, etc


Please visit us at for more product details and to place an Order Online.

Your Feedback – Automated WiFi Enabled (IoT) Salaah/Namaz (Prayers) Timings Display


Thank you for taking the time and effort to review this Project and provide your feedback and insights. You can skip the Background section below and jump to the main content. JazakaAllahu Khairan for your efforts.



It was sometime in 2012 when I saw this lovely Salah Indicator in Jame Masjid, Mallepally, Hyderabad, India: Continue reading “Your Feedback – Automated WiFi Enabled (IoT) Salaah/Namaz (Prayers) Timings Display”

Migrating Website (& eCommerce/OpenCart) over to HTTPS – SyedTips – 9

Caution: This by no means is a step-by-step or exhaustive guide on installing SSL Certs on your website. This will simply share some notes I made yesterday while migrating my site over to HTTPS. Exercise extreme caution. I’m not responsible (in any way whatsover) for any loss or fall in rankings or loss of revenue or downtime due to application of notes. I caution because I’m not a Web expert and I don’t understand the ramifications of experimenting with this. Hence, this post is only for Educational purposes 🙂

I spent almost the whole of my new year 2017 Day 1 migrating over from to  and likewise moving our main eCommerce Store (running off OpenCart) over to


SSHing into C.H.I.P in Headless Mode – SyedTips – 8


This post will walk you through the 3 methods of SSHing into the C.H.I.P without using any external Display Screen. This is helpful if you don’t have the HDMI/VGA add on modules for the CHIP or don’t have an old TV that takes in those oldie RCA composite video signals.

After waiting for more than 6 months, the C.H.I.P finally found a place next to a Banana in my home:

If you don’t know the relation between a Banana and CHIP, don’t worry 😛

The first thing todo when you get something is to power it on and see the funky lights that come up to make sure it’s not DoA (Dead on Arrival). And then, take a pic and Tweet it out to show off to the world 😛

Once done, now figure out how to get started with it.

It’s easier if we have the HDMI/VGA add-on module for the CHIP that’ll allow us to simply hook up the CHIP to a display unit and get started with a K/B & Mouse. I didn’t buy one, so I’m now worrying how do I get started with. Turns out, the CHIP and the PC can be directly connected to each other through a simple Micro USB Cable and tinkered with.

An extract from that outlines these three methods:

Headless CHIP

One of the most amazing features of CHIP is that it’s insanely simple to use it as small, wireless computer. Low power requirements, battery-powered with charge management, and both WiFi and Bluetooth connectivity makes CHIP easy to run as a headless, autonomous machine. Of course, you’ll still want to access it and control it without a monitor or keyboard. You can control CHIP with another computer and a serial or network connection. Here’s how you do this.


If you want to use CHIP without a monitor or keyboard attached, there’s a few ways to do this:

  • Serial connection between a computer and CHIP with a micro-USB cable (USB OTG)
  • Serial connection between a computer and CHIP with USB to UART cable
  • Secure Shell (SSH) over wireless or wired ethernet

OK, all the info for getting started with any of the 3 methods is there in the link above. Why do we even need this post?

Except… Method 1 won’t work on my PC!

C.H.I.P doesn’t show up as a recognized COM Port on my Windows 10 PC 🙂

Unknown CDC Device. No COM Port assigned
Unknown CDC Device. No COM Port assigned

So Method 1 from the official docs won’t work for us (at least for now). Let’s move onto the 2nd Method

Method 2:

Use a USB-Serial Console/Debug cable, hook it up and SSH.



Now, we can simply open up Putty and enter our COM Port of the USB-Serial Cable to login into the C.H.I.Ps console:



Now, while you’re inside, you can go and setup the CHIP to connect to your WiFi network so that you can SSH into it.

Method 3:


Edit the interfaces file and add creds for the local WiFi:


You can now reboot, wait for a min and SSH into the CHIP directly through it’s IP or hostname:



All good! End of Story!

Nope, Method 1 (USB – PC) didn’t work, so let’s make it work!

I found an excellent tip by lordhex on the community forums here: and I did just that to get this method working.

I made the CHIP install itself against this driver, and boy, it finally showed up as a COM port!

chip_driver_installation   chip_driver_filechip_driver_win_10_installed




Make sure you have disabled the Driver Install from Unknown Sources restriction on Windows 10 (to do this, hit Shift and restart PC, and you’ll find that option there).

I’ve uploaded the Driver File that I used and you can simply download and use when the CHIP shows up as a Composite device instead of showing up as a COM port.

Download from here:


Teardown -1 – Casio Scientific Calci – FX991ES / FX570ES

The FX570ES is functionally identical to the FX991ES except that the 570ES has a AAA battery whereas the 991ES has button cells.



I owned both of these during my engineering days and is arguably now the only proof that I actually did my Engineering 😛

Here’s the teardown:

The missing controller blob!

img_20160918_003024 img_20160918_003037



^ Missing the controller blob!

img_20160918_003445 img_20160918_003451

I really can’t do a detailed tech analysis as the main controller blob is misssing. So apart from the obvious buttons and LCD and Battery, there ain’t anything to look into

I did this teardown on my broken Calci, notice the cracked screen 😛

More teardowns coming soon.


Recursive batch Script to get latest/static file name – SyedTips – 7

If you followed my earlier tip, notice how I always passed in Image.png as an image file into tesseract to get a text value? This is totally fine if you can source static Image files and make sure they are available at a particular location.

However, what if you’re using a live camera that saves a stream of Images? I used mjpg-streamer to live stream images on a web browser and also save them on a Raspberry Pi.

Following is the bash command that captures images from a USB WebCam and streams it over:

./mjpg_streamer -i "./ -r 640x480 -f 1" -o "./ -w /usr/local/www" -o "./ -f /home/pi/Camera_Output -c /usr/bin/"

The above command does the following 3 things:

  1. Stream Images over the Web/Browser
  2. Save Images to a local folder on the Raspberry Pi
  3. Invoke a custom Script

Here’s how the local folder containing the saved streamed image files looks like:


Now here’s the challenge: Firstly, tesseract can only take in a defined fileName as an argument and since we’re invoking tesseract from Python, we can’t simply use a script to get the latest file name and pass it as a parameter.

So here’s what I did to solve this: Get the latest file and rename it to Image.png in that same folder. So at any instance, the latest captured image file is always Image.png. Now, simply pass this as an argument into tesseract and all’s done 🙂

I used the following code snippet to get latest file pointed as Image.png:

# move the temporary file to a given filename
cd /home/pi/syed

cp -f -T `find -type f -name '2015*' -printf "%C@\t%P\n" |sort -r -k1,1 |head -1 |cut -f 2-` /home/pi/syed/Image.png

I saved this snippet into which is being invoked on every Image capture as shown earlier.

P.S: A more detailed script that shows debug messages:


# comment out the following line to disable messages

if [ $VERBOSE ]; then
  echo -e "Rename script started at:\t$(date)";
  echo -e "Parameter \$1 is:\t\t$1"
  echo -e "current directory is:\t\t$(pwd)"
  echo -e "move command is:\t\tmv -T -f \"$1\" 'Image.jpg'"

# move the temporary file to a given filename
cd /home/pi/syed
cp -f -T `find -type f -name '2015*' -printf "%C@\t%P\n" |sort -r -k1,1 |head -1 |cut -f 2-` /home/pi/syed/Image.png

if [ $VERBOSE ]; then
  echo -e "move command returned:\t\t$RES"

Thanks 🙂

Invoking Shell commands from Python – SyedTips – 6

While building an ALPR (Automatic License Plate Recognition) System on a Raspberry Pi in 2013, I came across tesseract  which is a very powerful OCR (Optical Character Recognition) tool.

Tesseract is a command line tool which means it has to be invoked as a command from the shell/terminal (and it works on both Windows and *nix):

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfiles...]

Since my main image capture and trim script was based on Python (triggered from a WebPage), I had to find a way to invoke tesseract from within Python. At first, I looked out for python libraries and wrappers of tesseract and had a hard time getting them to run on the Raspberry Pi.

Eventually, I wondered if there was a way to invoke shell commands from Python; and yeah!

Using subprocess, you can do just that:

import subprocess["tesseract", "/home/pi/syed/Image.png", "/home/pi/OpenCV/OCR_Data"])

Pass each argument to the invoked command separated with , in “”


IoT project ideas and use cases – SyedTips – 5

One of my acquaintances pinged me today asking for suggestions/ideas for his Engineering project themed around IoT. At first, I gave my standard reply:


And at that instance, it hit me to get ideas from use-cases provided by leading IoT Companies such as the Kaa Project ( and many others.

I’ve compiled below a list of IoT Project Ideas for your Engineering Projects or IoT use-case demos and have listed them below with links back to the source. You can use these as a starting point and generate your own use cases or directly implement one of these. I’ll try adding in more use cases from other vendors. Happy Making (instead of ready-made buying :P). Ohh, it’s Engineer’s Day today. Happy that.

IoT Use Cases – Kaa Internet of Things platform


The following use-case examples were taken from:


Continue reading “IoT project ideas and use cases – SyedTips – 5”

Getting two extra pairs of VCC/GND on Arduino Uno (and others) – SyedTips – 4

We often come across projects where we’d like to quickly hook up a sensor or an actuator that works on 5V to an Arduino (Uno and others) without using a breadboard. Since the Uno has only one 5V Pin, an easy way to get additional pairs of VCC+GND is to use the ICSP headers available for the Atmega328 and Atmega16U2.


Orange jumper connected to VCC (5V) and Yellow to GND


Adding a (extra) Hardware Serial Port using I2C on Arduino or other MCU – SyedTips – 3

One cool thing/feature I learned from the Arduino Uno WiFi board was how to implement/add an extra hardware Serial Port to the existing MCU using a I2C to Serial Bridge.

The Atmega328P MCU on the Arduino Uno has only one Hardware Serial port. If we’re interfacing a Serial Device to this MCU and would also like to use Serial debugging, an option is to use SoftwareSerial (which comes with it’s own set of issues and limitations). A better option is to have an I2C – Serial Bridge that’d allow the host MCU to interface with another Serial Device.

The team did this splendidly and used this SC16IS750IBS to have the MCU talk with the on-board ESP8266 through this I2C to Serial Bridge.



You can read more about the implementation and details on the product page: