PIC Pin Diagram, A printable copy for quick reference

Today when I was hooking up my PIC micro on to a breadboard for a quick demonstration to a friend of mine, I realized how often I needed the Pin Diagram from the datasheet. All this while I have been opening the datasheet and scrolling through to page 4. I...

Reading datasheet, what to look for and how to find them

Did you know that experienced engineers spend up to an hour on every major component that they are going to be using for upcoming projects? Project as in, real commercial work involving a lot of money and man hour.. not just some hobby project. When a component is being purchased...

Graphic LCD Command Sheet HTML Version

Yet again I was looking for the GLCD command sheet in the internet and failed to find any good resolution images that I can use for post references. Even the data sheet looks really bad. So here I am with a HTML Version of the GLCD command sheet just like...

How To Breadboard Power Supply

Most of the time your breadboard will just need a 5 volt supply to power all the components. Very rarely you might need a 12 volt (if you are driving loads like motors) or 3.3 volt (devices rated at 3v3). In this post we will see the making of a...

Getting Started with PIC Microcontrollers

Having worked with any one Microcontroller, moving from one of its family to another is just a matter of knowing the right tools and understanding how things have to be done in terms of software (compiler specific addressing like that of the SRFs) and hardware (circuitry, design practices, etc., )...

PIC Timer Calculator

Timers are one of the mostly used modules in microcontroller. Almost every system that has to reliably produce time interval or delays will have to use timers modules. The PIC timer calculator is a cool tool that will make life much simpler. If you haven’t worked with timers, I suggest...

Cool C Programming Tricks For Embedded Software Developers

Proficiency in C is an essential skill set for embedded software developers. In this post we will see some really cool C programming tricks that you should have already known. If you didn’t, it’s time to take a pen and paper. Be warned this is just a small collection of...

Interrupt On Change (IOC) in PIC Microcontrollers

The interrupt on change is a cool feature on microcontrollers. Like you guessed, the interrupt occurs when there is a state change in any of the port pin associated with this feature. In PIC microcontrollers, PORT B has the Interrupt on Change feature. The controller jumps into the interrupt vector...

Migrating to HI-TECH C Compiler from the Microchip C18 Compiler

Migrating to HI-TECH C compiler for PIC MCU is not really a hard task. The developers have taken much care in keeping it that way. In addition to the existing features of the C18 compiler, there are a lot of other added features in the HI-TECH C compiler. This post...

Interface 4x4 Matrix Keypad With Microcontroller

In this post we will discuss logic and interface of a matrix keypad (4x4 for this post) with microcontroller to reduce the number of port pins required to read a certain number of inputs (digital). The same logic applies to any matrix keypad of order NxN. Where, N is the...

Interface 7 Segment Display with Microcontroller

The 7 segment display is widely used to display numeric data. They are limited by the number of segments (LEDs) they have and hence are not suitable for displaying text. There are some variants of this kind of displays that have 11 segments which enables them to display text also....

Standalone BreadBoard Breakout for PIC Microcontrollers

I wanted to make a breadboard breakout for PIC microcontrollers after seeing this arduino breadboard breakout from adafruit. This product is fully standalone and yet has very small footprint so that it can be conveniently plugged into the breadboard. The most amazing part was that it still has 2 rows...

Make PCBs at Home With Toner Transfer Method

Toner Transfer method for making PCB at home is probably one thing that went as viral as the Arduino. Electronics hobbyists around the world started using it to make professional looking PCBs at home. Here I will document the steps involved in fabricating PCBs with things that you can mostly...

Make a Tray to suspend PCBs into the Etchant

In this post I will document the procedure involved in making a tray to suspend PCBs. The enchant (FeCl3 solution) is toxic and cannot be handled with bare hands. So I devised this easy and reusable method for suspending the PCBs with the toner into the solution. If you are...

Stepper Motor Interface with PIC Microcontroller

In my previous post Introduction to Stepper Motors and How they Work, we had a look at stepper motors and how they work. This post will deal with the programming and circuitry involved in the stepper motor interface with PIC microcontroller. Usually a microcontroller is used to produce the stepping...

Stepper Motors - Introduction and Working Principle

Stepper motor is a specially designed DC motor that can be driven by giving excitation pulses to the phase windings. They cannot be driven by just connecting the positive and negative leads of the power supply. They are driven by a stepping sequence which is generated by a controller. The...

Make a Digital Clock with DS1307 and PIC 18F4520

Digital clocks are are very commonly (cheaply) available these days. Some of them have a built in RTC to keep the time running even if the main battery fails and some of them don’t. In either case, for a standalone embedded application to get time, an RTC in almost the...

