Tuesday, 3 June 2014

Digital Controlled Power Supply Design and Testing

Hey everyone.

I was asked by a friend to design a low cost digital controlled power supply where one could apply pre-sets etc to voltage. Now although it is easy to add the code (most is already there) I decided to keep the current measurement off this plan for simplicity. This power supply has two outputs and is designed to be cheap, easy to build and fully Arduino Controlled.

 

Specification for PSU.

  • 1.25 to 5.00v Adjustable via digital control.
  • 1 amp current available per channel.
  • Use Cheap parts that are easily available.
  • Have some way of displaying voltage.

 

Now my original design shown below in simulation mode was a little expensive as it was using a larger LCD etc so I decided to use the cheapest LCD that I can find, the 16x2 HD44780 LCD.

EVIONE PSU Rev 4

Above circuit includes 20x4 LCD but this was a little expensive for my friends taste so instead we opted for the 16x2 as can be seen in below diagram.

EVIONE PSU Rev 3

The way this setup works is that the Arduino will control the 2 x I2C digital to analogue convertors via the same two lines as each DAC will be addressed differently using the A0 pin to preset address.

These DAC’s will output between 0 and 5 volts depending on the value that you issue to them from 0 to 4095. 0 being 0v and 4095 being 5.0v.

Now the LM317 or 338’s are well known and easily available. The LM317 used in the above has a minimum preset voltage of 1.25v. This can be overcome by apply a negative voltage but this is not really needed for a cheap PSU. 1.25v is pretty much low enough for most experiments. Now when you apply a voltage to the control pin of the LM317 it will output that same control voltage + 1.25v (being the internal reference voltage of the regulator). So if you tell the DAC to output 0v the LM317 will output 1.25v. If however we tell the DAC to output 2v then the LM317 by its design will output 2+1.25v = 3.25v. Easy to understand.

Now in our design above you will notice that the supply can technically go above 5.00v. In fact in this configuration it can achieve 5+1.25v = 6.25v. However this voltage is not really of any use and I have decided to code the control software to limit to 5.00v. You can however add voltage dividers and add the extra 1.25v if you like. It just means two more resistors and some time to change the formula. Most of the code is already there you just have to bring it into the math.

I have also in software pre-programmed the PSU to start with the two common voltages used by Arduino experimenters and digital people.

The relays are there to keep things in check. The DAC runs at around 2.5volts when it has no input control signal and for this reason I have designed the Micro (Arduino) to keep the output turned off until it takes control of the output regulators via the DAC’s.

Next week I will breadboard this design and do a video on this PSU and how to get yours up and running.

 

Keep yours eyes on www.evione.co.za to see  the follow up video.

 

Cheers for now

Mad Scientist.

Friday, 16 May 2014

The Evione BLOG will be moving to www.evione.co.za

Hey everyone

After many great months of sharing my electronics experiences and projects with the world on this blog we are officially moving to our new home on the internet. http://www.evione.co.za

I will be making regular video tutorials teaching from the basics of electronics and power supplies right through to interfacing ARM based processors with your electronics projects.

I will also be doing many video blogs explaining and showing exactly how to do many different things.

So lets take this to the next level. I hope you will continue to follow me as I take you to new heights in your electronics.

See you soon over at www.evione.co.za

The Mad Scientist.

Monday, 12 May 2014

Evione Production model PSU first sneak peak images.

Hey everyone.

We have been working around the clock to design and build some really nice quality bench equipment for those that do not have loads of cash laying around. Attached is the first few sneak peaks of the production model 20v 2A variable PSU.

IMG_1509

This power supply features:

  • Main Output Variable between 0 and 20V DC.
  • Main Output can output 2amps max current.
  • Main Output Current can be limited to anything from 0 to 2amps.
  • Secondary Output is a 2amp 3.3v or 2amp 5v output for digital work.
  • Full Colour Display with 2 x digital storage memories which can be recalled at anytime.
  • Output Signal output On/Off Control.
  • Accurate and Reliable Switch Mode Regulators which produce far less heat.
  • This PSU can be powered from 230vAC or from any DC battery source up to a max of 23volts. So yes you can power it off a 9v batter if you like but please bare in mind that the requirements for output is that the input voltage must me 2volts higher than the output voltage that you would like to get.
  • We Also can install an optional LIPO battery inside this unit turning it into a portable prototyping Laboratory grade PSU.

