The vaults are insufferably damp.

Thursday, May 14, 2009

Frequency Counter Assembled

My frequency counter kit arrived today from SparkFun.com. The board wasn't exactly as described on nuxie1.com but it was easy to put together. I put a red LED from my stock on it instead of the supplied green LED. I connected it to my USB hub, tweaked the LCD contrast, and there it was: 0 hz.

The circuit board was nicely done. When they added a USB miniB SMT connector they crowded the LCD contrast control against the 6 pin ICSP connector, but it looks like it will still work. The ICSP header wasn't included in the kit, so I added one, again from stock.

I want to build some radio frequency circuits, so hopefully this will help me tune them up. I'll probably add a divide-by-ten front end to it and some signal conditioning. The kit claims to work to 2MHz or higher. If I can get it up to 30 MHz with a prescaler I think it will suit me fine.

Monday, May 04, 2009

Soccer and Bowling

We went to William's last soccer game for the season, but the other team didn't show. So it was Parents and other family members versus the Blue Strikers. I played about 30 minutes. It was a fun game.

Then Ellen needed a couple of bowling games for her PE class, so I took Sarah and Ellen and we all bowled two games. I had the high score for the second game.

I'm not used to this much fun on weekends. Sunday I was tired and sore. But I got all kinds of wii fit credit now!

Thursday, April 16, 2009

So Much Snow

We woke up with four inches of snow on the ground! A large branch broke off our willow tree and barely missed our neighbor's truck. The willow had started putting on leaves, so when the snow fell on it it stuck and overloaded the tree. The other trees in our yard are probably fine, but we may not get any apricots this year. I spent half an hour shoveling snow this morning before I left for work. How much snow at work (30 miles north of home)? Just a trace, the grass is green and the sun is shining. Just a typical spring day here in Utah.

Friday, April 10, 2009

Art Bohn 1938-2009

My father passed away on March 31, 2009. He lived in West Jordan, Utah, with my older brother. We did manage to gather all my brothers and sisters, and we were all with him when he died. Dad always had a sunny disposition and he touched the lives of all he met. You can see a picture of him on the right of this blog.

I miss him, but I know we'll meet again someday.

Thursday, March 26, 2009

Apollo Guidance Computer

Wish I had one of these: Build your own NASA Apollo landing computer. Maybe I'll just build the DSKY terminal and use it for a desktop clock!

This is the sort of thing that cries out for a VHDL implementation. Any takers?

Monday, February 16, 2009

Unbricking a Tiny13

I set the fuses on my Tiny13 wrong. The firmware on it didn't seem to be working, and it wouldn't respond to the ISP programmer. Time to enter the exotic world of High Voltage Programming! OK, to me 12 volts isn't that high, but it's more than you normally provide for a Tiny13. The details of the protocol are in the datasheet, but they don't go into a whole lot of detail. HV serial programming is used on the low-pin-count Atmel parts. The larger Mega8 uses HV parallel programming, and there are published plans etc. if you need that. I didn't find much help online for HV serial.

I built a HV Serial programmer using a Tiny2313 chip. I matched PB0-3 to the same pins on the Tiny13, and used PB4 to switch the 12V line (pin 1 on the Tiny13) using a transistor. I wanted it to work like MightyOhm's HV Parallel Programmer, where you plug in the chip, then press a button to reset the chip. The LED on the board goes off when it starts the procedure, then back on when it is done. So I added a button and a signal LED to my circuit. I found an 18V wall wart to power the whole system. I used a 7812 voltage regulator, then fed that into the Arduino. I then pulled 5 volts from the Arduino to power the Tiny2313 programmer chip and the Tiny13 target chip.

I started the firmware by writing a skeleton that would wait for a keypress, then call the fuseReset function. I figured I would want to read the signature from the Tiny13 to show that the HV mode was working, so I made the LED flash a 'binary morse code' for the three signature bytes. This flashes four 'high nibble' bits (long for zero, short for 1) followed by a short pause, then the four 'low nibble' bits followed by a longer pause. I put three test values into memory and had the LED flash the values out one at a time.

So now I had test firmware running on the '2313 that would light the LED, wait for a keypress, turn the LED off, pause with the 12V line activated, then turn the 12V line off and flash my test values out in binary morse code. Now time to do the HV programming protocol. This involves waiting a bit for the HV enable signals to latch, then sending from three to six instruction (SII) and data (SDI) bytes while you toggle the clock line (SCI). The target chip responds over the SDO line. My hvx() function rotates through the Instruction and Data bytes (II and DI), sets the SII and SDI lines, turns on SCI, waits, reads SDO, then turns SCI off. I added two LED's so I could watch SCI and SDO as the chip was programmed. I had to slow the SCI clock way down so I could actually read the LED's.

The first time I tried it I could read three signature bytes, but only two of them matched the Tiny13. The other one was reading as '0xFF'. I realized that I was trying to read bytes 1 to 3, when I should have been reading 0 through 2. Got that fixed and it was working. Next I put in the code to set the lfuse to 0x6A and then read the value back. It kept coming back as 0xFF, turns out I had misread the datasheet and put in the wrong II values. When I got that fixed it would read back 0x6A. I tested it out on the 'normal' ISP system and sure enough, Tiny13 back from the brickyard!

As I worked on this project I had to ask myself, 'This is a $1.50 part. Is it worth all this trouble?' I think that I learned enough so say with certainty, 'Yes, it was worth it!' Next time I brick a chip I can repair it using my own firmware.

Thursday, February 05, 2009

NGW100

Got myself the NGW100. This board has two ethernet interfaces and runs Linux. The processor is the AVR32 AP7 chip. I've got the buildroot software installed on my Linux laptop. I built the software and put it on a 512MB SD card, then I used uBoot to load the software. I like the newer kernel better than the one that ships on the board. I want to update the flash memory on the board.
Support This Site