The Emergent Properties of Meat
Blog
Software
Hardware
About me
Photography
 Logos
Bigger projects: emc2 & AXIS
Friends' pages:
Alex
Bill
Chris
Jon
Michael
Email me: jepler@unpy.net

6 October 2008, 17:59 UTCColorado Vacation Photos

Red Rocks Colorado(M) (L)
Here are some photos from our recent trip to Colorado, along with a couple unrelated shots of a community crops garden.

read more... [No comments]


4 October 2008, 12:54 UTCAutoreprogram for DFU devices
It's a bit of an annoyance to first have to press a combination of two buttons on my at90usb162 board, then run a sequence of 4 dfu-programmer commands.

Thanks to the magic of the freedesktop 'hal', though, I've written a program that waits for the dfu device to appear. It then erases and flashes the device, finally restarting into the newly uploaded firmware.

Modify the program to name your .hex file (and avr partnumber if it's different), then leave it running in the background. It's still necessary to tickle the RESET and HWB buttons in the proper way after rebuilding your firmware, but it does shorten the process.

Files currently attached to this page:

autoprogram.py1.5kB

[permalink] [No comments]


4 October 2008, 3:05 UTCat90usb162 gotcha: PC0 vs XTAL2

Unpopulated board(M) (L)
I spent a very long time trying to diagnose a board-level problem in my current project, an (almost all) surface-mount board based on the at90usb162. The board would reliably program over USB (which is very cool) but the programs I was running to blink the onboard LEDs would lock up. When I discovered that touching the body of the crystal would give me a slow-running program, I was convinced that I had bad placement of the crystal, or incorrect capacitors, or the like.

Finally after much head-scratching, I decided to restrict the DDRC to just some of the pins on the port -- before I'd set DDRC = 0xff. Well, it turns out that PC0 is a shared function with XTAL2. Apparently turning on bit 0 of DDRC turns this pin into an output, and makes the crystal stop running. Touching the crystal's can coupled 60Hz ambient noise into it, which was amplified enough to be treated like the external clock (I had suspected that the LEDs were blinking much slower than they should have been, but wasn't entirely sure)

Now I'm tempted to declare this board "working". whee!

[permalink] [No comments]


5 September 2008, 14:43 UTCMore macro photos

Portion of tomato stem(M) (L)
I found the hot shoe adapter for my ring flash, and also added a 49mm +10 diopter to the mix. Then I ran around taking photos in the hopes that a few were presentable.

read more... [No comments]


2 September 2008, 2:18 UTCXilprg: Zoltan Csizmadia's xilinx jtag programmer
I was thrilled to discover xilprg. Now I can test a new FPGA firmware by just typing ":make flash" in vim: It successfully programs the xc3s200 fpga and xcf02s platform flash on the digilentinc.com s3board using their parallel cable, without requiring proprietary linux kernel modules. Apparently it also works with the digilentinc USB cable.

read more... [No comments]


1 September 2008, 1:26 UTCMilled Circuit Board Macro Photographs

Surface-mounted leaded resistors and .1" header(M) (L)
By combining a 2x telephoto extender, 100mm lens, and 1:1 macro diopter, it's possible to get some serious magnification. The shots are all hand-held at ISO 400 or 800, F22, built-in flash. I also had some success with a +4 diopter alone, but when combined with everything else it ends up shadowing the subject. Unfortunately I wasn't able to find the hot-shoe adapter for my ring flash, which would have cleared that problem right up. If it does turn up, I'm going to take some more photos right away.

read more... [No comments]


29 August 2008, 0:49 UTCTwo-element capacitative touch sensor

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.

read more... [No comments]


21 August 2008, 23:48 UTCHigh speed transfers for sump.org logic analyzer
One of the hassles with the sump.org logic analyzer is that the serial connection is limited to 115200, the old limit of 16550-based serial chips and also a limit of the max3232 level-shifting chip on the board. When capturing a full 1 megabyte trace, this means that the transfer time is tens of seconds. However, modern USB serial chips have data rates up to several mbps and can work with 3.3V logic without level shifting.

I've tested this just enough to know that the signature 'SLA1' is transmitted properly over a USB serial interface using the FT232 chip. I haven't yet gotten the client to use the 1mbps baud rate. Apparently, the FT232 chips can also do a 2mbps mode. At these rates it would take from 5 to 10 seconds to transfer a full 1megabyte trace. (this assumes that the fpga and pc can both keep up the data rate, but I assume that won't be an issue)

The firmware change to use the higher rate is pretty simple (there was also an associated change in the ucf file to move the signals to different FPGA pins available on one of the connectors):

diff --git a/fpga/la.vhd b/fpga/la.vhd
index 1bf114f..11e748d 100755
--- a/fpga/la.vhd
+++ b/fpga/la.vhd
@@ -155,8 +155,8 @@ signal clock : std_logic;
 signal read, write, execute, send, busy : std_logic;
 
 

constant FREQ : integer := 100000000; -- limited to 100M by onboard SRAM -constant TRXSCALE : integer := 28; -- 100M / 28 / 115200 = 31 (5bit) -constant RATE : integer := 115200; -- maximum & base rate +constant TRXSCALE : integer := 1; -- 100M / 1 / 1000000 = 10 (5bit) +constant RATE : integer := 1000000; -- maximum & base rate

begin led(7 downto 0) <= exClock & "00" & switch & "000";

when my FTDI Basic Breakout shows up, I'm planning to wire it to a PS2 cable to make it easily pluggable, and then work on changing the java gui to use the higher rates. Or, failing that, I'll make my own GUI.

After that, my next plans for the analyzer are to make a new input conditioning board. The second edition will feature two banks of 8 inputs with current limiting resistors plus two banks intended to be hooked to the flashy ADC board. I have a 100Msps one-channel flashy board to use for this purpose. If this works out I'll probably pick up one of the dual-channel 200Msps boards.

[permalink] [No comments]


15 August 2008, 2:59 UTCCairo-based waveform demo

Image generated by waveform demo
It's late, but I just wanted to toss this online. It's a Python / Cairo / Gtk based waveform viewer. Maybe it will become the foundation for a replacement for both emc2's halscope and the sump.org logic analyzer GUI, when I find a hundred hours or so to work on it.

The main feature is that when a trace has more than one sample per horizontal pixel it goes into a sort of "envelope" mode, with a fainter trace showing the min and max and the bright trace following the median (not mean) value.

The demo writes out 3 static pngs, then shows a window that you can re-size to get an idea of the responsiveness. I have only run on a very beefy machine so far, which gives the impression that all is well. Resizing is tolerable, and exposing (and, by analogy, scrolling, when I get around to it) is pretty responsive.

Files currently attached to this page:

demo.py7.0kB

[permalink] [No comments]


13 August 2008, 13:01 UTCMarking anchors in HTML with a javascript bookmark
To send links to internal anchors in HTML documents, use this bookmarklet.

I find this bookmarklet very useful when sending people links to emc documentation and the wiki, because there are often more anchors available than those that are actually linked to in tables of contents.

[permalink] [No comments]



8 August 2008, 11:26 UTCUptime bragging
22 July 2008, 3:09 UTCThe sump.org digital logic analyzer
26 June 2008, 14:37 UTCHow to tunnel vmware over ssh
17 June 2008, 11:53 UTCzeldaTp.patch: Nintendo stepped in (part 3 of 3, I guess)
10 June 2008, 18:10 UTCzeldaTp.dat: complete corresponding source code (part 2 of ?)
9 June 2008, 22:29 UTCzeldaTp.dat exploit analysis (part 1 of ?)
8 June 2008, 1:39 UTCFirst crack at a wii dvd API
7 June 2008, 1:43 UTCwiifuse + net
6 June 2008, 12:07 UTCCall graph from powerpc elf file with debug symbols
3 June 2008, 15:22 UTCWii Back
13 May 2008, 23:41 UTCOh no! My wii is broken
8 May 2008, 3:12 UTChiff: hashing diff
8 May 2008, 2:28 UTCTyler Wong's Possibly Optimal Hangman Strategy
6 May 2008, 3:02 UTCBah, it's garbage
1 May 2008, 21:33 UTCmailpie: updated to version 0.2
29 April 2008, 16:13 UTCNew Laptop
26 April 2008, 17:03 UTC in softwaremailpie 0.1: full-text search of large e-mail archives
24 March 2008, 23:40 UTCturd: Tape Usage of Real Disk
23 January 2008, 16:36 UTCMath is hard (even for google)!
28 December 2007, 21:24 UTCCollate this!

All older entries



Powered by the Emergent Properties of Meat. Copyright © 2004-2008 Jeff Epler
[atom feed]  
[æ]