Wednesday, November 28, 2007

High Frequency RFmodule thoughts

I've been interested in radar for so long. How do you get it to work at short range where you have nanoseconds to determine range? Well, I've been looking into what an RF module would be required to build a modular phased array setup. This has let me to believe how freaking expensive GHz class MMICs are. I've looked at Hittite's phase shifters. Analog and 4 to 6 bit digital. Nice parts... but somewhat out of my parts price range at around $100 each.

While I'd love to work on a 10GHz range design, I'm realizing that a 5GHz range unit is far more plausible with the advent of 802.11A/N and Wimax. Heck, TI's WLAN chipset might build the whole system at 2.4 and 5.2GHz with two chips and a few passives.

Research research research!

Tuesday, November 27, 2007

The Wiimote IMU

I've always been interested in inertial measurement units. I recently looked at the Wii Zapper frame and thought that we now have a 5.5 axis IMU. The Wiimote has a 3 axis accelerometer. The nunchuck has another 3 axis accelerometer. Now, if you have six axes of accellerometers that are arranged right, you can get good rotational data from the accelerometers. Unfortunately, this isn't perfect in this setup. You get a good pitch and yaw, but no roll information. This can be estimated out when the unit is roughly at standstill by determining where gravity is. So, if you figure out your distance between the two accellerometers in the Zapper, you have a rigid 5 axis IMU with a wireless connection. No phystical hardware hacking required (other than maybe for measureing the actual center to center position of the accelerometers)

Pretty cool, no?

Saturday, October 20, 2007

Wearable Displays: Some things never change

You'd think that HMDs would change and get cheaper, even if they're not completely mainstream. Remember IO glasses? They're still around, and I don't think the price has dropped. My belief is that QVGA (320x240) is OK for a quick reference monocle design. VGA is the bare minimum for a useful one, and SVGA (800x600) is frankly the required minimum for people to accept a technology. XGA (1024x768) is the right resolution. People expect to achieve such resolution from their main monitors, after all.

If you look at two big HMD online stores, TekGear and VR Realities you'll see a lot of expensive hardware. Some of which has NOT been updated in YEARS. Disappointing, isn't it?

So, what have I found in my own searches recently? Well, 320x240 monochrome NTSC video monocles are cheap and easy to get. Some people are trying OLED HMDs, but they're just as expensive as the older Active Matrix LCDs. That example WAS under $1000, I wonder what happened to cause the price increase?

My personal bet for inexpensive high resolution HMDs come from the DLP and LCOS industries. Both technologies reflect light towards the display instead of blocking it like normal LCDs. DLP uses MEMS moving micromirrors. LCOS uses newer (cheaper?) specially processed silicon. The products from Headplay currently wins in terms of resolution for the price, plus it has oodles of inputs.

One thing I've noticed is how annoying these can be. Many are designed for total immersion. I don't always want that. I think Icuiti is on the right path for "mobile useable display".

Actually, what I'd love to have is a transparent (or Augmented Reality) display that can use my glasses for a screen and put up a simple monochrome image for me. A GPS map would be nice for instance. I'm not wanting a complete overlay, just a portable heads up display. Some systems are made almost like that, but I'm not willing to pay $200 for it, let alone $2000.

HMDs have one issue that's hard to measure. Comfort. Are they comfortable to wear? Am I going to want a bottle of excedrin sitting next to me after I use them for 15 minutes? Once the price comes down that people are willing to pay and you can get enough volume to get a few in stores, this will be a hard question to answer.

Monday, October 08, 2007

Solid machine design: CNC basics and options

Been looking around at parts and pieces for a CNC machine. This structure works for whether the machine is for machining, sensing, or RepRap FDM. Your basic mill/machine will be a three axis machine. X-Y and Z. My preference for linking these machines together is to use the table on an in-out Y axis, then the main gantry left/right for the X axis on the cross member, and the milling head on a Z axis. Easier and capable of "reaching in" is if the milling head moves for Z. If the supports are moved, the mechanics are more complex (as you have to keep the two axes even) but the whole machine is stiffer.

Now, beyond the basic 3 axes, we can add more. One is doing both Z axes options. This lets you reach and achieve stiffness as need be. Rotary axes are the next useful axes. A worm gear based rotary table makes wide circular machining. A horizontal axis lets you work a lathe style mechanic into the system, but you'll need a driver and driven ends.

