Making Devices : From Idea to Factory and beyond


I have had the benefit of getting help and advice from a lot of people and resources, as I went along the journey of converting an idea into a product, the PhonePe POS. I have put together a few things to be taken into consideration as you go from an idea to a prototype to engineering samples to your pre-production builds, and to finally receiving that first lot of mass manufactured products.

More and more startups everywhere are building innovative hardware, and while I have put together my experiences doing this in India, I hope this can be of use to startups outside India as well. The considerations mentioned here deal with sourcing, engineering, logistics, compliance and the interplay of these and other elements. 

The document presented here is not a HOW-TO guide, but more like a framework to help you find and weigh opportunities as you race to getting your product out the factory and to market.

Godspeed !

Wireless Spectrum in India

I got curious about allocation of wireless spectrum in India, and I did a bit of digging to understand what bands were allocated for what purposes. My interest in this was partly to investigate what frequencies were license-free, so that they could be used for hobbyists, personal and civilian communication networks without applying for licensing.

I found this information in the National Frequency Allocation Plan (NFAP), which I have linked to below. Apparently, the NFAP is reviewed every 2 years, and the last document I found was the NFAP-2011. The Wireless Planning and Coordination Wing (WPC) of the Ministry of Communications and Information Technology puts out this information.

There is a graphic chart from 2002 (linked below), but it is not up-to-date, so use it with caution. For all intents and purposes, the NFAP-2011 is the most up-to-date information available (conditions apply).

The spectrum is allocated by means of gazetted notices and circulars, and as such there is no single Act or Law which deals with allocation of specific frequency bands. After perusing a few circulars which deal with allocating frequency bands for “unlicensed” usage, I find that the following bands are available for use without any licenses from the relevant authorities. Each of these come with maximum emitted power in specified bandwidths.

1. 50-200 KHz –  GSR90(E) dated 10.02.2009
Tyre pressure indicator systems for use by airlines during all phases of flight, vehicle security system and other low power devices are the intended use case.

Base unit: 1610, 1640, 1675, 1690 kHz, 43.720, 43.740, 43.820, 43.840, 43.920,
43.960, 44.120, 44.160, 44.180, 44.200, 44.320, 44.360, 44.400, 44.460, 44.480,
46.610, 46.630, 46.670, 46.675, 46.710, 46.725, 46.730, 46.770, 46.775, 46.825,
46.830, 46.870, 46.930 and 46.970 MHz.
Remote Unit: 26.375, 26.475, 26.575, 26.625, 48.760, 48.840, 48.860, 48.920, 49.020,
49.080, 49.100, 49.160, 49.200, 49.240, 49.280, 49.360, 49.400, 49.460, 49.500,
49.670, 49.770, 49.830, 49.845, 49.850, 49.860, 49.875, 49.890, 49.930, 49.970, 49.90,
150.350, 150.750, 150.850 and 150.950 MHz.

The above frequencies are earmarked for cordless Telephones, if you are developing such a system.

1820-1860 kHz
3500-3700 kHz
3890-3900 kHz
7000-7200 kHz
14000-14350 kHz
18068-18168 kHz
21000-21450 kHz
24890-24990 kHz
28000-29700 kHz
50-54 MHz
144-146 MHz
434-438 MHz

Amateur Service is permitted in the above bands.Amateur Service means “Amateur Radio” or Ham Radio, but you need to get a license from the WPC for using it (you have to pass an examination as well).

4. 3213, 5218, 13862.4 kHz, 73.675, 79.025, 159.55, 436.525 MHz
The above frequencies are earmarked for temporary demonstration of equipments and do not require licenses. These might be usable for experimental purposes, but too much information was not available about these bands.

5. 13.553 -13.567 MHz
The above band is available for unlicensed use for very low power radio devices. This band is used by the NFC standard (Near Field Communication) on contactless cards

6. 26.957-27.283 MHz
The above band is available for unlicensed use subject to a maximum radiated power of 5W.

7. 433-434 MHz
The above band is available for unlicensed use subject to a maximum radiated power of 10 mW with a channel bandwidth within 4Khz

8. 335.7125, 335.7375, 335.7625, 335.7875, 335.8125 and 335.8375 MHz,
The above band is available for unlicensed use for remote controlling cranes with a channel bandwidth of 10 KHz and maximum transmit power of 1 mW

9. 402-405 MHz
The above band is available for unlicensed use for very low power remote cardiac monitoring RF wireless medical devices,medical implant communication/ telemetry systems and other such medical RF wireless devices.

10. 926 – 926.5 MHz
“Certain spots” in this band are “open for consideration” for very low power cordless telephones.

11. 1427 – 1535 MHz
This band  may be “considered” for “experimental/ trial/ pilot-study purposes for indigenously developed technologies for point-to-point backhaul and point-to-multipoint access systems” based on request.

12. 2.4-2.4835 GHz
The above band is available for unlicensed use and is used for WiFi, Bluetooth, Zigbee, and many others.

13. 5.150-5.350 GHz , 5.725 – 5.875 GHz
The above band is available for unlicensed use and WiFi routers have started using this band. It may also be used for very low power radio gadgets, radio toys, Dedicated Short Range Communications (DSRC) for Intelligent Transport Networks etc.

