23. dubna 2014

ARDUINO UNO DDS Shield verze 1.1

Před pár měsící jsem zde popsal DDS shield pro Arduino UNO. Teď je k dispozici nová verze, která přináší několik vylepšení. By přidán jumper JP2 pro uvolnění externího přerušení. Na tento problém, jsem narazil při vývoji SW pro WSPR maják, kde externí přerušení potřebuji. Dále byla přidána možnost možnost volby napájení jumperem, nyní lze napájet výstupní zesilovač přímo z pinu VIN Ardunina.



Schéma zapojení


Plošný spoj

Stavebnici je možné zakoupit na Hamshop.cz.

1. dubna 2014

Paperduino Tiny

Paperduino Tiny je velmi levná a snadno postavitelná Arduino kompatibilní deska s USB.

Paperduino Tiny nepoužívá plošný spoj, ale je celé postavené na tvrdém papíře. Místo plošného spoje si vytisknete šablonu a tu nalepíte na tvrdší papír a můžete stavět.

Kompletní návod, jak na to, najdete na paperduino.eu.

16. března 2014

Přijímač ADS-B z DVB-T tuneru (RTL-SDR) na Raspberry Pi

Vývoj SW pro  SDR přijímače z DVB-T tunerů s čipem Realtek RTL2832U  (RTLSDR) se poslední dobou posouvá velmi dopředu a je k dispozi spousta SW pro dekódování různých služeb. Tunery jsou k dostání velmi levně jak na eBay tak i v našich obchodech. Ve spojení s Raspberry Pi může vzniknout velmi levný přijímač ADS-B s www rozhraním. Já jsem použil tuner Sencor SDB 522RT. Pozor, ne každý tuner na 1090 MHz funguje.

Nejdříve je třeba rozchodit na Raspberry RTL-SDR.
Editujte /etc/modprobe.d/raspi-blacklist.conf a přidejte tam následující řádky:

blacklist dvb_usb_rtl28xxu
blacklist rtl_2832
blacklist rtl_2830


Tím se se zbavíme ovladačů z kernelu pro DVB-T. Je třeba udělat reboot.

Dále je třeba na instalovat potřebný SW pro běh a kompilaci:

sudo apt-get -y install git cmake build-essential libusb-1.0 libusb-1.0-0-dev libpulse-dev libx11-dev libpulse-dev libx11-dev python-pkg-resources qtcreator libtool autoconf automake libfftw3-dev

Nyní budeme kompilovat RTL-SDR:
cd ~/
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

Stáhneme a zkompilujeme dump1090:
cd ~/
git clone https://github.com/antirez/dump1090.git
cd dump1090
make

 Spustíme příkazem:
 ./dump1090 --net --enable-agc --interactive --metric

Na obrazovce terminálu uvidíme přijímaná letadla. 

Sejmutá obrazovka při příjmu (originální anténa od tuneru umístěná v místnosti)

Do www rozhraní se připojíme IP_adresa:8080. Tam pak vidíme letadla na mapě a po kliknutí na šipku se nám zobrazí podrobné informace.


Samozřejmě leze spustit dump1090 i na pozadí. Mě to zatím na Rapsberry poměrně často padá, ale jak jsem se dočetl na internetu je to problém napájení přes USB přímo z Rapsberry. Někdo to reší napájeným USB hubem. Někdo upravuje napájení přímo v Raspberry. Až toto vyřeším tak řešení popíšu...  Určitě bude také dobré vyrobit anténu přímo pro pásmo ADS-B. Pokud máte někdo s příjmem ADS-B na RTL-SDR zkušenosti tak prosím pište do komentářů...

9. března 2014

AVR ATtiny fusebit doktor

Docela často pracuji s mikroprocesory AVR řady ATtiny. Občas se stává, že potřebuji použít vývod resetu jako I/O port (RSTDISBL) a pak procesor už nejde naprogramovat a nebo si špatně spočítám hodnoty pojistek a procesor také přestane komunikovat s programátorem. K resetu pojistek je třeba použít programátor, který podporuje HVP.Na internetu jsem objevil jednoduchý přípravek, který umí vrátit pojistky do výchozího stavu. Podporuje většinu obvodů řady ATtiny. Zapojení je velice jednoduché. Srdcem je ATtiny2313 a okolo je jen pár součástek.


Přidat popisek

Přidat popisek
Ovládání je velmi jednoduché. Stačí připojit procesor, který chceme vrátit do původního stavu a stisknout tlačítko START. Pokud vše proběhne jak má, rozsvítí se zelená LED.
Obsah procesoru včetně zdrojových kódů je na stránkách autora. Přípravek jsem si vyráběl hlavně por svoji potřebu, ale zbylo mi pár plošných spojů. Pokud by měl někdo zájem, je možné plošný spoj zakoupit na hamshop.cz.


12. ledna 2014

ARDUINO UNO DDS Shield

Momentálně se dají koupit levné osazené DDS moduly s AD9850. Tak vznikl tento Shield s DDS pro Arduino UNO.  Kromě prostoru pro DDS modul je zde také oddělovací zesilovač, který je schopný dát podle kmitočtu 2-3 Vpp do 50 Ohm zátěže. Dále je zde dělička s 74AC74 plánovaná pro IQ výstup pro SDR (plánuji další desku  s jednoduchým SDR podobným Softrocku). Shield jde přímo nasadit na Arduino UNO. Je možné ho použít jako signální generátor, VFO nebo třeba jako QRSS nebo WSPR maják. Tento DDS Shield je také kompatibilní s projektem OCCAM od M0XPD, který vyšel v minulém SPRATu.

