Showing posts with label G4DCP. Show all posts
Showing posts with label G4DCP. Show all posts

Saturday, 22 April 2017

Two years on

I have failed to update this blog for two years.

I have no excuse, I am now retired and am active in a number of ways on Amateur Radio and Light engineering.

I am playing with in no particular order:-
  • WSPR
  • SDR Receivers and Transmitters
  • Raspberry Pi's
  • Encrypted Internet Links
  • Remote Web-servers
  • Laser Cutters (Solid state)
  • CNC Milling (Small scale)
  • 3D Printing
These all interact in interesting ways, for instance I am using 3D printing to make parts to improve my Laser Cutter which I intend to use for PCB etch resist removal which gives me small circuit boards cut and drilled by the CNC Mill to make RF  circuits for my electronic and radio experiments!

So not of interest to many but an early attempt at creating a support component for this tangled chain I used OPENSCAD to produce a replacement carriage for the laser cutter with tighter tolerances to reduce the side slip that was affecting the reliability and repeat-ability of the laser cutter.

OpenSCAD uses a simple language to define 3 Dimension shapes mathematically. So in this case a source code of :-

/* Plate

units mm

*/

$fn=45;

PlateType = 2;


Toplen = 114.5;
Thick = 6.7;
Height = 112.75;
ShaftH = 5.2;
Hole3 = 4.6;
Hole4 = Hole3;
Hole5 = 24;
Hole6 = 4;
Hole7 = Hole6;
Hole8 = 3.6;
Hole9 = Hole8;
Hole10 = Hole8;
HoleS1 = Hole8;
HoleS2 = Hole8;
KHole1a = 6;
KHole1b = KHole1a;
KHole2 = KHole1a;
HoleRow = 5.6;
HoleRow2 = 62;
HoleRow3 = 22;
HoleRow4 = 45.7;
HoleRow5 = 88;
HoleRow6 = HoleRow5-31/2 ; /* Nema17 */
HoleRow7 = HoleRow5+31/2 ;
HoleRow8 = 16.4;
HoleRow9 = 56.3;
HoleRow10 = 95;
HoleSLen = 1.6;
HoleS1a = 37.7;
HoleS1b = HoleS1a + HoleSLen;
HoleSS = 33.5;
HoleS2a = HoleS1a +HoleSS;
HoleS2b = HoleS1b +HoleSS;
KHoleR1 = 31;
KHoleR2 = 70.5;
HoleIn = 11.3;
HoleIn2 = 19;
HoleSep3 = 17;
HoleSep4 = HoleSep3;
HoleSep6 = 31;
HoleSep7 = 31;
HoleSep8 = 20;
HoleSep9 = HoleSep8;
HoleSep10 = HoleSep8;
HoleSSep = 50;
KHole1Sep = 15;
KHoleBH = 6;
KHoleBW = 3.3;


