A lot of times in my work I find myself stuck with a definite integral depending on one or more external parameters, and I would like to see how the value of the integral depends on those parameters. After finding myself writing a lot of very similar little C programs over and over again to solve this problem, I produced this little GUI tool to simplify the process.
Using some simple techniques I learned from Thomas Gootee and Kenneth Maxon, you can make homemade PCBs, and stuff them with fine-pitch flat-package ICs and other surface mount components, all with great ease and convenience. Here are some snapshots documenting my initial dabblings.
Here are some shell scripts for fetching papers from physics journals from the command line. This is useful [note: really not THAT useful -- ed.] [ed.: shut up -- hr] when you have an exact reference to a paper (i.e. journal, volume, page), or a list of references, and you just want to print out all the papers and go sit somewhere and read them. Rather than typing the citation numbers one-by-one into your web browser and laboriously clicking through all the links, you can just enter the numbers all at once into this script, and voila, you have all the PDF files on your hard disk to print out in one batch. This is also convenient for when you are at home or on the road and you can only access your institution's journal subscriptions through your computer at work -- you can open an ssh console on your office computer, use these scripts to grab the papers you want on the command line, and then ftp them to your laptop.
dspicdmp:dsPIC programming utilities
These are linux console utilities for programming and dumping flash memory on the dsPIC line of microcontrollers from Microchip. I wrote them to work with my JDM-style serial programmer, but the hardware-specific portion of the code should be easily tweakable to work with other programmers.
Here are pictures, circuit schematics, and microcontroller code for an analog/digital voice-recordable alarm clock I built.
For any combination of source and load impedances, it is always possible to design a two-component matching network that achieves an exact conjugate match at a single frequency. In fact, there are always two distinct two-component networks that will work, and in some cases there are four. Here's a quick memo reminding you of how this works, and here's the source code for a simple command-line utility that will design matching networks for you instantaneously. (See usage examples here.)
This all comes in handy when simulating an RF circuit that needs to interface with the outside world, because it enables you to insert a matching network in your simulation with components custom-tuned to eliminate spurious reflections. This page outlines a method for doing this automatically within a circuit simulator, although the particular simulator for which I developed this technique has long since vanished from the Earth.
The Cadence Analog Artist suite for integrated circuit CAD contains a fairly powerful circuit simulator, but makes it kind of hard to use by forcing the user to click through all sorts of buttons and menus and windows to run simulations. For those of us who got into the IC design game back in the days of console-based simulators, or for GUI users who nonetheless want to customize their simulations, Cadence provides the OCEAN scripting interface into the simulator back end. Here's a tutorial on how to get started simulating circuits with OCEAN.
hofe:a front end for OCEAN in Cadence Analog Artist
I tend to prefer console-based tools to GUIs for circuit simulation (and most other things), and, although Cadence's Analog Artist tool is largely based on GUIs, it does offer the OCEAN tool as a text-based interface into the circuit simulator back end. Although the mere existence of such a tool is a godsend for people like me, the current implementation of OCEAN has some maddening drawbacks in its user interface, chief among them the absence of command-line editing and command history. Here's a wrapper program I wrote to give you command history, command-line editing, syntax checking, shortcut command aliases, and some other useful features at the OCEAN console.
Here are some SKILL files I put together for making various things easier in the Cadence IC design CAD tool suite.
I patented a new circuit topology for a microwave frequency quadrature phase splitter, a building block useful in wireless communication design. Here's a little summary of how the circuit works.
Here's some C code I wrote a few years ago to input a digital bit stream and generate analog waveforms corresponding to the baseband waveform (voltage versus time) of a WiFi packet that would transmit the given input bits.
STEPPER: A Terminate-Stay-Resident (TSR) Stepping Debugger for MS-DOS
Here's some x86 assembly-language code I wrote for a TSR debugger for MS-DOS programs. This was before the era of multitasking operating systems, so to fake multitasking your program's launcher would establish itself in memory and register a keyboard interrupt handler to get itself called, but then return control to the OS so that you could run other programs and then pop up the debugger with a keypress when your program started to misbehave. I was very proud of this back in the day!
Homer Reid's Miscellaneous Stuff, by Homer Reid
|Last Modified: 08/02/18|