Osazení je jednoduché. Nejdříve je třeba začít s SMD součástkami na spodní straně desky. Pak je třeba osadit všechny konektory a nakonec zapájet DDS modul. Pro DDS modul není možné použít konektory a je třeba ho zapájet co nejníže nad plošný spoj. Jinak ztratíme možnost přidávat nad desku další moduly (shieldy).

Schéma zapojení
Plošný spoj
Pohled na spodní stranu plošného spoje
Seznam součástek:


SoučástkaHodnota
C1100nF
C2100nF
C3100nF
C4100nF
IC174AC74D
M1DDS Module
OUTBNC konektor
Q12n2222
Q22n2222
R11k
R2100
R31k
R4470

Zde je ukázkový kód, který zinicializuje DDS modul a začne generovat 10 MHz. Další programy budou v budoucnu následovat. Je možné jich získat spoustu také na internetu.

Ukázkový kód pro Arduino:
/* 
 * A simple single freq AD9850 Arduino test script
 * Original AD9851 DDS sketch by Andrew Smallbone at www.rocketnumbernine.com
 * Modified for testing the inexpensive AD9850 DDS modules
 * 9850 datasheet at http://www.analog.com/static/imported-files/data_sheets/AD9850.pdf
 * Use freely
 */

#define W_CLK 2 // Pin 2 - connect to AD9850 module word load clock pin (CLK)
#define FQ_UD 3 // Pin 3 - connect to freq update pin (FQ)
#define DATA 4  // Pin 4 - connect to serial data load pin (DATA)
#define RESET 5 // Pin 5 - connect to reset pin (RST).

#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }

// transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line
void tfr_byte(byte data)
{
  for (int i=0; i<8; i++, data>>=1) {
    digitalWrite(DATA, data & 0x01);
    pulseHigh(W_CLK);   //after each bit sent, CLK is pulsed high
  }
}

// frequency calc from datasheet page 8 = <sys clock> * <frequency tuning //word>/2^32
void sendFrequency(double frequency) {
  int32_t freq = frequency * 4294967295/125000000;  // note 125 MHz clock on 9850
  for (int b=0; b<4; b++, freq>>=8) {
    tfr_byte(freq & 0xFF);
  }
  tfr_byte(0x000);   // Final control byte, all 0 for 9850 chip
  pulseHigh(FQ_UD);  // Done!  Should see output
}

void setup() {
  // configure arduino data pins for output
  pinMode(FQ_UD, OUTPUT);
  pinMode(W_CLK, OUTPUT);
  pinMode(DATA, OUTPUT);
  pinMode(RESET, OUTPUT);

  pulseHigh(RESET);
  pulseHigh(W_CLK);
  pulseHigh(FQ_UD);  // this pulse enables serial mode - Datasheet page 12 figure //10
}

void loop() {
  sendFrequency(10.e6);  // freq 10.00000 MHz
  while(1);
}

Stavebnici je možné zakoupit na Hamshop.cz.

15. prosince 2013

Vánoční stromeček s ATTINY13

Tato hračka vznikla pro děti na našem kroužku. Vychází z konstrukce uveřejněné na Dangerous Prototypes. Udělali jsme jen několik drobnýh úprav. SMD procesor byl nahrazen DIP verzí, aby šel naprogramovat v externím programátoru. SMD diody byly nahrazeny klasickými kulatými LED. Vypadá to pak lépe než s SMD LED. Dále byl upraven plošný spoj tak, aby se dal jednoduše vyrobit pomocí nažehlení toneru. Děti tuto konstrukci zvládnou i s výrobou plošného spoje za 1 až 2 kroužky.




Podklady pro výrobu plošného spoje a firmware do procesoru najde zde. Na příští rok se pokusím zajistit profesionální plošné spoje...


5. října 2013

Dovolená na Sardinii - IS0/OK1CDJ

Posledních 14 dní v září jsem strávil na dovolené na Sardinii. Samozřejmě jsem si s sebou vzal i něco na vysílání. Tentokrát padla volba na QRP TCVR CRK-10A (3W). Postavil jsem verzi pro 40m na kmitočet 7.030. Zařízení jsem napájel z 5Ah Li-Po akumulátoru. Jako anténu jsem použil na konci napájenou lambda/2 (EFHWA) doladěnou tunerem, který jsem popsal zde. Nejdříve jsem měl problém, že anténa vedla příliš po stěnách apartmánu a nedařilo se mi ji přizpůsobit. Pak se mi podařilo ji natáhnout do volného prostoru a hned se to vylepšilo, i podle signálů na reversebeacon.net.  Přece jen 20m drátu není až tak málo.



Na pásmu jsem se objevoval vždy večer kolem 1900 z, když jsme se vrátili z výletu nebo od moře. Ve všední dny nebyl problém, ale o víkendu byl závod, a tak se mi s QRP a pevným kmitočtem moc nedařilo. Možná příště vezmu pásmo 30m.
Celkem se mi podařilo udělat 12 DXCC a nejvíce potěšily QSO s OK/OM.
Díky všem za spojení...