Bus Pirate test

March 20th, 2011 No comments

Neko noč (neprespan) sem naročil novo igračko, ki nosi ime Bus Pirate, in predstavla povezljivost med računalnikom (USB) in kar precej drugimi protokoli (1-Wire, UART, I2C, SPI, JTAG, raw 2-wire, raw 3-wire, HD44780 LCDs, MIDI)

Ploščica, z kablom škatlico in poštnino, stane cca 30eur pri seeedstudiu.

Za prvi test sem uporabil RFID bralec (125kHz, link), ki podatke pošilja prek UART-a. Povezal sem RX in TX pine, ter napajanje (+5V) 1

Bus Pirate se (po povezavi z USB kablom) računalniku pokaže kot serijski vmesnik, v mojem primeru na /dev/ttyUSB0. Po odprtju porta (screen /dev/ttyUSB0 115200), in nekah pritiskih na tipko Enter, vidimo ukazno vrstico:

HiZ>

ki nam omogoča upravljanje z napravo. Ukazni način, čeprav morda malo neudoben, naredi napravo precej enostavno za uporabo. Če pritisnemo '?' in tipko enter, dobimo pomoč:

General                                 Protocol interaction
---------------------------------------------------------------------------
?       This help                       (0)     List current macros
=X/|X   Converts X/reverse X            (x)     Macro x
~       Selftest                        [       Start
#       Reset                           ]       Stop
$       Jump to bootloader              {       Start with read
&/%     Delay 1 us/ms                   }       Stop
a/A/@   AUXPIN (low/HI/READ)            "abc"   Send string
b       Set baudrate                    123
c/C     AUX assignment (aux/CS)         0x123
d/D     Measure ADC (once/CONT.)        0b110   Send value
f       Measure frequency               r       Read
g/S     Generate PWM/Servo              /       CLK hi
h       Commandhistory                  \       CLK lo
i       Versioninfo/statusinfo          ^       CLK tick
l/L     Bitorder (msb/LSB)              -       DAT hi
m       Change mode                     _       DAT lo
o       Set output type                 .       DAT read
p/P     Pullup resistors (off/ON)       !       Bit read
s       Script engine                   :       Repeat e.g. r:10
v       Show volts/states               .       Bits to read/write e.g. 0x55.2
w/W     PSU (off/ON)            //<0>   Usermacro x/assign x/list all

Prvo vključimo napajanje (W), in s tipko 'm', izberemo 3 (UART), 5 (9600), in ostale nastavitve pustimo na privzetih:

HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)

(1)>3
Set serial port speed: (bps)
 1. 300
 2. 1200
 3. 2400
 4. 4800
 5. 9600
 6. 19200
 7. 38400
 8. 57600
 9. 115200
10. BRG raw value

(1)>5
Data bits and parity:
 1. 8, NONE *default
 2. 8, EVEN
 3. 8, ODD
 4. 9, NONE
(1)>
Stop bits:
 1. 1 *default
 2. 2
(1)>
Receive polarity:
 1. Idle 1 *default
 2. Idle 0
(1)>
Select output type:
 1. Open drain (H=Hi-Z, L=GND)
 2. Normal (H=3.3V, L=GND)

(1)>
Ready
UART>

Podobno lahko nastavimo katerikoli drugi protokol (seveda nastavitve, ki jih protokol podpira). Sedaj pritisnemo tipko '{', ki začne z branjem, in čitalcu približamo kartico.

UART>
READ: 0x02
READ: 0x30
READ: 0x38
READ: 0x30
READ: 0x30
READ: 0x44
READ: 0x42
READ: 0x35
READ: 0x44
READ: 0x46
READ: 0x34
READ: 0x37
READ: 0x41
READ: 0x03
UART>

Tako vidimo na kartici zapisano kodo, ki jo čitalec pošlje.  Če bi namesto rfid čitalca uporabil napravo ki tudi kaj 'posluša', bi ji lahko pošiljal poljubne podatke.

Zanimiv feature je tudi preverjanje napetosti na pinih:

Pinstates:
1.(BR)  2.(RD)  3.(OR)  4.(YW)  5.(GN)  6.(BL)  7.(PU)  8.(GR)  9.(WT)  0.(Blk)
GND     3.3V    5.0V    ADC     VPU     AUX     -       TxD     -       RxD
P       P       P       I       I       I       I       I       I       I
GND     3.31V   5.15V   0.00V   0.00V   L       L       H       L       H

 

 

