I’m working on a USB DDS (direct digital synthesis) board that will be a plug-in module for another application. Here’s a block diagram:
It has a few interesting features that I thought others might be interested in:
– AD9852 direct digital synthesis IC with 300 MHz adder, 48 bit accumulator, and digital inverse sinc filter
– A fairly powerful microcontroller with full speed USB
– A low jitter clock synthesizer PLL: LMK03001C
– An MCP3553 22 bit A/D converter
– Gain block chip from Mini Circuits: GALI-74+
– 6 layer PCB construction for excellent ground and VDD planes
These features should give this board possibilities in amateur radio and perhaps homebrew instrumentation. Changing the filter components could allow usage from very low frequencies up to around 125 MHz.
Utilizing upper frequency images would give you usable range into 500 MHz or possibly a bit more depending on how good the RF layout is. The PCB is FR4 and uses standard 0603/0805 discrete parts, so it probably won’t give usable signals into the microwave region.
So you’re on Windows and want to use Dropbox or Google Drive with it’s own drive letter?
First figure out where your Dropbox or Google Drive folder is stored. Go to ‘Computer’ and right click on Dropbox or Google Drive and copy the whole path name that is in the text field labeled Target. Mine happens to be:
But yours is probably something like:
Make sure you copy the quotes too.
Run notepad and put one line in the new file. Replace the path with the one you found in step 1.
Now, save this file on your Desktop as a file named: drive letter.bat
Double-click the file you just saved. You should have a new drive called G:
If not, you did something wrong.
Drag this batch file (drive letter.bat) to the start menu, and put it in:
It’ll start up every time you login to your computer, and if everything went right you’ll always have a drive G:
I dread creating part models in Eagle – it’s time consuming and error prone.
Over the years I have used scripting languages to help with the tedious work. It’s quite easy to create basic part footprint algorithms given the mechanical drawing. Much more tedious would be drawing a picture on graph paper and using your calculator.
If you’ve ever made a circuit board and made a very basic error that caused you to have to remanufacture your board, you’ll understand the value of getting it right the first time around.
If you open up the EAGLE Library editor and paste this script into the command console, you get this:
Not a bad start.
The same technique applies for much larger parts. Imagine how much time you’ll save when you’re creating a part model for a 256+ ball grid array?
I must say I don’t claim to be an expert Python coder – I have my own specialties and I’m really a low-level embedded systems guy. If you need a turn-key shoe-phone (that’s a joke) or a radio watch (if you don’t get the joke you’re too young) or an accelerometer based movement tracker with 6 months battery life, I’m your man.
I’m just rambling – back on topic: there’s another script I wrote that you can access via pastebin (click “see original”)
[iframe src=”http://pastebin.com/embed_iframe.php?i=2RqWXs83″ style=”border:none;width:100%”][/iframe]
This script takes a CSV file and a model name as command line options, i.e:
$ ~/bin/csv2model.py sn74.csv sn74vme22501a
And produces helpful Eagle SCR data that you can call from Eagle to make a schematic symbol, and also to CONNECT the schematic part model PINs to the physical layout PADs. i.e:
PIN '1OEBY' Short (0 0.0)
PIN '1A' Short (0 -0.1)
PIN '1Y' Short (0 -0.2)
PIN 'GND' Short (0 -0.3)
PIN '2A' Short (0 -0.4)
PIN '2Y' Short (0 -0.5)
PIN 'VCC' Short (0 -0.6)
PIN '!2OEBY' Short (0 -0.7)
PIN '3A1' Short (0 -0.8)
PIN 'GND_2' Short (0 -0.9)
PIN 'LE' Short (0 -1.0)
PIN '3A2' Short (0 -1.1)
PIN '3A3' Short (0 -1.2)
PIN 'OE' Short (0 -1.3)
PIN 'GND_3' Short (0 -1.4)
A common annoyance I have is that I’ll design a gadget: make the schematic, figure out how big the board can be, design the board – all of these so far are creative tasks requiring some skilled input as to the technical details.
Then you order the board (a task let’s set aside for now)
Then you have to make a bill of materials and order parts. The most annoying, time consuming part of designing hardware.
I use Eagle from Cadsoft, so my answers may not apply to you. Is your EDA software a lot better? Let me know, I’d like to hear about it. I’d also be interested to know how much it costs. Eagle is relatively inexpensive when it comes to EDA tools. Industry-standard Mentor Graphics (among others) are many thousands of dollars. That’s just not possible for me.
But back on topic: how do you take your schematic and create a BOM? Well, Eagle has a ULP you can run that will produce a rudimentary BOM (bom.ulp) . It sucks.
I’ve tried to improve it a bit by post-processing the CSV with my own Perl script. I use Cygwin on Windows to run this by the way.
The Perl script is called eagle.bom.pl and it attempts to produce a usable BOM. It tries to combine all of your 1K resistors into one line item, for example.
Now that you have a BOM that doesn’t require two hours of manual formatting to complete, my next problem is that I often have numerous different resistor values that I have to look up at Digi-Key or Mouser (or Newark) and make sure I picked a real value, find the part number, and add it to my spreadsheet.
A partial solution I have is that I made a Python script that will print out all E96 resistor values for Stackpole electronics’ RMCF series. This is very specific, but I’ve picked a manufacturer that literally has thousands of parts at Digi-Key, with millions in stock.
Now that I have a list, I can scroll through and find the one I want, and simply copy and paste the part number into my BOM.
The next step would be integrating this into my BOM script. This will get you started though.