PCB order placed for Binary Burst Clock

A lot of work went into designing this board. Thanks to help from Chris Meyer and Devlin Thyne I ended up with what I think is a design that will be friendly for the PCB manufacturer.

The parts order from Mouser came in on Saturday. I printed out the copper layers and checked all of the footprints against the parts. Everything looks just perfect. Yesterday I placed an order with Seeed Studio for ten copies of the board. Hopefully I’ll have then in hand in about two or three weeks.

Click on the image above for a larger version of the artwork. Or you can checkout the Kicad files from my git repository. This board is tagged as brd-v1.0.



Binary Burst clock concept

I’ve been working on a new clock concept and am far enough along to start sharing some details about it. I call it the Binary Burst. The latter is because I was inspired by some vintage starburst clocks and have settled on twelve spires as a reminder of that design. The binary moniker is because the readout will utilize binary code.

The illustration above shows my intended design. The time shown is 8:22. Each spire reads the minutes in binary shown as three bits made up of blue LEDs. The hour is noted as a red LED on the corresponding spire. If you saw the previous post about balancing the LEDs you may have figured out that the middle LED is a red/blue bicolor, with the rest being single blue. They are 5mm diffused packages that appear cloudy white when not illuminated. There should be some room for alternate display modes, but I’ll need to get working hardware in hand before I figure that out.

I spent a large amount of time over the Christmas break designing the circuit and laying out the board. This evening I ordered parts for four clocks. When they arrive, I’ll check that the footprints work and send the files off to a fab house for manufacturing. This is my first professionally fabricated PCB and I’ve put a lot of extra time in to make sure the design is up to snuff.

Splitting VCF files using Python

I recently did a fresh install of Ubuntu 11.10. I forgot to export my contacts from Evolution and was horrified to learn these are not stored in a flat file and the database is not compatible between versions (great work Evolution devs).

Some poking around on the internet led me to a Perl file to that was able to get the data. Then some Python work let me format it correctly as a VCARD (.VCF) file. But when I tried to import it I didn’t get all my contacts. More sleuthing led me to realize that only the first 75 were being imported. I wrote this short Python script to break up my 190-contact VCARD file into parts that had no more than 75 entries. I hope it will help you out too!

#split vcf files

working_dir = '/home/mike/compile/'
input_file = 'final.vcf'
output_seed = 'contacts-part-'
vcards_per_file = 75

with open(working_dir + input_file,'r') as f:
    count = 0
    output_count = 1
    results = []
    for line in f:
        if ("BEGIN:VCARD" in line):
            count += 1
        if (count <= vcards_per_file):
            results.append(line)
        else:
            #output file with stored values
            with open(working_dir + output_seed + str(output_count) + '.vcf','w') as oFile:
                for item in results:
                    oFile.write(item)

            #increment outputfile count
            output_count += 1

            #clear results list and append last read line
            del results[:]
            results.append(line)

            #set counter back to 1
            count = 1
            

    #write the last set of results to a file
    with open(working_dir + output_seed + str(output_count) + '.vcf','w') as oFile:
        for item in results:
            oFile.write(item)

Manchester encoding between monitor and light sensor

I’ve been working on a way to push data into a microcontroller using a computer monitor (or smart phone) which flashes black and white. I’ve done some preliminary tests using one photoresistor read by an ATmega168 analog comparator circuit. The results have been mixed. Continue reading