Tuesday, June 18, 2013

Got working Arduino Pro Mini for Home Automation work - 1

For my home automation projects, I have been doing lots of R&D on various factors like:

  • Low cost MCU and MCU related board (commercially available)
  • Low power consumption in deep sleep (may not be the best , but reasonable low current consumption, so that MCU can withstand power outages)
    • Lots of cheap boards are there. For the time being I have chosen following Arduino boards
  • Cheap availability of wireless connectivity solutions
    • Bluetooth 4.0
      • In coming future, I would be using BLE-Soc chips likeNordic nrf51822 and TI's cc2540 & cc2541 -- as we have cheap assembled boards at various internet shops (like alibaba, dealsextreme, ebay, etc) .These boards typically come for 6 to 12$ 
    • Zigbee
      • I tried initially, but their board's cost is high very high  even at above shops and difficult solder because of QFN-soldering, wireless antenna's design, etc.
    • Proprietary wireless protocol
      • I found Nordic radio transceiver NRF24L01+ at 2.4GHz spectrum at following site for around 1$ per board
  • Free compiler, open source libraries & knowledge base in net.  If not free some trial based compiler for doing R&D (like cc254x chips).
Arduino fits the bill, but their overall solution costs more than 15 to 20$ before an year back (with my research at that point of time). So I dropped Arduino idea and looking for other solutions. Recently I casually browsed Alibaba site and found that I can get a reasonably powered Ardunio for less than 5$ and wireless connectivity for another 1$. So brought these items and finally started doing first helloworld on this boards. 

Here are pictures for  this board
This is for connecting this board with typically USB-to-Serial-Dongle(Prolific based) and correpsonding RS232 TTL convertor



This is showing minimal connections needed for powering and burning the program to Arduino. These yellow wires do connect to above USB-RS232-Dongle (RX & TX appropriately)


Board view from top view with an empty board on side


Connections from Arduino Board to RS232

Please ensure that you connect serial port cross-connection like following:

  • Board-Longer-Side RXI to RS232 TX
  • Board-Longer-Side TXD to RS232 RX

Arduino IDE Options

  • Select proper Serial port
  • Select  board as either of these boards. For my both voltages have worked out
    • 'Arduino Prop or Pro Mini (5V, 16MHz) w/ Atmega328'
    • 'Arduino Prop or Pro Mini (3.3 V, 8MHz) w/ Atmega328'
  • Select Programmer as 'Arduino as ISP'

Actions need to be taken while pressing Upload from IDE

  • As current setup does not use DTR/RTS on RS232 and only uses RX/TX (from USB to Rs232 converter), we need to press reset button just before the flashing (i.e., when console logs shows lines something like following in verbose-burning-mode-preferences) 
 Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 

Problems/Issues faced

Serial Port not detected in Linux

Run as root, then the Arduino IDE recognizes the Serial port . Select appropriate serial port from output of 'dmesg' command in linux.

Flashing Issues

  • After selecting the board as 'Arduino Prop or Pro Mini (5V, 16MHz) w/ Atmega328' and correct serial port. After trying to flash image to board has given following error messages.

Binary sketch size: 2,654 bytes (of a 30,720 byte maximum)avrdude: stk500_recv(): programmer is not responding

  • Now enable the verbose upload option via File -- Preference --'Show verbose output during'  = 'burning' .
    • After this step , I got following messages
Binary sketch size: 2,654 bytes (of a 30,720 byte maximum)
**/arduino-1.0.5/hardware/tools/avrdude -C/opt/arduino-1.0.5/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build5308589158935848821.tmp/ASCIITable.cpp.hex:i 

avrdude: Version 5.11, compiled on Sep  9 2011 at 16:00:41
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "**/arduino-1.0.5/hardware/tools/avrdude.conf"
         User configuration file is "***/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

avrdude done.  Thank you.
    • Another error which slightly different at end
         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: . [00] 
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.
  • As this not typical USB based driver (which is available in little costlier Arduino boards) and I am using hard coded RS232 wiring, I tried to flash the image by pressing the reset button on the board. This made the flashing to occur successfully. Actually if we reset the board, MCU waits for flashing-data from RX/TX pins few seconds. If no  recognized flashing data comes to RX/TX pins, MCU will boot with previous programm that is there in flash. One has to find appropriate time to press reset button -- this timing can be assisted by putting verbose-burning-option.
  • So successful flash sequence is shown as:
Binary sketch size: 2,654 bytes (of a 30,720 byte maximum)
***/arduino-1.0.5/hardware/tools/avrdude -C***/arduino-1.0.5/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build5308589158935848821.tmp/ASCIITable.cpp.hex:i 

