Blinkentree

From syn2cat - HackerSpace.lu
(Difference between revisions)
Jump to: navigation, search
(How to programm it on your own?)
Line 19: Line 19:
 
'''''Hacky Christmas!'''''
 
'''''Hacky Christmas!'''''
  
== How to programm it on your own? ==
+
== How to programm it on your own? ==
  
We designed our Blinkentree in a way you can customize it by yourself. You can define your own flashing patterns using the C language that you can transfer to your chip using the USBasp programmer.
+
We designed our Blinkentree in a way you can customize it by yourself. You can define your own flashing patterns using the C language that you can transfer to your chip using the USBasp programmer.  
  
Installing and confguring the tools
+
=== Installing and confguring the tools ===
  
 
This section describes what you need to program the chip. First you need the toolchain with the compiler which translates your program text into bits and bytes that the controller can execute. We are using the GCC compiler  
 
This section describes what you need to program the chip. First you need the toolchain with the compiler which translates your program text into bits and bytes that the controller can execute. We are using the GCC compiler  
  
http://winavr.sourceforge.net/
+
http://winavr.sourceforge.net/  
  
http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download
+
http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download  
  
Coding
+
=== Coding ===
  
#include <avr/io.h>
+
<pre>
#include <util/delay.h>
+
#include &lt;avr/io.h&gt;
 +
#include &lt;util/delay.h&gt;
  
int main(void) {
+
int main(void) {  
  
 
     // configure the ports as outputs  
 
     // configure the ports as outputs  
Line 54: Line 55:
 
             _delay_ms(400);
 
             _delay_ms(400);
 
     }
 
     }
}
 
Compiling and linking¶         
 
  
After you're done with the programming, the code must be translated into machine code that can be executed by the microcontroller.
+
}
       
+
</pre>
avr-gcc -Wall -Os -std=c99 -DF_CPU=1000000 -mmcu=attiny2313 -c main.c -o main.o
+
avr-gcc -Wall -Os -std=c99 -DF_CPU=1000000 -mmcu=attiny2313 -o main.elf main.o
+
avr-objcopy -O ihex -R .eeprom main.elf main.hex
+
       
+
You can use the compile.sh script.
+
       
+
Setting the fuse bits
+
  
Before the compiled code can be loaded into the microcontroller it must be configured  first. This is done by setting the fuse bits. Thus you execute the following line:
+
=== Compiling and linking ===
       
+
sudo avrdude -cUSBasp -p t2313 -U lfuse:w:0x64:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
+
       
+
There are three fuse bytes ( = 24 bits in total).  collection of bits stands for a  base or a module configuration (Fuse Bits, page 160). Use the fusecalc  to be sure to have the right ones.
+
+
Flashing the microcontroller
+
  
 +
After you're done with the programming, the code must be translated into machine code that can be executed by the microcontroller.
 +
 +
<pre>
 +
avr-gcc -Wall -Os -std=c99 -DF_CPU=1000000 -mmcu=attiny2313 -c main.c -o main.o avr-gcc -Wall -Os -std=c99 -DF_CPU=1000000 -mmcu=attiny2313 -o main.elf main.o avr-objcopy -O ihex -R .eeprom main.elf main.hex
 +
</pre>
 +
 +
You can use the compile.sh script.
 +
 +
=== Setting the fuse bits ===
 +
 +
Before the compiled code can be loaded into the microcontroller it must be configured first. This is done by setting the fuse bits. Thus you execute the following line:
 +
 +
<pre>
 +
sudo avrdude -cUSBasp -p t2313 -U lfuse:w:0x64:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
 +
</pre>
 +
 +
There are three fuse bytes ( = 24 bits in total). collection of bits stands for a base or a module configuration (Fuse Bits, page 160). Use the fusecalc to be sure to have the right ones.
 +
 +
=== Flashing the microcontroller ===
 +
 +
<pre>
 
sudo avrdude -c USBasp -p t2313 -U flash:w:main.hex -v -F
 
sudo avrdude -c USBasp -p t2313 -U flash:w:main.hex -v -F
 +
</pre>
  
 
== References ==
 
== References ==
  
 
[Facebook Fan Page]
 
[Facebook Fan Page]

Revision as of 20:05, 6 December 2010

UNDER CONSTRUCTION

Add your Project
Crystal Project package graphics.png
Blinkentree
zaeqfd
G8033.png
Meetings: none
Type: hardware


Status: running
Members:
Contact Person: slopjong (mail), prometheus (mail)
Tools
QrCode: QR-b1e7acf6b9edc7f5b6025eab63cef96d.png

"File:" cannot be used as a page name in this wiki.


Contents

Introduction

What is this flashing green fir tree about?

As hackerspaces are places with creative hackers, we thought it would be necessary to support the Christmas market of the commune of Strassen with something tiny, but creative. Result? The Blinkentree. Obviously it represents a green fir tree that is dorned with flashing LEDs which should represent the baubles of a 'real' tree.

A big thanks to all of you folks who purchsed a Blinkentree and thus supporting syn2cat Hackerspace.


Hacky Christmas!

How to programm it on your own?

We designed our Blinkentree in a way you can customize it by yourself. You can define your own flashing patterns using the C language that you can transfer to your chip using the USBasp programmer.

Installing and confguring the tools

This section describes what you need to program the chip. First you need the toolchain with the compiler which translates your program text into bits and bytes that the controller can execute. We are using the GCC compiler

http://winavr.sourceforge.net/

http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download

Coding

#include <avr/io.h> 
#include <util/delay.h>

int main(void) { 

    // configure the ports as outputs 
    DDRD = 0xFF;
    DDRB = 0xFF;
    
    while(1)
    {
            PORTB = 255;
            PORTD = 0;
            
            _delay_ms(400);
            
            PORTB = 0;
            PORTD = 255;
            
            _delay_ms(400);
    }

} 

Compiling and linking

After you're done with the programming, the code must be translated into machine code that can be executed by the microcontroller.

avr-gcc -Wall -Os -std=c99 -DF_CPU=1000000 -mmcu=attiny2313 -c main.c -o main.o avr-gcc -Wall -Os -std=c99 -DF_CPU=1000000 -mmcu=attiny2313 -o main.elf main.o avr-objcopy -O ihex -R .eeprom main.elf main.hex 

You can use the compile.sh script.

Setting the fuse bits

Before the compiled code can be loaded into the microcontroller it must be configured first. This is done by setting the fuse bits. Thus you execute the following line:

sudo avrdude -cUSBasp -p t2313 -U lfuse:w:0x64:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m 

There are three fuse bytes ( = 24 bits in total). collection of bits stands for a base or a module configuration (Fuse Bits, page 160). Use the fusecalc to be sure to have the right ones.

Flashing the microcontroller

sudo avrdude -c USBasp -p t2313 -U flash:w:main.hex -v -F

References

[Facebook Fan Page]

Personal tools
Namespaces

Variants
Actions
Navigation
syn2cat
Hackerspace
Activities
Initiatives
Community
Tools
Tools