Many multi-axis systems start adding axes at the cutter instead. This is simpler from a mechanical aspect on larger machines, but always useful. Starting at the Z axis, putting on two more rotary axes to allow for machining withing a hemisphere, and can be very useful. However, a smaller or less forceful cutter is needed. However, you also need a very accurate motion system since you only have 180 or 360 degrees of motion, instead of, say, 1/16" of motion per rotation.

I'm considering a CNC cutter head. Around here, Menards has a low cost rotary tool with flex head. By mounting the flex tool, the cutter head can be kept small and light, allowing for good maneuverability on a small machine. Flat and ball mills can be used with 1/8" shanks, but I'm considering starting out with a carbide or high speed steel Dremel burs. These are more like small mill bits but have 12+ cuts. They also cut at dremel speeds (8000-25000rpm) which is well above what many mill bits are rated for. If a saw is needed, Dremel has some somewhat expensive but neat "EZ Lock" blades that make them quick change and indexable.

More thoughts...

Saturday, September 29, 2007

Open Source Machine Controller

I'm working my way through my machine controller system. 1 DSP, 4 motor boards, plus network for additional expansion.

I'm basing the design on some of the working theories of the motion controllers I've seen at work. I'm starting with PID synchronizing servos and some of the IO as a background priority PLC. Beyond this is the interfaces I'm hoping for.

Beyond my own programming interface, I want three different control interfaces. One, connect to the RepRap software package for doing FDM (maybe the Fab@Home software too). Two, G code for a lot of generic CNC and motion work. Three, an HPGL printer driver for doing generic 2D and 2.5D work. This would allow for very simple control of any 2D table style pen plotter printing system. With the right hardware, a router, laser, or anything else would be possible.

Monday, September 17, 2007

Back in the Saddle Again

After a long, busy summer (time and money tend to disappear when you own a house!), I'm getting back to thinking on this monstrosity. I've been thinking on how I'm going to approach this, especially since I'm not certain as to the motor I'm going to use. So, current architecture redesign is as follows:

Comms/Power board: USB PIC18 on one side, bus powered. This does general housekeeping. Across the opto-isolated border, we have another PIC doing power management duties. This side has an ATX motherboard connector and power distribution/comm for CAN bus and distributing the 5V logic power out. The PIC is powered by the 5V/2A standby power from the PSU and monitors the PSU. I'm debating on either providing screw terminal power or using the drive connectors on the PSU. I've seen some PSUs have 25A of 12V power available. This does not scale linearly with PSU power, so I'm searching for the best unit for the job. I can't complain, though. under $20 for a PSU or around $100 for just a 12V industrial PSU. I'm planning on supplying 12V and 5V and 12V to all boards, plus a CAN chain. Not certain about the 3.3V right now.

This is being kept separate so I can swap out the board for an Ethernet board, or one that runs off a 12V car battery and generates its own 5V for the rest of the system.

Main Board: This is the other major change. I'm putting a good size DSP at the core (dspPIC33FJ256MC710 currently, although I'm debating a 32 bit ARM7). One quadrature and four SPI ports (on one bus, for absolute encoder chips) are available for motor feedback or other semi-remote sensor connections. A bank of generic inputs for limits, etc.

I'm going to put card edge connectors for PWM amplifiers in. Logic hides behind some buffers and a well capped 3.3V LDO. 4 slots, each gets 2 PWM, 4 control, 2 analog, SPI, and I2C routed to it. With some split power designs for the analog, I should get a fairly flexible setup. I've got plans to test out full and assembled H bridges from ST and Freescale, and also some half bridge implementations. 10A per board is my target. The high voltage bus will be brought in via screw terminals, as will the motor outs. This should protect the main board well. The vertically mounted boards will make it easy to fan cool the module. I can swap around modules to drive DC motors, brushless, steppers, whatever works with either specialized boards or up to four half H bridges. The I2C and SPI let me access chip monitoring on the cards. I can also put in IO cards if I need something similar. Still working on that.

I originally wanted to run all separate motor boards, but getting coordinated motion from that can be tricky. I also realize that multiple axes servo loop positioning and doing AC motor servo control will probably not work too well together. So, I've decided to go this route. I expect a 40 MIPs dsPIc or 60MIPS ARM to be able to control one stepper, one AC servo, or four DC servo motors without too much issue. After I verify that this works, then I can work towards remote motor servo loop control via the CAN interfaces.