avrdude: Version 5.11, compiled on Sep  9 2011 at 16:00:41
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "***/arduino-1.0.5/hardware/tools/avrdude.conf"
         User configuration file is "***/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
         AVR Part                      : ATMEGA328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
avrdude: Send: A [41] . [80]   [20] 
.....
         Hardware Version: 2
         Firmware Version: 1.16
avrdude: Send: A [41] . [84]   [20] 
..............
avrdude: Recv: . [10] 
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20] 
.......
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: u [75]   [20] 
avrdude: Recv: . [14] . [1e] . [95] . [0f] . [10] 
################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
.................
.................
avrdude: Recv: . [10] 
###avrdude: Send: U [55] . [00] . [05]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 
avrdude: Send: t [74] . [00] ^ [5e] F [46]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [ee] . [0f] . [ff] . [1f] . [05] . [90] . [f4] . [91] . [e0] - [2d] . [09] . [94] . [f8] . [94] . [ff] . [cf] A [41] S [53] C [43] I [49] I [49]   [20] T [54] a [61] b [62] l [6c] e [65]   [20] ~ [7e]   [20] C [43] h [68] a [61] r [72] a [61] c [63] t [74] e [65] r [72]   [20] M [4d] a [61] p [70] . [00] , [2c]   [20] d [64] e [65] c [63] : [3a]   [20] . [00] , [2c]   [20] h [68] e [65] x [78] : [3a]   [20] . [00] , [2c]   [20] o [6f] c [63] t [74] : [3a]   [20] . [00] , [2c]   [20] b [62] i [69] n [6e] : [3a]   [20] . [00] ! [21] . [00] . [00] . [00] . [00] . [00] . [95] . [03] . [c8] . [00] + [2b] . [03] \ [5c] . [03] < [3c] . [03] . [85] . [03] 
avrdude: Recv: . [10] 
## | 100% 0.59s

avrdude: verifying ...
avrdude: 2654 bytes of flash verified
avrdude: Send: Q [51]   [20] 
avrdude: Recv: . [14] 
avrdude: Recv: . [10] 

avrdude done.  Thank you.




So with minimal booting is done with this board, next step is to connect Nordic Wireless chips and try wireless connectivity.


19 comments:

  1. Nice post, thanks for sharing. Wireless home automation system is most demanding in todays world.

    ReplyDelete
  2. Emedkit are a global pharmaceutical company whose mission is to advance the well-being of people around the world especially in countries like India, USA, Russia, Romania, Peru, and China. Our products include treatments for diseases such as Ledifos tablets, HIV/AIDS, Cancer, Hepcinat Lp tablets, Cancer Medicine. We provide our products at the lowest possible price as we stock bulk qualities and we deal both in drop shipping and bulk shipping.

    Buy Hepcinat Lp tablets Online
    Liver Cancer Medicine
    Buy Gefitinib Tablet

    ReplyDelete
  3. Love problem solution is the biggest issue of today’s generation. They don’t know how to handle this, it makes them feel like a hell, they try to act stupid and suddenly their life turns from happy to the Grey world.

    Love problem solution

    Love problem solution in Bangalore

    Love problem solution in Canada

    Love problem solution in Chandigarh

    Love problem solution in Delhi

    Love problem solution in India

    Love problem solution in Italy

    Love problem solution in Mumbai

    Love problem solution in UAE

    ReplyDelete
  4. This article is really useful and informative. I was looking for this information today

    and found so many pieces of content on the internet in which I would say this is really

    helpful. I contacted I See Media three months back and taken their social media

    services which lead my business to have a good value through social media.


    marketing through social media in london

    marketing through social media

    in london


    marketing through social media in

    london


    marketing through social media

    in london


    marketing through social media in london

    marketing through social

    media in london


    marketing through social media in

    london



    ReplyDelete
  5. There are many small asset management firms involved in managing the financial assets for business enterprises all around the world. A wealthy retiree would instinctively be finding new ways to invest and multiply profits within a short or long term. It is significant that thy search good sources that are capable of giving the right information and adequate returns on their investments. The investment management companies London are capable of rendering advice in case of gold, shares, mutual funds, and other financial needs.

    small asset management firms London

    investment management companies London

    financial advisory firms london

    boutique advisory firms

    london


    boutique investment firms london

    investment business london

    investment boutique london

    investment

    company london


    london investment group

    small asset management firms London


    ReplyDelete
  6. Great post. Keep sharing amazing content like this

    Also checkout some interesting content from below links

    Canva Alternatives
    Continually Review
    Bluehost Cyber Monday Sale

    ReplyDelete
  7. Looking for a Best SEO company in Delhi NCR IIS India provides oriented, distinctive and reliable services for enhancing the presence of business online and fulfill the sales demand.

    ReplyDelete