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

Tuesday 15 April 2014

First Truly Winters Day in Durban

Wow.

After several hot, sticky and sweaty months in Durban I think the cold weather is finally getting here. Not that it really gets cold in Durban but hey cold is better than hot therefore cooler weather is great.

Well despite spending most of my day editing wedding images and the like I still managed to get some time in on my development and have managed to throw together a few android apps to control various aspects of my house and entertainment system using my phone the HTC One which happens to have a built in IR transceiver. ;-)

I will be starting development on my home control system soon and am still in two minds whether I want to go Android or Linux. Its a tricky choice to make as both have their pluses and minuses.

I would be glad to hear from anyone who is doing something similar.

Cheers for now

Dionne

Saturday 12 April 2014

UPDATE : 12/04/2014 – Prototyping Platforms

Hey everyone.

DSCN0153

What are prototyping platforms and what is available to those out there wanting to learn and tinker with digital systems?

When I first started in electronics there was no such thing as a prototyping platform. Sure we had components and kits that could be had from places like A1 radio and the likes but everything we wanted to do or learn was a long process.

Information was still scarce and component info even more scarce. We used to use component books to look up component info etc. There was no internet and books where the only source of information. It was only when I was in high school that the internet really started becoming something that home users had and even then it was far and few between. SA was after all a late adopter.

Not going to dwell into the internet etc but lets just say anyone wanting to play with electronics now has it so much easier than 20 years ago.

In the image above from top left to bottom right:

  1. PCDuino V2.0 – An Arm Cortex based Arduino compatible mini computer which is similar to the Raspberry Pi but much more capable and powerful.
  2. LCD Sheild  - These shields are used on the Arduino platform for development and testing.
  3. USBASP – This is used to program the AVR chips which Arduino and a few other platforms are based on.
  4. Breadboard PSU – This is both a 3.3v and 5.0v breadboard Power supply. It is super handy for getting the right voltages from a single power source.
  5. Freeduino – This is essentially an Arduino UNO with ATMEGA328P-PU microcontroller. I only prefer purchasing the Freeduino as it is cheaper and more customizable when it comes to assembly.
  6. Arduino Pro – This is essentially a miniture Arduino board minus the USB port and FTDI chip.
  7. IRF24L01 – 2.4ghz Radio Boards.
  8. 10 Pin to 6 Pin adaptor.
  9. FTDI Board – This essentially is a USB port for hardware projects.
  10. Arduino Mega 2560 – One of the bigger Arduino Boards. Very capable and awesome for systems development.
  11. Chipkit UNO32 – Technically this is a PIC based Arduino board. It is very Arduino compatible and runs most of the Arduino code however is far more powerful and capable with many more I/O lines compared to Arduino. The best thing is it costs the same. Please note that Arduino does feature more info and support and a much larger user base at present.
  12. Couple of LCD panels and breakout boards etc.

Most of my hardware development thus far has been done on the ARM based board as well as the Arduino and Freeduino. I tend to develop on Arduino then build the project standalone using an AVR chip with the needed components around it. This saves cost and makes things more practical. I also tend to use the Arduino environment to create the HEX files which I prefer to burn straight to the ATMEGA chips without the bootloader which makes them faster and more efficient.

At present I am working on a standalone micro PC which can be attached to any TV set essentially turning it into a home automation system, multimedia player, decoder, Internet browser, Email system all based on a standard home television. This system is being designed for ease of use and stability and will be easy to use. I am hoping to have the system on demo within a few more weeks. Am awaiting the Arm Cortex CPU’s etc to arrive from manufacturer.

My recommendation to those wanting to dable with digital systems at a high level is to get your hands on an Arduino UNO R3 and start googleing and playing with the sample code avail to you in the Arduino IDE.

Cheers for now.

Dionne

Friday 11 April 2014

The Humble MULTIMETER. What can one measure with it.

Hey everyone.