I had originally wanted to make this a single board design, but I ran into the issue that I had both SPI busses accounted for (add-on cards and absolute encoders). While I can link into one while debugging, I don't think I want to make it my primary interface.

Most other boards (distribuated motor boards, etc) will stay the same.

Thursday, May 17, 2007

Hydra: Mechanical head ideas

Well, sitting here eating a late lunch, and I decide to ponder the major point of the Hydra variant. I want multiple heads and I don't want to pay for them.

The way I decided to do this is to have a rack along one or two sides depending on if you want single or dual head capability. Each head has a dovetail-like slot on it, with a stop at the top. One on each side of the head. One is the hanger for storage. The other is active slide with power and data spring contacts. The carriage trolley needs either a solid solenoid or a motor drive on it. To pick up a head, the appropriate (open) trolley slot drops. It rolls over to the head and aligns the slot and holder. Raising the slot engages the head. When the head hits the positive slot at the top, we are aligned and should have a repeatable position.

There are other ways to do it. This method needs constant power. Perhaps an "expanding" dovetail would hold the unit better and not need power or a brake to lock the head in place through power dips, but also would need another actuator.

The trolley head holders are not meant to run constantly, just when the heads are being replaced. If a fourth axis is needed, such as for milling or inspection, it should be integrated into the head. Same for the polymer pumps and other material supply methods. Looks like I'll have to get acquainted with CAD again.

Wednesday, May 16, 2007

RepRap Hydra: A real drive board

Just a short note, looks from the datasheet that the MC34921 drive chip is transistor based. They only list voltage drops for the bridges. The package is rated at 2W dissipation, but the math makes me think it'll be pushing 9W if everything is on full blast. I'll still design the board around that, but it means I can't use it as a RepRap basic SBC.

I'm scaling back to a more basic DC drive (maybe make it a dual chip unit as a bipolar drive) and perhaps combining a MC33486 with dual IRFZ44ZS low side MOSFETs. This should let me drive 10A constant, and 35A intermittent. It's been on my list for a while for other motors. It's FAR bigger than RepRap needs, but this has several advantages. One, I have other projects that I meant a board like this for anyway. Two, this loosens the size requirements for RepRap servo drives, so they can get bigger (anyone want a 1m3 build area?). Three, the heat dissipation with smaller motors may alleviate any need for a heat sink.

Note to self: add links later, too tired right now.

Monday, May 14, 2007

RepRap Hydra: Drive...er... SBC?

So, I decided to look at my previous post about H-bridges to start on V1 of my power board. Standard Reprap runs at 12V, with 1A/stepper roughly.

As this is my own, I decided to try the Freescale MC34921 first. I'm not afraid of surface mount, but this won't work for everyone. I might rebuild with discretes later. However, this does pose a VERY interesting result. I had picked the Freescale as it's fairly flexible, as I can drive DC motors and bipolar steppers with it with no hardware changes. It has high current limits (low heat for a lower amp setup) and current limiting (safety). I was planning one of these per axis so I could do microstepping or servo control. The third driver (2A DC motor or stepper) was just a bonus that would be used for some option switching... or so I thought.

I decided to pair this with a 3.3V dsPIC33FJ128MC706 (might change still, though). Same TQFP-64 10mmx10mm package. Perish the thought that I might mix up which chip goes with which pad! Four PWM generators. I was hoping to use something similar for a "universal driver" quad half-H board. This is close, but I can't uncouple the H bridges. I can, however, set up a PWM to all four (is it really four?) PWM inputs this way. I can even use another timer to provide another PWM output.

Added bonus, I have a 0.6A switching 5V PSU, a 2.5A switching 3.3V PSU, and a 1.5/1.8/2.5V 750mA LDO, all feeding off the same max power system (up to 38V, works fine at 12V).

Hmmm...

40MIPS, two 5A dc motor drivers, one 2A DC motor driver or unipolar stepper driver, one dedicated encoder interface, several spare serial interfaces. Add in the Austria Microsystems magnetic encoders (that I can't find who's using due to reprap.org being down) on the second SPI channel, and I think I MIGHT be able to make a single board servo based Darwin driver if it all doesn't spectacularly melt down on me.

I think I have some thermal calculations ahead of me.

Saturday, May 12, 2007

RepRap: Homemade Engineering

Sometimes bent steel and alumninum just don't cut it... especially when your mobile robot needs just too much torque to move well (per calculations). Oh well.