IMG_1520

If you would like to know more or have any questions please feel free to email info@evione.co.za

This item will be in the Evione Store over the next few days. www.evione.co.za/cart

Monday, 5 May 2014

CB Radio Channel Selector Replacement.

Hi everyone.

After many years of working in the commercial two way radio field and cellular communications field I went it alone and got interested in the hobby of radio again. I basically lost interest due to some of the cb’ers getting rowdy once again. I had issues with people wanting me to do work that was not really permitted and left the field and am now doing software and hardware development for my own company Evione Electronics. By the way if you are wanting any test gear or electronics hobby stuff my store will be online pretty soon at www.evione.co.za/cart

Anyway onto the topic of this post. My Channel selector. Lefts start with taking the most common Arduino the Arduino Uno.

arduino_uno_large

In the above image you can see how to connect the LCD and parts together. Now a quick description.

The LCD is connected as such but this can be changed if need be.

The Pin 11 or TX/RX sense pin basically reads the logic level of the pin. If it is high TX is displayed on the LCD if Low then RX is displayed. The two switches that switch pins 2 and 3 high when pressed are your channel up down buttons. The two blue rectangles are in fact 10k resistors to ground.

Just make sure you keep A0 open for your voltage sense from PSU. You can work out the resistors needed for simple voltage divider and please ensure that A0 does not receive more than 5v off this divider. Below is how to work it out. If you get stuck let me know.

Voltage_divider

Below you will find the Arduino Source code or sketch for this project. I have made improvements to this design and sketch but for the sake of keeping it simple Ill do just that. Keep it simple. Now I have just simplified and tested this code in one of my superbase radio’s and it works perfectly.

Please note however that the digital control pins are all set to logic 1 in this sketch to force you to work out your own PLL truth table as they all differ. Then all you would do is change the logic levels of each pin to set the PLL to that frequency. If you need help with this let me know but I am assuming that if you are doing this then you at least have an idea of what I’m talking about. 

Ill try to comment the code below so that you can see what it is for and understand.

--------------------------------------------------------------------------------------------------------------------

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, A1, A2, A3, A4, A5);  // setting pins for LCD

int analogInput = 0; 
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // resistance of R1
float R2 = 10000.0; // resistance of R2
int value = 0;

const int lamp = 10;
int D0 = 4;
int D1 = 5;
int D2 = 6;
int D3 = 7;
int D4 = 8;
int D5 = 9;
int D6 = 10;
int val = 0;

int inPin = 11;

const int upPin = 2;     
const int downPin = 3;  

int lastChannel = 27;
int Channel;             
int up;                  
int down;                

void setup(){
  pinMode(analogInput, INPUT);
  pinMode(up, INPUT);
  pinMode(down, INPUT);
  pinMode(inPin, INPUT);
  pinMode(D0, OUTPUT);
  pinMode(D1, OUTPUT);
  pinMode(D2, OUTPUT);
  pinMode(D3, OUTPUT);
  pinMode(D4, OUTPUT);
  pinMode(D5, OUTPUT);
  pinMode(D6, OUTPUT);
  analogWrite(lamp, 100);
  lcd.begin(20, 4);
  lcd.setCursor(0, 0);
  lcd.print("      CB Radio ");
  lcd.setCursor(0, 1);
  lcd.print("      Ver 1.0      ");
  delay(4000);
  lcd.clear();
}

