Stratux – what’s in that database?

If you’re a hacker, and you’re a data geek.. you probably want to know what’s in that Stratus SQLite database!

Get a SQLite client

I wasn’t able to find a SQLite client on the Straux image, so I installed one with apt-get:

sudo apt-get install sqlite3

Next, run a basic function test to see if it installed and will run:


SQLite version 2014-10-29 13:59:56
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.

Cracking open the data file

The sqlist logging / database file is in /var/log, and is named stratux.sqlite.

Cracking open the database and checking the schema I found:

sqlite3 stratux.sqlite

SQLite version 2014-10-29 13:59:56
Enter ".help" for usage hints.
sqlite> .tables

dump1090_terminal messages startup traffic
es_messages mySituation status
gps_attitude settings timestamp

Stratux SQLite Tables

Some of these tables contain alot of data:

Table Name Record Count
dump1090_terminal 313290
messages 307
startup 29
traffic 47038
mySituation 0
status 5350
timestamp 252097
settings 0
es_messages 463973
gps_attitude 0
es_messages table

This contains some interesting things. Here are the last 5 records from the database:

select * from es_messages order by timestamp_id desc limit 5;

469502|0001-01-01 00:39:09.91 +0000 UTC|{"Icao_addr":11265096,"DF":0,"CA":0,"TypeCode":0,"SubtypeCode":0,"SBS_MsgType":7,"SignalLevel":0.002207,"Tail":null,"Squawk":null,"Emitter_category":null,"OnGround":false,"Lat":null,"Lng":null,"Position_valid":false,"NACp":null,"Alt":22625,"AltIsGNSS":false,"GnssDiffFromBaroAlt":null,"Vvel":null,"Speed_valid":false,"Speed":null,"Track":null,"Timestamp":"2017-04-24T19:04:54.804Z"}|296790
469503|0001-01-01 00:39:09.97 +0000 UTC|{"Icao_addr":10846969,"DF":0,"CA":0,"TypeCode":0,"SubtypeCode":0,"SBS_MsgType":7,"SignalLevel":0.039045,"Tail":null,"Squawk":null,"Emitter_category":null,"OnGround":false,"Lat":null,"Lng":null,"Position_valid":false,"NACp":null,"Alt":12075,"AltIsGNSS":false,"GnssDiffFromBaroAlt":null,"Vvel":null,"Speed_valid":false,"Speed":null,"Track":null,"Timestamp":"2017-04-24T19:04:54.901Z"}|296790
469498|0001-01-01 00:39:09.53 +0000 UTC|{"Icao_addr":11265096,"DF":0,"CA":0,"TypeCode":0,"SubtypeCode":0,"SBS_MsgType":7,"SignalLevel":0.003431,"Tail":null,"Squawk":null,"Emitter_category":null,"OnGround":false,"Lat":null,"Lng":null,"Position_valid":false,"NACp":null,"Alt":22600,"AltIsGNSS":false,"GnssDiffFromBaroAlt":null,"Vvel":null,"Speed_valid":false,"Speed":null,"Track":null,"Timestamp":"2017-04-24T19:04:54.426Z"}|296789
469499|0001-01-01 00:39:09.53 +0000 UTC|{"Icao_addr":10687795,"DF":11,"CA":1,"TypeCode":0,"SubtypeCode":0,"SBS_MsgType":8,"SignalLevel":0.001740,"Tail":null,"Squawk":null,"Emitter_category":null,"OnGround":null,"Lat":null,"Lng":null,"Position_valid":false,"NACp":null,"Alt":null,"AltIsGNSS":false,"GnssDiffFromBaroAlt":null,"Vvel":null,"Speed_valid":false,"Speed":null,"Track":null,"Timestamp":"2017-04-24T19:04:54.441Z"}|296789
469500|0001-01-01 00:39:09.69 +0000 UTC|{"Icao_addr":10687795,"DF":0,"CA":0,"TypeCode":0,"SubtypeCode":0,"SBS_MsgType":7,"SignalLevel":0.000488,"Tail":null,"Squawk":null,"Emitter_category":null,"OnGround":false,"Lat":null,"Lng":null,"Position_valid":false,"NACp":null,"Alt":28025,"AltIsGNSS":false,"GnssDiffFromBaroAlt":null,"Vvel":null,"Speed_valid":false,"Speed":null,"Track":null,"Timestamp":"2017-04-24T19:04:54.626Z"}|296789

