Compiling mspdebug for Windows using MinGW

We were trying to compile the windows version of Mspdebug from its source.
In this post we would detail the dependencies that needed to be taken care off and how to make the Mspdebug-0.18build with MinGW.

First let us browse the setup:

1. We need Latest version of the MinGW installed presently using :gcc version 4.6.1 (GCC)
2. Download the Old Regex utility from GNU http://ftp.gnu.org/old-gnu/regex/ file regex-0.12.tar.gz

3. Download the Mspdebug-0.18 http://sourceforge.net/projects/mspdebug/files/mspdebug-0.18.tar.gz/download

Note: Make sure that MinGW in in the path along with Msys for the binutils

Building the Dependency of the regex in MinGW

1. Extract the regex-0.12.tar.gz file in a directory say regex-0.12

2. Compile the files: gcc -g -DHAVE_STRING_H=1 -I. -c regex.c

3. Now make the lib file: ar ru libregex.a regex.o

4. Copy the files to the respective directories:

libregex.a => [MinGW dir]\lib and regex.h => [MinGW dir]\include

Here are some quick commands:

cp libregex.a ..\MinGw\lib

cp regex.h ..\MinGW\include

Thanks to kemovitra blog for help.
File modifications for including LibUsb-Win32 used in MinGW:

1. Need to change #include<usb.h> to: #include <lusb0_usb.h>

2. Each of the following files need to be modified:

mspdebug-0.18\util\usbutil.h      Line number: 22

mspdebug-0.18\drivers\olimex.c Line number: 23

mspdebug-0.18\drivers\rf2500.c Line number: 22

mspdebug-0.18\drivers\ti3410.c Line number: 23

Compiling the  Mspdebug:

1. Use the command:  make WITHOUT_READLINE=1

Here is the output view of the compile:

E:\D\mspdebug-0.18>make WITHOUT_READLINE=1

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/btree.o -c util/btree.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/expr.o -c util/expr.c

util/expr.c: In function ‘expr_eval’:

util/expr.c:236:6: warning: variable ‘last_cc’ set but not used [-Wunused-but-se

t-variable]

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/list.o -c util/list.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/sockets.o -c util/sockets.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/sport.o -c util/sport.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/usbutil.o -c util/usbutil.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/util.o -c util/util.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/vector.o -c util/vector.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/output.o -c util/output.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/output_util.o -c util/output_util.

c

util/output_util.c: In function ‘format_addr’:

util/output_util.c:30:6: warning: variable ‘numeric’ set but not used [-Wunused-

but-set-variable]

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/opdb.o -c util/opdb.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/prog.o -c util/prog.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/stab.o -c util/stab.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/dis.o -c util/dis.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/gdb_proto.o -c util/gdb_proto.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o util/dynload.o -c util/dynload.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/device.o -c drivers/device.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/bsl.o -c drivers/bsl.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/fet.o -c drivers/fet.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/fet_error.o -c drivers/fet_erro

r.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/fet_db.o -c drivers/fet_db.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/flash_bsl.o -c drivers/flash_bs

l.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/gdbc.o -c drivers/gdbc.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/olimex.o -c drivers/olimex.c

drivers/olimex.c: In function ‘open_interface’:

drivers/olimex.c:121:6: warning: variable ‘ret’ set but not used [-Wunused-but-s

et-variable]

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/rf2500.o -c drivers/rf2500.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/sim.o -c drivers/sim.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/uif.o -c drivers/uif.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/ti3410.o -c drivers/ti3410.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o drivers/tilib.o -c drivers/tilib.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/binfile.o -c formats/binfile.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/coff.o -c formats/coff.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/elf32.o -c formats/elf32.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/ihex.o -c formats/ihex.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/symmap.o -c formats/symmap.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/srec.o -c formats/srec.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o formats/titext.o -c formats/titext.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o simio/simio.o -c simio/simio.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o simio/simio_tracer.o -c simio/simio_tra

cer.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o simio/simio_timer.o -c simio/simio_time

r.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o simio/simio_wdt.o -c simio/simio_wdt.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o simio/simio_hwmult.o -c simio/simio_hwm

ult.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o simio/simio_gpio.o -c simio/simio_gpio.

c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/gdb.o -c ui/gdb.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/rtools.o -c ui/rtools.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/sym.o -c ui/sym.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/devcmd.o -c ui/devcmd.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/reader.o -c ui/reader.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/cmddb.o -c ui/cmddb.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/stdcmd.o -c ui/stdcmd.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/aliasdb.o -c ui/aliasdb.c