void loop(){
  Channel = lastChannel;     
  up = digitalRead(upPin);       
  down = digitalRead(downPin);
   
   if (up == HIGH) {                   
      Channel = Channel++;             
      }
  
      if (down == HIGH) {           
        Channel = Channel--;      
      }
   
   
  if (Channel > 40){      // This bit of code keeps the channels to within 40 Winking smile
    Channel = 40;
  }
 
  if (Channel < 2){   
    Channel = 1;
  }
 
  switch (Channel){   
 
  case 1:
  digitalWrite(D0, HIGH); // The below D0 to D6 is where truth table comes in.
  digitalWrite(D1, HIGH); // You would have to work out your PLL truth table
  digitalWrite(D2, HIGH); // and allocate the correct logic levels to each pin
  digitalWrite(D3, HIGH); // of your PLL chip by changing the HIGH to LOW and
  digitalWrite(D4, HIGH); // vica verca.
  digitalWrite(D5, HIGH); //
  digitalWrite(D6, HIGH); // For more help email info@evione.co.za
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.015.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 001     ");
  break;
 
  case 2:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.025.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 002     ");
  break;
 
  case 3:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.035.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 003     ");
  break;
 
  case 4:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.045.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 004     ");
  break;
 
  case 5:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.055.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 005     ");
  break;
 
  case 6:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.065.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 006     ");
  break;
 
  case 7:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.075.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 007     ");
  break;
 
  case 8:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.085.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 008     ");
  break;
 
  case 9:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.095.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 009     ");
  break;
 
  case 10:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.105.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 010     ");
  break;
 
  case 11:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.115.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 011     ");
  break;
 
  case 12:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.125.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 012     ");
  break;
 
  case 13:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.135.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 013     ");
  break;
 
  case 14:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.145.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 014     ");
  break;
 
  case 15:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.155.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 015     ");
  break;
 
  case 16:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.165.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 016     ");
  break;
 
  case 17:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.175.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 017     ");
  break;
 
  case 18:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.185.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 018     ");
  break;
 
  case 19:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.195.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 019     ");
  break;
 
  case 20:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.205.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 020     ");
  break;
 
  case 21:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.215.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 021     ");
  break;
 
  case 22:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.225.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 022     ");
  break;
 
  case 23:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.235.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 023     ");
  break;
 
  case 24:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.245.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 024     ");
  break;
 
  case 25:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.255.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 025     ");
  break;
 
  case 26:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.265.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 026     ");
  break;
 
  case 27:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.275.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 027     ");
  break;
 
  case 28:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.285.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 028     ");
  break;
 
  case 29:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.295.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 029     ");
  break;
 
  case 30:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.305.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 030     ");
  break;
 
  case 31:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.315.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 031     ");
  break;
 
  case 32:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.325.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 032     ");
  break;
 
  case 33:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.335.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 033     ");
  break;
 
  case 34:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.345.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 034     ");
  break;
 
  case 35:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.355.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 035     ");
  break;
 
  case 36:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.365.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 036     ");
  break;
 
  case 37:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.375.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 037     ");
  break;
 
  case 38:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.385.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 038     ");
  break;
 
  case 39:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.395.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 039     ");
  break;
 
  case 40:
  digitalWrite(D0, HIGH);
  digitalWrite(D1, HIGH);
  digitalWrite(D2, HIGH);
  digitalWrite(D3, HIGH);
  digitalWrite(D4, HIGH);
  digitalWrite(D5, HIGH);
  digitalWrite(D6, HIGH);
  lcd.setCursor(0, 0);
  lcd.print("    HF Frequency    ");
  lcd.setCursor(0, 1);
  lcd.print("   27.405.000 Mhz   ");
  lcd.setCursor(0, 2);
  lcd.print("    Channel 040     ");
  break;
}
     
  lastChannel = Channel;
  val = digitalRead(inPin);  
  if (val == HIGH) {                   
      lcd.setCursor(0, 3);
      lcd.print("* TX *");     
      }
  else
     {
      lcd.setCursor(0, 3);
      lcd.print("* RX *");
     }
     value = analogRead(analogInput);
     vout = (value * 5.0) / 1024.0;
     vin = vout / (R2/(R1+R2));
     if (vin<0.09) {
     vin=0.0;
     }
     lcd.setCursor(7, 3);
     lcd.print("Volt: ");
     lcd.print(vin);
  delay(200);              
}

-------------------------------------------------------------------------------------------------------------------

If you copy and paste the above code into the Arduino IDE it will compile with ease and run perfectly. You however have to get your logic truth table calculated by opening up your radio and measuring the logic levels of your pll input pins per frequency. Then work backwards to work out the formula and calculate and add whatever you want or need Winking smile.

Please note that if you are a Ham operator you can stretch some of these radios well into the ham bands using this little project so please KEEP IT LEGAL.

I will not be held responsible for any illegal use of this blog post to use bands that you are not entitled or licenced to use.

Have fun and enjoy. If you get stuck email me at info@evione.co.za and ill help you out. If you are needing any of the hardware listed above I can also help there.

Please note that you may have to re-align your radio for wide banding if you are turning it into a ham rig or such. but im sure you already knew that.

 

Till later

Dionne

Sunday, 4 May 2014

Evione’s New Logo Ready for Use

Well after getting a little stuck with what sort of logo to create, Liz came in and hand drew up something awesome. It was of coarse my job to make it happen on PC however the concept and graphic idea are all Liz’s.