So, we depart on some DIY rapid prototyping to help shed weight. The RepRap project is trying to do just that. They have a ways to go, but they have working electronics and mechanics for soft plastic. I definitely can see them moving up to something more engineering grade, such as ABS or Polycarbonate, from CAPA (melts at 80C) and HDPE.

I've decided to embark on my own variant. The current design is very VERY good at what it does. I'm starting with a Darwin and working up.

Planned upgrades follow. Some will be in my Version 1.0 machine. I plan to call it the Hydra.

Electronics: My own design. Theirs is absolutely BRILLIANT to reduce complexity. I'm planning on using the USB-CAN controller I've been working on for communication. This may evolve into a USB-ETHERNET-CAN controller. Drives will be dsPICs. Extruder heads will be whatever I want, depending on complexity. CAN will be my backbone.

Power: I do like their use of an old AT power supply. If my motors don't take 12V, I'll be moving up to

Motors: I'm considering building my DSPIC drive boards as quad half H bridge units with encoder feedback. This would let me (possibly) parallel my connections to drive more load when I build a DC servo motor, move up to BLDC if I want to, and still stick with steppers if that's all I have available. If I do stick with steppers, I will be microstepping for accuracy.

Extruder Head: I'm expecting to have multiple extruder heads. They'll be hanging on a rack to the side. I'm looking into either an allthread or maybe pneumatic lift that's built into the main head. It'll have a dovetail design and be able to "hang up" the heads on the rack to swap. The CAN network will be terminated in the extruder head. I'm thinking that some decently heavy duty spring contacts for the main power (extruder motors, heaters, etc) and a set of four contacts for CAN. CAN supports hot-plugging electrically, so this should work.

Power Transfer: Belts work great. Although they may see some stretch issues. I know they moved to them for speed, but they're also running steppers. I might migrate the design back to precision allthread. For instance, to get 1 inch per second drive rates out of 20TPI allthread, you'd need to spin it at 1500RPM. This DOES concern me. Don't need to be smoking steel. I've looked at precision Acme screws, too expensive really, doubly so for any ballscrew arrangement. Standard acme screws aren't much more expensive than allthread, but they sound like they'll pull even more power than allthread due to the innaccuracies. Needs more research. I will start with a belt system, however.

Main frame: I'll start with the Darwin frame and modify it. I'd build a box around the unit for storage (and cat-proofing), and hopefully some protected runtime. I'd switch out the bottom board for some roughened aluminum plate. I'd mount a thermoelectric cooler under here with a fan. This would allow me to control build area temperature somewhat, which should aid in adhesion or cooling times, allowing faster building. One side will have to morph into my head "rack". I might also need some heater wire underneath, too, for when I need a warm plate.

Saturday, April 07, 2007

It's all about communication

There's a lot of different comm protocols out there in the world. Proprietary, complex, simple, you can find one to fit your needs. However, there's a few that are standardized and common. I'm doing a little groundwork study on what I'd want/need in a "comm hub". A single microcontroller board that provides me with various comms from my PC, so I can program or view whatever my project is spitting out.

Dedicated Interfaces.


USB: Great, now universal, relatively fast (most MUCs are 12Mb/s), provides up to 500mA of power at 5V. Cons, gotta connect directly to a PC. Integrated or UART bridge

Ethernet: Really universal, no fanout issues, can plug in anywhere with the right software/config. Now can do Power over Ethernet (but rare and might not be worth the hassle for me!). 10Mb/s is common for an MCU. Integrated or parrallel bridge or SPI bridge.

CAN: Not really universal, but simple wiring, I can follow my own design tastes, more bulletproof in implementation. Slower at 1Mb/s max. Integrated or SPI bridge.

The Asynchronous Croud, the U(S)ART users.

Asynchronous communication, perhaps the oldest in the book. Not necessarily robust, but can be made that way. Comes out of the MCU at TTL levels, and can be programed to match many of the following theme variations.

RS232: The old time PC comm favorite. 115Kbaud max to most PCs, although modern variations can go up to something like 921Kbaud. More difficult to deal with due to the +/-12V signalling. UART + level shifter. Point to point.

RS422/485: Not the same scheme, but similar electrical interface. Requires a single ended to differential converter, but works at 5V. Can be faster than RS232 or go much farther. RS422 is otherwise very similar, but can have some limited multidrop capabilities (1 master, 10 slave?). RS485 is a full addressed network setup with an 8 bit network design (256 nodes, usually limited to less by electrical integrity issues).