Getting Started with Linux

Linux is fast becoming the order of the day. Gone are the days when hackers, techies and geeks were the only people who could use it. The GUI (Graphical User Interface) of the Linux machines have also improved so much that one can use the computer without having to know...

8 Reasons Why You Should Switch to MPLAB X IDE

The MPLAB X is an IDE for developed by Microchip Inc. for their PIC microcontrollers. It has a lot of added features when compared to the older MPLAB IDE v8.xx. TheA MPLAB X is not a new version of the current MPLAB IDE v8. Instead it is a brand new...

Hack a Toy Car to Make a Cheap Wireless Robot

Hack a toy car to make a cheap wireless robot? Yes, cheap toy remote cars form china can be scavenged to get their remotes to work with our robots. All of us have seen and played with toy cars some time in the past. Some -like me- might have bought...

Programming Shortest Path Line Follower Robot

This post is the programming section of my previous post that dealt with the logic behind the following routines. To understand the complete nature of this post you should read the previous post first and then continue with this one. No, this is not the entire code! even if the...

Cubieboard a $50 Single Board Computer

Lets welcome the new comer in the league of single board computers (SBCs). Yes the Cubieboard is a new single board computer heading up in the market. It has already been in the market for some time but has not gained popularity. Cubieboard is a small, high performance ARM box....

Interface LCD in 4 bit Mode