Selected one of the records and decoded the JSON message:

	"Icao_addr": 11265096,
	"DF": 0,
	"CA": 0,
	"TypeCode": 0,
	"SubtypeCode": 0,
	"SBS_MsgType": 7,
	"SignalLevel": 0.002207,
	"Tail": null,
	"Squawk": null,
	"Emitter_category": null,
	"OnGround": false,
	"Lat": null,
	"Lng": null,
	"Position_valid": false,
	"NACp": null,
	"Alt": 22625,
	"AltIsGNSS": false,
	"GnssDiffFromBaroAlt": null,
	"Vvel": null,
	"Speed_valid": false,
	"Speed": null,
	"Track": null,
	"Timestamp": "2017-04-24T19:04:54.804Z"

These seems to be the 1090 ‘es’ messages, however (at least this example) is missing tail number and squawk information. It’s interesting.., but not very actionable.

The next table I looked at was a completely different story!

traffic table

This looks like a good dataset to mine. With about 47,000 contacts int it.. this might be the basic dataset I’m looking for to use for some visualization.

select * from traffic limit 5;

1|11017168|N621VA|eaVRD947|0|0|0|1|-18.1550731147|6742|1|36.9193725586|-122.0635986328|13075|650|0|7|8|310|287|1|-1536|2016-02-26 01:22:53.426 +0000 UTC|0|0.27|0.16|0001-01-01 00:04:45.29 +0000 UTC|0001-01-01 00:04:45.4 +0000 UTC|0001-01-01 00:04:45.08 +0000 UTC|13075|0001-01-01 00:04:45.08 +0000 UTC|1|0|0.0|0.0|4
2|11017168|N621VA|eaVRD947|0|0|0|1|-19.4002028306|6742|1|36.9202423096|-122.0649414062|13050|650|0|7|8|310|287|1|-1472|2016-02-26 01:22:54.57 +0000 UTC|0|0.22|0.0|0001-01-01 00:04:46.33 +0000 UTC|0001-01-01 00:04:46.55 +0000 UTC|0001-01-01 00:04:46.55 +0000 UTC|13050|0001-01-01 00:04:46.55 +0000 UTC|1|0|0.0|0.0|7
3|11017168|N621VA|eaVRD947|0|0|0|1|-21.540961611|6742|1|36.9209747314|-122.0660552979|13025|650|0|7|8|310|287|1|-1472|2016-02-26 01:22:55.503 +0000 UTC|0|0.23|0.23|0001-01-01 00:04:47.32 +0000 UTC|0001-01-01 00:04:47.32 +0000 UTC|0001-01-01 00:04:47.48 +0000 UTC|13025|0001-01-01 00:04:47.48 +0000 UTC|1|0|0.0|0.0|10
4|11017168|N621VA|eaVRD947|0|0|0|1|-24.8545224734|6742|1|36.9220275879|-122.0676879883|13000|650|0|7|8|310|287|1|-1472|2016-02-26 01:22:56.453 +0000 UTC|0|0.14|0.14|0001-01-01 00:04:48.41 +0000 UTC|0001-01-01 00:04:48.41 +0000 UTC|0001-01-01 00:04:47.48 +0000 UTC|13025|0001-01-01 00:04:47.48 +0000 UTC|1|0|0.0|0.0|12
5|11017168|N621VA|eaVRD947|0|0|0|1|-22.2004294875|6742|1|36.9220275879|-122.0676879883|12975|650|0|7|8|310|287|1|-1408|2016-02-26 01:22:57.573 +0000 UTC|0|1.14|0.0|0001-01-01 00:04:48.41 +0000 UTC|0001-01-01 00:04:49.55 +0000 UTC|0001-01-01 00:04:49.44 +0000 UTC|12975|0001-01-01 00:04:49.44 +0000 UTC|1|0|0.0|0.0|14

Question.. what are the top 10 traffic events by Tail number?
Let’s find out! The simplest way I know of to do this.. and it offers the advantage that the select query against the large dataset with aggregation only runs ONCE.. is to get the parts you want, and the summary count and jam them into a temporary table. With SQLite, you can do it like this:

CREATE TABLE traffic_summary AS select Reg,Tail,count(*) as hits from traffic group by Tail;

That produced a summary table with 423 records in it:

select count(*) from traffic_summary;