gcc -O1 -Wall -Wno-char-subscripts -ggdb -I. -Isimio -Iformats -Idrivers -Iut

il -Iui -DLIB_DIR=\”/usr/local/lib/\” -o ui/main.o -c ui/main.c

gcc -s -o mspdebug.exe util/btree.o util/expr.o util/list.o util/sockets.o util

/sport.o util/usbutil.o util/util.o util/vector.o util/output.o util/output_util

.o util/opdb.o util/prog.o util/stab.o util/dis.o util/gdb_proto.o util/dynload.

o drivers/device.o drivers/bsl.o drivers/fet.o drivers/fet_error.o drivers/fet_d

b.o drivers/flash_bsl.o drivers/gdbc.o drivers/olimex.o drivers/rf2500.o drivers

/sim.o drivers/uif.o drivers/ti3410.o drivers/tilib.o formats/binfile.o formats/

coff.o formats/elf32.o formats/ihex.o formats/symmap.o formats/srec.o formats/ti

text.o simio/simio.o simio/simio_tracer.o simio/simio_timer.o simio/simio_wdt.o

simio/simio_hwmult.o simio/simio_gpio.o ui/gdb.o ui/rtools.o ui/sym.o ui/devcmd.

o ui/reader.o ui/cmddb.o ui/stdcmd.o ui/aliasdb.o ui/main.o -lusb -lws2_32 -lre

gex

2. If this works then you have a mspdebug.exe ready !!

Here is what we got:

E:\D\mspdebug-0.18>mspdebug.exe –help

Usage: mspdebug.exe [options] [command …]

-q

Start in quiet mode.

-d device

Connect via the given tty device, rather than USB.

-U bus:dev

Specify a particular USB device to connect to.

-s serial

Specify a particular device serial number to connect to.

-j

Use JTAG, rather than Spy-Bi-Wire (UIF devices only).

-v voltage

Set the supply voltage, in millivolts.

-n

Do not read ~/.mspdebug on startup.

–long-password

Send 32-byte IVT as BSL password (flash-bsl only)

–help

Show this help text.

–fet-list

Show a list of devices supported by the FET driver.

–fet-force-id string

Override the device ID returned by the FET.

–usb-list

Show a list of available USB devices.

–force-reset

Force target reset in initialization sequence.

–allow-fw-update

Update FET firmware (tilib only) if necessary.

–version

Show copyright and version information.

Most drivers connect by default via USB, unless told otherwise via the

-d option. By default, the first USB device found is opened.

If commands are given, they will be executed. Otherwise, an interactive

command reader is started.

Available drivers are:

rf2500

eZ430-RF2500 devices. Only USB connection is supported.

olimex

Olimex MSP-JTAG-TINY.

olimex-iso

Olimex MSP-JTAG-ISO.

sim

Simulation mode.

uif

TI FET430UIF and compatible devices (e.g. eZ430).

uif-bsl

TI FET430UIF bootloader.

flash-bsl

TI generic flash-based bootloader via RS-232

gdbc

GDB client mode

tilib

TI MSP430 library

 

Next we need to try out using this to program the MSP430 chips.

Posted in Uncategorized | Tagged , , , , , | 1 Comment

MSP430F5310 Breakout

We recently developed our first MSP430F53XX breakout board. This board was targeted for developing advanced applications on MSP430.

We have hosted this project as an Open Source Hardware project on Github.
https://github.com/boseji/MSP430-LaunchPad-Innovation/tree/master/hardware/5310breakout

Here is a preview of the schematics:

This board can be programmed using the TI LaunchPad also.
http://www.43oh.com/forum/viewtopic.php?f=35&t=1853

We would be revising this to make a Booster Pack for the TI LaunchPad.

Posted in Development Kit, MSP430, open Source, prototyping, TI | Leave a comment

Removal of old Serial Port entries and COM port Re-assignment in Windows

Many time we have see that we are stuck with some odd serial port Numbers such as COM58, COM86 and all. We were bugged up with this issue as we have several Bluetooth dongles and each creates it own set of 10 COM ports!

To make matters worse when the 2-digit COM numbers is exhausted then 3-digit code like COM103 or COM112 are listed. Most of the Serial port terminal programs support only 2-digit code. And if you happen to have some old piece of software that expect the COM to be a single digit one like COM3 or COM9 then you hit the road block.

This problem has happened to us several times. We found some quick workaround to fix this. The platform being Windows XP Professional in consideration, but should work for Windows 7 also.

