Automatic Number Plate Recognition (Python)


It’s been a while since I last coded in Python. Gotta give Python the love it deserves!

Here’sĀ a quick demo of automatic number plate recognition of vehicle plates from a video stream using OpenALPR in Python

Source Code

I’m surprised at the speed difference I obtained using OpenALPR in Python vs VB.NET, maybe I need to review my VB.NET code šŸ˜Ā  Silly me! I forgot that I had intentionally used timers to slow down the results in VB.NET

Also I feel adding motion detection might be a nice feature and would prevent the results from flooding at the output.


Automatic Number Plate Recognition (VB.NET)


I wanted to design something capable of Automatic Number Plate Recognition, but soon realised it’s quite a tedious task, so began searching for an SDK or API. I found a bunch of commercial ones, but all I wanted was something to play with.Ā Thank goodness for open source software, IĀ found a neat library called OpenALPR. So, decided to give it a shot.

OpenALPR provides bindings in C#, Python, Node.js, Go, and Java. I’m mostly familiar with VB.NET, so I sat down to convert their C# example and designed something simple as aĀ test. In the initial version, I allowed the user to browse for an image file which isĀ fed to OpenALPR. If OpenALPR successfully findsĀ a plate, the results are then displayed in a listbox. It also gives the regions in the image where the plate is detected. What’s cool is, it could even detect multiple plates in an image, even in dark images. Continue reading





This time I went about building my own low costĀ Arduino clone. To make sure that my design was consistent with arduino boards, I used Sparkfuns RedBoard design as a reference.

At first I wanted to attemptĀ a single layer layout. As you can see, I ended up using lots of jumpers šŸ˜¦ Also,Ā  I customized the board to use SOT223 packages for theĀ voltage regulators (bottom layer). I had to use male header pins for the IO’s as my component stash was void of female headers.

Downloads: Eagle Schematic and Layout


The boardĀ makes use of an atmega328 with an UNO bootloader. You can either purchase a bootloaded chip orĀ load the bootloader using a programmer. Here’s a list of sites that sell a pre-bootloaded Atmega328: Continue reading

Chatting with a BC04 Bluetooth module using Android


I wanted to control an Arduino UNO board using my android phones Bluetooth. The UNO board doesnā€™t have Bluetooth and so requires an external Bluetooth module. I found a small Bluetooth module (BOLUTEK BLK-MD-BC04-B) at and purchased it for experimenting.


The BC04 module can be interfaced to your designs using UART. Before pairing with a device, the module enters into a command mode and can be configured using AT commands. Upon pairing with a device the module enters into a communication mode.

Documentation of the module:
BLK-MD-BC04-B Bluetooth Module Specification
BOLUTEK BLK-MD-BC04-B Bluetooth Module AT Commands

Testing the BC04 Bluetooth module:

Since I bought only one module I wanted to be extra careful, and so built a PCB for the module. The design is just an extension of the Application Circuit Diagram from the module specification file.



Eagle Schematic and Layout
BC04 Eagle Library
Schematic and Layouts as PDF

Continue reading

Simple Line Following robot using an Arduino


A long time back, during my college days, I had built a line following robotĀ using an 8051 microcontroller. After college that robot aged and died in my backyard shed. Ever since I’ve been planning on resurrecting her,Ā and finally did, using an Arduino Uno.

To make the robot platform I used twoĀ geared motors from an old toy crane, and a cheese tub.

Newborn Robot

Line follower robot platform

Here’s a view after attaching a front wheel and IR sensors.

Bottom view

Bottom view

Continue reading