Naslednja stvar (tj. eden izmed mnogih TODO-jev) je stestirati SPI na smart kartici!

  1. Pinouti so v datasheetih

Debian in the sky

December 6th, 2010 1 comment

Sicer sem prepozno opazil, da bi moral slikati z druge strani... a vseeno... :)

Ljubljana, 3.12. 2010:

edit (7.12.2010):

Slikano še s prave strani:

Categories: geek stuff Tags: , , ,

Enkripcija celotne particije

November 27th, 2010 No comments

Ker so usb ključki vse manjši, in jih je vse lažje izgubiti, je včasih dobro da so podatki na njih kriptirani. Podobno velja za prenosnike, ki jih je sicer težje izgubiti, a so zato toliko bolj privlačni za krajo.

Najbolj primerna metoda enkripcije, je kar uporabiti LUKS, ki zna zakriptirati celo particijo 1, a žal ne podpira skritih particij2. Zanj potrebujemo cryptsetup, ki je ponavadi že del priljubljene linu distribucije3.

Jaz bom v tem primeru formatiral prvo particijo "drugega diska" (/dev/sdb1, torej usb ključ), z ukazom

cryptsetup -s 256 luksFormat /dev/sdb1

Zastavica  '-s 256' nastavi velikost ključa na 256 bitov (torej aes256 namesto privzetega aes128).   Program nas vpraša za potrditev (vpišemo YES), in dvakrat za geslo. Seveda naš novonarejeni container nima ustvarjenege filesystema4. Pred ustvarjanjem le tega, moramo seveda container odkleniti - z ukazom:

cryptsetup luksOpen /dev/sdb1 mojusb

ki po vpisanem geslu postavi odklenjeno vsebino v /dev/mapper/mojusb5. Sedaj lahko ustvarimo filesystem, in ga mountamo:

mkfs.ext4 /dev/mapper/mojusb
mount /dev/mapper/mojusb /mnt/hd/

Sedaj na ključek prenesemo podatke.

Seveda po končanem delu treba ključek odklopiti, in nazaj "zakleniti", kar storimo z:

umount /mnt/hd/
cryptsetup luksClose mojusb

Sedaj lahko ključek odstranimo, in tudi če ga zgubimo, bodo podatki na njem varni6

Torej procedura: luksOpen, mount, delo s podatki, umount, luksClose

Disclaimer: če si ponesreči sformatiraš home particijo, in uničiš edino verzijo doktorata, ki si ga pisal zadnjih pet let, ali pa uničiš pomembne poslovne dokumente, jaz za to ne odgovarjam... in ne, ne vem kako povrniti 1500 izbrisanih txt fajlov, tako da bi se ohranila imena datotek... hvala.

  1. kar je dobro ker se skrijejo podatki o številu in velikosti datotek na njej
  2. truecrypt
  3. na gentoo-ju emergeamo sys-fs/cryptsetup
  4. datotečnega sistema?
  5. namesto "mojusb" lahko uporabimo katerokoli besedo, le v /dev/mapper ne sme obstajati naprava z istim imenom
  6. toliko kolikor je varno geslo... oziroma: xkcd

Uptime: 1e3!

November 5th, 2010 No comments

I know, I'm a geek:

mulaz@lilly ~ $ uptime
 17:39:52 up 1000 days,  8:22,  1 user,  load average: 0.19, 0.07, 0.02
Categories: geek stuff Tags: , ,

Ko te Kitajci (spet) prehitijo...

October 22nd, 2010 No comments

Pred kratkim sem pisal o homemade varianti poceni 3D kamere... in ker sem imel dosti drugega dela (faks, služba, absolventski izlet,...) nisem uspel kamer fiksno pritrditi ter skalibrirati, kaj šele porihtati testni software...

In kaj me danes čaka med novimi izdelki na DealExtreme-u?

Seveda.. 3D kamera, narejena iz dveh webcamov... seveda že skalibrirana, s softwarejem in s priloženimi očali...

No ja.. vsaj tolažim se lahko s full HD resolucijo ki jo tista webcama podpirata :/

Categories: geek stuff, rant Tags: , , , ,

Plasma ball fun

September 17th, 2010 No comments

10.44 usd, en USB priključek, in ogromno zabave :)

Categories: elektro stuff, geek stuff Tags: , , , ,