What do you guys think?

Evione Logo

Seeing as Evione specializes in photographic lighting and LED lighting in general you can see where the concept and idea comes in. Evione will continue to offer its services as electronics design engineering and IT Support and solutions however we are expanding our photographic lighting services and have started offering repairs to existing photographic and studio lighting. If you need something that is not available over the counter please do not hesitate to contact us.

 

Until next time. Have a happy Easter Everyone.

REVIEW: Hantek 6022BE PC Based Oscilloscope

Hey everyone.

Today I thought I would be a little different and share a video review of the Hantek 6022BE USB , PC Based scope.

This scope is not the same as the large bench scopes but instead uses your PC to display the signals instead of its own dedicated screen. The bonuses are endless storage for the scope, Large screens avail as is my case where I have two 24inch Full HD displays on my workbench.

The decision as to whether to buy a bench scope or a PC scope is basically decided by a few things, namely:

  • Do you have space for a bench scope?
  • Do you already have a PC on your bench?
  • Do you want a PC on your bench?

In my case I have used many bench top scopes as well as PC scopes and in the end it boils down to what you need to do. In my case I want to see PWM signals and such and therefore something like the 6022BE is ideal for me. It comes with two probes and is really more than adequate for what I need.

Untitled-1

There is also other screens which can be turned on and off as needed such as frequency display, duty cycle and many others. This is basically the home screen display.

Below you can enjoy my brief straight to the point review of this scope. Enjoy.

I have  heard that the bandwidth on these scopes is not what is advertised so I decided to do various tests using signals from 0 to 20mhz in 100khz steps. What I found is that the scope can measure all the way but there appears to be some transient issues with the scope at frequencies higher than around 14mhz. It is usable however and I therefore still say that this scope is great value for scope newbies, students or anyone hobbyists.

I am not going to go into all the details as there are many reviews that talk about the fine details. All I am going to report is that if you tinker with Arduino’s, AVR’s or PIC Microcontrollers then this scope will cover most of your scope needs if not all.

I now have the Hantek 6022BE as well as the The 250mhz Picoscope and can say that I use the Hantek more often.

Get one, they are less than R700.00 and well worth the investment in a really handy test instrument.

Saturday, 3 May 2014

Checking up on and aligning my Home DIY Bench PSU.

Hey everyone.

Well I decided that I did not need such a large screen on my home bench PSU and thought that it was time to swop out the 20x4 LCD for a nice clean simple 16x2 as that was all that was really needed to display volts and amps. I also thought that while I was inside I would checkup and do a quick alignment and compare this PSU with my several thousand Rand Lab PSU’s dedicated 5v output. Now dont get me wrong, my lab psu’s adjustable output is dead accurate but I was more interested to see how my little fella stacks up against it.

Below are the results printed our from my UNI-T UT71A data logging.

 

From No 1 to 169 is the output of my DIY power supply set on 5V. Then you will see 170 and 171 are where I disconnect and reconnect to my expensive bench PSU. Thereafter you are seeing the output of my large Labratory PSU. Seems like my home made unit has slightly more stability as compared to the LAB PSU. Anyway all said and done the LCD conversion is done. All is back up and running and I am a happy man with a spare 20x4 LCD to play with.

At the bottom is the image of how this psu looks now. It needs a new plastic front piece.

Anyway Ill be building my Rev 3.0 Power supply in due coarse. It will be a full 3amp digital controlled PSU with current limiting and everything for less than R600-00. Full build instructions to follow.

