Stippler: Turning photos into dots 
A few weeks ago, I stumbled over a paper by Adrian Secord describing an algorithm to turn a greyscale image into stipples. Here are the results of my implementation of his algorithm. UPDATE: I added the original photo of Marie, as well as the version that was used as input by stippler.
It's in a frame! 
OK, so there are still some problems left. But this is exciting anyway.
Another constant-current circuit [projects/01111254927]
Here's a constant-current LED driver circuit meant for use with wall-wart power supplies
Regulated LED flashlight [projects/01111764189]
This new board is designed around the same MIC2570 boost-mode regulator, and is designed to fit inside a pocket-size tin.
TI serial-interface DAC [projects/01112140655]
(M)(L)Sine wave created by software running on an AVR with a look-up table I got this interesting little DAC working earlier tonight, with only a minimum of trouble. The code worked right the first time, but I got the hardware wrong ---I let the "power down/" pin on the DAC float, which meant I got a mostly random square wave superimposed on the sine wave. Here's a crummy photo of my scope displaying a sine wave. The sine wave is generated from a 512-entry, 9-bit table in the AVR.
Regulated LED flashlight -- update [projects/01112559552]
VGA to 'scope display 
(M)(L)XY display of a cube The question on my mind was this: Where do I get a nice, fast DAC to run an XY display? How do I keep it fed with values? I discovered a very simple answer that I hadn't heard of before. The hardware is dirt simple: Get a VGA to 5 BNC-connector cable. Plug your computer's VGA output into your scope. Now load a specially crafted image in a full-screen viewer
Animated XY display 
(M)(L)Not originally a raster game... It's an old-style "QIX" animation.
Vector "text" display 
(M)(L)Simulating a character-cell display Displaying a message, even.
Working Z-axis 
(M)(L)Vector terminal with Z-axis With a simple transistor, the Z axis works pretty well. The linearity is better now that I'm using some 10b2 tees and terminators (50 ohms) on the X and Y inputs, too.
MAME vector display on the oscilloscope 
(M)(L)Asteroids Yep, it works. Too bad about the low resolution. More game pictures below the fold.
"Dithered" output increases resolution 
More vector game screenshots 
(M)(L)Battle Zone I really should mention the website of Jed Margolin which has a lot of information about his time at Atari, including his work with vector games.
Vector patches for xmame 0.94 [software/01115603825]
With this patch applied, xmame 0.94 does vgaxy-style output for display on an oscilloscope in xy mode
vgaxy -- create XY scope displays with your VGA card [software/01115603899]
Software for a virtual terminal and several other toys
XY display update [projects/01117067802]
New CRT, new board, same software...
a plug for Eagle3D 
4-axis half-stepping translator in AVR [projects/01129403515]
Chris started with a MAXNC 10 open-loop machine. The included driver boxes (which we came to understand were complete crap) use one pin per winding. This requires two parallel ports for 4 axes. So, a year or so ago, before he switched to L297/8-based boards, I helped Chris design an avr-based translator from step+direction pulses to the individual winding activation signals. Today I'm posting the program, which I compiled with avr-gcc. In the future I might post the board, which was a double sided design created in eagle.
SOIC-8 to DIP adapter board [projects/01134834815]
First Interesting Strobe Photo 
Parallel-port Two-axis PWM servo controller for Etch CNC [projects/01142347802]
(M)(L)ETCH Servo Inspired by discussion on #emc and by the fact that I'd already bought two tiny servo motors, I've designed and built a two-axis PWM servo controller with a parallel port interface.
Two-axis servo schematic and board [projects/01148303608]
L298 single-sided board I didn't originally include the eagle-format schematic and board for this project. Well, here it is.
Creating a Quadrature Divider: What Won't Work [projects/01149094674]
A proposed quadrature divider circuit, and a waveform that it will treat incorrectly As an improvement to the simplest possible closed-loop servo system, I've been trying to design a circuit that will function as a quadrature divider: the input and output are both quadrature waveforms with the same direction, but the output waveform is 1/8 or 1/16 as fast as the input. Because emc2's encoder module poops out somewhere around 20 microsecond polling intervals, an external divider is the only way to get accurate feedback from a fast servo motor with a high-resolution encoder. Division by 16 lets the PC see a 25kHz quadrature signal instead of a 400kHz one. For Chris's lathe retrofit, the target speed is actually around 125kHz (1250 mm/min, 1mm/rev leadscrew, 3:1 pulley, 500 line/rev encoder), but to keep it from being too easy, he's going to do 3 such decoders on a single 16MHz atmega. Many people seem to hit on the idea of using an up/down counter to process a quadrature input. Chris and I managed to convince a couple of bright guys on the #emc channel that this would work to create a quadrature divider circuit. Well, it doesn't.
400kHz Triple quadrature divider for atmega8 and quadrature state table generator [projects/01149271333]
1MHz+ Quadrature Divider for attiny13 [projects/01149348342]
Quadrature divider board. Actual size: .7x.4 inches (about 18x10mm) This untested code, along with an Eagle schematic and board layout, are for a quadrature divider that polls at over 1MHz. The R and S test points are used to program the device. Like the 400kHz triple divider, this program uses a state table generated by "mkstate.py", and is GPL software. For real-world use, external pull-ups should probably be added to the board's input side, according to the directions of the encoder manufacturer.
Bah, it's garbage 
Two-element capacitative touch sensor 
(M)(L)Touching the sensor (M)(L)The finger position readout As a distraction from my real project -- building a lightbulb alarm clock for the coming winter -- I've been playing with capacitative sensors. My first effort was a wire taped to a piece of metal foil, and that worked OK. The present iteration is a two-element touch sensor on a milled circuit board. The sensors are each about 1" by .5" and are connected to the arduino by a 3-pin header. The components on the board are very simple -- two 1M resistors. With a combination of software running on the microcontroller and in the PC, the sensor is made into a virtual slider.
Arduino Random Number Generator 
Random Number Generator Schematic Inspired by other designs I've seen online, most directly Rob Seward's design, I decided to build my own random number generator based Will Ware's "avalanche noise in a reverse-biased PN junction" (try this mirror of Will Ware's page). Also important is turbid which introduced me to the concept of hash saturation and the math behind it.
Soldering "helping hands" made with Loc-Line coolant hose 
(M)(L)Two-part clamp grips circuit board I ran across "Third Hand" and decided to make my own. The main feature of my version is the two-part circuit board clamp. The clamps were manufactured with Chris's help on Jr, his new cnc milling machine.
Side track: wwvb links 
Chris asks what advantage GPS has over WWVB for my clock project. I don't have a good answer for that (except that having enough controls to select one of 4 mainland US timezones and whether to apply DST is undesirable). However, this did prompt me to do some googling about WWVB. I found some interesting links about generating WWVB signals at home.
Time to finish that languishing clock project! 
A leap second has been announced at the end of June 2012.
Precision vs Accuracy: A Clock 
Helpful Scripts for CircuitPython & Real Time Clocks (RTCs) 
I have used two different RTCs in the Feather form factor. One has the PCF8523, and the other has the DS3231. The former has an SD card slot while the latter has higher precision including a temperature-compensated crystal oscillator.
Calibrating the DS3231 and PCF8523 RTCs 
The DS3231 and PCF8523 real time clocks (RTCs) can both be calibrated by writing various register values. To follow the calibration procedures you'll need a frequency counter you trust, with at least 6 digits to calibrate the PCF8523 and 7 digits to calibrate the DS3231. (It also has to operate at the comparatively low frequency of 32.768kHz; a common inexpensive 8-digit frequency counter such as the "SANJIAN STUDIO" has a minimum of 100kHz so it's not usable for this purpose) I use an old HP 5315B universal counter that has been calibrated against GPS time.
Quad CharliePlex FeatherWing hack 
Adafruit makes these neat "CharlieWing" displays that allow you to control a 15x7 LED matrix using the I2C bus. I2C uses two signal wires (called SDA and SCL, for Serial DAta and Serial CLock), and can connect multiple devices as long as they have different addresses. I noticed that the bigger brother of this device, with a whopping 144 LEDs, could be configured for 4 different I2C addresses, while this one could only be configured for 2. Or could it?
Si5351 Frequency Planner in Python 
Some notes on the Si5351a 
Pi Zero W USB Proxy