difference() {
     union(){
        cube([Toplen, Height,Thick],center=true);
}
     union(){
        
    /* Wheels */    
         translate([0,(Height/2) - HoleRow,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([0- (Toplen / 2) + HoleIn ,(Height/2) - HoleRow,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([ (Toplen / 2) - HoleIn ,(Height/2) - HoleRow,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([0- (Toplen / 2) + HoleIn2 ,(Height/2) - HoleRow2,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
        
         translate([ (Toplen / 2) - HoleIn2 ,(Height/2) - HoleRow2,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=ShaftH, true) ;
      
     if (PlateType == 1){
        
         translate([ HoleSep3/2 ,(Height/2) - HoleRow3,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole3, true) ;
        
         translate([ 0 - HoleSep3/2 ,(Height/2) - HoleRow3,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole3, true) ;
     
        
         translate([ HoleSep4/2 ,(Height/2) - HoleRow4,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole4, true) ;
        
         translate([ 0 - HoleSep4/2 ,(Height/2) - HoleRow4,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole4, true) ;
      
 /* NEMA17 */
       translate([0,(Height/2) - HoleRow5,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole5,true);

      
              
         translate([ HoleSep6/2 ,(Height/2) - HoleRow6,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole6, true) ;
        
         translate([ 0 - HoleSep6/2 ,(Height/2) - HoleRow6,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole6, true) ;
      
         translate([ HoleSep7/2 ,(Height/2) - HoleRow7,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole7, true) ;
        
         translate([ 0 - HoleSep7/2 ,(Height/2) - HoleRow7,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole7, true) ;
      
        
        }
        else
        {
           
      /* Holes */
           
                   
         translate([ HoleSep8/2 ,(Height/2) - HoleRow8,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole8, true) ;
        
         translate([ 0 - HoleSep8/2 ,(Height/2) - HoleRow8,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole8, true) ;
     
        
         translate([ HoleSep9/2 ,(Height/2) - HoleRow9,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole9, true) ;
        
         translate([ 0 - HoleSep9/2 ,(Height/2) - HoleRow9,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole9, true) ;
  
        
         translate([ HoleSep10/2 ,(Height/2) - HoleRow10,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole10, true) ;
        
         translate([ 0 - HoleSep9/2 ,(Height/2) - HoleRow10,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=Hole10, true) ;
        
      /* Key Holes */
           
         translate([ KHole1Sep/2 ,(Height/2) - KHoleR1,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=KHole1a, true) ;
        
               translate([ KHole1Sep/2 ,(Height/2) - KHoleR1 - KHoleBH + 1 ,0]) rotate([0,0,0]) cube([KHoleBW,KHoleBH,3*Thick],true) ;
        
         translate([ 0 - KHole1Sep/2 ,(Height/2) - KHoleR1,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=KHole1b, true) ;
   
             translate([0- KHole1Sep/2 ,(Height/2) - KHoleR1 - KHoleBH + 1 ,0]) rotate([0,0,0]) cube([KHoleBW,KHoleBH,3*Thick],true) ;
   
          translate([ 0 ,(Height/2) - KHoleR2,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=KHole2, true) ;
         
          
            translate([0 ,(Height/2) - KHoleR2 - KHoleBH + 1 ,0]) rotate([0,0,0]) cube([KHoleBW,KHoleBH,3*Thick],true) ;
     
      /* Slots */     
     
       translate([ HoleSSep/2 ,(Height/2) - HoleS1a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS1a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
     
        
         translate([ HoleSSep/2 ,(Height/2) - HoleS1b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS1b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS1, true) ;
  
                translate([ HoleSSep/2 ,(Height/2) - HoleS2a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS2a,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
     
        
         translate([ HoleSSep/2 ,(Height/2) - HoleS2b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
        
         translate([ 0 - HoleSSep/2 ,(Height/2) - HoleS2b,0-(1.5*Thick)]) rotate([0,0,0]) cylinder(3*Thick,d=HoleS2, true) ;
  
       translate([ HoleSSep/2 ,(Height/2) - (HoleS1a+HoleS1b) / 2,0]) rotate([0,0,0]) cube([HoleS1,HoleSLen,3*Thick], true) ;
        
      translate([ 0 - HoleSSep/2 ,(Height/2) - (HoleS1a+HoleS1b) /2 ,0]) rotate([0,0,0]) cube([HoleS1,HoleSLen,3*Thick], center=true) ;
   
      translate([ HoleSSep/2 ,(Height/2) - (HoleS2a+HoleS2b) / 2,0]) rotate([0,0,0]) cube([HoleS2,HoleSLen,3*Thick], true) ;
        
      translate([ 0 - HoleSSep/2 ,(Height/2) - (HoleS2a+HoleS2b) /2 ,0]) rotate([0,0,0]) cube([HoleS2,HoleSLen,3*Thick], true) ;   
           
     }
}
}



Can generate two different 3D shapes depending on the value of  Platetype.

For Platetype = 1
 


For Platetype = 2

 

 These are of course simpler than the original parts that had shaping for clearance and minor style reasons.

Comparing these with the Clear Acrylic originals shows the disadvantages of the PLA I used to print it being opaque and prettier than my new test replacements, however the big advantage is that the slop is now gone from the mechanism so I will use these simple replacements for further experimentation.

(For interest the Laser Cutter is an  

EleksMaker® EleksLaser-A3 Pro 2500mW Laser Engraving Machine CNC Laser Printer )



 

Friday, 7 December 2007

The Comet CSB7900 Antenna a first look

I've just purchased a Comet CSB7900 "Super Beam" Antenna. I decided to get this to improve my signal strength and reception from my car for both Raynet and general use.

This antenna is 1.56 meters long and is quite heavy. I don't think I have the courage to use it on a motorway quite yet!

The main reason for this is the trouble I have mounting antennas on my company car. I currently use a clamp arrangement fitted to a roof rack bar. This has been reasonably succesfull for VHF and UHF use. (It is no use at all for HF as it puts the antenna up in such a way that the ground coupling is very bad and the antenna doesn't resonate properly. VHF antennas don't seem to cause this affect due I suspect to capcitive coupling to the car. The roof rack clamps are rubber faced and hence the rack bar is effectively floating from earth at HF frequencies.)

However the new antenna is quite heavy and the fixing clamp is flimsy as it is hinged and held in place basically by just one screw!


Early testing show the antenna as considerably better than the earlier antennas that I have used. However my rant today is that these antennas are Japanese manufactured and all the documentation and instructions are in Japanese!

You can extract the specifications easily enougth from web sites or the bag of the antenna / data sheet but that is all you can extract. There is a two sided white on black A4 instruction sheet including what looks very like a warning but I have no idea what it says!

The antenna is a 7/8 wave on 144MHz and three stacked 5/8 wave antennas on 430 MHz. It has a gain quoted as 5.1dBi on 144MHz and 7.7dBi on 430MHz. I think it is rated for 150W FM transmissions.

I will try to add a photo later!

The antenna was purchased from Nevada (Portsmouth) http://www.nevada.co.uk/

--
Peter G4DCP

Sunday, 25 November 2007

Emergency Radio

I've been a Radio HAM for many years, mainly as a licence holder who has been totally inactive.

Is HAM Radio dead and becoming a smelly corpse of a hobby? Well no it isn't. That is because HAM Radio has as a hobby a real valuable side seperate from being a black hole into which a near infinite amount of money can be poured!

Some radio hams are also "into" emergency communications. In particular I am a member of the local Raynet group. http://www.sehr.co.uk/

Even my wife feels that emergency communications are worthwhile. I suppose however it is the voluntary work carried out in providing communications for various events that need communications. (She runs Denmead Horse Shows http://www.denmeadhorseshows.co.uk/)

This support of events has a real use to groups like SEHR (South East Hants Raynet) and that use is providing oportunities to practice for a real emergency.

PS. The National Raynet site is http://www.raynet-uk.net/.

--
The ancient Ham

Why Blog?

Everyone seems to have a blog these days.

Do they have any real value?

About the only way to find out is to have a blog of ones own. I feel that no one could possibly be interested in the Musings of an ancient radio ham. However lets give it a try.

Oh you ask what is the callsign of this ancient ham? Well as you can see I'm now hearing hypothetical questions! I suppose I better answer it as I don't have a FAQ as yet!

So what's the answer you ask? Well it is G4DCP and from that you can if you wish learn an enormous amount of information about the real owner of this insane Blog!

--
The insane ancient radio ham