We have been working with the well known Stellaris Launch Pad, now known as the Tiva C Launch Pad. This was a quite transition however we found some subtle differences with the microcontrollers.

Stellaris Launch pad:


  • Used the LM4F120H5QR Microcontroller which is now renamed as TM4C1233H6PM
  • Original name for this Launch Pad: EK-LM4F120XL
  • Still available at TI e-Store link.
  • Important thing to note is the chips in initial version of the Stellaris Launch Pads were Engineering Sample versions so the chip name became LX4F120H5QR - Not very reliable !!
  • TI has released an official migration guide for Stellaris to Tiva C -This guide also contains the part number mapping for the new Tiva C Series
  • Also the support software for the Stellaris ware has been now changed to Tiva Ware - Important changes include the naming convention and C99 standard types

Summary of Links:

Hope that this list would be helpful. Let us know your comments on this.

Quick & Easy Shortcuts in Ubuntu Unity UI

Monday, April 8, 2013
Posted by Boseji
We had some initial troubles in getting around with the Unity Interface of Ubuntu. One of the common problems was in creating short cuts for the UI.

We got some info from this source in Ubuntu Forum while searching.

Here is the explanation and step-by-step procedure:
1. Open your favorite editor with an "ApplicationName.desktop" file
     We use 'gedit' so we give the command:
gedit ApplicationName.desktop
     The 'ApplicationName' field here needs to be replaced with your desired application's name.

2.  Now write the following into the file:
[Desktop Entry]
Name=ApplicationName
Comment=Comment_To_Be_Displayed_when_Mouse_Hover
Exec=/path/to/executable
TryExec=/path/to/executable
Icon=/path/to/application_icon_file
StartupNotify=false
Terminal=false
Type=Application
Categories=Main_Category_of_Application; Sub_Category_of_Application

Here the following Fields are required:
  • ApplicationName - This is the name that you have earlier given to your desktop icon
  • Comment_To_Be_Displayed_when_Mouse_Hover - This is a comment that would be displayed both on the Ubuntu Unity panel as well as if placed on the Desktop
  • /path/to/executable - This is actual path to the install directory of the application that you wish to create the short cut for
  • /path/to/application_icon_file - This is the application icon file that can be a .ico or a picture file with 48x48 max pixel dimension.
  • Main_Category_of_Application - This is an optional parameter, it can be any of the standard application categories that you find in the Ubuntu Software Center - Accessories, Education, Games, Graphics, Network, Office, Development, System .etc.
  • Sub_Category_of_Application - This is sub category under main category - for more info refer to this page: https://wiki.ubuntu.com/SoftwareCenter#Genre
3. After save this file into the correct directory and close the editor.

4. To install the icon to the Dash-Home of the Ubuntu Unity give the following command in a terminal window:
xdg-desktop-menu install --novendor /path/to/ApplicationName.desktop
Now your icon would be available on the Dash-Home.
Next if you need this to be on the Unity Bar - just run the program and right click to 'Lock to Launcher'.

Hope that this was helpful, let us know your feedback.

8051 development in Linux: Nostalgia Revisited

Sunday, March 31, 2013
Posted by Boseji
It might be surprising but yes we wish to provide a simple guide to perform 8051 development under Linux. For many 8051 might be history but its still relevant for starters.

The amount of study material already available along with a base of example and help available on topics related to this microcontroller architecture makes it a easy choice. Although the same is true for AVR,PIC or the grand ARM, but the simplicity of this controller cant be compared with any one of them. In fact we had this microcontroller is several of our projects and endeavours in the past decade. So we decided to pay our tributes to this grand old microcontroller with the help of this article on how to start and effectively perform development on this controller under linux.

Good quality stepper motors for CNC project: Sale

Saturday, March 23, 2013
Posted by Boseji
Tag : ,
One of our friends recently too up a project of building a CNC router. The idea was to make a Open source router framework that can be used for 3D printer, Cutters, painters etc.
NEMA 17 Bipolar 4-wire Stepper Motor
However he had surplus motors so he wishes to see off the excess motors at reasonable rates. He requested us to put this up so that people can buy these motors, and here we are with the post for the same.

Specifications of this NEMA 17 Bipolar 4wire Stepper motor:
  • Motor Properties:
    • Motor Type: Bipolar Stepper (2 Coils)
    • Step Angle: 1.8 degree
    • Step Accuracy: 5%
    • Holding Torque: 4.0 Kg cm @ 1.7A
    • Rated Torque: 3.4 Kg cm @ 1 A
  • Electrical Characteristics:
    • Motor Coils: 2 Coils
    • Rated Current: 1.7A
    • Recommended Voltage: 12V (Full Stepping), 9V (Micro-stepping)
    • Coil Resistance: 2 Ohm
  • Physical Properties:
    • Mounting Plate: NEMA 17
    • Motor Length: 40mm
    • Shaft Length: 24mm
    • Shaft Diameter: 5mm