14. 5.57 – 5.725 GHz
The above band can be made available on request.

15. 6.0-7.25 GHz
The above band can be used for Ultra Wide Band Equipment.

16. 865-867 MHz
The above band is available for unlicensed use for low power wireless equipment. Please note that 868MHz is not included in this unlicensed band, which is available in other regions for LoRa equipment.

1. Most allocations of frequency are done on a non-exclusive basis, which means they are to be shared.
2. The power levels of communications on the frequencies must be within specified limits to avoid interference. Your unlicensed communication, as a general principle, is not allowed to mess with somebody else’s licensed, or even unlicensed communication.
3. The spectrum allocations are non-permanent and can be changed.
4. Even though you do not need a license to use some of the bands above, you still need to apply for a license to make, sell or import the hardware that makes of these bands. This seems cumbersome, but I expect it is intended to ensure compliance to the regulations.

Links :

1. National Frequency Allocation Plan 2011
2. National Frequency Allocation Plan 2002 Chart

This note is very much a work in progress. I am compiling a much more detailed document for the technically/ business-oriented, please get in touch if you to know more specific information.

Also, I do not guarantee the completeness or acccuracy of this information, as this note is a compilation from available pieces of scattered information from hard-to-find government notifications.

Hacking MP3 Players – Adding sound to Arduino

I’ve been wanting to add sound to quite a few of my projects, and have always found it way too cumbersome, too expensive or too expensive to add sound to my installations / projects, so a little while ago, I decided to try and hack a cheap MP3 player ( purchased from a roadside vendor) and trigger it from my Arduino to play pre-recorded MP3 tracks in sequence.

Here’s a picture of the MP3 player I am talking about, and what it looks like when opened up :

MP3 Player MP3 Player MP3 Player hacked

How the MP3 player works :

The MP3 player has 5 buttons: Play/Pause, Next, Previous, Volume Up and Volume Down.

As shown in the image below, each button consists of two pads, an inner pad and an outer pad. There is a metallic contact like a dome, covering the two pads, but not making contact. When you press the button, the metallic dome touches both path simultaneously and causes them to “short”. A short lasting for about 70 milliseconds will cause the action associated with that button to trigger. Note that a “short” of a small duration will not cause any trigger, and one of very long duration will cause multiple triggers, so it is important to time the delay right.


Each of the 5 buttons therefore has two pads, which must be shorted to trigger the five actions available. However, note that the pads on all the buttons are not unique i.e. there aren’t 10 unique pads, but merely 4 unique pads, scattered in different unique combinations. These 4 pads lead to 4 pins on a 16 pin IC, which I have drawn in the illustration above. The pins used are 6,7,8 and 16. To begin hacking the MP3 player, we must first solder 4 wires, either from the pads or from the pin on the IC (I find the latter easier), and extend them into multiple pinouts, so we can use them later.

In the illustration above is a table, which is a mapping of the combinations of wires which must be shorted for each action. So, to cause the MP3 player to pause/ play, we must short the pads / wires linking to pin 7 and 8 on the MP3 IC.

When we touch the buttons, those actions are easy enough to trigger. The question is, how do we short two pins (of which none might be ground), so as to simulate the MP3 function ? The solution is simple, really, we use relays. A relay is nothing but a mechanical switch that flips one way when powered on, and flips back when powered off. This is because each relay (drawn in the illustration) has a coil that creates a magnetic field when powered on, which flips a switch mechanically. The “COM” terminal which is normally connected to the “NC” (normally closed) flips and makes a connection to “NO” (Normally Open) when powered on, and we can use this to short a wire connected to COM with a wire connected to NO. Thus, each relay will short _two_ pads when powered, and will correspond to one pin on the Arduino that will power it on.

So, we’ll use a digitalWrite call from an Arduino to switch “ON” the Relay coil, thereby causing the wires to short. There is a slight problem, though. Chances are, your relay won’t trigger with the 5V that the Arduino supplies on its digital pin, and you’ll need to raise it to a level of 9V or 12V to trigger the relay coil. So, we’ll need to a buffer in between, here I have used the ULN2003. The complete arrangement for one MP3 function is mentioned in the illustration above.

This should mainly cover how to go about hacking the hardware of an MP3 player to work with an Arduino Uno. However, to make things a little easier on the Arduino side, I also wrote a simple library that lets you control the MP3 player just by specifying the pins on the Arduino that are connected to each relay.

Here is the link to the Github for the MP3 player library :

In the call to MP3Player, you just need to specify in the brackets which pins are connected to the relays corresponding to (Play , Next, Previous, Volume Up, Volume Down ) in order, and you should be up and running in no time !

If you are using only one button, you might want to skip the ULN2003 and use a simple transistor as switch instead as shown here (, but if you are going to use more than one button that is not advisable, since one of the pins that are shorted go to ground of the Arduino, and if you use another button with a different pad going to ground, those two will continuously trigger, messing up with your flow and possibly messing up the player itself.

If you have any questions, you can write to me at and I’ll be happy to help you out !

If you want to go get some Arduino supplies, you can get it from here :

Cheers, until the next hack !