Monday, December 22, 2025

Project box designed with OpenSCAD

As someone not generally comfortable with CAD I've been enjoying the almost childlike simplicity of TinkerCAD. The other day, David, VK3KR, suggested I have a look at OpenSCAD. It is a very different approach. Rather than dragging shapes from a pallet and modifying them by dragging, you code the shapes you want.

I built a QRP L-Match some time ago, inspired by Peter VK3YE, but mounted in a small food storage box it didn't look great. Working in OpenSCAD looks like this:


You write code on the left and each time you save, the render updates on the right. Sometimes, I'd love it if I could drag something in the render and have the code update. Maybe one day. There's a button to export STL and it looks like it can talk to some 3D printers directly although I haven't tried this.

I particularly like that I can set variables and then use them throughout the code so changing things like the wall thickness is set once and updates everywhere.


My experience is about one day of playing so please don't take my code as a good example of best practice. Here it is though.

// Box for L match tuner

$fa = 1;    // Minimum angle

$fs = 0.4;  // Minimum size


wall_thickness = 1.5;

box_x=80;

box_y=65;

box_z=25;

overlap=0.001;

bnc_r=10.5/2;

bnc_holes=12.5/2;

switch_r=6.5/2;

poly_r=7/2;

poly_mount_r=3/2;

poly_mount_offset=7;


difference() {

    // Outer cube

    cube([box_x, box_y, box_z], center=true);

    

    // Inner cube (subtract from outer to create hollow space)

    // Inner dimensions: 20mm - 2*3mm = 14mm

    translate([0, 0, wall_thickness + overlap])

    cube([box_x-(2*wall_thickness), box_y-(2*wall_thickness), box_z-(wall_thickness)], center=true);

    

    bnc_socket(z=box_x / 2);

    bnc_socket(z=-box_x / 2);

    

    // inductance switch holes in side

    switch_spacing=10;

    for (i = [0:1:4]) {

        rotate([90,0,0])

        translate([(i * 10) - 20, 0, -box_y / 2]) // push to the side of the box

        cylinder(h=10, r1=switch_r, r2=switch_r, center=true);

    }

    

    // extra cap switch

    rotate([90,0,0])

    translate([0, 0, box_y / 2]) // push to the side of the box

    cylinder(h=10, r1=switch_r, r2=switch_r, center=true);

    

    translate([25,-15,0]) {

        // polyvaricon main hole

        rotate([0,0,90])

        translate([0, 0, -(box_z / 2)+4]) // push to the base of the box

        cylinder(h=10, r1=poly_r, r2=poly_r, center=true);

    

        // polyvaricon screw hole

        rotate([0,0,90])

        translate([poly_mount_offset, 0, -(box_z / 2)+4]) // push to the base of the box

        cylinder(h=10, r1=poly_mount_r, r2=poly_mount_r, center=true);

    

        // polyvaricon screw hole

        rotate([0,0,90])

        translate([-poly_mount_offset, 0, -(box_z / 2)+4]) // push to the base of the box

        cylinder(h=10, r1=poly_mount_r, r2=poly_mount_r, center=true);

    }

}


module bnc_socket(z = 0) {

// end hole for BNC socket

    rotate([0,90,0])

    translate([0, 0, z]) // push to the end of the box

    cylinder(h=10, r1=bnc_r, r2=bnc_r, center=true);

    

    // mounting holes for BNC socket

    rotate([0,90,0])

    translate([bnc_holes, bnc_holes, z]) // push to the end of the box

    cylinder(h=10, r1=poly_mount_r, r2=poly_mount_r, center=true);

    

    // mounting holes for BNC socket

    rotate([0,90,0])

    translate([-bnc_holes, bnc_holes, z]) // push to the end of the box

    cylinder(h=10, r1=poly_mount_r, r2=poly_mount_r, center=true);

    

    // mounting holes for BNC socket

    rotate([0,90,0])

    translate([bnc_holes, -bnc_holes, z]) // push to the end of the box

    cylinder(h=10, r1=poly_mount_r, r2=poly_mount_r, center=true);

    

    // mounting holes for BNC socket

    rotate([0,90,0])

    translate([-bnc_holes, -bnc_holes, z]) // push to the end of the box

    cylinder(h=10, r1=poly_mount_r, r2=poly_mount_r, center=true);

}

Here's the lid:

// Box lid for L match tuner

$fa = 1;    // Minimum angle

$fs = 0.4;  // Minimum size

wall_thickness = 1.5;

box_x=80;

box_y=65;

box_z=wall_thickness;

overlap=0.001;

// lid

cube([box_x, box_y, box_z]);

// inside

translate([wall_thickness, wall_thickness, 0])

cube([box_x-(wall_thickness*2), box_y-(wall_thickness*2), wall_thickness * 3]);

The language is a bit odd. I don't know why what I call functions are called modules for example.

There are some very interesting looking libraries available including one for project boxes called YAPP_box like mine. 

The downloadable binaries are quite old, dated 2021, but development seems active. I tried building the macOS version but it failed and I haven't persisted.

Although the learning curve on a code driven 3D design program is higher than a click and drag version there are benefits. Things like the row of holes for inductance switches is a loop and a single setting of the radius of the hole is used throughout.

Sunday, December 21, 2025

Good Australian FreeDV net despite some storms over Victoria