This post documents the steps involved in interfacing the LCD in 4 bit mode with a microcontroller. It belongs to a series of 4 posts. If you landed here straight from a search engine, here is an index to help you navigate. LCD Module Basic Theory (LCD Controllers, CG&DD RAM,...

Interface LCD in 8 bit mode

This post documents the steps involved in interfacing the LCD in 8 bit mode with a microcontroller. It belongs to a series of 4 posts. If you landed here straight from a search engine, here is an index to help you navigate. LCD Module Basic Theory (LCD Controllers, CG&DD RAM,...

Interfacing LCD Module with Microcontroller

The LCD module interface with a microcontroller is simple and it is a primitive means of adding a visual appeal to your embedded application. There are two basic types of LCD modules in the market they are, Character LCD and Graphics LCD. Character LCDs are the some of the cheapest...

Character LCD Command Sheet HTML Version

I was looking for an image of the Character LCD command sheet throughout the internet and failed to find any good resolution images that I can use for post references. Here is an HTML Version that could be used at whichever resolution you choose! Character LCD Command Sheet Instruction Code...

Workaround Arduino SD Card Initialization Error!

I was working on a project that involved the use of an SD (Secure Digital) card to log data into a text file. I chose Arduino as it had a vary stable FAT (File Allocation Table) library. I had an Arduino Mega at my disposal and built a resistive network...

PandaBoard, Technical Reference and Review.

A PandaBoard is a low-cost, low-power single board development platform from the famous Texas Instruments OMAP4430 system. It is capable of running all major flavors of Linux with native support from Ubuntu. It has been on the list of Linux hackers for quite some time now and has a huge...

Need for Clock Line in Digital Communication

What is the need for a clock line in digital communication protocols? This was a question that was posted on a Facebook page. I was surprised to see no one had posted a response. Probably they felt that the question was below standard, lame, stupid or on the worst case...

Raspberry Pi: Let's take a bite from it!

The Raspberry Pi 2 is a credit card sized single-board computer. This you must have heard at least a thousand times, against my better judgment I have planned to use the same opening statement for this post. Raspberry Pi comes as two variants and they choose to call it Model...

Compiling C Programs Using GCC

C is the most widely used programming language for Embedded Systems. Even today most of the low level tasks of operating systems are done in C. Linux is a native C environment and so, the two together make a good pair and cannot be easily missed. C is a high...

How-to: Make a Chassis For Your Robot

Ready made chassis that are available in the market (like the one above) are really good, cheap and for all you know they might have been subjected to an R&D before fabrication. In spite of all these advantages I still see the following issues with ready made chassis. They are...

BeagleBone - Detailed Technical Review

BeagleBone is a credit-card-sized Linux computer that connects to the Internet and runs software such as Android 4.0 and Ubuntu. BeagleBone is nothing but a striped down version of its better known preceders BeagleBoard. BeagleBone has plenty of input & outputs and the processing power for real-time analysis is provided...

Shortest Path Line Follower Robot Logic Revealed!

Bored of the conventional line follower? People nearly are losing interest? Here is a post that could change it all and turn the winds to your side. Imagine if your robot was to start from node A (source) and move to node B (destination) and come back to node A!...

Raspberry Pi Google Calendar - A Combined venture for Mobile Phones

Raspberry Pi Google calender? That is an irresistible pair!! Hello all, I am sure these days most of you would be having a smart phone. We manage almost any thing that has to do with our digital self from these devices. The wide variety of apps available to make our...

Got the GPS and GSM Modules delivered!!

I had always wanted to interface something other than the conventional embedded devices in the market. That’s when I laid my eyes on the GSM module. So I have worked with many embedded peripherals but nothing as big and promising as the GSM module. For some reasons I could never...

Programming a Line Follower Robot

Programming a Line Follower Robot is the next step that you should do after building it. This is a follow-up on my previous post Line Follower Robot - Build it from scratch. If you haven’t already read it, I suggest you read it before going any further in this post....

Line Follower Robot - Build it from scratch

Line Follower Robots are the most common type of robots that are built by hobbyist and students interested in robotics and embedded systems. The reason for the popularity of the Line Follower robot is the fact that it is simple to build and it is easy to understand the logic...

Timer/Counter Module - A Controller Independent Guide

In this post I intend to provide a standalone, controller independent, Guide to Timer / Counter Module in Microcontrollers. The concepts explained are not associated with any one particular controller which might not be useful for all readers. To an extent this is an independent post but little exposure to...

Beware of learning embedded systems with Arduino

The term ‘Arduino’ is no longer new to anyone having the least bit of exposure to Embedded System. Some years ago when I first heard Arduino, it hadn’t come into India yet and the only shops selling them were charging a little more than twice the actual cost. So I...

EDA (Electronic Design Automation) - Where Electronics Begins

Electronic Design Automation (EDA) is a relatively young five-billion$ industry with a very colorful upbringing, I’m very grateful for, and is an honor to write about it. EDA involves a diverse set of software algorithms and applications that are required for the design of complex next generation semiconductor and electronics...

Which is the best EDA tool?

If you haven’t locked yourself in a cave for a couple of years, you would have easily come across this question several times when you went through electronics forums and the discussions in Facebook pages. This is one question that has been directed at me for a very long time...

Interfacing RTC with Microcontroller

Have you ever wondered how your PC and phones keep track of time even when the device is turned OFF? Well there is a Real Time Clock (RTC) that is kept powered even is the device is turned OFF. Once the device is turned ON and connected to the internet...

I2C Protocol (2-Wire Interface) in a nut shell

The I2C protocol also known as the two wire interface is a simple serial communication protocol that uses just two pins of a microcontroller namely SCL (serial clock) and SDA (serial data). This is a very popular protocol that can be used to address a large number of slave devices...

Beagle Bone a look from outside

The Beagle Bone is a pocket sized computer with Arm cortex A8 processor running a striped down version of angstrom Linux. Beagle Bone is much costlier than the popular counterpart Raspberry Pi, but has many advantages when compared to it. The reason I got the Beagle Bone was because the...

DIY wireless Keyboard (fun in making things yourself)

I have a TVS eGold mechanical Keyboard. I was looking at some websites that sold wireless keyboard and soon found out that they were all membrane type. I have been using the mechanical one for quiet some time now and love it so much that I can’t possibly revert back...

Make a Simple RC (Remote Controlled) Robot Car

Whether you are an engineering student building a multi terrain vehicle or an electronics hobbyist trying to impress people with your skills, making a RC robot car (wireless) is much better than the wired robot which you will have to tail while driving. This is not exactly a robotics project....

Getting started with Embedded Systems

Hey everyone, I have planned to document all the small electronics related projects that I do in my free time so that it would be of some use to all the beginners of the same interest as mine. I will try my level best to post the most optimized content...

Shaastra 2013 Nights on the streets (Jan'13)

Shaastra is an annual tech fest conducted by Indian Institute of Technology, Chennai. There are events and workshops for almost all streams of Engineering and I love their Robotics events, the most. The robotics event conducted by them is “The mother of all the robotics event in the county” -...

How to use gmail from terminal (Linux)

Great news!! Gmail, our favorite mail service can be accessed from the command line!! Now you can access your favorite mail service - Gmail - from a terminal in a Linux system with a command line interface. People may wonder why anyone would want to use Gmail from the command...

Working with git from a Linux machine

After a long struggle I managed to learn the basics of working with git and use it effectively for the sake of code sharing and team work. I will document the steps for my own reference and to help others facing similar problems Create a repository Creating a git repository...

Yet another Hello World?

There is always a convention, and I don’t plan on violating any today. #include <stdio.h> void main() { printf "Hello World\n"; return 0; } There you go! the age old thing to start off anything with - a hello world. Welcome to EmbedJournal, a tech blog on embedded systems, Linux,...