I've never liked blogging, probably because I wanted a more free form state, and my mind bounces around a lot.
So, I will be doing a bit more. I've recently wandered across some radar stuff, so I expect to do some wiki and blogging about this.
http://technicalchemy.wikidot.com/
So, this....
MIT Radar construction PDF
Lead to those who were making integrated units (still too much for my costs right now). Then we wandered over to look at radar modules, such as this:
A sample HB100 module (there's hundreds of suppliers)
However, they're all single IF output doppler modules. However, the good people of the Ham radio group brings us this information:
Using an HB100 as a radio transciever
So, we get 3KHz per mV on the input for tuning. Across 1V that's 3MHz of bandwidth. Compared to the 2.4GHz bandwidth of 80MHz, based on the FMCW bandwidth numbers and the 20ms rate, I'd need to run a rate of 1.3 KHZ, 0.75ms to match. so, I'm thinking of making an interface shield/boosterpack/whatever to tie this to a microcontroller board. I need to look into the math more and see what my bit depth and sampling rate need to be, or if I can revert to a computer audio input. At least it won't break the bank.
Back to work. I need to update my profile. Switched jobs three years ago. Different industry, same projects.
Monday, March 30, 2015
Monday, March 22, 2010
Still around
Well, I have my bamboo hardware for my custom Makerbot sitting in the basement at home. I'm hoping to get to it sometime soon, but I'm in the middle of some major house renovation right now. Patience... Anyway, more to come soon. If the Makerbot bamboo works well, I'll put it up on my Ponoko store for sale. Should clock in under $200 I think.
Tuesday, September 22, 2009
A simpler rangefinder?
So, ages ago, the Seattle robotics people used an analog video camera and some timing with a peak detector to "read" a laser line's distance. People do this with webcams these days. But their system was one of the first and also low power. So, how could we duplicate this?
Modern digital cameraphone cameras are cheap (see Sparkfun). But they're color. You get 1/4 red, 1/4 blue, and 1/2 green pixels in your image. The color filter is definitely not user serviceable. You can get monochrome imagers, but finding the optics and keeping the cost down is difficult.
Step 1: optimize for your design choices! I'd start with a red line generator from my laser level as a test. However, green line generators (doubling your bandwidth requirements) are available now for $40.
http://www.z-bolt.com/green-laser-line-generator.html
Step 2: design your logic. The idea here is that we'd only clock in the sensor data we're interested in (be it red or green). We'd use a threshold function to trigger if this is "the line". For each trip, we'd want to capture the line number, pixel position in that line at the very least. For more accuracy, we'd want to capture the value that tripped the threshold. This would let us process the average in a program and determine if we're seeing a reflection.
This can be done either in separate programmable logic or in a PSOC3/5. Ideally you'd only have 1 or 2 pixels per line, but reality may change this. For a 1300x1040line camera, for instance, reading a 1 pixel tall line would take (2 bytes for line + 2 bytes for position + 1 byte for threshold) x 1040 = 5200 bytes of RAM, updated at 15Hz. Throughput therefore would be 78KBytes/s or 624kbit/s. I would not be surprised if it was 3-4x more, but synchronous averaging by the cpu should knock the data back down to a reasonable size. Depending on how the averaging works out, most data could be converted to a 5-8 byte per line data calculation (16-32 bit range, 2 byte line indicator, 1-2 byte time indicator), and real time streaming to a host processor via SPI, CAN, or another moderately fast bus is completely possible.
We'd want a 2 line state machine. It would control the timing of the logic depending on which scan line we're in (RG or GB). So this would take in the camera's logic. We'd use the VSYNC to reset all counters. HSYNC would toggle the state machine and increment a line counter. A second pixel counter would be run with the system. We'd need an 8x8 threshold variable.
Modern digital cameraphone cameras are cheap (see Sparkfun). But they're color. You get 1/4 red, 1/4 blue, and 1/2 green pixels in your image. The color filter is definitely not user serviceable. You can get monochrome imagers, but finding the optics and keeping the cost down is difficult.
Step 1: optimize for your design choices! I'd start with a red line generator from my laser level as a test. However, green line generators (doubling your bandwidth requirements) are available now for $40.
http://www.z-bolt.com/green-laser-line-generator.html
Step 2: design your logic. The idea here is that we'd only clock in the sensor data we're interested in (be it red or green). We'd use a threshold function to trigger if this is "the line". For each trip, we'd want to capture the line number, pixel position in that line at the very least. For more accuracy, we'd want to capture the value that tripped the threshold. This would let us process the average in a program and determine if we're seeing a reflection.
This can be done either in separate programmable logic or in a PSOC3/5. Ideally you'd only have 1 or 2 pixels per line, but reality may change this. For a 1300x1040line camera, for instance, reading a 1 pixel tall line would take (2 bytes for line + 2 bytes for position + 1 byte for threshold) x 1040 = 5200 bytes of RAM, updated at 15Hz. Throughput therefore would be 78KBytes/s or 624kbit/s. I would not be surprised if it was 3-4x more, but synchronous averaging by the cpu should knock the data back down to a reasonable size. Depending on how the averaging works out, most data could be converted to a 5-8 byte per line data calculation (16-32 bit range, 2 byte line indicator, 1-2 byte time indicator), and real time streaming to a host processor via SPI, CAN, or another moderately fast bus is completely possible.
We'd want a 2 line state machine. It would control the timing of the logic depending on which scan line we're in (RG or GB). So this would take in the camera's logic. We'd use the VSYNC to reset all counters. HSYNC would toggle the state machine and increment a line counter. A second pixel counter would be run with the system. We'd need an 8x8 threshold variable.
Tuesday, September 15, 2009
Return to the Laser Rangefinder: PSoC to the rescue?
Of note, I have done my first soldering on the RepRap electronics. I plan to continue on it tomorrow.
Anyway, I was looking at doing a laser rangefinder again, to see if it's more feasible. I think it is. I found some hardware that can do the signal mixing and generate a 1MHz wave and a 0.98MHz wave to allow for a 2KHz signal sensor. Now, to duplicate the low end (still $2400) laser scanners that have a 1024 point scan over 360 degrees at 10hz. So, if I crank up to 10MHz and 9.98MHz I get a 20khz signal. I can digitze that at about 40MHz, so my smallest theoretical step size is 7.5mm. To do better I either need to mix to a lower frequency and sacrifice update rate, or get a faster counter. I could switch processors to 80MHz instead. That would get me 3.75mm steps.
Now, I was hoping to make this whole thing programmable, so I could test different signals (say from 0.1 to 10MHz). This would require either expensive hardware or a lot of digital potentiometer. I looked at the PSoC originally, and it is what got me looking at how feasible this project is again. The example they had was only mixing a 10KHz and a 9KHz signal in a special way, far below my target frequency. It also took half the analog blocks to do one mix, and I'd need to do two. The CPU was also just not fast enough to replace the fast MCUs I've been looking at.
Then Cypress announced the new PSOC5 series. 80MHz ARM Cortex M8 core. 4 analog blocks that can make a 14MHz bandwidth downmixer with ONE block. 4 matched comparators. 24 digital blocks. CAN. Even USB. Integrated GNU C compiler. I think I might be able to make this work without extensive external parts. A laser driver output, a PIN photodiode and amplifier, and maybe a secondary clock source for assistance mixing. I think I might be able to fit everything else inside. We'll see when I get there.
There's several digital motor control blocks, too. I might be able to combine this chip with a low cost DC motor and encoder and a mirror and mirror the capabilities of that $2400 laser model at a fraction of the cost. And only need one chip for everything.
Anyway, I was looking at doing a laser rangefinder again, to see if it's more feasible. I think it is. I found some hardware that can do the signal mixing and generate a 1MHz wave and a 0.98MHz wave to allow for a 2KHz signal sensor. Now, to duplicate the low end (still $2400) laser scanners that have a 1024 point scan over 360 degrees at 10hz. So, if I crank up to 10MHz and 9.98MHz I get a 20khz signal. I can digitze that at about 40MHz, so my smallest theoretical step size is 7.5mm. To do better I either need to mix to a lower frequency and sacrifice update rate, or get a faster counter. I could switch processors to 80MHz instead. That would get me 3.75mm steps.
Now, I was hoping to make this whole thing programmable, so I could test different signals (say from 0.1 to 10MHz). This would require either expensive hardware or a lot of digital potentiometer. I looked at the PSoC originally, and it is what got me looking at how feasible this project is again. The example they had was only mixing a 10KHz and a 9KHz signal in a special way, far below my target frequency. It also took half the analog blocks to do one mix, and I'd need to do two. The CPU was also just not fast enough to replace the fast MCUs I've been looking at.
Then Cypress announced the new PSOC5 series. 80MHz ARM Cortex M8 core. 4 analog blocks that can make a 14MHz bandwidth downmixer with ONE block. 4 matched comparators. 24 digital blocks. CAN. Even USB. Integrated GNU C compiler. I think I might be able to make this work without extensive external parts. A laser driver output, a PIN photodiode and amplifier, and maybe a secondary clock source for assistance mixing. I think I might be able to fit everything else inside. We'll see when I get there.
There's several digital motor control blocks, too. I might be able to combine this chip with a low cost DC motor and encoder and a mirror and mirror the capabilities of that $2400 laser model at a fraction of the cost. And only need one chip for everything.
Friday, May 22, 2009
Reprap electronics order arrives
Thursday, May 07, 2009
The UAVs are coming!
So, I was poking around and ran across DIY drones again. When I first saw the site a year ago, I wasn't too impressed. My opinions have changed drastically. About $200 gets you an add-on autopilot for most small R/C aircraft (Ardupilot). Others have a direct cosine matrix that fuses IMU and GPS signals into a very stable position and attitude estimation of an airframe. More expensive hardware, of course ($400?). I keep seeing daughterboards for these, and this makes me wonder. While it's not ideal, what would happen if you used an IDG 2 axis gyro (x,y) and a more traditional gyro (z) to make a "flat" board? This would greatly reduce any mechanical misalignment or damage, and cut down on the board profile, too.
They're looking for suggestions for an Ardupilot PRO. They want to run dual Arduino CPUs on this. One CPU should be running a fail-safe program, and also an XBEE signal. The second can be running the current Ardupilot software. This would let the user create an XBEE based radio and completely ditch the need for an external standard receiver. I personally would figure out how to put TWO Xbee sockets onboard. One would be running 900MHz (40kbps) and carry critical data and the controller information, while the other would be a 2.4GHz data uplink (250kbps) for anything the Ardupilot or other add-on cards needed to send to a PC. This would allow either a dedicated 900Mhz signal for longer ranged manual control and emergency signalling, or a double failsafe for manual control with extra bandwidth to ride on for the standard 2.4GHz modules. Duplicate this down at the radio and you'd be set.
Technically, using something like Ardupilot shields, you could have one shield providing IMU, GPS, and servo support, and another shield providing transmitter buttons, analog sticks, a display, and an FTDI or other chip based USB uplink to the computer.
They're looking for suggestions for an Ardupilot PRO. They want to run dual Arduino CPUs on this. One CPU should be running a fail-safe program, and also an XBEE signal. The second can be running the current Ardupilot software. This would let the user create an XBEE based radio and completely ditch the need for an external standard receiver. I personally would figure out how to put TWO Xbee sockets onboard. One would be running 900MHz (40kbps) and carry critical data and the controller information, while the other would be a 2.4GHz data uplink (250kbps) for anything the Ardupilot or other add-on cards needed to send to a PC. This would allow either a dedicated 900Mhz signal for longer ranged manual control and emergency signalling, or a double failsafe for manual control with extra bandwidth to ride on for the standard 2.4GHz modules. Duplicate this down at the radio and you'd be set.
Technically, using something like Ardupilot shields, you could have one shield providing IMU, GPS, and servo support, and another shield providing transmitter buttons, analog sticks, a display, and an FTDI or other chip based USB uplink to the computer.
IO Type______Aircraft_______Transceiver
Analog_______Gryo/Accel_____Sticks
Digital______Servos (PWM)___Buttons
SPI__________Gyro/Accel_____Display
UART_________GPS____________FTDI USB
Thursday, April 23, 2009
Finally a powerful camera module!
I've been looking at the CMUCam3 for a while, but I've never been very happy with the limited processing power of prior modules. Now the Surveyor comes out with almost exactly what I was looking for. Fast, enough space, can do video compression, or more importantly video analysis to run many image codes onboard. It might take more power than the CMUCam, but not much, nor much larger. And it costs less.
Tuesday, April 21, 2009
Ardupilot
Was reading notes on Sparkfun's web site, ran across notes and work on the Ardupilot. Looks like a complete, but basic UAV is around $500 if you have nothing to start with.
Wednesday, January 21, 2009
Mass Memory?
Just ran across Microchip's latest toy, a serial SRAM. I haven't looked at this class much as many didn't have a lot of memory, or were slow. This can do 20MHz SPI, not too bad, but still FAR short of the internal RAM speeds. What could we do, though?
Each memory chip can use a Chip Select, Hold, and standard 3 wire SPI. We can gang the chip select, hold, and serial clock together from each chip. It doesn't look like there's a problem twinning the serial in and out lines together for each chip. what we can do then is get a somewhat inefficient parallel RAM module then, starting at 256Kbytes. Might be useful if you have large blocks of data to transfer and can take some lag at the start and stops. You could talk to this array via a parallel port interface on an MCU, but instead of sending a single 24 bit numeric array for a read, you'd have to multiplex this out to all the IO lines. A little more processing, but probably still much faster than anything else. It's this command addressing that will slow it down the most, but it will work very well for sequential read/writes with, perhaps, less cost than a SRAM of similar price and without worrying about FLASH wearout.
Each memory chip can use a Chip Select, Hold, and standard 3 wire SPI. We can gang the chip select, hold, and serial clock together from each chip. It doesn't look like there's a problem twinning the serial in and out lines together for each chip. what we can do then is get a somewhat inefficient parallel RAM module then, starting at 256Kbytes. Might be useful if you have large blocks of data to transfer and can take some lag at the start and stops. You could talk to this array via a parallel port interface on an MCU, but instead of sending a single 24 bit numeric array for a read, you'd have to multiplex this out to all the IO lines. A little more processing, but probably still much faster than anything else. It's this command addressing that will slow it down the most, but it will work very well for sequential read/writes with, perhaps, less cost than a SRAM of similar price and without worrying about FLASH wearout.
Tuesday, December 30, 2008
PC Building
Well, my wife asked me to build a PC for her for her prethesis/thesis work. Needs to run Autodesk Revit 2009 and Photoshop CS 2/3/4 as best as possible. We're sticking with Windows XP. Things I've found out so far:
1) Photoshop likes 1 or 2 cores, and a fast scratch disk
2) Hardware RAID5 for the main OS partition may be nice but is a real no-no if you want to migrate hardware in the future.
3) Revit 2009 will use up to 4GB in Vista (3GB in Windows XP) and one core for design work. Rendering, however, will use up to four cores.
So, this is what I'm looking at
Case: Antec Sonata III with 500W PSU
Hard Drives: 2x 1 TB Western Digital Caviar Black plus 1x 150GB Velociraptor
ROM: Any decent DVD burner (no bluray)
Video: ATI FirePro V3750 256MB
Display: still looking, probably a 24" LCD
Now, I haven't detailed my motherboard/cpu/ram choices yet. I'm going to have to determine how I want to tackle this:
Option 1a:
4GB (2x2GB) DDR3 1333 (~$100)
Core2 Duo 3.33GHz (~ $270)
MSI P45-8D LGA 775 Intel P45 ATX Intel Motherboard (~ $150)
Option 1b:
Substitute Core2 Quad 2.86 GHz (~$320)
Option 2:
6GB (3x2GB) DDR3 1333 (~$150)
Core i7 920 2.66GHz Quad Core (~$300)
GIGABYTE GA-EX58-UD5 LGA 1366 Intel X58 ATX Intel Motherboard (~$300)
Cost goes up and you go down the list. Option 1a is good but may be limiting in the future. Option 1b is more future proof but still not the newest technology. Option 2 is the bottom of the newest tech, which has too much RAM for XP, but I want to try to get the triple width memory controller working and it has somewhere to go with a future upgrade. It's somewhat slower, though, on single threaded applications. It's also the bottom of the pile for the processors.
Does Windows XP 64bit have issues with 32 bit applications? This would make the 6GB of RAM worth it. $140 for XPPro or XPPro64.
System layout is to put everything on a mirrored 1GB hard drive array. I originally wanted a RAID5 array, but I understand how bad that can be if you put your OS on that array. I'm not buying 5 hard drives to do that right now! The Velociraptor is for windows swap, Photoshop scratch, and general high speed mayhem. If I switch motherboards to something with an integrated SAS controller, I might swap out for a 15Krpm Fuji drive. Price is the almost the same incidentally.
The fish tank is on hold until the kitchen cabinetry is finished.
1) Photoshop likes 1 or 2 cores, and a fast scratch disk
2) Hardware RAID5 for the main OS partition may be nice but is a real no-no if you want to migrate hardware in the future.
3) Revit 2009 will use up to 4GB in Vista (3GB in Windows XP) and one core for design work. Rendering, however, will use up to four cores.
So, this is what I'm looking at
Case: Antec Sonata III with 500W PSU
Hard Drives: 2x 1 TB Western Digital Caviar Black plus 1x 150GB Velociraptor
ROM: Any decent DVD burner (no bluray)
Video: ATI FirePro V3750 256MB
Display: still looking, probably a 24" LCD
Now, I haven't detailed my motherboard/cpu/ram choices yet. I'm going to have to determine how I want to tackle this:
Option 1a:
4GB (2x2GB) DDR3 1333 (~$100)
Core2 Duo 3.33GHz (~ $270)
MSI P45-8D LGA 775 Intel P45 ATX Intel Motherboard (~ $150)
Option 1b:
Substitute Core2 Quad 2.86 GHz (~$320)
Option 2:
6GB (3x2GB) DDR3 1333 (~$150)
Core i7 920 2.66GHz Quad Core (~$300)
GIGABYTE GA-EX58-UD5 LGA 1366 Intel X58 ATX Intel Motherboard (~$300)
Cost goes up and you go down the list. Option 1a is good but may be limiting in the future. Option 1b is more future proof but still not the newest technology. Option 2 is the bottom of the newest tech, which has too much RAM for XP, but I want to try to get the triple width memory controller working and it has somewhere to go with a future upgrade. It's somewhat slower, though, on single threaded applications. It's also the bottom of the pile for the processors.
Does Windows XP 64bit have issues with 32 bit applications? This would make the 6GB of RAM worth it. $140 for XPPro or XPPro64.
System layout is to put everything on a mirrored 1GB hard drive array. I originally wanted a RAID5 array, but I understand how bad that can be if you put your OS on that array. I'm not buying 5 hard drives to do that right now! The Velociraptor is for windows swap, Photoshop scratch, and general high speed mayhem. If I switch motherboards to something with an integrated SAS controller, I might swap out for a 15Krpm Fuji drive. Price is the almost the same incidentally.
The fish tank is on hold until the kitchen cabinetry is finished.
Sunday, December 28, 2008
RepStrap/Mill combo?
Looking around, found this:
http://www.thegeneralstores.com/37110.html
A stiff but glorified dremel tool. Good design and heritage though. Make a 3 axis CNC and attach an extruder head and off we go! Still researching this little 100W spindle machine though.
http://www.thegeneralstores.com/37110.html
A stiff but glorified dremel tool. Good design and heritage though. Make a 3 axis CNC and attach an extruder head and off we go! Still researching this little 100W spindle machine though.
Monday, December 15, 2008
Linear motors: a little thought
I was doing a little looking at linear motors. Got an idea that it would be a great replacement for the geartrain of a homemade airsoft or Nerf gun, plus I've always been looking at how to build them. I'm focusing on the tubular variety instead of the linear rail as I believe these will be easier to build with minimal components, but I suspect they're either harder to design or build with, as there are two major manufacturers making them, Copley Controls and California Linear Devices.
Construction notes:
First, I've been researching the shaft. From what I can tell, it looks like the magnets are placed end to end, NS-SN-NS and held together mechanically. I'm looking at using a stainless steel sleeve with a series of high energy rare earth cylinder magnets inside with spacers. Down the center will be a possible sleeve and a threaded rod. I'm not certain of the material yet. I'll need a jig to hold the magnets on the rod, then nut each end. I plan to custom cut some aluminum end blocks to suspend the magnets in the middle of the sleeve, and provide me with some semi-disposable ends to mount hardware to.
So far, if I build my first arrangement, I think I'll use this:
http://www.rare-earth-magnets.com/detail-ID-69.html
They're not the largest or the strongest grade, but this should keep the cost down, too. I'd like a higher strength and temperature grade, but I'd settle for a higher temp grade. Well, one thing at a time.
I've found both online and at my local American Science and Surplus good supplies of small gage magnet wire. I need bobbins to spin this on. Modern stators are often made of steel, but I'm considering building a modular "coreless" coil system to drive this. I might be able to build these as plastic bobbins to wind the coils around and possibly use to hold everything together. I'd probably still dip the coils in epoxy (probably thin fiberglass resin). I have a lot of research to do on this. The hope is to fit all this into an aluminum tube to protect, align, and provide a heat sink.
I also have to find and do some calculations to determine what power/drive I can do. I want to look at 12 or 24V power systems, not 180V DC buses (120VAC). Probably too dangerous. But this means high current, large conductor systems. I need a motor design guide for brushless motors.
I'll also have to have a module to hold the sinusoidal hall effect sensors. Still lots to look into, let alone building a drive module.
Construction notes:
First, I've been researching the shaft. From what I can tell, it looks like the magnets are placed end to end, NS-SN-NS and held together mechanically. I'm looking at using a stainless steel sleeve with a series of high energy rare earth cylinder magnets inside with spacers. Down the center will be a possible sleeve and a threaded rod. I'm not certain of the material yet. I'll need a jig to hold the magnets on the rod, then nut each end. I plan to custom cut some aluminum end blocks to suspend the magnets in the middle of the sleeve, and provide me with some semi-disposable ends to mount hardware to.
So far, if I build my first arrangement, I think I'll use this:
http://www.rare-earth-magnets.com/detail-ID-69.html
They're not the largest or the strongest grade, but this should keep the cost down, too. I'd like a higher strength and temperature grade, but I'd settle for a higher temp grade. Well, one thing at a time.
I've found both online and at my local American Science and Surplus good supplies of small gage magnet wire. I need bobbins to spin this on. Modern stators are often made of steel, but I'm considering building a modular "coreless" coil system to drive this. I might be able to build these as plastic bobbins to wind the coils around and possibly use to hold everything together. I'd probably still dip the coils in epoxy (probably thin fiberglass resin). I have a lot of research to do on this. The hope is to fit all this into an aluminum tube to protect, align, and provide a heat sink.
I also have to find and do some calculations to determine what power/drive I can do. I want to look at 12 or 24V power systems, not 180V DC buses (120VAC). Probably too dangerous. But this means high current, large conductor systems. I need a motor design guide for brushless motors.
I'll also have to have a module to hold the sinusoidal hall effect sensors. Still lots to look into, let alone building a drive module.
Tuesday, December 09, 2008
Cats
No, not building a cat. My house now holds three (3) cats. two are bossy, one is incredibly pushy, and will eat the other cats' food. The one that's mine is a pushover and may not get all his food. My wife and I have been talking about a food dish control box using collar tags. I've been prototyping this a bit lately in my CAD program. It's simple and needs one or two switches and a small DC motor. End limit switches, a timer, and a safety slip-friction drive to the cover open and closed safely
Electronics wise I'm thinking an RFID system. Sparkfun sells some all-in-one readers that look to be easy to work with. I'm considering an ID-2 with a custom antenna wound around the base of the unit. Tie this to a simple PIC doing pattern matching. If it constantly sends out, keep the dish open until clear. If it only sends on initial read, close on wrong read. A simple H bridge. I could option in a Zigbee system if I wanted to track data on a PC somewhere.
Electronics wise I'm thinking an RFID system. Sparkfun sells some all-in-one readers that look to be easy to work with. I'm considering an ID-2 with a custom antenna wound around the base of the unit. Tie this to a simple PIC doing pattern matching. If it constantly sends out, keep the dish open until clear. If it only sends on initial read, close on wrong read. A simple H bridge. I could option in a Zigbee system if I wanted to track data on a PC somewhere.
Tuesday, September 30, 2008
10 months
Eek, I got in over my head again. Getting a little time back finally. So, during my little break, a few things have happened. The wiimote is getting a 2 axis gyroscope addition. It's still only 5 axes, so close...
My wife has two half gallon fish tanks on the house wall. She hasn't had fish since she was a kid, and I never had. We've populated each with a single betta, but have been having ammonia spike issues with them. So, I'm working on a fail safe hidden filter tank in the adjoining room. I'll do a detailed writeup on this once I'm in the testing stages.
My wife has two half gallon fish tanks on the house wall. She hasn't had fish since she was a kid, and I never had. We've populated each with a single betta, but have been having ammonia spike issues with them. So, I'm working on a fail safe hidden filter tank in the adjoining room. I'll do a detailed writeup on this once I'm in the testing stages.
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!
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?
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.
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...
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.
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.
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.
Subscribe to:
Posts (Atom)