Tuesday, January 25, 2005

Polar Sight

I've been thinking about vision systems, and one idea popped into my mind. I know the intelligent weapons of the US army use this trick. Take a masked line CCD and spin it around a linear. By knowing the RPM and at least a single opto-trigger to track the RPM, an accurate polar image can be created. I've been thinking this could be interesting for vehicle guidance. Simply knowing the angle and the CCD that a "bright" target is lighting up, the position of an object could be detected. I might have to try this. Even with a single heat sensor, the ability of this design to easily zero in on a hot source could be interesting.

On a related note, how to do you control a spinning target? Especially if you don't have a stabe "zero reference"? One idea is to mount a microcontroller and a solid state gyro on a motorized plate. Spin the plate to correct for gross spin, and use the gyro for direction control and minor spin stabilization.

Thursday, January 20, 2005

RC Core - CANoPIC and related

Well, I've got a few PIC's on order now. Some giant, some fast, some with USB. So, after I get back to the RC core and get all but the CANoPIC interface hammered out, my next step is to take an 18F2550 (or maybe the 4550, depends on how many I/O I want in the end), attach an SPI EEPROM and an SPI CAN Bus unit, and build a USB-CAN bridge/sniffer for developing and debugging my CANbus designs. Actually, I should probably look into SRAM just so I don't wear an EEPROM out. It's not like I'm searching for power-off persistant memory.

Of course, this means I need or order my ICD2 and hot air rework station soon.

Side note:
I've spent too much time plotting on the Silly scope, I need to get back to realistic projects that I can see real output from. Anyway, to build and debug the silly scope, I need an oscilloscope first. Let alone I don't think I'll be able to have a snowball's chance in hell of building it with double sided, or even a 4 layer board, especially if I throw on the DDR SDRAM DIMM slot. I'll attack it again later with concerns over external memory after I get a few surface mount PCB's designed and built. My ideas have taken it beyond a basic digital storage mixed signal scope to something that could be used for DSP, wireless base stations, radar, who knows. Just too much for someone who's still learning the basics and getting his feet under him.

Monday, January 17, 2005

Silly Scope - Returneth of the integrated card and DSP notes

So, I've been looking at the timing requirements for DDR SDRAM. Given the nature of the 100+MHz frequency domains, I'm starting to think a tiered structure with connecting pins just isn't going to work. So, back to a single card with DDR SDRAM, an FPGA, and the analog conversion equipment I'm working with. Oh well. I was hoping to avoid having to redesign my board to switch ADC and DAC hardware. The DDR I've considered building onto the card from the beginning simply because of the strict timing requirements.

Now, a longer term idea (for the heck of it) is ordering enough samples from Analog to put together a full wireless transciever interface. Just a thought, they do have parts for the whole datapath.

Now, for my NEXT trick...

Analog has a few good references online, for free, for DSP.

The Scientist & Engineer's Guide to Digital Signal Processing

Mixed Signal and DSP Design Techniques

They might be a bit Analog specific, but they're general enough and deep enough to get people going. The first one's over 650 pages printed, and I haven't looked at the second yet.

Monday, January 10, 2005

Silly Scope - Evolution to DataStack

This isn't a true evolution per se, but an extension I've been thinking about. I always wanted to loft some good hardware in my rockets, and the stack makes it strong enough and dense enough to do in a small-ish rocket.

A circular format of the boards will let us fit a bit more on them for the same hole spacing. I'm thinking of moving away from the four quadrant design to a two half design. Two digital power rails, two analog power rails, two pin grids. This will result in the need to control what uses what datalines to have more than 2 boards attached. A new addition will be a JTAG rail. This, when combined with a DIP or jumper on each board, will allow a single JTAG cable to program the entire stack. Going with 2 hookups leaves more space and "stack access" on each side for airflow or other situations (like access to a CF card slot).