Despite being very tied up in high level digital development and various other projects I decided to do a small article about multimeters and what one can typically measure with one. I will also cover basic component testing etc in this post.

Multimeters go back many years. The volt meter and amp meter or ammeter predate all the fancy test gear we have available now days however as an engineering type I make use of one of my multimeters almost every day.

Below you can see my multimeters layed out: Please note that these pics are taken on cell phone so not best quality.

IMAG0003

These are the four meters that I make use of the most.

If I am wanting to do data logging or analysis I generally go to my Uni-T UT71A as it has the capability of connecting to PC via USB which allows me to log voltages, currents or just about anything without being around.

Below is the UT71A closeup.

IMAG0007    IMAG0013

This meter also has a fantastic large LCD display and allows you to check voltages etc with very fine levels.

My spare meter is my little Major Tech MT24 which has seen me through many jobs, repairs and designs and is used fairly often when a small meter is needed on the bench to measure secondary signals.

IMAG0005    IMAG0011

I find this meter to be very accurate and great value for money.

My third meter and my primary bench meter (my go to meter) is my Major Tech MT1880 IV. This meter was a lucky find at a local second hand store and after a good cleanup she sits proud on my bench as my primary meter. Why this meter some may ask. Well its simple, clean and does most of what I need on a single unit. I also enjoy the analogue (digital) bar at the bottom.

IMG_20140411_155403    IMG_20140411_155422

The last meter and my least capable but still very capable meter is the TA EM5511. All the other meters here where well over R1000 each whilst this unit set me back about R200.00 second hand.

I will use this meter for my tutorial and article.

IMAG0004    IMAG0009

The first few things you will notice is that all my meters are Auto Ranging, they all have backlights and are all very multitask meters. The Auto Ranging feature used to be reserved for the high end meters however some of the newer low end meters also have this feature now days and it really does make sense to get one which is auto ranging as it does two positive things for you. The first is that you do not have to keep selecting ranges all the time so is convenient and the second is that your rotary button will not wear out as quickly as it will be used less.

I have pretty much gotten rid of my Fluke 77 and various other meters as I really was not using them half as much as these and these cover everything that I would want to cover in my work and experimenting.

Anyway this is not technically a review of multimeters, That will be done pretty soon as well as reviews of development boards, Oscilloscopes etc. All in due coarse. This is more a tutorial on multimeters and how to use them and what you can measure.

For this article I will be using the above TA multimeter as it is simple, clean and most probably closer to what many people starting out will be using. If you know what you are doing you wont be here after all.

So lets start.

On all meters you have what I call the mode selector which is usually a rotary dial with a whole bunch of options. If you have a autoranging meter then the options will be less.

Below a close up":

dial