IRdA: Another UART user, but this time using a pulse width technique to encode the data in light packets. Both ends need to be aimed at each other, but it's great due to the electrical isolation. Lower speeds, normally maxing at 115Kbaud for embedded hardware, but much higher speed (and shorter ranged) variations exist.

LIN: The slower brother of CAN. Uses an ordinary UART and a single wire transciever set, so it's cheaper to implemen than CAN.

Board Level Communications.

A few very common serial systems are not meant to leave the board level, but that doesn't mean they don't.

I2C: Two wire clocked serial bus. One line for data, bidirectional, one line for clock from the master. Simple, a few different names (mostly depends on voltages, SMBus is the 3.3V name, I2C is 5V, Two Wire Interface is the name for those not wanting to pay Phillips for the patent I guess).

SPI: Perhaps the oldest bus in the book. This is a simple clocked bus with a master clock line, a master data line, and a slave data line. A master interrupt line and a slave select line are optional. Simple, not direction changes. Full duplex. Clocked so you don't need to worry about baud rate error. Takes more pins, though. It's fast, however, Microchip products can move at 10MHz (equalling or outstripping the high speed PC busses in general), I've seen some DSP chips clock out at 20MHz to 50MHz.

I'm throwing together ideas for a "communications board" that will encompass many of the above parts. I originally thought USB for the PC interface, but I'm now thinking ethernet as it's simpler to port TCP controls from one OS to another rather than USB drivers. CAN will be on the unit, as will be one external header (possibly with a level shifter?) for I2C and SPI (4 wire). The thing I run into right now is deciding what UART protocols to support. Most chips only have 2 async busses, and I probably won't be able to make the baud rates match exactly due to different clocking requirements. RS422/485 is a given for my needs. I'm also considering IRdA. RS232 would be nice, as would LIN. Straight TTL to the UART may be useful too, but I think it'll not be used too much (maybe a jumper/header block?).

Sunday, March 25, 2007

Power Electronics: H Bridges

And an Acrobat crash eats my post...

I'm working on deciding on a power stage to build first. My current target is DC brush motors due to the ease of use and availability.

The original target for my needs was the OpenServo project. Advantages? Small, proven, prebuilt drive train, already has basic position feedback and a motor. Disadvantages? I'd be tossing a control board, people do melt the casings from time to time or destroy the geartrain due to constant high stresses (Hitec 645MG), and I might be able to better put $40 to $60 of hardware per servo to better use. The Openservo uses either small discrete MOSFETs or integrated high-low FETS (IRF7309 (PDF)). These are small enough that the IO pins of a MCU can provide enough charge to get them to toggle at fast enough rates (25mA for a PIC, 40mA for the Atmel MEGA 168). If each FET is controlled by its own IO pin, you have maximum control of the system.

As FETs get bigger, the capacitive charge needed to switch them also grows. What happens if you don't have enough current to switch fast enough? One option is to use a small transistor as a current booster. Another option is to use a dedicated FET driver. Either of these will work perfectly fine and can allow you to handle much larger FETs. But they take space. The dedicated driver is used industrially, while the transistor is used for smaller FETs or as isolators.

What other options are there out there? Quite a few, but often times, they're no where near as good. Although single package drive parts are available, they often use more space or are harder to place than pairs or single FET chips. I've looked at several chips:

Freescale MC33887: 5 Amp full bridge

Freescale MC33486: 10A high side FETs with drivers for low side FETs.

Freescale MC34921: Mother of all printer chips. An analog encoder input (?), two 5A DC motor drives, and a 2A DC motor/Stepper motor driver. Plus a 3.3V linear and a 5V linear OR switcher regulator set. One chip.

ST VNH3SP30-E: Big single chip solution. Takes pulse and direction and can do 10A free air or 25A continuous with cooling.

Some of these chips have current monitoring built in. Some of these chips have various protections built in. What's missing? Control. If I'm lucky enough to have an active input for each direction, I usually get Motor direction A, motor direction B, brake to ground, brake to high. Great, yes, but what happens if I want to freewheel? What happens if I want to do some odd test that needs to have only one input grounded? I'm probably asking too much.

