True's beaked whale.jpg

Western spotted skunk

Hooded skunk

Yellow-throated Marten

Wolverine

Archive for the ‘hobbies’ Category

Updated Voronoi diagram Inkscape extension

Monday, June 24th, 2024

Updated jim_voronoi.zip extension to work with Inkscape 1.3! (Original version of the extension.). To install, go to Inscape -> Extensions -> Manage extension -> Install packages tab -> click on file icon and select the zip file.

Takes as input a shape to fill with a Voronoi diagram. The number of levels of recursive Voronoi diagrams can be set.

Options

Random seed points: Number of starting points. The distribution of the starting points is set for each level of the diagram.

Options:
Levels of recursion: Within each Voronoi region, a new Voronoi diagram is created.

Level(rand_type):relax,…: Sets of parameters for each Voronoi diagram level.
<level>(<normalization method>[param1=n;parms2 = n.n; params3=foo…]):<Llyod’s relaxation interations>
The randomization type can be ‘normdist’, ‘normdist_edge’, ‘random’. ‘Random’ distributes the seed points randomly. ‘Normdist’ distributes the seed points around one or more ‘centers’ (default is 1 center), distributed around the centroid. ‘Normdist_edge’ moves the seeds away from the centers toward the edge.
Llyod’s relaxation moves each of the points halfway between its current position and the centroid of the Voronoi polygon it is located in with each iteration.

Parameters:
centers = 2 – Number of centers to cluster ‘normdist’ random points around. Centers are spaced at center_dist from the centroid of the input path.
keep_centers = 0,1,3… – Which of the centers to use. Numbering starts at 0.
center_dist = 1.23 – Distance from the path centroid to place the random seed centers. dist = size / center_dist. Default = 2.0. Large numbers push the centers towards the edge.
min_dist = 1.23 – Minimum distance of random points from the edge of the path. In Inkscape units. Default = 5.
sd = 1.23 – Standard deviation of the random points. sd = standard deviation of the random points. sd = size / sd. Larger numbers give a tighter distribution. Default = 2.5.
xy = x1,y1, x2,y2… – Explicitly enter random seed point locations. In Inkscape units. Overrides random dist center parameters.

Return lines or polygons: The Voronoi regions are added to the document as polygons or lines.

TODO July 2022

Tuesday, July 26th, 2022

Kiln camera
Endless rake
Kiln design
EDM controller test
Piezo motor design / tests
Spot welder controller
Kiln ESP32 v2 (current sensing, direct ramp control, 2nd temp probe, bug fix)
ESP32 security camera, wall powered
CNC glass cutting w/ heat gun

CLP-415NW Samsung printer repair

Sunday, January 15th, 2017

My Samsung CLP-415NW printer was giving a A1-4111 error. I found a post saying that this can be caused by a toner sensor electromagnet failing to hit the correct position because a foam pad squishes up. After removing the front door (remove black plastic extenders, pull up left side of door to pop out hinge), the front plastic piece, and the right side plastic case, the electromagnet can be uncovered. The electromagnet assembly can be removed with one screw, and pulled out for easier access. I added a 3-4 layers of masking tape to build up the pad. This cleared up the issue.

GeneTac 1000 biochip scanner teardown

Saturday, January 30th, 2016

Picked up a GeneTac 1000, a biochip scanner. Here are teardown pictures:
Here is the unit:

Teardown pictures. The unit has a self-contained lamp module that plugs into the main controller unit (EG&G Optoelectronics, Model # 300mXT-04, lamp module LM-300MX). Can’t find much about it–looks to be a 300W lamp. The center of the unit has a CCD camera, a Nikon lens, and a big custom lens, and two sets of filters. The slide carousel is on the other side.

















Cactus

Saturday, January 23rd, 2016

I’m growing some cacti from seeds. I have seeds for:
opuntia engelmannii
opuntia engelmannii

ferocactus gracilis
ferocactus gracilis

echinocactus grusonii
echinocactus grusonii

opuntia violacea
opuntia violacea

myrtillocactus geometrizans
myrtillocactus geometrizans

hylocereus undatus
hylocereus undatus

Fixing a Shark SV75 mini vaccum

Monday, April 27th, 2015

Bad batteries–vaccum has 13 sub C NiCD cells. Tested voltage on the individual cells and replaced 6 bad cells.

The vaccum still wouldn’t charge–checking the charging circuit board showed a crack in a trace near the edge where the indicator LED is located. A bit of solder fixed it, and now it is charging.

FYI, the main IC on the circuit board is a ABOV MC96P0202, a 8-bit OTP CPU.

Modding a Sunbeam heating pad

Friday, November 21st, 2014

I bought a Sunbeam heating pad. It has low/med/high settings, and turns off after two hours.
heating pad

The back of the controller says ‘Sunbeam SLA103’.

I wanted to eliminate the shutoff, I’m using it to heat my fermentation bucket.

(more…)

Kegging my first beer!

Monday, August 4th, 2014

I’m now set up for kegging beer, and am putting a brown ale into a keg. I want to hurry things along. Kegging usually takes 1-2 weeks, but I want the beer ready in 5 days. To speed things along, I’m doubling the pressure to 20 psi for the first two days, lowing the temperature, and shaking the keg a few times a day. After the first two days, I’ll reduce pressure to 10 psi. If I shake it after that and CO2 still goes in, I haven’t over carbonated. I’ll bring the temperature up to 38F the last day.

Here are instructions I found:

Kegging instructions

A carbonation table: Handy-Dandy Slow Force Carbonation Chart featuring Pressure vs. Temperature

Getting A Good Pour – Kegged Beer CO2 Line Length and Pressure

Cold and a long tap line help reduce foaming.

ABI 377 Teardown

Thursday, January 2nd, 2014

I picked up two ABI PRISM 377 DNA sequencers. These are the last generation of slab gel sequencers.
ABI 377

ABI 377

With the front open, you can see the place where the gel gets mounted.

gel door open

The left side opens, and the bottom cover comes off. The laser can be seen at the bottom, and some of the power supplies on the left.

Open cabinet

Here is the laser, a Uniphase Argon laser, 0.5W 2214-40MLA 1998.

laser
laser

The power supply modules are located on the left side. On the top left is the laser power supply. The electrophoresis power supply is on the left in the middle. To the right of it is the power distribution center–plugs for the laser and electrophoresis power supplies, and the blower motor. On the bottom at the left is the blower motor. In the middle at the bottom the top of a mirror module that bounces the laser back to the right at the level of the bottom of the gel. On the right at the bottom, the servo motor that moves the detector unit along the bottom of the gel.

left side

Here’s the laser power supply. The laser is not plugged in.
laser power supply

Close up of the laser power supply, Uniphase 2114B-40MLA 12A:
laser power supply

The power distribution center labels: J41 DC Power Supply Max 4000W J40 Heater and Pump Control

The electrophoresis power supply: Spellman P/N X2094 Rev. E4 Model No PTV5P300X2094
230V 5A, output 0-5kV, 0-60mA.

Here is a closeup of the servo: Telcomm brushless servo motor
servo

On the back side of the machine behind the top panel is this circuit board, the control, data processing, and interface board.

main board

Two interesting chips on the board, a FPGA and a pair of voltage converters.

xilinx
The FPGA is a Xilinx XC3064A

The voltage converter.
voltage converter

On the left of the main board is region with cooling lines:
pump area

Compiling for pic18 using sdcc

Sunday, February 24th, 2013

Upgraded to sdcc 3.2.0 from 2.9.0, and gputils to 1.0.0. The build commands I was using didn’t work, chnages to the .c file and build commands were needed:

Changes to the .c file:
Drop:

__code char __at(__CONFIG1H) __conf1h = _OSC_INTIO67_1H;
__code char __at(__CONFIG2H) __conf2h = _WDT_OFF_2H; //out for p18f4620
__code char __at(__CONFIG2L) __conf2l = _PWRT_OFF_2L & _BOREN_OFF_2L;
__code char __at(__CONFIG3H) __conf3h = _MCLRE_OFF_3H & _PBADEN_OFF_3H; //out for p18f4620
__code char __at(__CONFIG4L) __conf4l = _XINST_OFF_4L & _DEBUG_OFF_4L & _LVP_ON_4L;

Add:

#include "pic18f46k20.h"
#pragma config FOSC=INTIO67, BOREN=OFF, PWRT=OFF, MCLRE=OFF, PBADEN=OFF, XINST=OFF, DEBUG=OFF, LVP=ON, WDTEN=OFF
//Instead of WDT=OFF, see the .inc file
//Instead of OSC, use FOSC, see the .inc file

The CONFIG settings in /usr/local/share/sdcc/non-free/include/pic16/pic18f46k20.h and /usr/local/share/gputils/header/p18f46k20.inc do not match. WDT changes to WDTEN, OSC to FOSC

Command to compile:

/usr/local/bin/sdcc -V -mpic16 --use-non-free -p18f46k20 -c p18_step_control.c -Wl"-s ./18f46k20.lkr"