Thursday, June 3, 2021

Font Scaling in QT5 and OBS

 If you like to use OBS and have high resolution displays (4k, 8k, etc.) you may run into known silliness with poor EDID support in X and in the monitors themselves with regard to size and DPI.  If you find  yourself getting teeny tiny fonts in the obs UI (or any other QT app) the fix is easy. Just add the following to your ~/.profile.


export QT_AUTO_SCREEN_SCALE_FACTOR=0

export QT_FONT_DPI=80

That's it.

Sunday, May 23, 2021

External USB Hard Drives

 So I decided to have a look at taking external hard drives apart. Something the data storage community (e.g. /r/datahoarders) call "shucking". You buy external drives, open them up like a clam, and take out the meaty goodness.

For various reasons hard drive manufacturers have wildly different pricing and channels designed for intended "use cases". In general much of this is cosmetic and if you aren't paying attention you can spend 2-5x the price of a plain old hard drive for no good reason.

Therefore I bought two USB powered external miniature drives and opened them up. One by Seagate and the other by Western Digital. Both claimed to be USB 3.0 drives with 5TB of capacity. However they were two very different kinds of drives.


First off, the connection to the computer came up as usb-storage for one and uas for the other. For those that don't know, the simple difference is "uas" is better than "usb-storage". The former allows for advanced SATA features such as command queueing and letting the drive optimize access. The latter is a bit dumber.

Western Digital (usb-storage) 5TB $99/Amazon

The western digital was fairly easy to pry apart, though not without marring the case. Inside we see what at first looks like an ordinary hard drive.


Closer inspection, however reveals that the controller board has the USB port directly built into it. These drives are unusable as anything other than a USB attached drive.


Seagate (uas) 5TB $109.99/Amazon

The Seagate on the other hand reveals a nice surprise.

What's under the foil you ask? Well let's have a look.

That's a nice little accessory card that incorporates a USB3.0 to SATA connector. It's like getting two toys for the price of one.


Sadly, however, these drives are quantity restricted due to the massive demand causing storage prices to spike. The cryptocurrency madness of CHIA has ruined the HDD market just as Ethereum ruined the video game market.

Tuesday, February 12, 2013

Adventures in wobbly cartesian robots, v.1

This is v.1 of the mill. It's very wobbly, cuts at a slant but kind-of worked. What did I learn from it?



In making my mill, the Z axis and its rigidity was a key concern and so the arm that goes up and down is made of boxed 3/4" MDF and a ton of barrel nuts. These nuts seemed like a good idea initially because they are simple to work with, however the high cost (about $0.50 each!) rapidly became unbearable.


I wanted more than just a few inches of Z travel and aimed for an initial 24 inch Z arm.  This translated into only about ten inches of usable travel, so I'm glad I didn't skimp.  However MDF is really heavy as a material and so the weight of the Z arm hanging off the X axis gantry has caused plenty of flexing.


I did make use of the clever (i.e., not invented by me) skate-bearing based linear bearing mechanism.  It uses skate bearings mounted in angle aluminium to create a very stable slide, however it is time consuming to create.  You have to bevel the edges of your material and then accurately drill mounting holes for the bearings.

After cutting them for the Z axis I decided to do the remaining axes using specialized v-groove bearings riding on the edge of angled aluminum.  This had its own problems I'll talk about below.


v.1. of the mill is constructed entirely of rectangular pieces.  This is because I was able to make quick, accurate cuts on my cheap table saw.  A friend brought over his bench-top drill press and we used that to plunge most of the barrel nut holes.  The rest of the holes were drilled using my cordless drill.  Once assembly began, however, the relative unimportance of precise 90-degree holes for barrel became apparent and so much of the drilling from there on was done with hand drills.

If you look at the side-view below of v.1 of the mill you can see the Z axis leaning forward.  Correcting that lean was a major goal of v.2 of the mill.  Because the uprights were cut by hand and were rectangular, this put a large amount of weight on the 'front-top' bearing and much of the time the rear-top bearing was lifted free of the rail.

Also problematic was DUST.  Dust EVERYWHERE.  OMG SO MUCH DUST.  Once I began running the mill the amount of dust became quite overwhelming.  Therefore I moved up the priority of effective dust control on the list.  Also noise.  The router is very loud and so hearing protection was important just to avoid ear fatigue.  Babysitting the mill was a full-time and attention activity so you couldn't go far.

I purchased quality but not-too-fancy ear muffs and took to wearing my earbud headphones under them to listen to some music while holding the vacuum hose.

Another problem was the ease with which the mill could be told to overrun its axes.  On several occasions I had to hit the reset button on the grbl controller to halt the mill while it bored into the spoil board.  Frustrating, but limit switches and self-homing are a future feature.  Having actual blocks to stop the mill from riding off the end of the rails is a good idea.  I often used clamps to hold the mill components in place and act as stops.


However I will admit that I was futzing with the mill I removed the X axis clamps then proceded to drop the Z arm off the far side.  The result was a bent shaft on one of my stepper motors :-(.

Thankfully that motor is dual-shafted and I only use the mount end to drive the Z axis. All told, however, this crappy mill was able to perform basic cuts.  Once I did get the grbl controller wired up to the motor controllers and a laptop using some terminal software to send Gcode to it, I was able to make cuts.


These videos show my first attempts using the cheap HSS bits that came with my router.


They sucked


They burned the wood, tore up the surface and otherwise produced crap cuts.


So I went and splurged for a $20 1/4" carbide bit.


The difference was quite remarkable.


So, at this point I had a mill that could cut random bits of Gcode I sent it.  That marked the finish point of v.1 of the mill.  The plan at this point was to use this crappy mill to cut upgraded parts for itself.  I enlisted my son to help catch dust during these cutting exercises.  I try to include my kids in my maker activities.  I'll talk more about that another time.


Here's a random pic of my cousins who were in town for two days and I put to work cutting parts for v.1:


Sunday, February 10, 2013

Adventures in wobbly cartesian robots, Introduction

I've always been fascinated with automatic manufacturing and have been avidly following the homebrew 3D printing for many years.  I've always been daunted by the ~$1,000-2,000 cost of getting into the space, along with not having anywhere to work on such a thing.  (I have five kids and until recently a very small house.)

Last summer, we expanded our home and for the first time in many years I had access to a proper garage. I therefore began a project to build a CNC router.  I had considered additive processes (3d printing) and subtractive processes (machining/milling) and was conflicted for quite a while as to which would be a better place to start.  After extensively reviewing the different options out there I settled on an MDF framed, router based mill as being affordable and buildable with the tools I had at my disposal.

My goals with this project have been to boostrap from highly inaccurate hand tools (power drills, a tiny cheap table saw, wrenches and the like) to a device that lets me cut with < 1mm accuracy in materials up to the hardness of aluminium.

Sunday, June 19, 2011

Tuesday, April 5, 2011

What counts as electioneering?

I went to do my civic duty at the polls and saw something that gave me pause.

A man was intruducing himself to the poll workers as a rep from one of the "yes-on" groups. He was there to check the vote lists which is proper, but he had also brought refreshments for the workers. That is where things get murky for me.