From left to right going clockwise you will see the modes as below:

  1. OFF (Power Off Mode)
  2. V~ (Voltage AC – Alternating Current) which is the kind of stuff that comes out of our wall sockets and out of step down transformers etc.
  3. V= (Voltage DC – Direct Current) this is what comes out of batteries and power supplies that output DC power. This is what you will most likely measure a lot as this is cells, batteries, power supplies and so many other things.
  4. OHMS (This is to measure resistance or ohms) Used to measure circuit resistance, component resistance and so many other things.
  5. Diode / Continuity Test (In diode test mode you are able to measure the voltage drop of a PN junction such as a diode, transistor and various other devices. In the continuity mode it will beep if the resistance is below a certain value of around 30ohms.
  6. Capacitor Test (This is limited on most meters but does come in handy for checking capacitor values and testing capacitors.
  7. Hz% ( This is used for measuring frequency and duty cycle) For example if you wanted to use a microcontroller such as an Arduino to control the speed of a motor or brightness of a LED then you could use Pulse Width Modulation or PWM. In the case of Arduino this is usually defaulted to 490hz. You are then able to measure this frequency as well as its duty cycle. The duty cycle of PWM is used to control the amount or speed of the device or motor. For example at 0% duty cycle the switching mosfet or transistor would be off whilst at 100% it will be at full power or speed. This is the most popular method for using microcontrollers to control large motors or lights etc. More on PWM and how to use it in another article.
  8. Deg C (Measuring temperatures of various devices)
  9. mG (In the case of this meter it is used to measure the EMF from the sensor on the top of the meter.)
  10. uA ( Measuring very small currents or Micro Amps)
  11. mA ( Measuring Milliamps)
  12. A ( Measuring Amps)

So basically with this little meter you can fault diagnose most electronic or electrical components, you can tinker with digital signals and various other things.

I am not going to cover the entire how to use a multimeter as this is more about showing you what can be accomplished using a humble multimeter.

As a field components level technician for many years working for one of South Africa’s biggest RF or radio frequency networks I learnt how to use a multimeter for more than it was originally planned and even went so far as to build my own probe devices for measuring RF signals and others.

I will upload a video to this post in due coarse showing you how to use this meter to measure various signals.

Go out and grab a multimeter. It will make your day, unless you already have one. ;-)

 

Cheers for now

Dionne

Sunday 23 March 2014

One of the scariest weeks of my life.

Well. What can I say. this past week has put me through every emotion known to man. I would hate to know how the love of my life Liz feels. It started with her being mistreated by some doctors who really need to learn something about treatment instead of standing around waiting for home time.

Thereafter we have been all over to see doctors, specialist etc only to discover that my angel needs major surgery. :-( I can deal with that. After all Liz would be feeling much better after that.

Then the crap started. Medical aid gave us a run around for almost the entire week. As of now, although we have been told that all is in order I am still doubtful and worry that we arrive at hospital tomorrow morning and something else will go wrong due to this medical aid. I will blog about the entire experience and inform everyone of this medical aid as they really should not be allowed to put people through these things.

I will also be sending all correspondence and information to consumer watch and every other organization that deals with these things as I would hate for someone else to have to go through these emotions and problems.

My only worry now is that my angel gets her needed surgery and comes home. She means everything to me and seeing her suffer for nearly 2 weeks in pain is almost un-bearable to me. I would do anything to take her pain, even take it on myself.

I love you Liz and if you ever decided to read my personal blog you will find these notes. Its the only place I can vent.

I will never take you for granted. I LOVE YOU.

Dee

Sunday 16 March 2014

Development Boards, Environments and Other MCU Stuff

Hey everyone.

I have seem many reviews and forums and often add my advice as well as take advice from many out there.

Currently in South Africa there are various options when it comes to MCU development platforms.

Lets list the ones I use and enjoy using:

  • Arduino (AVR based using bootloaders, makes it easy for beginners and advanced users)
  • Chipkit (Pic32 based using bootloaders, much more powerful with much more io lines but slightly harder to work with and not as many libraries and info out there.)
  • Raspberry Pi (a 700mhz board capable of functioning as a full computer)
  • Arndale Octa ( Cortex A15 Quad Core development board – STUPID POWERFULL)

Now when it comes to prototyping one has to select the correct board or MCU for the task. For example it would be a huge waste running anything but the Arduino’s ATMEGA328 PU chip for basic tasks such as Volt/Amp meters or other basic IO tasks. The other boards would literally be wasted.

If however you want to create a Home management system such as you would see in the movies then the Arduino (Despite having enought I/O Lines) might not have the horsepower needed. In this case you might make use of a raspberry pi and an Arduino piggybacked to it to expand the Pi’s IO lines. The options are endless.

Below I will list the specs of the above boards:

 

 

ARDUINO

Various Models avail but I will cover the basic Uno.

ArduinoUno_R3_Front_450px

Microcontroller
ATmega328

Operating Voltage
5V

Input Voltage (recommended)
7-12V

Input Voltage (limits)
6-20V

Digital I/O Pins
14 (of which 6 provide PWM output)

Analog Input Pins
6

DC Current per I/O Pin
40 mA

DC Current for 3.3V Pin
50 mA

Flash Memory
32 KB (ATmega328) of which 0.5 KB used by bootloader

SRAM
2 KB (ATmega328)

EEPROM
1 KB (ATmega328)

Clock Speed
16 MHz

 

There are also more powerful Arduino boards but for prototyping the original ATMEGA 328 DIP packaged board is the best as you can build your own Arduino boards or take the chip off board with very little difficulty.

 

 

CHIPKIT UNO 32

Despite this being a newer board and classified as an Arduino Clone this board is by no means an Arduino board. The Arduino is based on the ATMEL AVR’s while this board is based on the PIC32 Microprocessor.

It comes in two flavours but for this article I will talk about the UNO32.

chipKIT-Uno32-obl-500

Despite having the same form factor as the Arduino Uno the chipkit board has many more IO lines but still retains its compatibility with the UNO Shields and such.

  • Microchip® PIC32MX320F128 processor
    • 80 Mhz 32-bit MIPS
    • 128K Flash, 16K SRAM
  • Compatible with many existing Arduino™ code examples, reference materials and other resources
  • Can also be programmed using Microchip's MPLAB® IDE (along with a PICkit 3 and our PICkit3 Programming Cable Kit, seen below)
  • Arduino™ "Uno" form factor
  • Compatible with many Arduino™ shields
  • 42 available I/O
  • User LED
  • Connects to a PC using a USB A -> mini B cable (not included)

 

As can be seen above the PIC32 based board is FAR more powerful compared to the UNO from Arduino. However I feel that for most basic projects this board may be far more than what is needed.

 

RASPBERRY PI MODEL A AND B

The Raspberry Pi comes in two versions. The model A or old version and the current model the model B which is what I am using.

 

raspberry-pi-model-b

The Raspberry Pi despite being a standalone computer is also very capable of interfacing with the outside world via its GPIO lines. They can be programmed as inputs or outputs and can be used to control almost anything. However the Pi is limited by the number of these IO lines. This can be expanded using various Pi shields or an add on Arduino.

B 512MB specs

  • TYPEOther
  • BUNDLED OSLinux
  • PROCESSOR SPEED700 MHz
  • SYSTEM RAM512 MB
  • VIDEO OUTPUTSHDMI (v1.4), RCA / composite
  • DIMENSIONS3.37 x 2.13 x 0.67 in
  • WEIGHT1.59 oz
  • RELEASEDFebruary 29, 2012
General
  • TypeOther
  • Bundled OSLinux
Processor
  • Processor makeOther
  • Processor speed700 MHz
  • Number of CPUs1
Video
  • Graphics adapterIntegrated
  • Graphics (integrated)Other
  • GPU modelBroadcom VideoCore IV
  • Video outputsHDMI (v1.4), RCA / composite
Networking
  • Ethernet10/100 [Fast Ethernet]
  • Ethernet ports1 ports
Memory and storage (basic)
  • System RAM512 MB
Connections
  • USB (rear)2.0 (2 port(s))
Audio
  • TypeIntegrated
  • Audio outputs3.5mm
Memory card reader
  • Memory card readerYes
  • Memory card supportSD, MMC

 

The Raspberry Pi is a very popular choice when it comes to developing as it allows one to play not only with lower order electronics but also to play within the linux OS and develop some really powerful systems.

 

ARNDALE BOARD

The Arndale board. Well this is really next level stuff and not recommended until you have a pretty firm grasp of how things work.

 File-Arm_5250_full_1

    • CPU Board
      • Cortex-A15@1.7 GHz dual core subsystem with 64/128 bit SIMD NEON
      • 32KB(instruction)/32KB(DATA)L1 Cache and 1MB l2 Cache
      • 32-bit 800 MHz DDR3(L)/DDR3 2GB
    • Base Board
      • Sensor
        • Accelerator : Invensence MPU-6050
        • Gyro : Invensence MPU-6050
        • e-Compass : AKM -AK8963C
      • ITU 601 camera Interface
      • HDMI 1.4 interfaces with on-chip PHY
      • One channel eDP output Single WQXGA
      • MIPI DSI Standard Specification V1.01r11
      • MIPI CSI Standard Specification V1.0 Two ports
      • USB3.0 Host or Device 1-channel that supports SS(5Gbps) with on-chip PHY
      • USB2.0 Host or Device 1-channel that supports LS/FS/HS with on-chip PHY
      • USB HSIC 2-channel that supports 480Mbps with on-chip PHY
      • SATA 1.0/2.0/3.0 interface
      • One channel eMMC 4.5
      • One channel SDIO 3.0
      • Two channel SD 2.0
      • Four channel high-speed UART
        (up to 3Mbps data rate for Bluetooth 2.0 EDR and IrDA 1.0SIR)
      • Three channel high-speed SPI
      • Three channel 24-bit I2S audio interface
      • Four channel I2C interface support , up 400kbps
      • Four channel HS-I2C up to 3.1Mps
  • Extension Board package
    • Sound Board package
      • Sound Codec : Wolfson WM1811A
      • Features
        • 24-bit 2-channel Hi-fi DAC and 2-channel Hi-fi ADC
        • 100dB SNR during DAC playback
        • Smart MIC interface
        • 2W stereo class D speaker drivers
        • Capless Class W headphone drivers
        • 4Line outputs (single-ended or differential)
        • BTL Earpiece driver
        • Digital audio interfaces for multi-processor architecture
        • ReTune TM Mobile 5-band,4-channel parametic EQ
        • Dynamic range controller
        • Dual FLL provides all necessary clocks
        • Active noise reduction circuits
        • Intergrated LDO regulators
    • Connectivity Board package
      • Samsung SWB-A51H(WIFI,BT) + CSR GPS(G05t)
      • WIFI + BT
        • Vendor  : SEMCO
        • Device name : SWB-A51H(ATHEROS AR6003)
        • Features
          • IEEE Std 802.11a/b/g, 802.11n(1x1)
          • Bluetooth – Bluetooth specification Version 4.0 (BR/EDR+BLE)
          • WiFi direct support
          • Includes all the baseband and radio
          • external antenna
          • Low power consumption
          • Cellular coexistence supported
          • Host interfaces: SDIO
      • GPS
        • Vendor : CSR
        • Device Name : G05t
        • Features
          • Operates as a tracker
          • GNSS, GLONASS, Galileo and SBAS reception for high GNSS availability. Galileo and Compass support via future software upgrade
          • Host based MEMS enhancements for context recognition and improved accuracy
          • Improved accuracy by reducing cross-correlation from strong signals and susceptibility to multipath
          • High-sensitivity tracking to -165 dBm
          • Selectable LO/IF options
          • Excellent 3GPP acquisition and tracking margins
          • Designed for simple coexistence with 2G and 3G radio systems
          • Programmable I/O
          • Integrated DSP for jamming immunity, handling CW, narrow band and wideband noise
    • Display Board Package
      • MIPI-DSI 4 Lane and eDP interface support
      • 7 Inch TFT LCD, Resolution 1024 * 600
      • Capacitive Touchscreen
    • Camera Board Package
      • MIPI-CSI and ITU601 interface support
      • 5M pixel Camera
  • Accessories
    • AC Adapter (5V 5A)
    • SATA SSD120GB or 240GB (Sata To USB 3.0 cable or SATA cable + Power cable)
    • HDMI, Serial, USB Cable, SD Card, etc

This boards processor is the same CPU as is used in many of the latest Samsung Mobile phones and tablets. It is an extremely powerful CPU.

600px-Arndale_block

I am only just starting to dable with these CPU’s and boards but will be sure to share my experiences.

 

For now I recommend you head out and grab yourself an Arduino and start developing. There is a huge amount of info out there on the net with regards to Arduino.

 

Cheers for now.

 

Dionne