Repairing my JVC GY-HM700 after blowing a fuse

Written 2019-11-13

Tags:JVC Fuse GY-HM700 camcorder 

After a long day, I plugged my camera into it's power cord to change some settings back. I had the bright idea to plug in the battery charger cable into the battery as well. The next day, the battery was fully charged, but the camera wouldn't run without the hardline power cord - the battery input appeared dead.

After contacting several repair shops and getting quotes for several hundred dollars, it seemed the camera might be toast, until I found the service manual online.

In the service manual, I could see the battery was connected to the REG board, which had three fuses soldered to it.

After removing the battery, battery mount, and rear door, I could see the REG board, and the fuses. Fuses F2 and F3 were intact, but F1 had blown.

As soon as I placed an ammeter across F1, the camera booted right up!

Next stop is a visit to PacParts to order the replacement fuse.

Ethereum Mining on Raspberry Pi 4

Written 2019-10-18

Setup

Download Ubuntu Eoan

https://wiki.ubuntu.com/ARM/RaspberryPi#arm64

Decompress Image and Flash to SD Card

xz -d ubuntu-19.10-preinstalled-server-arm64+raspi3.img.xz
sudo dd if=ubuntu-19.10-preinstalled-server-arm64+raspi3.img bs=1M of=/dev/mmcblk0

Log in, set your password, and fire up a shell

Download And Install Go

Download Geth

git clone https://github.com/ethereum/go-ethereum

Download And Install Some Dependencies

sudo apt-get install -y build-essential

Build Geth

cd go-ethereum
make geth

Launch Geth

./build/bin/geth --etherbase 0xYOURWALLETADDRESSHERE --syncmode fast --cache 256 console

Start Mining

miner.start(4)

Wait for the DAG to generate

Doop doop.

Monitor Hashrate

miner.getHashrate()

Results

Dag generation currently takes about 25 minutes. But after that...
> miner.getHashrate()
55210

Adventures in Geocoding the FCC ULS Database On the Cheap

Written 2019-08-03

Tags:Ham Radio 

I have a few project ideas that involve the FCC ULS database for ham radio operators. One of these projects requires lat/lon estimates of operator locations. To do this, I need to forward geocode data for approximately 1.4 million radio operators. When I normalize this into a list of operators linked to a list of addresses, there are around 1.1 million unique addresses. Texas A&M University maintains a list of geocoding software and APIs. For this amount of geocoding, I couldn't find a free API that covered my needs, so I tried a few solutions:

TAMU Geoservices

Texas A&M University provides a free geocoder with several possible cost structures:

Data attribution is required for partner status. Data can be reused and republished.

Google Maps

Originally when I started researching this project I looked at Google Maps, but in 2018 their usage costs doubled, changing from a free 2500 geocodes per day(75000/month), to a $200 credit per month with geocodes costing $0.005 each(40000/month). With a cron job encoding 1000 points per day, it should only take three years to geocode the ULS. Ugh. I will note that Google correctly geocoded all three of my test addresses to the right house.

Of note, Google disallows prefetching or caching!. This makes their service worthless for a number of applications.

HERE

HERE has a monthly global limit on API calls, but that limit is 250k per month, the highest of the paid services. HERE could geocode the entire ULS for free in only 5 months, or in one month for $1350.

Here also limits caching, this time to a maximum of 30 days. Ugh. Again worthless for distribution to end-users.

Nominatim/OSM

OpenStreetMaps has a geocoder named Nominatim. Setting up Nominatim requires a custom-tuned PostgreSQL database with approaching a TB of free disk space available. Though complex, the instructions do a good job of walking you through entire installation process for a few variants of Linux.

Once set up, the geocoding API is easy to work with, supporting both free-form and field-specified queries. And I can geocode as much as I want. Since the client and server are both on the same laptop, it's the fastest solution, but...

The bad news is that Nominatim only geocoded about half of the addresses, and at least for my three test addresses, the locations were off by several houses. A friend's house was off by a neighborhood.

As for data distribution requirements, Data attribution is required. Data can be reused and republished under CC BY-SA.

Current Working Solution

Currently, I'm using a sqlite database with two tables, addresses and geocodes. Geocodes consists of a reference back to addresses, a service, a lat and lon, and a timestamp. Whenever a service fails to geocode an address, it inserts a row with NULL lat and lon. Python scripts for each service run, and select addresses where there are either no matching geocodes, or only failed geocodes for other services. This way the services work together to cover gaps in one service, but don't waste time requesting data they've failed to fetch already.

I plan to migrate shortly to TAMU data, replacing all HERE and Google Maps shortly, and eventually replace OSM as well.

Kenwood IF-10 cable connector found!

Written 2019-07-08

Tags:Kenwood Ham Radio 

About five years ago, I emailed Kenwood support looking for the right connector to interface an IF-10 card to a Kenwood radio. Kenwood support sent over the following for PacParts:
Mfg             Part No             Description                    Price QTY     Total
--------------------------------------------------------------------------------------
Kenwood         E31-3333-05         Conn W/Lead 7P                 $6.95   1     $6.95   *** 90 Day Warranty 

Kenwood         E31-3334-05         Conn W/Lead 9P                 $7.64   1     $7.64   *** 90 Day Warranty 
These are actually cable assemblies, with a housing and pins ready for soldering on one end, and, thanks to Bob Brown(WØNQX) and William Morris and a little sleuthing on DigiKey, I now know to be a JST-EH series, one each of both 9 and 7 pins: I've ordered some and the corresponding crimp pins, and hopefully will be on my way to controlling my radio via USB soon.

Cracking .htdigest files with HashCat

Written 2019-05-02

Tags:OpenCL HashCat CUDA Password 

HTDigest files come in the following format:

$username:$realm:$hash

$hash is calculated as:

MD5($username:$realm:$password)

This is not a format directly supported by hashcat. Instead, we must reorganize it, like so:

$hash:$salt

We can place our username, colon, realm, and trailing colon in the salt like so:

$hash:$username:$realm:

and save it in a file named crackme. Then we use the following command:

./hashcat -m 20 -o output.txt crackme -O dictionary.txt

Older