Now.. who’s the nosiest one of them all?
div class=”code”>
select * from traffic_summary WHERE Tail>'' order by hits DESC limit 10;


Using a little sleuthing.. I found that ‘N713FR’ is a Frontier Airlines Airbus 321

Next time… will look at some tools to automate acquisition of this information and find out just who’s flying over and how often.

Stratux – handling a full filesystem

Running a Stratux in test-bench mode (not in an aircraft, and for days at a time), you’ll likely run into an issue with disk space. The ISO image I acquired from Stratux only provided a 1.8 BG partition for things to live in, and it’s quickly exhausted.

Here is the status of my system after running for about 36 hours… it’s full.

Filesystem Size Used Avail Use% Mounted on
/dev/root 1.8G 1.8G 0 100% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 30M 434M 7% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/mmcblk0p1 60M 20M 41M 34% /boot

Now to get about the business of increasing the partition and filesystem size without destroying it. First

Locate the disk device

Instructions on the web are not exactly correct, some suggest /dev/sda as the main device, however my testing shows it’s actually this:

Disk /dev/mmcblk0: 14.5 GiB, 15523119104 bytes, 30318592 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

… with the following partitions:

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 3887103 3756032 1.8G 83 Linux
Running fdisk

With the physical partition loaded.. start fdisk:

fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

I ended up creating 4 primary partitions. The plan is to delete partition 3 and then re-size the main partition to use up remaining space:

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 3887103 3756032 1.8G 83 Linux
/dev/mmcblk0p3 2048 8191 6144 3M 5 Extended
/dev/mmcblk0p4 3887104 20664319 16777216 8G 83 Linux

Command (m for help): d
Partition number (1-5, default 5): 3

Partition 3 has been deleted.

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 131071 122880 60M c W95 FAT32 (LBA)
/dev/mmcblk0p2 131072 3887103 3756032 1.8G 83 Linux
/dev/mmcblk0p4 3887104 20664319 16777216 8G 83 Linux

Write out the partition and… then run to enable it:

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.


Next, put a filesystem on this new partition. Using df to determine the type of filesystem currently in use; I recommend that you stick with it for this most basic of operations:

df -T

Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/root ext4 1815440 1799056 0 100% /

Run mkfs

/sbin/mkfs -t ext4 /dev/mmcblk0p4

Creating filesystem with 2097152 4k blocks and 524288 inodes
Filesystem UUID: e36a8f6c-a457-4531-b67d-bea4885a9583
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:... this might go on for a bit..

Once completed.. mount this where the logs and databases live. To do this the first thing that needs to happen is to check your current fstab:

cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that

My first order of business was to mount the new filesystem to a temporary location (/var/log2) and then copy the contents of /var/log to that location, then delete everything in the log directory, and then unmount log2.


mount -t ext4 /dev/mmcblk0p4 /var/logs

