How keyboards are made? This has been already discussed in Atmega 32u4 based Generic USB Keyboard project. A number pad is also a kind of keyboard having the keys for decimal digits and the basic arithmetic operations. Building from the keyboard project, a basic numeric keypad that will work with all the operating systems is designed in the following project. The keypad will have ten keys for the decimal digits and one key for multiplication, division, subtraction, addition and equals each. Each of these digits or operations has unique keycode assigned. The project utilizes 8-bit USB AVR – Atmega 32u4 as the USB controller chip to pass the keycodes to the computer in a format dictated by the USB protocol and uses AVR based Lightweight USB Framework (LUFA) as the firmware to implement the protocol itself.
Atmega 32u4 Based Password Generator (Part 6/25)
Like computers have become part and parcel of daily lives, the passwords have too. From operating systems to website logins, the most common and secured way to get access is the password protection. The passwords just serve like the keys. Like the keys open physical locks, the passwords open the digital locks for access to operating systems and other software or website. Generally users need to type the password in a textbox and press some button to get access to OS, software or website. While typing the password, it can be seen by an onlooker or tracked by key logging. This project is a USB device that will store the user passwords and print it out to a login window just by pressing a single button.
Atmega 32u4 Based Digital Business Card (Part 5/25)
Business cards are commonly used to give away the business related information to the clients or customers. Business cards are just another means to promote the business and establish an identity or brand. The companies and firms usually issue business cards for all the officials holding important designations. A business card has the information like name of the card holder, designation of the card holder, name of the business organisation, address and contact details of the person or the business organisation. This project is a digital version of business card and allows to relay the business related information digitally on a computer screen or browser. The project is an USB Plug and Play device that prints the business card information on any text editor weather a desktop application or a textbox on browser on the press of a single button. The project has been built on Atmega 32u4 based Generic USB Keyboard project which was based on making a generic USB Keyboard.
Atmega 32u4 Based Edit Keypad (Part 4/25)
In Atmega 32u4 based Generic USB Keyboard project is already learnt that How a generic USB Keyboard is made. Building upon the same project, this project is about building a special keypad to interact with the windows operating system. The keypad will be called Edit keypad and will have three buttons to do cut copy and paste functions. On a typical generic keyboard, for doing cut copy and paste, combination of keys is required to press together. The edit keypad will do the stated operations just by pressing individual keys of the keypad. The project utilizes 8-bit USB AVR – Atmega 32u4 as the USB controller chip and uses AVR based Lightweight USB Framework (LUFA) as the firmware which is modified to work for the edit keypad.
Atmega 32u4 Based Browser Keypad (Part 3/25)
How a generic USB Keyboard is made has already been explained in Atmega 32u4 based Generic USB Keyboard project. Building upon the previous project, this project is about building a special keypad to control the browser functions. When using a browser, it is usually needed to press a combination of keys to do various tasks. These tasks include opening/closing tab, refreshing, switching tabs etc. This Browser Keypad project will allow to do the common browser tasks by pressing the single keys of the keypad. The project utilizes 8-bit USB AVR – Atmega 32u4 as the USB controller chip and uses AVR based Lightweight USB Framework (LUFA) as the firmware which is modified to work for this special keypad.
Atmega 32u4 Based Generic USB Keyboard (Part 2/25)
The Mouse and keyboard are most common computer peripherals. While mouse is a pointing device and helps in tapping the GUI elements of the screen, the keyboard has greater role to play with handling data input as well as has ability to navigate through GUI elements of a screen. Nowadays the keyboards interface with the computers through USB cable and use USB protocol to send data inputs to the computers. The wireless type keyboards generally use Bluetooth to send data inputs to the computers. In fact, wireless keyboards also use an external pluggable device which ultimately connects through the PC by USB Port. This project is to demonstrate the basic functioning and working of a generic USB keyboard. The 8-bit USB AVR – Atmega 32u4 is used as the device controller chip in the project.
Controller Chip Selection for Developing USB Enabled Device (Part 6/6)
In this series, every possible detail about the USB system including its architecture, protocols, requests and descriptors as well as signaling and encoding has been already discussed. Wrapping up the series, selection of the controller chip for the development of a USB enabled device is discussed here.
Signal and Encoding of USB System (Part 5/6)
In this series, USB requests and descriptors have been already discussed. With the knowledge of USB requests, descriptors, transfer types and transactions it is now easy to understand how data is communicated over USB interface. Another aspect of the USB communication is line states and encoding, which is generally ignored by the system designers as a USB device can be designed without knowing the Signaling and Encoding schemes. The signaling and encoding schemes are implemented at the lower levels (usually on the controller IC) and usually gets abstracted during system designing. However, understanding the terms related to bus states and encoding would help in getting comprehensive view of the USB System.
USB Requests and Stages of Control Transfer (Part 4/6)
In the previous article of this series, USB Descriptors were discussed. When a USB peripheral is connected to a host device, the host sends queries in the form of requests. The peripheral responds by sending Descriptors. The Descriptors contain the information required for identifying and configuring the peripheral device, implementing the interfaces and setting endpoints. The device descriptor is the first descriptor sent to the host and it helps in configuring the peripheral with respect to the host. The subsequent descriptors implement the functioning, the peripheral is meant for. The Control Transfer is the only transfer type which is supported even when the device is yet not configured. That is the reason, it is used for sending requests and obtaining the descriptors. The default endpoint is endpoint 0 which is bidirectional and used for control transfers.
USB Descriptors and their Types (Part 3/6)
Now that we have discussed the basic details of USB including its features, architecture, and protocol, the next topic in the series is USB Descriptors. In context to USB interface, Descriptors are formatted blocks of information, through which, the host device learns about the peripheral. It helps in identifying and configuring the peripheral device.A Descriptor contains information like type of the device, Vendor ID, Compliant USB Version, number of configurations device supports, number of endpoints, etc. The USB peripheral must respond with descriptors when requested by the host. During enumeration, the host uses control transfer to request the device for descriptors.
USB Protocol: Types of USB Packets and USB Transfers (Part 2/6)
After discussing the features and architecture of USB, let’s move on to its protocol. A USB interface has several layers of protocol. Most of the time the lower level layers are single handled by host controller IC while the end designer needs to work on higher level layers. Every communication protocol involves the exchange of packets. Same is the case with USB. These packets encapsulate information in a standard-defined organized manner. These packets generally contain information related to- Controlling the data exchange, Data exchange in the form of actual payload, and Error detection and correction through the status check up. In USB the LSB of the packet is transmitted first. A USB packet contains different fields.
Introduction to USB: Advantages, Disadvantages and Architecture (Part 1/6)
Universal Serial Bus (USB) is the de facto interface for computer peripherals to communicate with the personal computers. The interface that saw the light of day around the mid-1990s was a joint effort of seven companies – Compaq, DEC, IBM, Intel, Microsoft, Nortel, and NEC. These companies were aiming to replace the then parallel ports and the external power chargers with a universal communication standard that could simplify data exchange and could double duty to supply power as well.Nowadays, USB is the standard and must-have interface on almost all motherboards, single board computers and the embedded microcontroller boards and almost every digital peripheral from regular computer peripherals like keyboard, mouse and joysticks to smart digital devices.
ADC with NRF24LE1 (Part 2/14)
We have studied about the first program on the NRF module which was very simple and we have been successful in blinking the LED.Now, if we wish to make anything with NRF, we must know how to take analog inputs as most of the sensor is analog. In this article, we will see how to use the inbuilt ADC of NRF and how we can use any analog sensor and convert its value into digitalThe specifications we have extracted from the datasheet. Now to understand the code, we have taken an excerpt from the example codes provided by Nordic. Let’s understand the main part of code line by line.
Interrupts with NRF24LE1 (Part 3/14)
In our daily life we get distracted or interrupted by others many times. In that condition we suspend our ongoing work and pay attention to what others have to say. We only resume our previously suspended work after the completion of the interrupted task. The master which controls the processing of thoughts in us is our brain. The brain stops processing ongoing thoughts when we get interrupted and starts processing the other task. It resumes the previous ongoing processing when the task is complete. The controller works in a similar manner. Here, we will study interrupts associated with our NRF.
Power Failure Indicator in NRF24LE1 (Part 4/14)
Nowadays most of our devices are portable and run on batteries. We often do not know when the battery is about to get discharged. Many systems have the battery voltage display to indicate the battery voltage but what if we don’t have the display in our system. In such a case, using a small LED to indicate low battery is very helpful for users to know about the battery status.
Using EEPROM of NRF24LE1 (Part 5/14)
All the good and bad incidents are stored in the brain memory of humans. Similarly, the controller uses EEPROM to save data or variables. In this article, we will see how to use the EEPROM of NRF24LE1 and what are its uses?Do you know what makes the memory in electronics? Let’s take an example of a capacitor. It has the capability to hold voltage and thus it’s treated as memory component. There are two types of memories in electronics; Volatile and non-volatile. The volatile one gets erased if the power supplied to this memory is cut. That means the data stored will be erased in case of power failure. The non-volatile has an advantage of holding data even when the power is off. The most common example of volatile memory is the RAM used in our computers. The examples of volatile memory are hard disk, SD cards, EEPROM, etc
PWM with NRF24LE1 (Part 6/14)
Have you ever thought that the phone light, when turned ON, is not always ON? It fluctuates with a frequency to save some energy which our eyes can’t sense. It’s a cool thing to save some battery but how is this done? The answer is PWM. PWM is an important technique for producing analog voltages using digital voltages and controlling LEDs, DC, servo motor, etc. The time period of the generated wave will be the sum of delay for HIGH pulse and delay for LOW pulse. Reciprocal of time will give us frequency of the produced signal.
Timers with NRF24LE1 (Part 7/14)
Timers with NRF24LE1 Timing plays an important part in our life. It’s normal for a human to allocate time for future plans. We only need brain and a clock to decide what is the current time and how much time has passed. Similarly, a microcontroller can also calculate time. It serves the purpose of brain…
Random Number Generator with NRF24LE1 (Part 8/14)
Random number sometimes plays an important role in our life. Think of a lottery ticket you have purchased. Now what if a random number taken out of lottery lot matches your ticket number? We will be glad if that happens. Random number generators are also used in making games more puzzling and non-deterministic. Do you know microcontrollers too can generate random number? Today we are going to discuss an interesting feature of NRF24LE1 which is Random Number Generator (RNG).
Watchdog with NRF24LE1 (Part 9/14)
Till now in the series on NRF24LE1, we have covered many interesting and special features which differentiate NRF from others. Today we are going to discuss an important functionality of microcontrollers which helps them recover from failure. Suppose, I give you a task to solve in predefined time and you fail to do it in allotted time then you will have to start it from the beginning. The word ‘Timeout’ can be used here to clarify the concept.