Someday …

I’ve made some progress on my 5 tubes shortwave radio.

The frequency counter prototype is working.

I’m using a MPF102 as an RF amp, then the signal is feed in a 74HC161 (16x prescaler) and finally into an atmega328p for counting.

For a video goto:

[youtube=http://www.youtube.com/watch?v=Wd0NOFe4joQ]

Project 4 – Homemade SW vacuum tubes receiver

Optrex F-51159 glcd controlled by an Arduino

Just got some Optrex F-51159 GLCD’s from eBay.

If you ever need the datasheet or some code example to make them work with an Arduino, read further:

glcd_demo.pde
============================================================================
/*
   Demo of a Optrex F-51159 controlled by an Arduino.
  
   Note:
  
   There is no CSEL1, CSEL2 on the F-51159.  Connect CS to  pin 14 (analog_0), Nothing on pin 15 (analog_1)
   See: http://www.arduino.cc/playground/Code/GLCDks0108
  
   LCD Bias voltage (-12 to -5 volts) to glcd pin 3 is mandatory.

   Display is 120 x 64 dots, so make these changes to ‘ks0108_Panel.h’ :
   ———————————————
       // for F-51159NYJ-SEW-AA
       #define DISPLAY_WIDTH 120
       #define DISPLAY_HEIGHT 64

      // panel controller chips
      #define CHIP_WIDTH     60  // pixels per chip
   ———————————————
 */

#include <ks0108.h>
#include « Arial14.h »       
#include « clock.h »           // Clock bitmap

unsigned long startMillis;

void setup(){
  GLCD.Init(NON_INVERTED);  
  GLCD.ClearScreen(); 
  GLCD.DrawBitmap(clock, 0,0, BLACK);
  GLCD.SelectFont(Arial_14);
  GLCD.GotoXY(60, 2);
  GLCD.Puts(« Pixel Show »);
  GLCD.GotoXY(61, 47);
  GLCD.Puts(« by ve2cuy »);
  countdown(9);
}

void countdown(int count){
    while(count–){
     GLCD.GotoXY(30, 40);
     GLCD.PutChar(count + ‘0’);
     delay(1000); 
     GLCD.GotoXY(30, 40);
     GLCD.Puts( »  « );
  } 
}

void  loop(){
  GLCD.ClearScreen();

  startMillis = millis();
  while( millis() – startMillis < 15000){
    GLCD.SetDot( random(120), random(64), BLACK);
  }

  startMillis = millis();
  while( millis() – startMillis < 15000){
    GLCD.SetDot( random(120), random(64), WHITE);
  }

  GLCD.Init(INVERTED); 
  GLCD.ClearScreen();
  GLCD.GotoXY(36, 24);
  GLCD.Puts(« The  end… »);
  while (true){}
}
============================================================================

Datasheet:

F-51159

[youtube=http://www.youtube.com/watch?v=yUbRnAU_2Is]

Abyssus universitas

In the world of computer programming, the “Hello world program” is often the first one we write.  During my computer science Degree, we did it in Cobol, Pascal, Modula, 370 assembler, …

In the world of microcontroller, where a display device his rarely utilize in a first project, we light up a LED.

Even after years of playing around with cpu chips or microcontrollers, I still revisit that old classic.

There is something fascinating about staring at a flashing LED.

It must come from my youth, when I would stare at the vacuum tubes in the back of my parent’s b&w tv for hours. Yep, I’m that old…

So, back to the never ending project of lightening a LED.

After unwrapping the AVRISP mkII, I reproduced a “RGB led, PWM controlled” project from David Gustafik at http://www.daqq.eu/index.php?show=prj_yabled.

The idea here was to test the new acquired AVRISP mkII, not reinvent a way of saying “abyssus universitas”.

After a few adjustments in AVR Studio and transferring the HEX file to the chip, I caught myself staring, and staring, and staring, and … (ok, you get the point) at:

[youtube=http://www.youtube.com/watch?v=YiELwEK13aM]
I must admit, 9 channel software PWM is not the usual ‘Hello world’ program, but what the heck…

Farewell