A good FreeDV net again this morning with stations including VK2KNC, VK2SPB, VK2VCO, VK3CKY,  VK3FFB,  VK3JCO, VK3JFR, VK3KEZ, VK3SRC,  VK3UH,  VK5AG,  VK5COL, VK5KFG,  VK5KVA, VK5QI,  and VK3TPM. 

Thanks everyone for coming up and for all the season's greetings. Note that Jack, VK5KVA, will be hosting a net tonight from 20:30 Eastern Time also on 7.045Mhz.

Wednesday, December 17, 2025

Tech talk on ABC Radio - Under 16 social ban, how it's working

Last Wednesday the 10th of December the social media tap was turned off to children and teens under 16 of course in our world first social media ban.  

Almost a week later, how has the ban been faring? We've heard some stories of kids getting around the ban, but overall has it been effective? 

A summary of recent AI news including SuperHuman hearing aids for the wealthy.

Peter Marks, mobile software developer and technology commentator from Access Informatics, joined Philip Clark and listeners to Nightlife. Listen here: https://www.abc.net.au/listen/programs/nightlife/nightlife-tech-talk-with-peter-marks/106151168 

Sunday, December 14, 2025

Sunday FreeDV net - 27 stations despite difficult conditions

A record rollup this morning although NVIS (local) propagation was poor. The best signals for me were from Sydney - Melbourne but South Australia was good too. Again we had some new stations and there was mention of the article in the latest Amateur Radio magazine and a new video from Peter VK3YE.


Stations on frequency, not all transmitting, included VK2AWJ (John first time on the net), VK2BLQ, VK2DWG, VK2JAB, VK2KNC, VK2SPB, VK2SPD, VK2VCO, VK3CKY, VK3CRY, VK3FFB, VK3GTP, VK3KEZ, VK3SRC, VK3PWG, VK3VB, VK3VKL, VK3YE, VK4XYZ, VK5COL, VK5KFG, VK5KVA, VK5UR, VK6KR and me VK3TPM.

As an aside.. it's wonderful to see so much FreeDV activity here in Australia. Here's the list just for one frequency on 40m today, a Monday.


FreeDV has really taken off in recent weeks.

Thursday, December 11, 2025

Teens turning to Amateur Radio after Australia's social media ban starts

I'm the acting secretary of the Macedon Ranges Amateur Radio club and this morning we were contacted by a twelve year old who is interested in getting in to Ham Radio. Here in Australia the social media ban on under sixteens came in just yesterday and I think we can safely say that this is just the beginning of a dramatic migration over to the first social media: Ham Radio. ;-)

Tuesday, December 09, 2025

New head2head reception comparison feature in WSPR Watch

Inspired by the wspr.rocks head2head analysis feature, I've added a similar feature to the iOS app WSPR Watch

This lets you compare WSPR reception between two stations. My version finds transmissions that were received by both stations and displays the SNR for each of them. (wspr.rocks averages all spot reception which I think is not the best evalation of relative receive performance).

WSPR has always been a useful way to compare reception and for things like comparing antenna performance.

Head2Head requests all bands and the time range is whatever is set elsewhere in settings.

Sunday, December 07, 2025

Sunday FreeDV net - 19 stations

A good net this morning with 19 stations seen - not everyone was transmitting, but I'll count them anyway. Of note was a first check in from well known local ham Peter VK3YE who was using an FT817 and has been experimenting with very low power transmissions - 30mW and lower!

Stations seen included: VK3CKY, VK3GTP, VK3NAR, VK3SRC (away), VK3YE, VK5AG, VK5KFG, VK5KVA, VK5LN, VK2TTL, VK3PCC, VK2DWG, VK5AV, VK2BLQ, VK3BAL, VK5LA, VK6POP, VK5KVG and me, VK3TPM.

Here's a snippet of VK3YE running 5W.


It's certainly a very power efficient mode. Thanks everyone for joining in and don't forget the net run by VK5KVA Jack from 8:30pm eastern time.

Wednesday, December 03, 2025

Tech talk on ABC Radio - Solar flares

Over the weekend, Airbus ordered immediate software downgrades to 6,000 of their A320 aircraft to avoid a problem triggered by solar flares. 

How can software be affected by solar activity and how could a downgrade possibly help? Also we talk about inauthentic accounts revealed on X and the good news that those annoying cookie permission buttons may soon disappear.

Peter Marks, mobile software developer and technology commentator from Access Informatics, joined Philip Clark and listeners to Nightlife. Listen at: https://www.abc.net.au/listen/programs/nightlife/nightlife-tech-talk-with-peter-marks/106093718

Tuesday, December 02, 2025

QMX in 3D printed case

Previously I mentioned building a QRP-Labs QMX kit but when I came to put it in a 3D printed case I found that I'd failed to follow the instructions and put the display on the front of the board instead of through the opening from the back. In removing the display I damaged the board. 

QRP-Labs sold me a new display board and it's just arrived. The QMX in a 3D printed case is even more compact that in the official metal case. The top PCB is actually sandwiched between the front and back printed pieces.


Also I used a rather nice blue display rather than the supplied green one. The 3D case has a hole for adjusting the LCD contrast which is handy. As you probably know, these transceivers work brilliantly not only on SSB but on FSK digital modes. I'm running WSPR on 40m into a rather poor vertical antenna but it's doing well.


QRP-Labs has a link to a listing of 3D designs for useful cases and accessories.

New version of WSPR watch coming soon that no longer starts the audio session on launch by the way. Good feedback on the new "globe" style spot display.