Here are the steps to achieve this:

  1.  Open Regedit :
    • From Start Menu click on Run and then type regedit in the text provided
    • Make sure you are logged in as Administrator in Windows XP else in Windows 7 it would ask for Administrator permission.
  2. Navigate to the Key:
    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/COM Name Arbiter
    • Looks something like this:
      Regedit Window showing the CommDB option
    • Now Right click on CommDB and click on Modify...
    • This will show a window like this:
    • The Value of the CommDB would be some thing like COMDB = FC FF FF 03… or some thing similar. Now this indicates the number of ports occupied in binary. Each bit represents a COM port slot being occupied.
      For Example if you have COM1 , COM2 and COM4
      then COMDB = 0B 00 00… in =&gt; Binary (0000)u (1011)l = (0D) hex
    • So accordingly first calculate the value of the COM ports that you have on your PC at all times and cleat off rest of the bits.
    • For our case we have COM3 at all times representing the built-in Modem so our value would be Binary (0000)u (0100)l = (04) hex
    • Here is the modified window:
    • Note: Make sure you dont add additional bytes to this entry or it would cause System Crash
    • This completes the second step
  3. Navigate to the Key:
    HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/SERIALCOMM
    • Here you can see all the COM ports currently present or are plugged into the computer
    • For our case we don’t have any other ports than the Modem so here is how it looks like:
    • If you need first uninstall the ports from pc and check if they are update here.
  4. Navigate to the Key:
    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Ports
    • Here you would be able to see all the assigned COM ports available
    • This is how it would look like:
    • Delete the COM ports that you don’t need. For Example we needed only COM3 rest all COM port entries can be deleted.
    • Make sure you dont delete any other ports else System Crash
  5. Now reboot the PC

Now when ever you plug in the new hardware if it shows the old port then just uninstall the driver and plug it back again. It should get a new port assigned.

For more info Read the following:
http://www.digi.com/support/kbase/kbaseresultdetl.jsp?id=274

Posted in tricks, tutorial, Windows | Leave a comment

TI Unleashed the Revolution (Palm Sized) – BeagleBone

BeagleBone is a new development board from TI in the BeagleBoard Series. This brings nearly the same power of the other Beagleboards right into palm of your hand.

This board contains the AM335x Family of Sitara Arm(r) Cortex-A8 processor.

Here are some vitals about this board:

  • Board size: 3.4″ x 2.1″
  • Processor: 720MHz AM3358 Family of Sitara Arm(r) Cortex-A8 processor
    Link: http://www.ti.com/am335x (Ref Manual)
  • Memory: 256-MB DDR2 RAM
  • USB: 1-port USB 2.0 host, 1-Port USB Debug + Serial Terminal using FT2232
    Single cable development environment with built-in FTDI-based serial/JTAG and on-board hub to give the same cable simultaneous access to a USB device port on the target processor
  • Ethernet: Integrated 10/100 Ethernet
    On-chip Ethernet, not off of USB
  • Expantion: 3.3-V 2× 46-pin peripheral with multiplexed LCD signals and battery-control expansion headers. Industry standard 3.3V I/Os on the expansion headers with easy-to-use 0.1″ spacing
  • Shipped with 2GB microSD card with the Angstrom Distribution with node.js and Cloud9 IDE
  • Easier to clone thanks to larger pitch on BGA devices (0.8mm vs. 0.4mm), no package-on-package memories, standard DDR2 vs. LPDDR, integrated USB PHYs and more.

Have a look the the Current Beagleboard Flyer to compare with the other boards.

If you are wondering where to plug in the display then worry not there is a DVI-D board that gives the DVI monitor port and the audio connections.

Here is a video that show it all:

We can wait to grab of these – Hope it would be same for you too:-)

Posted in BeagleBoard, Development Kit, electronics, embedded, innovation, open Source, TI | 2 Comments

Happy Deepawali 2011

We would like to wish you a Prosperous, &amp; Happiness filled Deepawali(दीपावली).

Posted in Festival | Leave a comment

Remove Trace of USB Devices plugged into a PC

We found a little piece of software that could help to remove the trace of USB devices such as Pen Drives, Flash Disks, or your custom hardware. We were trying to check the USB driver installation of one of our projects. However we had to manually remove its presence by deleting registry keys. Sometimes if the wrong key deleted the whole Virtual systems would crash. So we were in trouble.
Well NirSoft’s USBDeview helped us out of this trouble.

USBDviewThis is a free utility that you can download from http://www.nirsoft.net/utils/usb_devices_view.html
Note: In order to make sure you can uninstall the devices you need to run this program in the Administration logon.

Posted in tricks, USB, utilities | Leave a comment

Flying Saucers: Superconductor Magic

We came across this innovative video showing the Magnetic Levitation using super cooled materials. This demonstrates Quantum Trapping phenomenon in super conductors at low temperatures.

Posted in Physics, Quantum Physics | Leave a comment

Android on X86: We have Google’s Power

We were overjoyed to hear that Intel x86 can now run Android. That would mean the Host and Targets can some day have the same platform for development. This is Great news!!

Here is the link to the Project page:

http://www.android-x86.org/

or

http://code.google.com/p/android-x86/Here are the Official Intel Website giving the Instructions to installing Android on x86:

http://edc.intel.com/Software/Installation-Guides/Android/

Here is the Video of Android Running on Intel N450 based Systems:

http://edc.intel.com/Embedded-Video-Player.aspx?id=3778

This is the Link: http://edc.intel.com/Video-Player.aspx?id=3778

If you wish you too can buy these boards here:

Intel Atom Dev Kits Link

Let us know if you get some of them..

Posted in Android, Development Kit, Intel, LINUX, open Source | 9 Comments

Bread Board Tips and Tricks: Beginner to Proficient(Incomplete!!)

## NOTE: This tutorial is still incomplete however we would like your Thoughts to flow In and help us out
We have all used breadboards, or those who plan to jump into the fascinating world of electronics need to know about them. This article focuses on introducing breadboards inside out, to help people use them and prototype their innovations faster. We would walk through Bread board concepts, connecting various chips & devices, efficient prototyping and documenting the designs.
[1] What is a Bread Board ?
Bread Board or more precisely Solder-less Bread Board is one of the essential tools for any one stating with electronics or microcontrollers. It is useful for both Pro’s and beginners alike. Here are pictures of the different breadboards that one can find.
Older Variety widely available in Bharat(India)
Newer Variety slightly Costly in Bharat(India)
Smaller ones (Half Size) available from Adafruit
Oldest form of Bread boards (Not available now)
More recent Transparent Fancy bread board from Sparkfun

Apart from the above breadboards are also available in kit form. Which include optional Power supply Connections and other connectivity options.

With Power supply from Sparkfun

[2] General know how on Length Units used in Electronics.
Going forward in this tutorial it is important to note that we would be using a particular unit a lot of times “mil” or also popularly known as “TH”. It is 1000th of an Inch. Here is a conversion table that might come in Handy.

1 Inch =>  1000 mil  =>    2.54 cm =>    25.4 mm
1 mil  => 0.001 Inch => 0.00254 cm =>   0.025 mm
Also:
1 mm   =>   0.1 cm   =>   39.37 mil=> 0.03937 Inch

It is important to know this conversion as most of the Printed Circuit Board unit are in “mil” and the data-sheet units are in “mm”. There has always been a classical fight between the more accurate one. However most of the things in PCB arena are still in “mil” and using mm means using 4-6 decimal precision in the current boards.
Thus we prefer to use the “mil” unit more than mm. However we would try to provide a proper conversion available for the parts that have been measured. There is a handy converter available in the blog which can convert in any direction either “mil” to mm or vise-versa.

[3]Bread Board Dimensions and Differences.
In general any bread board is fine for starting.
However there are some small caveats that we need to be aware. We would try to explain some

“Well this is far from Complete So we would keep adding more and Help Us Fill in more details”
Posted in education, electronics, embedded, tools, tricks, tutorial | Leave a comment

Small is IN:Single molecule is tiniest electric motor ever

There has been a remarkable advancement in performing Molecular arrangements which pave way for useful NanoElectronics in the Future. Here is what we came across recently:

The smallest motor ever made and that’s why its contesting in the Guinness World Records.

Molecules have previously converted energy from light and chemical reactions into directed motion like rolling or flapping. Electricity has also set an oxygen molecule spinning randomly. But controlled, electrically-driven motion – necessary for a device to be classed as a motor – had not yet been observed in a single molecule.
To address this, E. Charles Sykes at Tufts University in Boston and colleagues turned to asymmetric butyl methyl sulphide, a sulphur atom with a chain of four carbons on one side and a lone carbon atom on the other. They anchored the molecule to a copper surface via the sulphur atom, producing a lopsided, horizontal “propeller” that is free to rotate about the vertical copper-sulphur bond

Catch it @NewScientist 

Posted in Invention, Nano, Nanotechnology, news, Physics, Quantum Physics | Leave a comment