A lot of these packages are big, but they also handle higher currents and I don't need to design a motor board from scratch. I'm working on a motor test board that will have... one of these chips on it and various feedback methods so I can test different servo control methods, if I can find the right motors.

Saturday, February 24, 2007

Ferret: Planning Detail

As requested and so not to confuse people, these are the plan drawings of the Ferret, Copyright Dream Pod 9. They have scale indicators to show what the original scale is on them.




So, now we have a visual reference. To engage the wheels, the unit sits down on the rear wheel and slides the feet forward to about 30 degrees from vertical. I'm working out the kinematics and sizing to match my servo size targets.

Sunday, February 11, 2007

Ferret is GO for Design!

Well I've begun a project to give me a final target design. I blame the 1/6 scale RC paintball tanks for making me think about this. I started wondering "what if I make a Gear?"

For those who don't know me, Gears are humanoid one man IFV's from the game world of Heavy Gear from Dream Pod 9.

I did some scale calculations, and I'd be seeing 3 foot tall models if I went with 1/6 scale. So, I decided to target 1/12 scale (although this will be changed as I look at the realities of frame scaling) and pick one of the oddest designs available: the Ferret.

Ferrets are a cross between a walking robot and a motorcycle. Short and stubby, it has a large powered rear wheel that provides secondary locomotion when the front legs are locked together and the heel wheels are rotated down to provide a semi-tricycle arrangement.

So, what components do I see as part of this project?

-DSPServo design and standardization (Hitec 645MG and 805BB shall be my targets due to their high torque and good speeds)
-DC motor control (powered rear wheel)
-High amp switching power supply (based on a dsPIC design)
-Imaging
-Sonar
-Structural design
-IMU

I do plan to "arm" this thing too. I might make a four-part weapons layout. One scale-simulation armament plan based on IR LED (laser tag) hardware. Another may be based on low cost airsoft conversions. To play with the tanks, I might build a paintball bazooka. Last would be rockets based off my look-see into homebuilt Nerf weaponry. I can see a mix being good (rockets done in Nerf, cannons and lasers built around Lasertag and/or airsoft). Time will tell.

Given the specialized nature of this, I think I might have to break this off into another Blog once I have enough background down. Not everyone knows of Gears, of course.

Back to the drawing board...

Sunday, January 21, 2007

CAN Bus designs - Servo and Power Supplies

Over the last month I've been working on the hardware for my CAN enabled smart RC servo board. Due to space constraints, I've decided to make it a double board.

Common components are two 6 pin 0.1" headers with 0.6" spacing. The CPU board contains the CPU, CAN transciever, and a few power conditioniong components. I am currently trying to avoid needing a LDO onboard. A four pin (two power two signal) header provides access to the network. The power board contains the H bridge and related sensors (current, voltage, temperature). I'm still trying to decide where to stick the analog potentiometer. One pin header is 6 analog signals. The other header is the four PWM lines and a ground and 5V power supply to provide power to the sensors. There's also a pair of separate unregulated power lines to provide motor power.

To make the LDO-less idea feasible, I need an efficient and low noise power system available. While I have some good sized capacitors on the digital supply input pins, I may need to take a different approach if this doesn't work well. This is why I decided to work with a split board design instead of attempting to beat together a monoboard design, at least until I have the design proven out.

So, to power this system, I'm looking at a DC-DC converter. I've been checking out Microchip's SMPS hardware. I'd love to create a dsPIC based design, but I think that'll take more work than I want to right now, plus I need to do a lot of safety design then. So, I'm planning a SMPS based around a stand-alone TI chip, the TPS5430, with a supervisory and control PIC riding along side. The idea here is to provide a garaunteed 2A 5V supply with a 10mV output ripple. I hope to make each power module talk to the rest to allow for some load balancing, but I'm afraid of some sort of interference. 22AWG wire is rated for 2A continuous power, roughly. The supply can do 3A with a 4A burst. I'm thinking about making the CAN passthrough on the board have one side powered. I'm considering making some of my less space constrained designs having an input voltage monitor so I can feed information back to the monitoring PIC to allow it to adjust the 5V output to provide sufficient power to the entire CAN string. I just don't know enough yet.

It's actually quite funny that I've been finding the dsPICs to be equivalent cost to similarly equipped 18F chips. While I haven't been able to verify, given that I'm aiming for near-constant operation for a lot of these devices, I hope that running a much lower clocked dsPIC will pull less power than the 18F for moderate-math applications.