Mechanical Dimensions
Coils and Colors
You can contact him through this form and he would be happy to help you out with any details you may need.

Official AVR toolchain for Linux

Friday, March 15, 2013
Posted by Boseji
We have been searching for a consistent source to obtain a stable releases of AVR tools on Linux. Here is what we came across recently.

This is Atmel's Official link supporting the Linux Tool chain for  AVR-8 and AVR32 architectures:
http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORLINUX.aspx


However the support of AVR32 AP7000 has been removed only thing that remains is the Build Root for AVR32 AP7000: http://www.atmel.no/buildroot/

Fancy Command Prompt: Linux in Style

Sunday, March 10, 2013
Posted by Boseji
We wondered if the Linux prompt can be more snazzier that we have it by default dull type.
To something more interesting:
This magic is using the 'PS1' environment variable in Linux.
Here is the command that does this magic:
PS1="\n\[\033[1;37m\]\342\224\214($(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;34m\]\u@\h'; fi)\[\033[1;37m\])\342\224\200(\[\033[1;34m\]\$?\[\033[1;37m\])\342\224\200(\[\033[1;34m\]\@ \d\[\033[1;37m\])\[\033[1;37m\]\342\224\200(\[\033[1;32m\]\w\[\033[1;37m\])\342\224\200(\[\033[1;32m\]\$(ls -1 | wc -l | sed 's: ::g') files, \$(ls -lah | grep -m 1 total | sed 's/total //')b\[\033[1;37m\])\n\342\224\224\342\206\222> \[\033[0m\]"