cp -R log/* log2/.

cd log
rm -rf *

umount /dev/mmcblk0p4

Edit the fstab file to create a mount point for the new partition where the logs used to be written (added the orange line), and ran mount to verify that it will automount on a restart.

vi /etc/fstab

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
/dev/mmcblk0p4 /var/log ext4 defaults,noatime 0 0

mount -a


Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 1815440 1768992 0 100% /
devtmpfs 469688 0 469688 0% /dev
tmpfs 474004 0 474004 0% /dev/shm
tmpfs 474004 35972 438032 8% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 474004 0 474004 0% /sys/fs/cgroup
/dev/mmcblk0p1 61384 20400 40984 34% /boot
/dev/mmcblk0p4 8125880 333800 7356268 5% /var/log

Restart and verify

Restart the little box and verify that the mount was preserved.

init 6

Log back in, and run df to check the filesystem health. It should now has the the main filesystem has some breathing room again:

 ad88888ba  888888888888  88888888ba          db    888888888888  88        88  8b        d8  
d8"     "8b      88       88      "8b        d88b        88       88        88   Y8,    ,8P   
Y8,              88       88      ,8P       d8'`8b       88       88        88    `8b  d8'    
`Y8aaaaa,        88       88aaaaaa8P'      d8'  `8b      88       88        88      Y88P      
  `"""""8b,      88       88""""88'       d8YaaaaY8b     88       88        88      d88b      
        `8b      88       88    `8b      d8""""""""8b    88       88        88    ,8P  Y8,    
Y8a     a8P      88       88     `8b    d8'        `8b   88       Y8a.    .a8P   d8'    `8b   
 "Y88888P"       88       88      `8b  d8'          `8b  88        `"Y8888Y"'   8P        Y8  

NOTE TO DEVELOPERS: Make sure that your system has an acceptable clock source, i.e., a GPS
with sufficient signal or enable ntpd (internet connection required).

Everything here comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Type 'stratux-help' (as root) for a few debugging commands.
pi@raspberrypi:~ $ df

Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 1815440 1389856 332592 81% /
devtmpfs 469688 0 469688 0% /dev
tmpfs 474004 0 474004 0% /dev/shm
tmpfs 474004 6336 467668 2% /run
tmpfs 5120 16 5104 1% /run/lock
tmpfs 474004 0 474004 0% /sys/fs/cgroup
/dev/mmcblk0p4 8125880 329820 7360248 5% /var/log
/dev/mmcblk0p1 61384 20400 40984 34% /boot

At a later date I’ll work on expanding the main partition, but for now this should stabilize the machine and resolve the main disk consumption issue.

Monitor local Aircraft (for baiscally free) using Stratux

An ADS-B listening station has long been on my list of things to build.

Our current residence is located right under the domestic approach to San Francisco International Airport (see picture), so I believed there should be plenty of data for testing and tuning.

Local Air Traffic

What is Stratux

So, what are we talking about here? It’s Stratux, and Open Source complete software package that leverages inexpensive SDRs (Software Defined Radios).

“Stratux is a homebuilt ADS-B In receiver for pilots. It’s easy to assemble from inexpensive, off-the-shelf hardware, and probably already works with your electronic flight bag (EFB) of choice. Even better, if you’re so inclined, the software is open-source and hackable so you can build the system that’s right for you. “

This is some powerful stuff!

The Raspberry Pi 3

Raspberry PI 3
After completing a proof-of-concept residential IP space data acquisition project for a client, I found myself with a Raspberry Pi just sitting on shelf.

The Raspberry Pi (version 3) is a neat little device. A full Linux computer in a form factor the size of a pack of card, including a graphics chip that drives and HDMI output making it a real (compact and low power) desktop project computer.

SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
GPU: Broadcom VideoCore IV
RAM: 1GB LPDDR2 (900 MHz)
Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless
Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy
Storage: microSD
GPIO: 40-pin header, populated
Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)

My first Raspberry Pi purchase (as requested by the client) was a complete kit that cost me about $75 [ link to super size kit ], but you can certainly get the bare Raspberry Pi for under $40 (assuming you have some spare things like a micro-USB cable and a micro SD card).

Adding ADS-B radios

Adding ADS-B radios to the Raspberry Pi was as easy as ordering a kit form Amazon for under $40. [ Dual-Band ADS-B (978MHz UAT & 1090MHz 1090ES) Bundle For Stratux ]. For some reason, I’d debating buying the radios and building a kit. There are several complete kits with the computer, radios, specialized case, memory card etc. Prices vary between $120 to $250 depending on what parts you want. When I found this little kits with 2 sets of antennas, radios and coax for under $40.. it was just too easy to pull the trigger. So far they have been well worth the very inexpensive purchase!

Assembling the Sysetm

Custom Stratux Pi Case
Being a proof of concept, I didn’t feel like dropping another $20 on a specialized case such as this one (right), because I wasn’t sure if I’d be happy with this project.

The previous projects housing was too small (in my opinion) to provide what I wanted, which was a single item housing all the parts. Again, wanting to minimize costs while building project, I opted to re-purpose an small plastic ammo can into a make-shift housing. The unfortunate side effect of that decisions is that the final product looks like some sort of nefarious device (see final photos somewhere below).

Using the drill press / mill I have setup for another project, I quickly milled some vents to the plastic box to vent out the heat created by the Pi and the two nano radios. And believe me, this is something you want to do. Using the Stratux software, I’m typically seeing CPU temperatures around 140F (toasty), and the radio run a lot hotter.

SDRs installed into Raspberry Pi
Hot enough to blacken the decals I’d put on the bottoms of the radios (this is what they looked like before they were cooked).

Once I had all the milling completed I installed the radios, Pi and coax into the box. The coax are reasonable flexible but still barely looped around inside the box. This photo was before I added another port for an Ethernet cable (that hack to be discussed in a subsequent post). It might not look pretty, but it does work!

Milled ammo box
SDRs and Pi installed in the ammo box.
Final Stratux in Ammo Box project

Making it all work

Once the physical construction was done, the last step was to download the software, burn it to a little MicroSD card and fire it up!

The Stratux page has the latest downloadable ISO disk image. It’s really as easy as this to get the software installed (pulled from Stratux page – although you probably want to go to the source):

Loading the Software (to upgrade firmware)

  • Download the .zip file, latest linked above.
  • Unzip the file. Look for the “.img” file.
  • If using Windows, follow instructions for Win32DiskImager.
  • If using Mac, download and follow prompts for Pi Filler.

Once you have the image burned onto the SD card, plug it into the Raspberry Pi, and hook it up to power. After a minute you should see a new WiFi network show up named stratux. You’re ready to start viewing the air traffic passing overhead!

What does it look like?

Once you have connected to the ad-hoc stratux WiFi network, navigate to this IP address: . If your system is up and running you’ll see a page that looks like this:

Stratux landing page at

If you have some aircraft overhead (as I almost always do), you should see them listed on the ‘Traffic’ page. This is what mine looked like just a few minutes before writing this article:

Stratux Air Traffic page

Now that you have this up and running, it can provide a GDL 90 data feed to variety of flight planning / monitoring software, including some free apps for iOS and Android. The full current list of software supported on the Stratux main page. Here is a snapshot of software support at this time:

Stratux Software support

California featureless AR-15 Ruger Precision Stock Mod

Hello for the People’s Republic of Kalifornia, where senseless gun restrictions keep the criminals safer every year and the rest of us oppressed by more onerous laws full of pitfalls designed to toss us in prison.

NOTE: I’m not a lawyer. Do not consider this legal advice. This is only a demonstration of my effort to keep my precision AR CA legal.

As I convert my ARs over to a CA featureless status, so that I can finally dispense with the stupid ‘CA Bullet Button’ method of avoiding California Assault Weapon bans, I didn’t want to swap out the highly adjustable stock I’d transplanted from my Ruger Precision Rifle (RPR).

The stock from the Ruger Precision provides a lot of adjustment flexibility, so you can achieve that perfect cheek weld. Fitting it to the AR itself is another article.

Ruger Precision Rifle stock as it is installed on an RPR.

Part of my featureless build project is centered around using the Exile Machine Hammerhead CA featureless legal (they insist there is a CA DOJ letter stating this) grip replacement. This combined with no foregrip and no flash hider turns the originally ‘destructive / evil’ AR15 in a pussycat.. or so the CA government would have you think… idiots.. it’s just a semi-auto rifle.. nothing more).

Exile Machine Hammerhead.

However, once installed the fixed stock, no longer allows the thumb to wrap around the AR’s lower receiver. Making the weapon harder to hold. Clearly this is not an ideal situation. Now, it’s important to note that when the Hammerhead is installed on a collapsible stock AR (that’s been pinned to make it safe), this is not an issue. Thus, that gave me an idea….. see if I can modify the stock to let my thumb wrap!

Exile Hammerhead and RPR Stock Together

After installing a Hammerhead on a carbine, and seeing that the thumb hold will work, I decided to see if there was some way to adjust aft the supporting bar that runs under the carbine buffer tube. Unfortunately, unless I wanted to drill and tab a new hole at the far end of the bar.. this was not going to happen. But what I did discover is that removing that tube entirely, has not destabilized the stock in any way. Since the RPR is designed to use an AR carbine buffer tube, there is a rail along the bottom of the tube that an adjustable stock rides upon. The RPR stock makes good use of this rail in both the forward and after clamps, where are aluminum. After removing the bar entirely, and re-clamping the fore and after clamps (you’ll need to reverse the cheek rest to clear the changing handle too).. it seems as stable as ever. And….

Final Result after removing the steel bar across bottom of buffer tube.

… you can get your thumb around the receiver. For me, the standard safety is still too far from my thumb to reach when you have your hand weld…. so an ambi safety will likely be in the near future.

Workable – Hammerhead and RPR stock.

I look forward to a day when this inane CA laws are overturned, or I immigrate to a Free State. Until then.. this will do.

2007 Mini Cooper ‘S’ engine overhaul

OH… oh my.. this is not what we want to be doing. I guess the odds might eventually catch up. I never buy new cars, ever; just don’t have any interest in taking that hard of a depreciation hit. So… used it always is…. and generally well used. So, we’ve bought.. 20+ used cars over the years and this is the first to suffer a major failure (in this case, engine has eaten itself).

Article Sections

  • The Engine Damage
  • Replacement Short Blocks
  • The Engine Damage

    As you can see.. it’s in pretty bad shape. Cylinder #4 was down 50% on compression, starting to throw warning lights…. but.. honestly.. they car gave no external indication anything was wrong. Ran very strong, sounded fine… but internally is was in seriously bad shape:







    So now.. what are our options? We did have an aftermarket warranty that covered up to $3000 for powertrain. This is going to cost A LOT more than that… but I’m trying to minimize the financial damage. So.. some research is in order to try to figure out what we’re going to do.

    Replacement Short Blocks

    I did find 1 replacement short blocks on the interwebs:

    Source Price Notes
    MiniMania $2925.00 Factory replacement Engine Block with Crank Gear for the N14B16A engine in the Turbocharged Cooper S.

    Mini Mania returned my e-mail this morning with the following information.. so.. this is sounding more and more like what we are considering doing, provided the cylinder head is not junked out:

    Thank you for your interest with Mini Mania and our products.

    Sorry to hear of your situation with your 2007 Mini Cooper S and I will try to answer your questions accurately as possible.

    The replacement engine short block that we offer are units from MINI and includes everything ‘below’ the cylinder head and ‘above’ the oil pan.

    Basically, it is the block with the crank and pistons installed. It does not include anything that gets attached to the exterior of the block.

    Replacement pistons are available individually from MINI, but only at standard bore. Depending on the condition and mileage of the block, it may be advisable to replace all 4, especially if you plan to keep the car for a while. There are some oversized pistons available from CP Pistons, but only in sets of 4. Mahle offers replacement pistons but only in standard bore.

    Main bearings and rod bearings are also available, but the prices will add up quickly if you replace all of them.

    If your budget allows, the short block is probably the best way to go as a ‘simpler’ solution and perhaps for longevity.

    I hope this helps.

    Best regards,

    More to come….

Some Rifle Ballistics Research

I’m always interested in bumping up my precision shooting game. Over the last few years I’ve built up a couple of beefy rifles on the AR platform. The .223 / 5.56 NATO is a good round.. for a while; but beyond not a great distance it loosed it’s ballistic performance, and with it’s very light weight (45 – 65 gr.) it’s at the mercy of even the mildest of wind.

Fortunately, there are some alternatives when it comes to building out an AR platform gun (Click here for info), but for real long-range precision shooting, the AR platform simply does not offer reasonable options. Thus, something with a longer chamber is in order. And if you are going to shoot precision, to give yourself the best chance, I think, you have to use a bolt action receiver.


The Rifle Search

There are a number of rifles on my short list.
One of them I had the pleasure of shooting (Ruger Precision .308) a few months ago.

Ruger Precision Rifle
Ruger Precision Rifle

Another I handled at a range in Southern California (Savage 110BA .338 Lapua)

Savage 110 BA
Savage 110 BA

Both of these rifles seem to have a pretty good following, so the question becomes; what cambering to buy.. and what are the major reasons for wanting one over the other? A number of factors are at play here, not the least of which is availability / price of the ammunition! I’m already feeling a little bit of the price pain in the AR platform with the 6.8mm SPC costing $1.00 per round or more! :/

Chambering of Interest

These are the 4 chamberings that I’m considering:

Pricing Comparisons

First off… pricing. I’m using Cheaper than Dirt as the source of pricing information, because it stocks a wide variety of ammuntion, it’s a fairly popular source, and will help provide a level pricing field for doing this basic comparison.

Bolt Action Calibers
Round Low Price rnd. High Price rnd. Offerings
.308 Winchester (all) $ 0.38 $ 0.68 175
6.5 Creedmore $ 0.94 $ 1.92 22
.338 Lapua $ 3.41 $ 6.29 32
.243 Winchester $ 0.59 $ 1.89 59
AR-15 Calibers
Round Low Price rnd. High Price rnd. Offerings
.22LR $ 0.07 $ 2.38 88
.223 Rem $ 0.21 $ 1.42 123
5.56 NATO $ 0.31 $ 4.33 38
7.62x39mm $ 0.21 $ 2.73 60
6.5mm Grendel $ 0.99 $ 1.18 3
6.8mm SPC $ 0.67 $ 2.01 23
Ballistics of Interest
Caliber Typical Weight Typical Velocity Typical Muzzle Force Typical Force at 200 yds.
.308 Winchester 150 gr. 2,820 fps. 2,649 ft. lbs. 1,707 ft. lbs.
6.5mm Creedmoor 120 gr. 3,010 fps. 2,414 ft. lbs. 1,924 ft. lbs.
.338 Lapua 250 gr. 2,960 fps. 4,863 ft. lbs. 3,999 ft. lbs.
.243 Winchester 95 gr. 3,100 fps. 2,027 ft. lbs. 1,472 ft. lbs.

Having shot .308 version of the Ruger Precision… I immediately started looking for one! And chambered in .308, ammunition will be easy to come by in quantities large and small. On my last outings to Nevada and Washington (where guns and people live a lot freer than here).. I surveyed the ammunition selections for availability and price. .308 was everywhere… 6.5 Creedmoor was limited to a few choices and .338 was… few and far between. :/

This article really has me re-thinking my original though on buying the .308: ( 6.5 Creedmoor Movement: The Greatest Thing since Sliced Bread — I had though I’d sorted this out in my head… but… the Ruger Precision 18008 seems like the logical decision… if I can find one! But then again… that Savage 110BA has been nagging at the back of my mind as well.

The final wrinkle in this would be if I started re-loading. I really know why I’ve not purchased a rig yet. The prices of ammunition does not seem to be going down, and now with the new insane laws in CA, ammunition is going to be more and more painful to acquire (and pricey too is what I’m thinking). Plus, if I’m really serious about the precision game.. buying cheap bulk ammo would just be wasting the purchase of a good shooting gun; frustrating it’s purpose; begging the question… “Why did you drop 15 c-notes on a tack driver to only feed is wet noodles? Excellent question.

Clearly, I still have a lot of thinking to do.

AR Platform Calibers

There are a lot of caliber options for the AR platform. Here are 5 common options:

Some AR-15 chamberings: (l-r) [ .22LR; 5.56mm NATO; 6.5mm Grendel; 6.8mm SPC II; 7.62mm Russian ]
Some AR-15 chamberings: (l-r) [ .22LR; 5.56mm NATO; 6.5mm Grendel; 6.8mm SPC; 7.62mm Russian ]

There are actually many more, such as .300 AAC Blackout, .458 SOCOM, 9mm, and I’m sure I’m forgetting a few more.

Some AR Platform Ballistics

Caliber Typical Weight Typical Velocity Typical Muzzle Force Typical Force at 200 yds.
22LR 40 gr. 1,125 fps. 140 ft. lbs. 71 ft. lbs.
5.56mm NATO 55 gr. 3,130 fps. 1,196 ft. lbs. 731 ft. lbs.
6.5mm Gendel 123 gr. 2500 fps. 1,706 ft. lbs. 1,297 ft. lbs.
6.8mm SPC 120 gr. 2,460 fps. 1,612 ft. lbs. 1,121 ft. lbs.
7.62mm x 39mm 123 gr. 2,350 fps. 1,508 ft. lbs. 905 ft. lbs.
.300 Blackout 125 gr. 2,250 fps. 1,405 ft. lbs. 942 ft. lbs.
.458 SOCOM 400 gr. 1,800 fps. *hard to find *hard to find

AR Rifles

Example of a bull barrel 5.56mm NATO rifle. This example weighs in at over 15lbs.

5.56mm NATO heavy configuration AR-15
5.56mm NATO heavy configuration AR-15

Example of a standard 5.56mm NATO rifle. This is a good example of the 2nd generation A2 AR-15.

Colt AR-15 A2 H-BAR rifle
Colt AR-15 A2 H-BAR rifle

Fleet Week 2016 – San Francisco, CA Airshow photos (series 1)

Fleet Week is always one of (if not THE) best Air Show on the West Coast. A large aerobatic box over the San Francisco Bay means a lot more latitude with the types of maneuvers that can be performed.

Here are some of the highlight pics from yesterdays performances.








































#wearefleetweek #USNAVY #NAVY #breitlingjetteam #blueangels #f22raptor #heritageflight #UnitedAirlines #PatriotsJetTeam #FleetWeekSF

Racing, Photography, Software and Politics.