everhack Stuff I've been messing with, or just thinking about.


Taking a break from electronics, back to my original love, old BMWs.

I've decided to take a break from electronics and get back into old BMWs; a love of mine since right after high school when I thought I was going to be a mechanic for a living.

So, I bought this gray market 1979 BMW 323i that desperately needed a new and loving home to nurse it back to health.

IMG_5208 (Medium)

IMG_5334 (Medium)

Filed under: Uncategorized 3 Comments

fireflies redux

Just a little toy circuit I can't stop playing with...



Filed under: Uncategorized No Comments

Shape Packing

Here's a totally awesome GIMP plugin I discovered fortuitously over the weekend, "pack sprites", which is included with excellent "GREYC's Magic for Image Computing" (G'MIC) framework.

Forum announcement with lots of examples (it was called "pack shapes" at first)

New filter 'Patterns / Pack shape'

G'MIC homepage:


I'm using it to create semi-random lightening hole patterns for a laser-cut dulcimer fretboard I'm designing.


Filed under: Uncategorized No Comments

The Impending Digital Photo Apocalyse


The impending "digital photograph apocalypse" that I've been anticipating since 2003.. Googling the subject you can find articles and blog posts every year since then warning about it (but not many).

(see archiving, digital vs. film)

As digital photography displaces film photography, while at the same time bitrot and lax backup strategies slowly and quietly destroy those precious zillions of photos of cats, delicious meals-about-to-be-eaten, and Kayden/Aidan/Kieran's first tentative finger paintings in poo.

People will one day wake up and realize it's all gone.

Their CD-Rs tossed in a shoebox don't read anymore..

that new computer doesn't support that old Photo-CD format,

The budget online backup service got bought by some startup and then went bankrupt two weeks later after the CFO stole all the money and went AWOL...

Just check out the lengths a small dedicated team from NASA had to go to recover some early lunar orbiter tapes: Lunar Orbiter data recovery

Those boxes of film negatives? Just fine unless they got mildew on them.

It hasn't happened on any large scale yet, but as the transition slider moves ever further into the "all digital" realm and we get more and more casual with our terabytes of data, the risk rises ever higher in my opinion.

It seems so obvious to me that a high speed, high quality consumer grade film recorder, and accompanying "cloud to film" backup provider would make a mint.

Go ahead, search eBay for any such thing. All you'll find are machines that are ten years old or more older, with SCSI interfaces and software that's no longer available or supported on modern OS's.

The services out there (if you can find them) are ridiculously expensive. ($2.50-$4 PER IMAGE!!)

What if you could designate a particular folder in your Carbonite or Amazon or Backblaze backup as "backup to film and mail me the negatives for 0.10 a shot?" (see Pro Photo Connection) - ironically, this works out even cheaper than doing it yourself (my back of the envelope calculation works out to about 0.12 cents per exposure...)

Or have a nice desktop unit that you drop a roll of film in, push "print" and within 30 minutes (or better yet, 30 seconds), have 32 exposures safely ready to send out for development. Very affordable if you don't bother getting them printed, or maybe just a contact sheet.

Then again.. I suppose all of this requires a little planning and forethought, and if you had the benefit of those things maybe you wouldn't be one of those unlucky millions of people facing the "digital photo apocalypse" to start with.


Filed under: Uncategorized No Comments

LED as a light sensor

This is nothing new, but it's still pretty neat. Using a LED as a light sensor.

I modded this demo code from the Blinkenlight blog to read just one LED as input and turn a second LED on and off based on a simple threshold.



// www.blinkenlight.net
// Copyright 2011 Udo Klein
// modded 2013 by david mitchell - turn an LED on and off based on the light sensor value
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see http://www.gnu.org/licenses/

// Usage
// This sketch uses the Blinkenlight Shield as a light
// sensor. In order to make this work jumper the shield
// such the common cathode of the LEDs it connected
// to +5V.
// It will output hexadecimal digits that correspond
// to the amount of light captured by the LEDs.
// 0 = very bright light
// higher numbers = less light
// Theory of operation
// For each LED the following happens:

// 1) The PIN is pulled low thus reversing the LED.
// Thus the LED will act like a capacitor and gets
// charged.
// 2) We store the current milli second count in
// start_millis for later use.
// 3) The PIN is put to high Z input and starts to
// "float" with the voltage of the "LED cap".
// 4) If the LED captures light the "LED cap" will
// discharge fast, otherwise it discharges slow.
// 5) As the cap discharges the input PIN will
// float high.
// 6) Once the pin is detected to be high we will
// compute elapsed_millis by subtracting
// start_millis from the current milli second
// count

// The loops are coded in such a way that this
// happens "in parallel". They are also coded
// in such a way that each pin gets some time
// to settle.

// used to store the start milli second count per pin
uint16_t start_millis[1];
// used to store the last computed milli second count when pin floated to high
uint16_t elapsed_millis[1];

uint8_t transform(uint16_t data) {
// output transformation, used to map uint16_t to 1 hex digit
// basically a logarithm to the base of 2
uint8_t i=0;
while (data) {
data >>= 1;
return i;

boolean pin_is_ok(uint8_t pin) {
// used to determine which pins are good for light detection
// pins 0,1 are spoiled by the serial port
// pin 13 is spoiled by the Arduino's LED
return (pin == 5);
#define MINPIN 5
#define MAXPIN 5
#define ANODE_POWER 6

#define LED_OUT 7

void setup() {

digitalWrite(LED_OUT, HIGH);

// turn on the LED charge power
digitalWrite(ANODE_POWER, HIGH);

for (uint8_t pin = MINPIN; pin <= MAXPIN; ++pin) if (pin_is_ok(pin)) { pinMode(pin, OUTPUT); digitalWrite(pin, LOW); start_millis[pin] = millis(); elapsed_millis[pin] = 0; } for (uint8_t pin = MINPIN; pin <= MAXPIN; ++pin) if (pin_is_ok(pin)) { pinMode(pin, INPUT); } } void loop() { for (uint8_t pin = MINPIN; pin <= MAXPIN; ++pin) if (pin_is_ok(pin)) { if (digitalRead(pin)) { pinMode(pin, OUTPUT); elapsed_millis[pin] = millis()-start_millis[pin]; start_millis[pin] = millis(); pinMode(pin, INPUT); } } for (uint8_t pin = MINPIN; pin <= MAXPIN; ++pin) if (pin_is_ok(pin)) { int diff = transform(elapsed_millis[pin]); if (diff > 6) {
digitalWrite(LED_OUT, HIGH);
else {
digitalWrite(LED_OUT, LOW);
Serial.print(diff, HEX);

Tagged as: , No Comments

How my Dulcimers turned out

Well, after a long delay, I'm finally back to post some updates.

It took me about a month, but I finished building my dulcimer around May of last year, and it turned out really nice! I've been playing for almost a year now and really having a great time with it.


Here's another photo of it, hanging next to the one my dad made as a wedding gift for my mom in 1964.

Between them is an experimental one I made from HDF (hardboard). I wanted to know if I could make one completely from laser-cut pieces.

The answer is yes, but that HDF is a lousy tonewood. I ended up bandsawing it in half in a fit of frustration and discovered it makes a very nice wall hanger.


Here's another one of the HDF dulcimer.. I love the design of it, my next real dulcimer will look very similar, but I'll use a pegbox more like the one my dad made (like on the teardrop dulcimer above).








Filed under: Uncategorized 1 Comment

The Mountain Dulcimer : how to make it and play it (after a fashion)

Back in the late 50's and early 60's, my dad started building and playing Appalachian (mountain) dulcimers. Being the teacher and playful maker he is, he soon wrote a pamphlet on the subject that he shared with his students and anyone who wrote to ask about it.

Here's a copy of his 1962 (second edition) pamphlet, "The Mountain Dulcimer, how to make and play it (after a fashion)", which he has generously given me permission to post here for public consumption.

This pamphlet is the basis for the 1965 Folk Legacy book & album of the same title, but there are many differences between the two.

The Mountain Dulcimer, 2nd ed.

I had a nice long chat with Caroline Paton (of Folk Legacy Records) and she has generously given permission for me to publicly share a PDF of the Folk Legacy book, "The Mountain Dulcimer - How to Make it and Play it (after a fashion).". This is a significantly revised and lengthened version of the pamphlet, with a wonderful companion recording.

The Mountain Dulcimer - Part 1

The Mountain Dulcimer - Part 2

The CD is still available from Folk Legacy's website at:

The books, CDs, and original LPs are also pretty easy to find on eBay and Amazon.

The pamphlet focuses on the 3-string dulcimer and has quite a few more specific measurements than the book. The book mostly covers the 4-string dulcimer, but discusses a number of variations.

Enjoy and share with the blessings of Howie, Ann, Caroline and myself. I just love the way he encourages experimentation and presents the topics in such a clear and light-hearted fashion, it should appeal to most anyone with a creative streak, even if you never plan to actually make, or play, your own dulcimer.

I recommend both!

And yes, I finally decided to try building one for myself. Here's what mine looks like so far ๐Ÿ™‚

Filed under: Uncategorized No Comments

RFID Reader wrapup

I realized I never posted any images of my RFID reader in action, so here's a few of how it looks today in action.

This first view is of my workbench with scope, logic analyzer, reader & tag, and a few of my homemade tags.

Here's a closeup of the reader itself. The USB cable and antenna are the only connections required. The LED flashes every time the code recognizes the "triple-0" tag header sequence.

I have my 4 scope probes hooked up to the following signals from bottom to top.

First is a closeup view of just a couple of bits from the signal, showing the bits modulated with the 125khz carrier.

4) This is the antenna input signal after passing through the detector diode, low-pass filter, and decoupling capacitor.

3) The noisy line near the top of the antenna signal is the threshold voltage, which is adjusted manually to a couple hundred mV via a simple potentiometer / voltage divider. These two signals are fed into the AVR's built-in analog comparator to produce interrupts whenever the antenna signal rises above the threshold.

1) This the raw manchester-encoded signal from the tag as output by the detector code. It's composed of sequences of 5 possible signals, "short low", "double low", "triple low (this is the start-flag)", "short high", and "double high". You can see the how the trace echoes the signal in the antenna, delayed by 1/2 the length of a "short", which is how long the timer takes to detect the end of a high or low.

2) The topmost trace is what I use for triggering the scope, it's always low except when the tag header (000) is detected.

The next view is zoomed out a bit, showing the trigger pulse on channel 2, and the first 8 or 9 bits of the signal on channel 1.

Here's the two logic signals as seen via the Saleae Logic, and underneath are the (slightly obscured) decoded tag values output to the serial port.

Here's the schematic:

And, last but not least, the code itself (This is Arduino code for Teensy 2.0)

Filed under: Uncategorized 3 Comments

smd pcb rfid on the Cricut (semi-fail)

Using the "industrial" sharpies, fine and ultrafine point, I made two attempts at an AVR RFID card with integrated PCB antenna, with mixed results.

I designed all but the antenna in Eagle and exported to EPS, then imported into Make-the-Cut. The spiral antenna I created using Inkscape spiral tool, then cut-and-paste into Make-the-cut, and just rotate and move so the traces connect.

I draw a rectangular bounding box around the circuit and put into a separate layer, which I print first onto a piece of paper taped on the cutting mat. This shows me exactly where to place the blank circuit board.

Next I tape the circuit board to the paper using masking tape at the very edges only. I snipped off one of the grey friction rollers so it doesn't roll back and forth over the design and ruin it while the ink is still wet.

I remove the Expression keyboard to make room for the pen, and wrap a long thin strip of duct tape around the pen close to the tip to make it big enough for the tool holder to grip. I "cut" (draw) from Make-the-Cut at Extreme speed, low pressure, and etch in the usual way.

The experiment was very successful in that I was able to get pretty reliable traces in two sizes, roughly 0.5 and 0.8 mm, plenty for a sporting shot at surface mount stuff.

Unfortunately, while a magnet-wire coil produces upwards of 10v peak-to-peak, I can't seem to get better than 850mV or so across the pcb coil leads, regardless of my choice of tuning capacitor, so for now running the Tiny85 is still out of the question.

The two antennas have about 25 and 45 turns respectively, but so far I've been totally unable to get them tuned to produce enough voltage to run the AVR.

I've been probing the tag coil across the capacitor leads while the tag is being stimulated at 125khz with my homemade reader.

The second antenna is pushing the resolution limits in the spiral because the "jaggies" from the machine reduce clearance between lines. I had to do a little cleanup work with a razor blade, separating adjacent lines that had shorted in a very few places.

Filed under: Cricut, Eagle, Inkscape, MTC 11 Comments

Cricut Repair Info

Cricut Repair Info

One way to get yourself a cheap Cricut machine is to buy a busted one off eBay. Try searching for both "broken cricut" and "defective cricut". Often you can win one for as low as $0.99 plus shipping for a Personal or Create model, or somewhat more for an Expression. Unfortunately, the supply has greatly dwindled over time since they stopped making the original three models.

Where to get one

The main dealer of these machines, "websbestdeals," must have some exclusive arrangement with PC, because they (used to) seem to have a pretty inexhaustible supply of broken machines to sell.

Have patience and don't get carried away with your bid, it seems there will always be more listed within a few days.

Read the seller's description carefully to see what is included. Usually (but not always), they only include the power supply, but sometimes it comes with everything, cutting mat, blade holder, power adapter, cartridge, overlay and even the manual and warranty card. Once in a while they'll sell two for one, but missing one or both power adapters.

Sometimes the seller's description will tell you exactly the issue, as in the case with a dragging blade. I'm not quite sure yet what it means when "the blade makes a lot of noise", but the broken limit-switch wires definitely cause a horrible noise on startup. Many times they simply say "it has no power," which so far often (but not always) indicates a power supply or broken trace problem.

Mine didn't come with a cartridge!

If you don't have a real cartridge, you can make yourself a "Fake George" to at least get a machine with the stock firmware to start up fully. More details here. Basically, you just need to (carefully!) make something that will short together pins 4, 6, and 10 (or 11, 15, and 17) on the cartridge port, to fool the machine into using its own built-in "George and Basic Shapes" cartridge.

Here are some close-up photos of what a real "George" looks like inside.

Removing the Side Covers

Don't rush to take the sides off the machine. Many times this won't be necessary, and it's hard to get the trim pieces off without doing at least cosmetic damage.

The way I do it is to use a thin bladed putty knife to get in between the trim and side cover (from the outside edge inwards), while pulling outwards with your other hand, to depress the little fingers that clip the trim piece on, one at a time. I've broken off quite a few of them with poor technique, but don't usually bother putting them back on anyways.

Once the trim piece is off you can get access to the 5 or 6 phillips-head screws holding the actual side cover on.

Accessing the Motherboard

Usually all the action happens in the bottom of the machine where the motherboard is located.

To access it, all you need is a long #1 phillips-head screwdriver. Roll the machine onto its back on a towel or something else soft, and remove the 8-or-so most obvious screws around the outside of the bottom cover. Then, tip the cover down and towards yourself like opening a panel. If you carefully tug a little on the wires leading up into the side covers you can get just enough slack to be able to rest it flat on the table while the machine is still on its back.

Problems and Solutions

Here are some of the things I have discovered so far while fixing a bunch of these machines:


I don't have a schematic drawn up for these, but one of my Creates is an older model with only a 2-layer board. This makes the circuit far easier to figure out than the 3-layer boards that came later. The Expression board is nearly identical, so this should be of assistance for figuring out those issues as well.

Here are close-up photos of the full front and back side of the 2-layer Create board.


Broken USB Port

Many people have reported broken USB ports. Although I have never attempted this myself, others have reported success at replacing the part.

Broken Dials

It seems the dials are pretty easy to break if the machine falls onto its front side. The size dial is expendable if you use Make-the-Cut or other cutting software on your PC, but if you cut with cartridges or the pressure dial is broken you may not have much choice but to try and find a replacement dial.

Bad Power Supply

An Expression I got with a bad power supply would constantly turn on and off, like a turn signal on a car. On, off, on, off. Replacing the power brick with a known-good one from another machine solved the problem.

Broken Inner-layer PCB traces

So far, two Create machines have been suffering from broken traces in the middle layer of the circuit board. Fixing these can be challenging since you can't see the inner layer to know where it was supposed to connect to.

Fortunately, I have a working older revision of both Personal and Create motherboards that are only 2-layers, and there were virtually no changes to the parts connections or positions when PC switched to the 3-layer boards. This means you can visually trace the connections on the older board, and verify those connections on the newer (broken 3-layer) one.

I will be adding specifics here to help with this process for anyone who doesn't have the benefit of a 2-layer board for reference.

1) One machine's power button would light up when you turned it on, but nothing else would happen. This was isolated to two broken inner-layer traces leading from the 5V regulator to two nearby parts.

Replacing Drive Belt in Cricut Expression machine. (contributed by Derek N)

I successfully found and replaced the belt on my โ€œwarrantiedโ€ machine that the company had me cut the drive belt. It was simple, took about 20 mins.

Purchase the belt by the meter @ http://www.robotdigg.com/product/22/MXL-Belt,-6mm-Width-Open-Ended. You need to email the company before ordering online and they will send you a paypal payment request. You need 2 meters. Delivery took 20 days from China.

How I did it:
With the cut belt still in the machine, I took the cut side and stapled (with several staples) the new belt in the same alignment as the old belt. I then pulled the belt through very carefully because you do not want to have to open this machine up. After I had the belt fed through I disconnected the metal clip that attach the belt to the cutter. I did one side first, then hooked it to the drive. After this was done I pulled it tightly so I could determine the length that I needed on the other side. Once I completed this I then made a judgement call, I wanted the belt tight (to were I had to give it a little tug to fit it to the drive mount). I then temporarily affixed the other metal holder to the belt (leaving a couple inches of slack as a just in case I needed to make adjustments) and test fitted it. Once I determined that I took all the slack out I crimped down the metal pieces and hooked that side in.

This again was simple and could be done at home quickly. The total for shipping and 2 meters of this cord was $7.40.

This cord is a about 30% narrower than the original cord and does not have nylon on the teeth part. So far I have made several cuts with no issues, other than that some of the cartridges still do not read. But for a free machine, it works!!!!

Plus I still have enough belt for one more repairโ€ฆ.

Edit 3/27/2014:

This page continues to have a steady stream of traffic and comments, thank you all for posting your problems and solutions alike!

Although I haven't done much trading in machines and parts, I've gotten a lot of requests for a few in particular, like the knobs and the plastic hinged arm from the cutter carriage, which I've mostly been unable to help with.

In order to try and help with this, whenever I find them out, I'll put up "known compatible" replacement part number/source information. I'm sure that the toothed belt, USB port, voltage regulator, and carriage end-stop button are in this category.

Secondly, if you have a broken machine, if you're not near Austin, Texas, I probably can't fix it for you.

But, if you need a specific part, or if you have already replaced your machine and want to get rid of the old one, send me a note and I'll see if I can help.

Offers of free or cheap donor machines and parts are always welcome. I don't do this as a business or to profit in any real way.

Unfortunately I only can deal with the "old" Personal, Create, Cake, and Expression machines. The Imagine and later generation machines like Mini and Expression2 are completely different and I cannot help aside from encouraging people to post any repair tips they may have about these.

In other news..

Last night I managed to ruin an Expression that I was trying to fix, one of the last in my "broken" pile ๐Ÿ™ My two already-working Expressions are currently out on loan and I needed one so I decided to see if I could finally get this one going.

The 5v regulator was fried, and got very hot quickly and smelled bad after turning the power on. I'm not sure why, but I did find (and fix) a pinched (and broken) ribbon cable for the display - perhaps it caused a short, causing the other issue. We'll never know.

Anyhow I misunderstood the part number when ordering and replaced it with an adjustable regulator of the same part number, which only output 1.2v since it wasn't configured properly. In trying to figure out my mistake, my multimeter probe shorted two pins together which sent 32v (or nearly) through everything it was connected to ๐Ÿ™

The CPU now has a nice bulge in the middle and just gets hot instead of working at 5v. I considered trying to replace it, but the chip alone is about $13 and who knows what else is fried. ๐Ÿ™ The good news is I can take it apart and find new homes for the surviving (practically brand new and unused-looking) remains.

Moral of the story: the PROPER 5v voltage regulator for the Expression and Create (probably the Personal as well) is the LM2576โˆ’5 (5v fixed) and NOT the adjustable one.

Edit 4/28/2013:

At long last, I took a photo of the repairs for the "broken inner-layer traces" issue.

First photo shows the front of the board. The broken traces connect one of the inductor leads (circled) to the 5v voltage regulator and to the large capacitor below it.

Minolta DSC

This next photo shows where the jumpers were placed. Your mileage may vary, but this got mine working.

Minolta DSC

Here's the "typical use" schematic from a LM2576 5v voltage regulator datasheet. This matches the Cricut's usage of it - using a multimeter you can check for continuity between the components wherever the solid lines are in the diagram. This is the reference I used when I found the broken connections on mine.

lm2576 5v typical usage

2) Another Create model would power up and boot fully, but the display would be either blank or show only a single line of pixels. Swapping out the display for another known-good one did not have any effect. This turned out to be a broken +5V power supply line to the OLED display connector. (pin 2, counting from the end with the red stripe). I repaired this one by adding a jumper over to the +5V power supply line on the keyboard connector an inch away.

Disconnected Cables

One expression, when you pushed the power button, would light up, but instead of booting would just beep three times and halt. This turned out to be simply a disconnected keyboard cable. The fix was simply to plug the cable back in to the motherboard.

Broken Limit Switch wires

Two different machines had this problem - they would start up okay, but when the carriage would slide all the way to right, it would crash at the end and make a horrible grinding noise. This indicates a problem with the button located in the right-side hidey-hole or the wires leading to it.

Upon removing the right-side cover, I discovered in one case that the pair of wires from the limit switch had been severed by the sharp edge of the metal motor bracket inside. Repairing the wires solved the problem. In another case, one of the wires had simply fallen off the switch, and I was able to just plug it back in.

Broken Solenoid wire

One Create would operate normally, except the cutting blade would not go up and down at all. A number of people have reported issues with very low cutting pressure as well.

Often, this is caused by broken or partly-broken solder joints at the top of the cutter carriage where the power wires attach. There (usually) is a blob of hot-glue on there to prevent the problem, but it doesn't always work.

If you have this kind of problem, remove the cover from the carriage and try poking or gently tugging on those wires and they may just fall right off. You should be able to remove the old hot glue by just peeling it off gently.

Space is pretty tight, but if you're careful you should be able to either resolder them directly or add a little piece of wire to extend them enough to re-attach. Putting a new blob of hot glue on top is also recommended.

Blade Dragging

This problem seems to be one of the most common, and the easiest to fix as well. The machine seems to operate normally, except that the blade drags in some places, cutting where it shouldn't, and hangs up in some places, not cutting where it should. Normally, the blade holder should move smoothly up and down. You should be able to push it down with no friction detected, and when released, it should move smoothly and freely back upwards.

In some cases, the lower of the two leaf springs in the cutter solenoid mechanism can get bent, causing a slight misalignment, which creates friction that causes the observed "dragging" behavior.

The fix for this is about the simplest of all: remove 3 screws covering the cutter carriage, and simply pinch with your fingers the upper and lower leaf springs together at the right hinge point. (Where the red circles are in the photo below). This should straighten the bent lower leaf spring and free up the movement.

Replacement Parts

The power brick is an 18v 2.5A switching power supply with a pretty standard cord end, so you could probably find something compatible, but you can get the real thing from PC itself for $9.99.

If you're looking for used parts, there used to be a few places to try, but they seem to have quit. I personally have a small number of bits and pieces for the Personal, Create, and Expression - but nothing for Expression 2, Mini, Imagine, or other later devices.

I'm not 100% certain, but the US Cutter Refine carriage looks identical from the photo.

Unsolved Machines

I have several machines that I have not yet repaired.

One is a Personal model that will often fail to boot, and show only dark squares on the LCD screen. It was described this way to me before I got it, worked fine upon receipt, but then stopped working again soon after. There must be a bad connection somewhere, because just picking it up and putting it down again will sometimes fix it.

Another is an Expression that, when powered on, the power light comes on, but nothing else, and the 5V regulator starts to get very hot. (see the 3/27/14 update where I toasted this one trying to fix it- the regulator WAS the problem).

Filed under: Cricut 798 Comments