There are 3 parts to this magic:
  1. Usage of Special Unicode characters:
    Looking at the beginning of the line you might have noticed the char '┌' which is U+0x250C. This is a UNICODE character to make top left border. In order to find the right string to code the PS1 variable you would need to the octal codes for the special char. To get that we have these commands:
    • If you know the code of the char:
      echo -e "\u250C" | hexdump -v -e '/1 "%03o "' | awk '{print "\\" $1 "\\" $2 "\\" $3 }'
      This is for the top left border char that we are talking here. It would print:
      \342\224\214
      
      This is the code you can now use in the PS1 variable definition.
    • In case you know the char it self then:
      echo ┌ | hexdump -v -e '/1 "%03o "' | awk '{print "\\" $1 "\\" $2 "\\" $3 }'
      This gives you the codes again in the same manner as the earlier one.

    In order to get further info you can visit the following links:
    http://www.unicode.org/charts/ - Here you get all the charts for Unicode characters
    https://wiki.archlinux.org/index.php/Color_Bash_Prompt
  2. Special formatting for the normal user and the root user:
    The piece of the variable that does this job is -
    ($(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;34m\]\u@\h'; fi)
    This would ensure that if the user is root the only the host is printed else the user name @ host is printed.
  3. Finding the Number of Files and the total size:
    This part is done in two folds -
    First part is the number of files that exist in the current working directory:
    \$(ls -1 | wc -l | sed 's: ::g') files,
    The next part is the total size of all files under the directory(no including sub-directory sizes):
    \$(ls -lah | grep -m 1 total | sed 's/total //')b
This make a nice way to work on Linux with style. The possibilities are only limited by your imagination and few time.
Inspired by the Archlinux wiki: https://wiki.archlinux.org/index.php/Color_Bash_Prompt
    We recently stumbled across a good source of concepts related to physics and nature. This has the simplest URL: http://physics.info/
    This is a helpful resource to revisit the concepts and understanding of Physics. We found this resource to be really helpful and hope it would be useful for you too.
    As you may know from our earlier post we have completely shifted our developments to Linux. This post is to describe the process of installing the pyserial package into Linux.
    You can visit the pyserial page for locating the documentation: http://pyserial.sourceforge.net/

    Here is the step by step process to perform the installation:
    [1] Getting the Files
    You need to download the pyserial: https://pypi.python.org/packages/source/p/pyserial/pyserial-2.6.tar.gz#md5=cde799970b7c1ce1f7d6e9ceebe64c98
    If this download link is not valid then go to: https://pypi.python.org/pypi/pyserial
    You might observe that the version that we are downloading is the Python 2.6 supported but do not worry - we have tested this and it works for Python 2.7.

    [2] Check if you have python installation in Linux
    We are using Ubuntu 12.04 version of Linux so our package updater is 'apt-get'.
    In Ubuntu we have python 2.7 available by default. However for some other Linux distros that might not be the case, so try to check for online help regarding installation of python v2.7/v2.6 into your specific Linux distribution.
    To test if python is present or not type python in the terminal window. you would get a prompt like this:
    Python 2.7.3 (default, Aug  1 2012, 05:16:07)
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    Next type - exit() - this would exit python interpreter and bring you back to the shell prompt
    [3] Extract and install the pyserial package
    The pyserial package is a tar.gz type archive so you need first go to the directory where it has been downloaded in the terminal.
    Next give the following set of commands:
    1. Extract the Archive
      tar -zxvf pyserial-2.6.tar.gz
    2. Go the pyserial directory
      cd pyserial-2.6
    3. Build the package
      python setup.py build
    4. Install the package
      sudo python setup.py install
    Now the package is ready to use and installed.

    [4] Testing the installation

    The pyserial package comes with the miniterm.py scripted python program. We would use this to test pyserial installation. We have connected a USB to Serial Pl2303 based converter at /dev/ttyUSB0
    We can use this miniterm tool to connect to the serial terminal at 9600 baud rate.
    Give the following command on the terminal prompt:
    miniterm.py -p /dev/ttyUSB0
    You would get the following prompt:
    --- Miniterm on /dev/ttyUSB0: 9600,8,N,1 ---
    --- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    

    This means that the pyserial is successfully installed and ready for use. Hope this article has been helpful. Let us know your suggestions and feedback.
    A friend of ours is working on a commercial project for low cost timing module. He request us for some help regarding designing a Mono-Shot timer. In general the circuit was using a NE555 in mono shot configuration. The problem was that he needed the mono-shot to start at power up and also it should be re-trigger-able with a button. And all this with the minimum set of components.

    Using Alternative Pins for AVR V-USB Implementation

    Sunday, February 10, 2013
    Posted by Boseji
    We were trying to have a complete 8-bit port on ATmega8 and at the same time implement Objective Development's V-USB stack to communicate with the chip.

    Energy Micro Simplicity Tricks

    Wednesday, December 26, 2012
    Posted by Boseji
    We have been using Simplicity tool for EFM32 and evaluating on how to make good use of this tool. In that quest we found several tricks and mods around this tool. So we would like to share these useful tips for the benefit of the EFM32 users.


    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.

    In our last post we came to know about the process of configuring the core clock for EFM32. Basically how to make the Coretx-M3 clock from the External Crystal source HFXO.
    Next we would take a detailed look at the Energy modes in the EFM32 microcontroller. Again we are going to use the Keil MDK with GCC and the STK3700 kit.
    In the EFM32 Microcontroller the Energy Management Unit(EMU) takes care of the setting the power, reset and clock-gating. Additionally it also takes care of Brownout detection for resetting the MCU if the voltage falls below a specified threshold to prevent spurious code execution. However we would focus more on the Energy modes that govern the operation of the Microcontroller core as well as its peripherals and clocks. This might be a bit confusing that CMU is responsible for clock then why EMU. Yes, the CMU is for conguration of the clocks, clock-gating and dividers, but the oscillator control also has additional parameters that are decided by the EMU. We would cone to clarity on this soon.

    We have been doing quite a bit of development on low power Cortex-M3 microcontrollers. There were many nice lessons in low power design that we learned on our way. We would like to share this as a series of articles to helpful for making energy efficient designs.

    We are really impressed by the low power features of EFM32 and wish to share a step by step guide in order to finally make a complete system that is more power efficient without compromising on the performance.
     One of the key components of a Microcontroller based system is the clock. This would ultimately decide the amount of switching that would take place inside the microcontroller. Finally the performance through put of the Cortex-M3 is again dependent on the clock, although not completely.
    Thus the first and most important thing in a low power design would be to design the clocks properly and make sure that unused logic on the microcontroller is "clock-gated" when not in use. The term "clock-gating" means that we would prevent the clock from entering a particular peripheral or bus or even the CPU core when its not being used. The reduction in the spurious clock to unused peripherals would result in significant reduction in power consumption due to reduced switching losses.

    Energy Micro Design contest is on, hurry because last date of submission is October,31st 2012. Although entries would be allowed in the second phase but you would surely not like to miss a free EFM32GG-STK3700, if your entry is selected.
     This is the Phase 1 of the contest and in this phase only design ideas need to be entered. Based on the merit of the idea toward "Low Power design using EFM32" the entry would be judged. Then 40 contestants would be chosen to compete in the next round.

    Best of Luck to all Aspirants.
    We were evaluating different IDE's for development with our newly acquired STM32 board that we posted about earlier and a new Stellaris Launchpad . The initial example that we covered was completed in Keil environment. Next we wanted to extend beyond the 32KByte limit imposed by Keil so we need to look for alternatives. Although we were quite happy with coocox IDE, we needed some thing with lot more debugging options. Even though the CCS IDE from TI is good but for older PC's like ours its difficult. This lead us to work with Keil, but under the hood GCC would do the heavy lifting.

    We would explain the process of compiling for thee different ARM Cortex-M3 architectures and all that you would need to get started on that.

    We were trying to get our new STM32 board working and in the pursuit of that we cane to know some interesting insights that are worth sharing.
    This particular board contains the STM32F103VE series chip from ST Microelectronics. This chip is a Cortex-M3 with 72MHz clocking and quite impressive peripheral line up. We did not select this board, rather it was borrowed from one of our close friends. We wanted to evaluate the low power and speed features of this nice Cortex-M3 device.

    Inductive Coupling De-simplified: NFC Antenna

    Saturday, September 22, 2012
    Posted by Boseji
    For a long time we wondered how does inductive coupling works. It not until recently that we had a revelations:
    Φ = v / ω 
    Where,
     v – AC Voltage applied to the Coil 
       [volt = Joules/Coulomb = kg.m²/(Ampere . second³)]
     ω – Angular Frequency [radians/second]
     Φ - Magnetic Flux(Instantaneous) 
       [Weber = Joule . Second / Coulomb = Joule / Ampere = 
       kg.m²/(Ampere . second²)]
    

    This is a very important relationship that shows how magnetic coupling really behaves. Taking it from this result we have the following conclusions:
    1. As the Angular Frequency decreases (ω = 2.π.freq) Flux increases
    2. As AC voltage applied increases then Flux increases
    Hence this principle can be used for a wide variety of applications such as:
    • RF-ID Antenna
    • Inductive Charging
    • NFC
    Well we will now tell you how we came to this equation finally. Thanks to Mr. Francois Pichon for explaining us in such intricate details of this phenomenon.

    Intresting take on 'union' in C Language

    Tuesday, August 28, 2012
    Posted by Boseji
    We were busy developing the next version of the Kicad-tools utility when we came across this interesting piece of C Language tangle.
    Essentially we wanted to have something like this.
    Here the 'a' is1 Byte data and the 'dta' is a bit field made up in an Union.
    typedef struct{
        BYTE a;
        union{
            struct{
                BYTE b0:1;
                BYTE b1:1;
                BYTE b2:1;
                BYTE b3:1;
                BYTE b4:1;
                BYTE b5:1;
                BYTE b6:1;
                BYTE b7:1;
            }bits;
            BYTE dta;
        }combi;
    }ctyp;

    This is the code snippet of the data structure.
    We need to assign this data structure some constant values to hold the configuration bits.

    Cortex-M4F Launchpad: In Making

    Friday, August 3, 2012
    Posted by Boseji
    Another Launchpad in the making, you can get yours free.
    Register in the website to get a Free Stellaris ARM Corext - M4F Launchpad. Hurry as only 25 would be available for this draw. This board would be available by 25th September 2012.
    The initial costing would be $4.30 like the earlier MSP430 Launchpad.

    We have made Stellaris ARM Cortex-M4F Launchpad wish List:
    • Same form factor as MSP430 Launchpad
    • Free Code Composer Studio like C2000
    • JTAG header for external target debugging
    Here is an updated video:
    video platformvideo managementvideo solutionsvideo player  
    Welcome to My Blog

    Follow by Email

    Welcome

    Creation by Electronics Hobbyists from Bharat(India) to encourage & help people. This blog hosts the numerous innovations, discoveries and projects we provide.
    Our Research Wing Adhar Labs
    Contact Form | Email Address
    We Support Open Source Hardware Definition v1.0
    Creative Commons License
    All works on this blog are licensed under a
    Creative Commons Attribution-ShareAlike 3.0 Unported License.
    Based on a work at forbharat.wordpress.com and m8051.blogspot.com.

    Permissions beyond the scope of this license may be available at http://forbharat.wordpress.com/permissions/.
    Thank you for all your support.

    Popular Post

    © A.D.H.A.R Labs Research 2008-2013 . Powered by Blogger.

    Followers

    PCB Unit Converter

    mils
    mm

    - Copyright © Electronics for Bharat -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -