|
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:
[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:
[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
|