Now, for the addon boards. Barring low latency parts like a SRAM/SDRAM board, all other boards will have a CPLD onboard. Probably a Coolrunner II. They can interface 1.5V to 3.3V and act like logic shifters, and also implement high speed interfaces (simplifying the databus to a single voltage requirement). I still plan to hook up only half the bus to the CPLD to keep two independent busses. A CPLD on each board will simplify reconfiguration for different stack designs. This does raise the cost a bit, though. The flexibility and I/O standardization is worth it, though. It also lets those do PCI or similar bus standards for those who want a true databus as opposed to my partitioned databus. Only other problem is that to get enough pins, the CPLD may have the same packaging as the FPGA!

Sunday, January 09, 2005

Silly Scope - Research Break and future ideas

I've spent too much time on this already, especially since it's still out there in "pipe dream" territory.

Anyway, for future reference, I've decided to go with the Xilinx Spartan 3-400. Big enough for most applications, it's also the largest QFP format chip, so a user doesn't need either an IR oven or a hot air rework station (I want to buy/build both), so others can work this design.

It's fully supported, development hardware is available for low cost (Digilent-400 version of the starter board), and hopefully the free simulator will run it.

And hopefully I can run it off of batteries. One current idea is to build a tiered design (similar to PC/104). Fixed size (square, circuilar is considered for sealed tube applications). Radially symmetrical, it'll have 4 digital voltage busses (GND, 1.8V, 2.5V, 3.3V, 5V), 4 analog ground busses (AGND, 5V Regulated, Unregulated). There will also be each bank brought out to a databus. Only those components that need access to all the databusses (like the FPGA) will be connected to all of them. All other boards will have passthroughs for the signals, and be connected to only one databus. If multiple FPGA's need to be mounted, a spacer board that passes only one bus through (and all power lines) will be required. Turning any board will just put the sensor on a different bus without any major bus arbitration (important for high speed apps like 200MSPS ADC's). This means that for "generic" boards, the most that can be used are 4, one per bus block. Custom boards may be able to use a CPLD and a jumper to split the busses into inside and outside, or left and right, etc. to at least double the possible board count.

As soon as I remember my FTP passwords, I'll upload a GIF to illustrate, and a possible board "stack" idea (Digital camera control and DSP or a radar stack).

Anyway, this is going on hold. I'd love to spend the $100-$200 and get everything I want, but my R/C core is waiting.


Basic board layout

Generic ADC sensor stack

Saturday, January 08, 2005

Silly Scope - Digilent to the rescue!

So, I wander around thinking of how best to start prototyping my FPGA based silly scope. As much as I'd like to start designing my FPGA based super O-scope card PCB, I know I should build a breadboarded design. Well, a while ago when the Spartan3 was first released, I looked at the official Xilinx Spartan3 starter kit. From there I wandered to Digilent, the maker of the board and lots of add on boards for the hobbyist/student. My only disappointment was that it came with a 200K gate chip.

Well, I did a search. They now offer the same board with a 400K chip for $119 vs $99. Perfect.

Add in all their expansion boards (Wire wrap boards all the way up to 1MSPS D/A and A/D board), and you can probably get away with anything. I'm interested in the AD/DA board and their DIO5 computer addon board.

For a more compact version of that, and cheaper, Nuhorizons has their Spartan3 Development Board. A little cheaper, too.

Now, for the more extensive design work, I've looked at two different boards. One is made by AVnet. It's got a 1.5M gate FPGA on a PCI card. Nice, and it allows for a user to design direct access to the PCI bus in, bypassing any other work and allowing data to be dumped into main memory directly, greatly increasing capture bandwidth.

Another option is another Nuhorizons board, $450 for a 2M gate board designed for very high speed DSP. Fast, huge amount of space in the FPGA fabric, has ready made cards for A/D (135MSPS at 14 bit works for me, still looking for the price). I'd love to get one. I'll hold on, though, we'll see what my FPGA musings bring first. I sure don't plan to spend any money on software anytime soon for this hobby. It's got dual Ethernet, CAN, low speed A/D and D/A (audio speed), LCD panel support. Hmmm... it's just about perfect for a central processor for my large exoskeleton/robotics project. Must contemplate...

Tuesday, January 04, 2005

Silly Scope - Programmable Logic

Been researching a few of the FPGA's out there. Actel, Lattice, Altera, Xilinx. Mostly Xilinx. I know people who swear by Altera, but Xilinx has be most flexible free tools, and supports their entire low cost Spartan3 (to 4million gates and embedded multipliers!) line in their free software. Yeah, I'm not going above a surface mount design (400k gate model), but it's nice to know.

Yes, I am reading through the entire 192 page reference doc on the FPGA, and learning a lot.

Monday, January 03, 2005

R/C Core - Transcievers

I'm no RF guru. On the contrary, I'm a baby. Hence, I need a little... "help". I'm using a transciever based on the Nordic 2.4GHz chipset...

http://www.nvlsi.no/index.cfm?obj=product&act=display&pro=64 ($5.40)
433/868/915MHz version
http://www.nvlsi.no/index.cfm?obj=product&act=display&pro=83 ($7.00)

These are available at http://www.sparkfun.com/ (along with lots of other very useful items). I bought some 3rd party 2.4GHz transciever boards from them for $20, which is plenty to get me going. I plan to eventually use both of these in my designs, and throw on power boosters for greater range with my own PCB's.

Until that time, I'm doing good as it stands. I considered Zigbee, such as those chips available from Chipcon, but they're a bit expensive at $9/chip and need external parts. However, they are true Zigbee parts and have integrated 128 bit encryption, which is intiguing. Still, I'll hold off on that. I'm not trying for a secure network, and I doubt I'll be hacked running my R/C car around since it's not 802.11b (great speed, range, oh dear look at that power drain...)

Silly Scope - Add On Board Layout prelim thoughts

So, my oscilloscope design's going to have a data/power backplane, one power supply board and I/O board (maybe the same board), and multiple data capture boards. I'm plannng on a VM state machine that's hopefully compatible with Bitscope (or at least ASCII streaming so I can capture the data to Matlab).

Mid level cards will be built similar to the Bitscope. A PIC for communication with the databus (and identifying itself, housekeeping, etc), a CPLD doing the ADC interfacing and data dumping to the capture SRAM. Also logic analyzer (again, Bitscope compatible PODs perhaps). I MAY base the databus on standard 3.3V PCI, which many CPLDs can be used as the data bus conversion, or maybe ISA (ditto).

High level cards will be a beefier version. PIC or maybe dsPIC for the housekeeping, CPLD for bus buffering, Xilinx Spartan3 (or maybe the Cyclone II from Altera) for a strong but inexpensive system. It's gotta be able to keep up with 100-200MSPS at 8-14 bit from 1 or 2 ADC's (not certain yet). I'm avoiding large ball grid/pin grids as you really need multilayer for that, limiting me to the PQFP-208's package, so the largest Spartan3 I can use is the 400,000 gate version. That gives us over 256k of buffer RAM onboard, which is as deep as the Midline Bitscope-310.

Now, the Spartan can do DDR RAM speeds, and a max speed of 326MHz, which should be fast enough to get the data out. There are DDR controllers out there. However, DDR DIMM's are 168 pins, which would devour ALL my I/O (141?). So, custom memory boards and individual chips are required. Easy enough, Hot air rework station and cheap DDR-333 DIMMs give me the RAM I need.

So, what's the backplane providing? I'm thinking:
  • 16-32 bit bidirectional data path.
  • Card Select
  • Digital Ground
  • Analog Ground
  • Digital Power (5V)
  • Analog Power (24V?)
  • Capture Trigger Start (single signal)
  • Capture Sync Line (continuous capture sync)

The card's will have to attenuate their power supplies down via linear regulators to what's required for the boards themselves. Although this wastes power, it'll provide a cleaner connection, reducing interference from adjacent lines. The analog power is designed to be attenuated down, as it is very susceptible to digital noise.

Now, back to looking through the Spartan3 spec PDF...

Digital Silly Scope - Analog research

Well, I've been looking at Analog to Digital Converters for my Oscilloscope project (freshest on my mind). Ran across 3 candidates:

TI ADS5500, 125 MSPS 14 bit ADC

National Semiconductor ADC 08200, 200MSPS 8 bit ADC

Analog Devices AD9430, 170MSPS 12 Bit ADC

All three are great, having examples on how to hook up the parts with high bandwidth op amps (their own of course) for stable operation and signal conditioning. Now, since I plan on having multiple boards for the Silly Scope, both are viable for their unique benefits. I'll probably start with the National ADC because it's a simpler package and more extensive notes (barring schematics for demo boards from Analog). However, I don't want the expense of a 4 plane board (when I get there), so maybe I can bend the rules for a 2 plane design? We'll see.

Speaking of analog, I realize more and more I need to hit my analog design books and hammer out more understanding of R/F and analog in general. Digital design frankly is easy (except FPGA optimization), everything always hangs on the real world analog design.

Since this is a VERY low cost operation for me, I can obviously get free samples of all of the above :) Some of the devices are very expensive(Analog, $88), some are fairly cheap (TI, $4), so production would affect these, but I'm looking for speed and resolution for my oscilloscope.