No Time DC/AC Value Unit AUTO
1 07:31:55 AM   05.000 V AUTO
2 07:31:56 AM   05.000 V AUTO
3 07:31:57 AM   05.000 V AUTO
4 07:31:57 AM   05.000 V AUTO
5 07:31:58 AM   05.000 V AUTO
6 07:31:59 AM   05.000 V AUTO
7 07:31:59 AM   05.000 V AUTO
8 07:32:00 AM   05.000 V AUTO
9 07:32:01 AM   05.000 V AUTO
10 07:32:01 AM   05.000 V AUTO
11 07:32:02 AM   05.000 V AUTO
12 07:32:03 AM   05.000 V AUTO
13 07:32:03 AM   05.000 V AUTO
14 07:32:04 AM   05.000 V AUTO
15 07:32:05 AM   05.000 V AUTO
16 07:32:05 AM   05.000 V AUTO
17 07:32:06 AM   05.000 V AUTO
18 07:32:07 AM   05.000 V AUTO
19 07:32:07 AM   05.000 V AUTO
20 07:32:08 AM   05.000 V AUTO
21 07:32:09 AM   05.000 V AUTO
22 07:32:09 AM   05.000 V AUTO
23 07:32:10 AM   05.000 V AUTO
24 07:32:11 AM   05.000 V AUTO
25 07:32:11 AM   05.000 V AUTO
26 07:32:12 AM   05.000 V AUTO
27 07:32:13 AM   05.000 V AUTO
28 07:32:13 AM   05.000 V AUTO
29 07:32:14 AM   05.000 V AUTO
30 07:32:15 AM   05.000 V AUTO
31 07:32:15 AM   05.000 V AUTO
32 07:32:16 AM   05.000 V AUTO
33 07:32:17 AM   05.000 V AUTO
34 07:32:17 AM   05.000 V AUTO
35 07:32:18 AM   05.000 V AUTO
36 07:32:19 AM   05.000 V AUTO
37 07:32:19 AM   05.000 V AUTO
38 07:32:20 AM   05.000 V AUTO
39 07:32:21 AM   05.000 V AUTO
40 07:32:21 AM   05.000 V AUTO
41 07:32:22 AM   05.000 V AUTO
42 07:32:22 AM   05.000 V AUTO
43 07:32:23 AM   05.000 V AUTO
44 07:32:24 AM   05.000 V AUTO
45 07:32:24 AM   05.000 V AUTO
46 07:32:25 AM   05.000 V AUTO
47 07:32:26 AM   05.000 V AUTO
48 07:32:26 AM   05.000 V AUTO
49 07:32:27 AM   05.000 V AUTO
50 07:32:28 AM   05.000 V AUTO
51 07:32:28 AM   05.000 V AUTO
52 07:32:29 AM   05.000 V AUTO
53 07:32:30 AM   05.000 V AUTO
54 07:32:30 AM   05.000 V AUTO
55 07:32:31 AM   05.000 V AUTO
56 07:32:32 AM   05.000 V AUTO
57 07:32:32 AM   05.000 V AUTO
58 07:32:33 AM   05.000 V AUTO
59 07:32:34 AM   05.000 V AUTO
60 07:32:34 AM   05.000 V AUTO
61 07:32:35 AM   05.000 V AUTO
62 07:32:36 AM   05.000 V AUTO
63 07:32:36 AM   05.000 V AUTO
64 07:32:37 AM   05.000 V AUTO
65 07:32:38 AM   05.000 V AUTO
66 07:32:38 AM   05.000 V AUTO
67 07:32:39 AM   05.000 V AUTO
68 07:32:40 AM   05.000 V AUTO
69 07:32:40 AM   05.000 V AUTO
70 07:32:41 AM   05.000 V AUTO
71 07:32:42 AM   05.000 V AUTO
72 07:32:42 AM   05.000 V AUTO
73 07:32:43 AM   05.000 V AUTO
74 07:32:44 AM   05.000 V AUTO
75 07:32:44 AM   05.000 V AUTO
76 07:32:45 AM   05.000 V AUTO
77 07:32:46 AM   05.000 V AUTO
78 07:32:46 AM   05.000 V AUTO
79 07:32:47 AM   05.000 V AUTO
80 07:32:48 AM   05.000 V AUTO
81 07:32:48 AM   05.000 V AUTO
82 07:32:49 AM   05.000 V AUTO
83 07:32:50 AM   05.000 V AUTO
84 07:32:50 AM   05.000 V AUTO
85 07:32:51 AM   05.000 V AUTO
86 07:32:52 AM   05.000 V AUTO
87 07:32:52 AM   05.000 V AUTO
88 07:32:53 AM   05.000 V AUTO
89 07:32:54 AM   05.000 V AUTO
90 07:32:54 AM   05.000 V AUTO
91 07:32:55 AM   05.000 V AUTO
92 07:32:55 AM   05.000 V AUTO
93 07:32:56 AM   05.000 V AUTO
94 07:32:57 AM   05.000 V AUTO
95 07:32:57 AM   05.000 V AUTO
96 07:32:58 AM   05.000 V AUTO
97 07:32:59 AM   05.000 V AUTO
98 07:32:59 AM   05.000 V AUTO
99 07:33:00 AM   05.000 V AUTO
100 07:33:01 AM   05.000 V AUTO
101 07:33:01 AM   05.000 V AUTO
102 07:33:02 AM   05.000 V AUTO
103 07:33:03 AM   05.000 V AUTO
104 07:33:03 AM   05.000 V AUTO
105 07:33:04 AM   05.000 V AUTO
106 07:33:05 AM   05.000 V AUTO
107 07:33:05 AM   05.000 V AUTO
108 07:33:06 AM   05.000 V AUTO
109 07:33:07 AM   05.000 V AUTO
110 07:33:07 AM   05.000 V AUTO
111 07:33:08 AM   05.000 V AUTO
112 07:33:09 AM   05.000 V AUTO
113 07:33:09 AM   05.000 V AUTO
114 07:33:10 AM   05.000 V AUTO
115 07:33:11 AM   05.000 V AUTO
116 07:33:11 AM   05.000 V AUTO
117 07:33:12 AM   05.000 V AUTO
118 07:33:13 AM   05.000 V AUTO
119 07:33:13 AM   05.000 V AUTO
120 07:33:14 AM   05.000 V AUTO
121 07:33:15 AM   05.000 V AUTO
122 07:33:15 AM   05.000 V AUTO
123 07:33:16 AM   05.000 V AUTO
124 07:33:17 AM   05.000 V AUTO
125 07:33:17 AM   05.000 V AUTO
126 07:33:18 AM   05.000 V AUTO
127 07:33:19 AM   05.000 V AUTO
128 07:33:19 AM   05.000 V AUTO
129 07:33:20 AM   05.000 V AUTO
130 07:33:21 AM   05.000 V AUTO
131 07:33:21 AM   05.000 V AUTO
132 07:33:22 AM   05.000 V AUTO
133 07:33:23 AM   05.000 V AUTO
134 07:33:23 AM   05.000 V AUTO
135 07:33:24 AM   05.000 V AUTO
136 07:33:25 AM   05.000 V AUTO
137 07:33:25 AM   05.000 V AUTO
138 07:33:26 AM   05.000 V AUTO
139 07:33:27 AM   05.000 V AUTO
140 07:33:27 AM   05.000 V AUTO
141 07:33:28 AM   05.000 V AUTO
142 07:33:28 AM   05.000 V AUTO
143 07:33:29 AM   05.000 V AUTO
144 07:33:30 AM   05.000 V AUTO
145 07:33:30 AM   05.000 V AUTO
146 07:33:31 AM   05.000 V AUTO
147 07:33:32 AM   05.000 V AUTO
148 07:33:32 AM   05.000 V AUTO
149 07:33:33 AM   05.000 V AUTO
150 07:33:34 AM   05.000 V AUTO
151 07:33:34 AM   05.000 V AUTO
152 07:33:35 AM   05.000 V AUTO
153 07:33:36 AM   05.000 V AUTO
154 07:33:36 AM   05.000 V AUTO
155 07:33:37 AM   05.000 V AUTO
156 07:33:38 AM   05.000 V AUTO
157 07:33:38 AM   05.000 V AUTO
158 07:33:39 AM   05.000 V AUTO
159 07:33:40 AM   05.000 V AUTO
160 07:33:40 AM   05.000 V AUTO
161 07:33:41 AM   05.000 V AUTO
162 07:33:42 AM   05.000 V AUTO
163 07:33:42 AM   05.000 V AUTO
164 07:33:43 AM   05.000 V AUTO
165 07:33:44 AM   05.000 V AUTO
166 07:33:44 AM   05.000 V AUTO
167 07:33:45 AM   05.000 V AUTO
168 07:33:46 AM   05.000 V AUTO
169 07:33:46 AM   05.000 V AUTO
171 07:33:48 AM   0.0000 V AUTO
172 07:33:48 AM   0.0000 V AUTO
185 07:33:57 AM   05.001 V AUTO
186 07:33:58 AM   05.001 V AUTO
187 07:33:58 AM   05.001 V AUTO
188 07:33:59 AM   05.001 V AUTO
189 07:34:00 AM   05.001 V AUTO
190 07:34:00 AM   05.001 V AUTO
191 07:34:01 AM   05.001 V AUTO
192 07:34:01 AM   05.001 V AUTO
193 07:34:02 AM   05.001 V AUTO
194 07:34:03 AM   05.001 V AUTO
195 07:34:03 AM   05.001 V AUTO
196 07:34:04 AM   05.001 V AUTO
197 07:34:05 AM   05.000 V AUTO
198 07:34:05 AM   05.000 V AUTO
199 07:34:06 AM   05.000 V AUTO
200 07:34:07 AM   05.000 V AUTO
201 07:34:07 AM   05.000 V AUTO
202 07:34:08 AM   05.000 V AUTO
203 07:34:09 AM   05.000 V AUTO
204 07:34:09 AM   04.998 V AUTO
205 07:34:10 AM   04.998 V AUTO
206 07:34:11 AM   04.998 V AUTO
207 07:34:11 AM   04.998 V AUTO
208 07:34:12 AM   04.998 V AUTO
209 07:34:13 AM   04.998 V AUTO
210 07:34:13 AM   04.998 V AUTO
211 07:34:14 AM   04.998 V AUTO
212 07:34:15 AM   05.000 V AUTO
213 07:34:15 AM   05.000 V AUTO
214 07:34:16 AM   05.000 V AUTO
215 07:34:17 AM   05.000 V AUTO
216 07:34:17 AM   05.000 V AUTO
217 07:34:18 AM   05.000 V AUTO
218 07:34:19 AM   05.000 V AUTO
219 07:34:19 AM   05.000 V AUTO
220 07:34:20 AM   05.000 V AUTO
221 07:34:21 AM   05.000 V AUTO
222 07:34:21 AM   05.000 V AUTO
223 07:34:22 AM   05.000 V AUTO
224 07:34:23 AM   05.000 V AUTO
225 07:34:23 AM   05.000 V AUTO
226 07:34:24 AM   04.998 V AUTO
227 07:34:25 AM   04.998 V AUTO
228 07:34:25 AM   04.998 V AUTO
229 07:34:26 AM   04.998 V AUTO
230 07:34:27 AM   04.998 V AUTO
231 07:34:27 AM   04.998 V AUTO
232 07:34:28 AM   04.998 V AUTO
233 07:34:29 AM   04.998 V AUTO
234 07:34:29 AM   04.998 V AUTO
235 07:34:30 AM   04.998 V AUTO
236 07:34:31 AM   05.000 V AUTO
237 07:34:31 AM   05.000 V AUTO
238 07:34:32 AM   05.000 V AUTO
239 07:34:32 AM   05.000 V AUTO
240 07:34:33 AM   05.000 V AUTO
241 07:34:34 AM   05.000 V AUTO
242 07:34:34 AM   05.000 V AUTO
243 07:34:35 AM   05.000 V AUTO
244 07:34:36 AM   05.000 V AUTO
245 07:34:36 AM   05.000 V AUTO
246 07:34:37 AM   05.000 V AUTO
247 07:34:38 AM   05.000 V AUTO
248 07:34:38 AM   05.000 V AUTO
249 07:34:39 AM   05.000 V AUTO
250 07:34:40 AM   05.000 V AUTO
251 07:34:40 AM   05.000 V AUTO
252 07:34:41 AM   05.000 V AUTO
253 07:34:42 AM   05.000 V AUTO
254 07:34:42 AM   05.000 V AUTO
255 07:34:43 AM   05.000 V AUTO
256 07:34:44 AM   05.000 V AUTO
257 07:34:44 AM   05.000 V AUTO
258 07:34:45 AM   05.000 V AUTO
259 07:34:46 AM   05.000 V AUTO
260 07:34:46 AM   05.000 V AUTO
261 07:34:47 AM   05.000 V AUTO
262 07:34:48 AM   05.000 V AUTO
263 07:34:48 AM   05.000 V AUTO
264 07:34:49 AM   05.000 V AUTO
265 07:34:50 AM   05.000 V AUTO
266 07:34:50 AM   05.000 V AUTO
267 07:34:51 AM   05.000 V AUTO
268 07:34:52 AM   05.000 V AUTO
269 07:34:52 AM   05.000 V AUTO
270 07:34:53 AM   05.000 V AUTO
271 07:34:54 AM   05.000 V AUTO
272 07:34:54 AM   05.000 V AUTO
273 07:34:55 AM   05.000 V AUTO
274 07:34:56 AM   05.000 V AUTO
275 07:34:56 AM   05.000 V AUTO
DSCN0167