Single Board Computers- The Arduino YUN Review

SBC

Prelude

Hackers and hobbyists have used the arduino for a diverse number of projects and have made it a very popular. Its simple to use and easy to program. For people who have a slightly ‘more’ requirement, ARM based single boards came into the market. Initially the ARM boards were tougher to build and program and costlier to make. In order to fully exploit the power of a 32-bit processor, the Linux Kernel was ported to the fanless ARM systems making the Single Board Computers. The OS was stored on either an SD Card or an EEPROM. This new class of boards had the familiar OS system of a regular PC and the digital and analog outputs of the arduino but at a slightly higher cost. Additionally they had varying performance but they started to add something more- peripherals! Keyboard, then Ethernet, then Bluetooth and Wifi- the list goes on. In this article we discuss the Arduino YUN and what exactly it is. Continue reading “Single Board Computers- The Arduino YUN Review”

Using Eclipse with Arduino on Windows: Uploading and Compiler Flags

Arduino IDE project used library

There is a segment at http://arduino.cc/playground/Code/Eclipse about how to use the arduino IDE project library. I am basically rewriting it like I did it.

Step 1: Verify that you have downloaded the Arduino-0023

In the Last tutorial we had made sure that our downloaded core and files were in place and that eclipse IDE was configured and ready. I saved it at G:\arduino-0023 and will refer to that. This is the preferred method.

Run the Arduino IDE and select File > Example > Basic > Blink as shown below.

image

This will bring up a window with a sample project ready. press the play button and it will compile. Now we find the core.a file. In windows explorer, navigate to C:\Users\Inderpreets\Appdata\Local\Temp where you replace Inderpreets with your windows username and search for core.a Copy this file to your Desktop and we will come back to it in a few minutes.

Step 2: New Project in Eclipse

Start Eclipse and select File > New > C++ Project Fill in the blanks as

image

In the next page, Deselect Debug and Press next. For arduino UNO select atmega328p as the processor and frequency of 16000000Hz.( 16 000 000 no spaces) Click Finish.

Now right click the Blinky01 project and select new source file. I usually use main.cpp as the file name. A new source file will pop up with a few lines of comment. Now for your program.

First we include the WProgram.h file because that adds all necessary headers automatically. Copy the code below.

/*
* main.cpp
*
*  Created on: Jan 31, 2012
*      Author: Inderpreets

*/

#include <Wprogram.h>

// This method is used for init of vars and stuff- run once
void setup(){

pinMode(13, OUTPUT);
}

//This run over and over again
void loop(){

digitalWrite(13, HIGH);   // set the LED on
delay(500);              // wait for a second
digitalWrite(13, LOW);    // set the LED off
delay(100);              // wait for a second

}
int main(){

// init must be called
init();
setup();

for(;;){
loop();
} //end for
}// end main

Save.

Step 3: Project Properties

At this point the IDE will point out that a lot of file and references are missing… So we help it find them. Go to your desktop and copy the core.a file. In eclipse right click the blinky01 project and select paste.

image

Next, right click the blinky01 project and select properties.

Go to C/C++ build > settings as shown

image

Go to AVR Compiler > Directories and click the add button. A pop up will ask for the directory paste this: “G:\arduino-0023\hardware\arduino\cores\arduino” with the quotes but replace path where applicable. Do the same with AVR C++ Compiler> Directories. image

Now Select AVR C++ Linker and select Objects.

image

Add the object from the workspace as shown above.

At this point you can pretty much click OK  OK and build and will be OK. However there are a few extras you should do for other projects like compiler flag settings etc which I will discuss in a different article…

Right now the build should be OK by right-clicking the project and build project and should be error free… How to upload the code to the UNO is a simple matter and is again covered in a separate article.

Cheers

Using Eclipse with Arduino on Windows: Method 2

You can compile your own static library in Eclipse. The best way is to create this as a library project, and to define a build configuration for each combination of AVR CPU and clock frequency you have.

Continue reading “Using Eclipse with Arduino on Windows: Method 2”

Using Eclipse with Arduino on Windows: Method 1

Arduino IDE project used library

There is a segment at http://arduino.cc/playground/Code/Eclipse about how to use the arduino IDE project library. I am basically rewriting it like I did it.

Continue reading “Using Eclipse with Arduino on Windows: Method 1”

Using Eclipse with Arduino on Windows: Basic Setup

First things first. At the time of this writing the arduino 1.0 release was available but since there were a lot of people including myself who were having problems with the damn thing, I decided it was best to go with the available and working. There are so many tutorials out there on how to do this so if you don’t like mine, please feel free to complain but I must warn you I won’t be updating this article since it works for me.

Continue reading “Using Eclipse with Arduino on Windows: Basic Setup”

DIY remote shutter release for Canon 1000D, 400D, 450D, 550D, 600D

DIY Cable Release
DIY Cable Release
DIY Cable Release

If you have ever read a photography article or book about getting sharp pictures you would know that there is always a section about using remote shutter releases. The IR remote shutter releases are more popular online while professionals rely on using the good old cable ones. So I went online to find out what a simple cable and plug with switch would cost? The cheapest one was for 900INR which is a lot to ask for just a piece of wire. I can do better. 🙂 So I decided I would make my own.

Continue reading “DIY remote shutter release for Canon 1000D, 400D, 450D, 550D, 600D”

Adding Password Protection to Your Embedded Project

Password Screen

Introduction

Password Screen
Enter Password

Passwords and such small bits and pieces of information are generally stored in eeproms in digital systems. While developing such a system the general methodology is that the user is made to enter a predefined length of characters which is encrypted using an algorithm and a key. This encrypted password is then stored into the eeprom or similar memory.

The alternative approach is to use a hash function. The hash function converts the large data into a small datum and this value is called a hash value. Cryptographic hash has certain properties. The ideal cryptographic hash function has four main or significant properties:

  • it is easy (but not necessarily quick) to compute the hash value for any given message
  • it is infeasible to generate a message that has a given hash
  • it is infeasible to modify a message without changing the hash
  • it is infeasible to find two different messages with the same hash

A very popular example is the MD5 or Message Digest 5 hash. These are commonly used to verify the integrity of messages and even files.

Continue reading “Adding Password Protection to Your Embedded Project”