I know I really should buy an oscilloscope before trying to build one...

Anyone have good sources (web and textbook) on RF(airwaves and high speed PCB) design? (Yes, I expect to be told 4+ layers are REQUIRED).

Saturday, January 01, 2005

Too many ideas, too little time...

So, I've started a little corner of the internet for posting my ideas. I'm not going to rant and rave about life, the world, or otherwise, but interesting projects I've run across online, useful websites, and ideas bouncing around my head. So, why Technical Alchemy?

(no, this is not LEGO related)

I went to college to be a mechanical engineer. I don't do that right now at work (still want to). However, I have an interest in learning, so I'm dabbling in ideas ranging through electronics and computer science. It's an easier pasttime than trying to get a machine shop into my apartment. However, I have only basic electricl/electronic knowledge, and a little programming skill, so it might as well be alchemy at this point. Situations like that tend to change very fast for me, though.

That machine shop will come when I get a house, then I'll start tackling plastics and composites.

So, for the moment, here's the current list of hopeful projects and some notes on them.

  • 2.4GHz R/C basic control system (BCS) - Currently on my breadboard as I'm slowly working on the PIC code to implement this. The 2.4GHz transcievers are currently prepackaged, so no RF design headaches.
  • Intertial Measurement Unit (IMU) - Haven't bought a GPS yet, it'll be part of an upgrade to the R/C BCS. Also haven't started on the codework.
  • CANoPIC - CAN over PIC. Bascially a series of modules (which the R/C BCS will be one) that allow me to implement CAN based networking of a given common R/C function, such as a dedicated brushless motor controller. This is for my own ease of work and an experiment to reduce the interference common with R/C designs. More on the modules later.
  • UGV - The UGV will be built as a custom vehicle body with a modular arm for poking cameras into crevases. It'll be the testbed for the R/C BCS. I could buy an R/C car for this, but where's the fun in that? Although that might happen later when the system needs to be more rugged.
  • UAV - There's a whole bunch of ideas floating around here. Although all of them depend on the IMU for guidance and to tell the airplane where to circle, the plane itself is up for grabs. Standard fixed wing powered-glider, rocket boosted glider, and scissor wing rocket booster (I like this design on principle) are all possibilities, in increasing order of difficulty.
  • VTOL - Electric or gas powered VTOL. Maybe similar in design to an Osprey, but I know to get ANY performance out of it, I'd need to keep the weight down, so no UAV stuff. I'd still need the IMU onboard as I'd like to make it computer controlled and docile (the IMU could react faster than I could). However, I'd definitely need access to a machine shop for this one. No one makes the variable pitch blade hubs I'd need and the chopper ones don't have enough pitch.
  • Pan-Tilt-Zoom Camera - There's probably going to be 2 phases to this. First one will use a micro NTSC camera I have laying about. Second version would use a Panasonic Lumix DMC-FZ3 (3Mpixel, 12x optical, optically stabilized, about a pound for weight) that would be hacked apart and the controls attached to a microcontroller. In either case, the NTSC video out would be hooked into a frame grabber and hopefully something similar to the CMUCam (automated tracking of a target especially) could be worked out. The FZ3 would give the design a zoom lens, image stabilization, and a 3Mpixel photo capacity. I'd also like to hotwire the photo capacity to allow me to transmit the pictures back across the datalink without needing to land, but first things first.
  • The Silly Scope - a modular oscilloscope. It'd have a power and computer access board plugged into a backplane. The remaining backplane slots could be logic analyzers, high speed ADCs, and the like. Power and databus back to the master (USB probably) controller would be provided along the backplane, as would be a sync/trigger line for simultaneous capture operations. I'd like to make it Bitscope compatible and open hardware.
  • Phased Array Radar - I'd love to make a small radar for the UAV. Now, this is far beyond my ken right now (RF is still black magic to me). However, the Silly scope modules would be a good first start. One of the possibilities is a module running a PIC for control, having an Xilinx Spartan3 for onboard DSP and datacapture, and dual 200MS/s AD converters. Oh, and some very fast memory. My primary use is for ranging, although I'd love to be able to do synthetic apeture tricks with it. I'll probably start with a sonar system as it requires far less speed and cost, but doesn't have the effective range for use as a radar altimeter, for instance.
  • Walking Robot - Very similar to the Robo-ONE designs, and therefore very expensive (30 R/C servos x $80 for high power digital ones? I think not). Maybe later, though.
  • Exoskeleton - Definitely on hold till I have a garage. I'm not aiming for much strength. I was actually thinking of building a costume around it (therefore light weight) and just worrying about that weight. The control "suit" and the frame itself are to be separate, both for ease of application (may not be comfy, though) and so that the frame can be tested without risking life and limb of the tester. Seven feet of tubular bars, heavy batteries, pneumatics, and car window motors (cost!) is just too much for an apartment. The motion capture suit, however, can be built. Could be fed into a computer for animation purposes (for my brother).
  • Digital Dustbunnies - Similar to Smart Dust, just my own needs, right now, not in the future. Small PICs with a few sensors and a 2.4GHz transciever get scattered about randomly from a UAV air drop of an air cannon "shot load". Heat/sound/motion/sesmic sensors allow for rapid scanning for anything alive in the area. Although good for Search and Rescue purposes, I'm far too cheap to allow them to just be thrown away right now, even for a good purpose. I'd have to go and pick them up.
  • Aircannon - One of my original ideas from a long time ago. It'd be more like an air mortar. Short, wide barrel, high angle. It would have used smart ammo that would have communicated with the launcher via a 125KHz carrier (RFID tech) to specify what type of round it is. The ammo would be loaded either in a belt fed system or a revolver type magazine and would have been breech loaded. Very much fully automated. Primary loads would have been the Digital Dustbunnies, paintball cluster rounds, Brilliant Paintball Rounds (think parachute deployed self targetting single shot paintball round), the original UAV idea (Fast to high altitude, parafoil wing deployment), and a few more I can't remember right now. This one requires a farm away from the city to actually not be arrested, and who knows if even that is safe these days. Oh, hi Mr. Homeland Security Officer...
Ok, that's it for now, off I go. Wonder if I missed any?