Nugroho's blog.

Monday, May 25, 2015

ATTiny13A Arduino

ATTiny is ... well, tiny. Not very suitable to programed it on arduino. Nevertheless, I decided to do it.



Create ‘hardware’ folder in Arduino sketch folder, unzip the file.
Download the Smeezekitty core, http://sourceforge.net/projects/ard-core13/files/latest/download

Unzip it, copy the files, paste in …/hardware/attiny/avr/variants/core13/ (if folder didn’t exist, create it)
edit the boards.txt files at
…/hardware/attiny/avr/boards.txt
boards.txt
menu.cpu=Processor
menu.clock=Clock
attiny.name=ATtiny
attiny.bootloader.tool=arduino:avrdude
attiny.bootloader.unlock_bits=0xff
attiny.bootloader.lock_bits=0xff
attiny.build.core=arduino:arduino
attiny.build.board=attiny
attiny.upload.tool=arduino:avrdude
#attiny.upload.tool=usbasp

#################################################
attiny.menu.cpu.attiny13=ATtiny13
attiny.menu.cpu.attiny13.upload.maximum_size=1024
attiny.menu.cpu.attiny13.build.mcu=attiny13
attiny.menu.cpu.attiny13.build.variant=core13

attiny.menu.clock.internal96=9.6MHz (internal)
attiny.menu.clock.internal96.bootloader.low_fuses=0x7A
attiny.menu.clock.internal96.bootloader.high_fuses=0xff
attiny.menu.clock.internal96.build.f_cpu=9600000L

################################################

attiny.menu.clock.internal48=4.8MHz (internal)
attiny.menu.clock.internal48.bootloader.low_fuses=0x79
attiny.menu.clock.internal48.bootloader.high_fuses=0xff
attiny.menu.clock.internal48.build.f_cpu=4800000L
################################################


avrdude give the error because my downloader need -B4 option (I installed new bootloader, flash it, remove auto sck, so the avrdude warning gone)

In order to be able to upload it to ATTiny13A, we have to edit the file.

Macintosh HD/Applications/Arduino/Contents/Java/Hardware/arduino/avr/programmers.txt

edit it


usbasp.name=USBasp
usbasp.communication=usb
usbasp.protocol=usbasp
usbasp.program.protocol=usbasp
usbasp.program.tool=avrdude
usbasp.program.extra_params=-Pusb -B4


start arduino IDE

it give firewall warning

so 

undo the edit or reinstall the arduino

create programmers.txt in the same folder with  boards.txt


usbasp.name=USBaspN
usbasp.communication=usb
usbasp.protocol=usbasp
usbasp.program.protocol=usbasp
usbasp.program.tool=avrdude
usbasp.program.extra_params=-Pusb -B4


we use USBaspN 


Blink without delay,  


const int ledPin =  1;      // the number of the LED pin
int ledState = LOW; // ledState used to set the LED
unsigned long previousMillis = 0; // will store last time LED was updated
const long interval = 1000; // interval at which to blink (milliseconds)
void setup() {
pinMode(ledPin, OUTPUT);
}

void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(ledPin, ledState);
}
}


For some reason, the delay on LED seem longer than 1 s (but it worked).  Maybe it’s the same reason the blink example (with delay.) didn’t work



. .













Android Studio on My OS X Yosemite


Well, a picture is worth thousand words.

So, here the millions words for you, :)
































Previously I went to Android website to install Eclipse with ADT. I installed this Android Studio instead; on my Macbook Air wit OS X Yosemite. 

Oh yeah, you maybe encountered the error about JDK 7. I have to manually point to my JDK 7 installation.

My FreeBSD Installation LeftOver


Didn't really remember the chronology. It use Parallel Desktop. It use VirtualBox too.



















Tak ada yang berbeda antara FreeBSD ini dengan yang lain, jika telah terbiasa dengan Linux atau Unix lain, bahkan Apple OS X, maka kita dapat melihat bahwa Beastie ini (nama logo BSD) sama dengan semua sistem itu. 

The Rock Solid UNIX. :)


Friday, May 22, 2015

Buttered Black Coffee


   
Alfa suka teh mentega kambing gunung.
Penasaran, tapi gak suka teh, dan meski bukan yak, di sini ada banyak kambing, tapi gak ada mentega dari susu kambing. 

Jadi, teh diganti kopi, dan mentega nak diganti dengan mentega roti. 

Enak, bagiku, tapi tidak kusarankan tuk meniru. 

Aku yakin po cha tidak seperti ini. 

:)



.

Thursday, May 21, 2015

Serial Communication at ATTiny13A (#3)

Since we need to set the baud rate. We have to use either manual delay or timer interrupt.

For now, I am trying using manual delay.



Check whether the Pin B0 is blinking using this code

.include "../tn13Adef.inc"
.cseg
.org 0x00
ldi r16, 0b00000001
out ddrb,r16
loop:
ldi r17,0xff
ldi r18,0xff
sbi PORTB,0
rcall delay
cbi PORTB,0
rcall delay
rjmp loop
delay:
dec r17
brne delay
dec r18
brne delay
ret




yup, it is





Serial Communication at ATTiny13A (#2)


To send  bit data, we need 10 bit.

0(start)-8bit-1(stop) so r17 now has value 10


.include "../tn13Adef.inc" 
.cseg
.org 0x00
rjmp start 

start:
    ldi r16, 0x6D 
    ldi r17, 10 
shiftData:
    cpi r17, 10 
    breq low 
    cpi r17, 1
    breq high
    lsr r16
    brcs high
low:
    cbi PORTB, PB0 
    rjmp sent
high:
    sbi PORTB, PB0 
sent:
    dec r17 
    breq start 
    rjmp shiftData 


Nugrohos-MacBook-Air:serial nugroho$ avra -o serialTX.hex serialTX.s
AVRA: advanced AVR macro assembler Version 1.3.0 Build 1 (8 May 2010)
Copyright (C) 1998-2010. Check out README file for more info

AVRA is an open source assembler for Atmel AVR microcontroller family
It can be used as a replacement of 'AVRASM32.EXE' the original assembler
shipped with AVR Studio. We do not guarantee full compatibility for avra.

AVRA comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of avra under the terms
of the GNU General Public License.
For more information about these matters, see the files named COPYING.

Pass 1...
Pass 2...
done

Used memory blocks:
Code : Start = 0x0000, End = 0x000E, Length = 0x000F

Assembly complete with no errors.
Segment usage:
Code : 15 words (30 bytes)
Data : 0 bytes
EEPROM : 0 bytes
Nugrohos-MacBook-Air:serial nugroho$ vavrdisasm serialTX.s.hex
0: c0 00 rjmp .+0 ; 0x2
2: e6 0d ldi R16, 0x6d
4: e0 1a ldi R17, 0x0a
6: 30 1a cpi R17, 0x0a
8: f0 21 breq .+8 ; 0x12
a: 30 10 cpi R17, 0x00
c: f0 11 breq .+4 ; 0x12
e: 95 06 lsr R16
10: f0 10 brcs .+4 ; 0x16
12: 98 c0 cbi $18, 0
14: c0 01 rjmp .+2 ; 0x18
16: 9a c0 sbi $18, 0
18: 95 1a dec R17
1a: f3 99 breq .-26 ; 0x2
1c: cf f4 rjmp .-24 ; 0x6
Nugrohos-MacBook-Air:serial nugroho$

.
323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)