not-quite-ready

25 April 2009

Introduction to Microcontrollers

I presented "Introduction to Microcontrollers" at BCB4. The handout is available here. The next version of the handout will have a timer/interrupt example. I am thinking about code to implement a simple real time clock (number of seconds since an epoch).

4 April 2008

Footprints for Breadboarding

The pattern on the left overlays five SOT23-6 (0.95mm pitch) footprints and two SOIC-16 (1.27mm pitch) footprints. The grid pattern consists of 60mil squares on 100mil centers.

The pattern on the right overlays five SOT23-6 (0.95mm pitch) footprints, two SOIC-16 (1.27mm pitch) footprints, and one DIP16 (300mil width). The grid pattern consists of 60mil squares on 100mil centers.

0805 resistors can be soldered horizontally or vertically between adjacent square pads.

SOT/SOIC Breadboard Pattern SOT/SOIC/DIP Breadboard Pattern

25 January 2008

Publication Quality Schematic Symbols

At the 22 January 2008 Freedog Meeting I presented some schematic symbols built with filled arrows and filled triangles. My goal is to create a library of "publication quality" schematic symbols. So far I have created a few symbols (MOSFET, BJT, diode, shunt regulator and current source) plus a couple example schematics. A sheet containing some symbols and sample circuits is located here.

23 August 2006

BOMs with Embedded Datasheets

At the 23 August 2006 Freedog Meeting we reviewed some output from my bom2tex script. The script produces a classic Bill of Materials, a sorted component list and an appendix with embedded datasheets. There are red hyperlinks in the BOM and Component List that link to each component datasheet. A large PDF file (1.6M) containing all pages of each datasheet is here and a smaller PDF file (900K) containing just the first page of each datasheet is here. The BOM is for a white noise source similar to the ARP 4022 noise module and the noise module in the Minimoog.

10 June 2006

Component Attribute Server and a BOM Utility

At the 8 June 2006 Freedog meeting I presented two write-ups of preliminary work on a component attribute server and a gschem BOM utility.

The component attribute server executes commands that return component attributes. Communication is performed using a socket. The only command accepted in this initial version is the get_datasheet command which returns datasheet filenames when sent a valid manufacturer name and manufacturer part number. Future versions will send other attributes such as footprint names, component alternates and component vendor data. The write-up is located here.

The BOM utility parses a gschem schematic and groups identical components (identical except for reference designator). The output can be sent to the bom2tex script to produce a pdfLaTeX file. The write-up is located here.

4 May 2006

Footprint Reference Document

Preliminary work on a program that creates a document containing dimension drawings of PCB footprints and a copy of the manufacturer's datasheet used to create the component. Although the manufacturer's datasheet is not be required to use a footprint it can be beneficial when a specification needs to be verified. The footprint reference, created by pkg2mp and fpl2tex is located here.

2 December 2005

Drill Templates (and Snowmen) using METAPOST

For prototyping, paper templates provide a quick and accurate way to perform drilling, routing or cutting operations. The METAPOST picture-drawing language provides an easy way to create these templates. METAPOST implements a picture-drawing language similar to Knuth's METAFONT except that the output is PostScript. For the December-2005 Freedog meeting I prepared a write-up that describes a program to create a heatsink drill template. The write-up is located here.

6 October 2005

Scripted Component Placement in PCB Files

For designs with a lot of repetition or designs that require components to be placed at specified positions it may be more productive to specify component placement positions using a configuration file. For the October-2005 Freedog meeting I prepared a write-up that describes a script I am working on that performs component placement. The write-up is located here.