Shop OBEX P1 Docs P2 Docs Learn Events
Making/Printing Optical Encoder Disks; Inkjet vs. Toner; QRD1114 vs. Hamamatsu, — Parallax Forums

Making/Printing Optical Encoder Disks; Inkjet vs. Toner; QRD1114 vs. Hamamatsu,

ZootZoot Posts: 2,227
edited 2008-06-08 22:27 in General Discussion
I'm working on some home-brew encoders for one of my 'bots. While the Hamamatsu detector (acroname.com/robotics/parts/R64-P5587.html would be a much better choice for the sensor, I have a bunch of the QRD1114 sensors on hand so I thought I'd try them.

I set up a test rig on my bench -- the sensors and my optical pattern seem fine (on the scope) BUT THE INKJET PRINTED DISKS do not have a black that is black (or dark, or matte, or whatever) enough to deactivate the sensor. In other words, when I made a disk with lines of black electrical tape, it worked great, even at high speeds. On the inkjet (printed on cardstock) disks, the "black" is seen the same as "white", i.e., regardless of how it looks, the inkjet black still reflects a high amount of IR.

I don't want to cut disks out of tape -- any suggestions? I even tried printing 2-3x on the same sheet to get the ink darker (it was extremely black and dark at that point) but it still reflected the IR.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
When the going gets weird, the weird turn pro. -- HST

1uffakind.com/robots/povBitMapBuilder.php
1uffakind.com/robots/resistorLadder.php


Post Edited (Zoot) : 5/20/2008 10:16:19 PM GMT
«1

Comments

  • PARPAR Posts: 285
    edited 2008-03-31 00:12
    Zoot said...
    ...·BUT THE INKJET PRINTED DISKS do not have a black that is black (or dark, or matte, or whatever) enough to deactivate the sensor. .... On the inkjet (printed on cardstock) disks, the "black" is seen the same as "white", i.e., regardless of how it looks, the inkjet black still reflects a high amount of IR.

    I don't want to cut disks out of tape -- any suggestions? I even tried printing 2-3x on the same sheet to get the ink darker (it was extremely black and dark at that point) but it still reflected the IR.
    Is the ink "reflecting" the IR, or is it transparent to the IR (and the reflection is coming from the base material)·?

    If the former, maybe you could print the ink on an IR-absorbing material ?

    Have you tried other ink colors, to determine their reflectivity ?

    PAR
  • FranklinFranklin Posts: 4,747
    edited 2008-03-31 00:45
    You might try on a laser printer to see if that helps.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - Stephen
  • ZootZoot Posts: 2,227
    edited 2008-03-31 00:53
    The black ink is reflecting IR... acts like it's white. I would think other colors would as well -- the black on the prints *looks* black black black -- it's just not black to IR. I'm not sure about printing white on black materials -- have not yet seen a white inkjet cartridge smile.gif

    I would have used a laserprinter but we don't have one.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • FranklinFranklin Posts: 4,747
    edited 2008-03-31 02:00
    If the black is reflecting you could print black on black, hard to see but the QRD1114 should have no problem.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - Stephen
  • PJAllenPJAllen Banned Posts: 5,065
    edited 2008-03-31 02:24
    How about making a photocopy of your print-out?

    [noparse][[/noparse]Maybe "dullcote"?· Might have an adverse effect on the ink.]
  • Bruce BatesBruce Bates Posts: 3,045
    edited 2008-03-31 04:40
    Zoot -

    The chances are pretty good at this point that the problem is not the ink. I suspect the problem is that you're using ordinary high-gloss printer or utility paper. Try using a low-gloss paper, like ordinary typing paper, for a standard typewriter.

    What you're probably getting is a glossy black surface, and what you want it a dull or "matte" black surface. Another way to say it is "non-glare", if you've seen that term used before in speaking about finished surfaces.

    Regards,

    Bruce Bates

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Involvement and committment can be best understood by looking at a plate of ham and eggs. The chicken was involved, but the pig was committed. ANON
  • ZootZoot Posts: 2,227
    edited 2008-03-31 05:18
    Both good ideas. Not sure about black-on-black, though -- I don't think it's the ink per se, but the paper and the process -- I think that the inkjet deposits droplets on top of the paper, and too much of it always shows through (I checked under a loupe).

    I took a Sharpie and hand-darkened the stripes (only took a minute) and now I'm getting nice results. That said, this particular disk only has 15 black stripes + 15 white stripes.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • ZootZoot Posts: 2,227
    edited 2008-03-31 05:22
    Bruce -- I did actually; I ran tests on both calendared and non-calendared card stock, and on very dull regular paper, etc. And my first disks were on very very matte white card stock.

    All results the same. I actually thought the same thing -- I figured running heavy ink on matte lightweight paper would have the best chance of absorbing the ink droplets, but it doesn't. Either that or the inkjet ink is highly reflective to IR (at least with these particular detectors). I may try some other stock tomorrow if I have any likely candidates lying about.

    Going over with Sharpie not bad though -- and I'm not making 10 disks a day or anything smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • Bruce BatesBruce Bates Posts: 3,045
    edited 2008-03-31 05:48
    Zoot -

    You should be able to see if the I/R is reflected by using any sort of camera with a CMOS image sensor. This would include web-cams, video recorders, security cameras, etc. Any solid-state camera will do.

    You may need to move the camera around to catch the light angle, if you get my meaning. If the light is on one side, you need to be on the opposite side, at the proper angle. Like light reflecting off a mirror, so to speak.

    Regards,

    Bruce Bates

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Involvement and committment can be best understood by looking at a plate of ham and eggs. The chicken was involved, but the pig was committed. ANON
  • LilDiLilDi Posts: 229
    edited 2008-03-31 20:37
    I was surprised to see the sensor distance to the reflective surface is about 6 millimeters. The P5587 sensor distance to the reflective surface is about 2 millimeters as are most of these types of sensors. Could it be that your sensor is to close to the reflective surface. Move the sensor to 6 mm from the reflective surface and see if it works. Experiment with fine tuning the sensor distance from that point.
  • ZootZoot Posts: 2,227
    edited 2008-03-31 20:39
    Thanks for the suggestions. I did do a whole series of distance-to-disk surface tests last night -- everything from < 1mm up to about 25mm. Didn't make a difference (well, it did, obviously, when the sensor was right on the disk it wouldn't detect it, and when very far away it wouldn't detect it, but otherwise, it worked the same throughout except for that pesky inkjet black).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • LilDiLilDi Posts: 229
    edited 2008-03-31 20:58
    Also, these sensors seem to be sensitive to fluorescent light. They stop working in rooms with bright light or fluorescent lights. I have seen warnings to line following contestants and other robot contest participants to be aware of this problem and camera flash can send a robot off the deep end and out of the contest. Because of this I have switched to the Melexis 90217 halls effect sensor.

    http://www.parallax.com/Store/Components/IntegratedCircuits/SensorChips/tabid/618/CategoryID/83/List/0/SortField/0/Level/a/ProductID/90/Default.aspx
  • ZootZoot Posts: 2,227
    edited 2008-03-31 21:48
    No doubt. That's not the case here, I don't think anyway. In all my tests yesterday the detector and disks worked fine under all sloppy and rough circumstances EXCEPT when the inkjet prints were not darkened in with a Sharpie/marker.

    At some point I am going to order and try out the Hamamatsu's -- my guess is they won't be as easily fooled (since they are designed for paper detection, are focused, not diffused, have faster rise/settling time, etc.). But I could be wrong. I am also going to try out a toner based disk at some point.

    Re: dust/IR interference -- when I can find the time to mount these up, I'm going to be enclosing the whole encoder apparatus in some kind of can (the dusty Southwest has already maimed the encoder on our Roomba just from dust and dust bunnies), e.g. -- www.dprg.org/projects/2001-09a/

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-04-03 09:09
    Try tilting the sensor slightly w.r.t. the encoder disk. This will reduce the amount of specular reflection seen due to gloss.

    -Phil
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2008-04-03 11:26
    Zoot,

    What about lowering the gain to the IR transmitter LED by increasing the value of the series resistor?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.
  • RickBRickB Posts: 395
    edited 2008-04-03 14:39
    Zoot:

    Try printing on a transparency and view the ir coming through it with a camera. The ink may just be ir transparent.

    Rick
  • ZootZoot Posts: 2,227
    edited 2008-04-03 15:53
    Thanks for all the suggestions.

    Phil -- specular angle -- I had the sensor on a "third hand" and tried all sorts of angles. Off perpindicular angles certainly gave better results, but not with any regularity or consistency.

    Beau -- I tried LED limiting resistors from 220 up to 20k. On my jig, with about 2mm between detector and disk, around 10k gave the best results on the Sharpie-darkened disk -- higher resistance gave a lot of false negatives, lower resistance just made things erratic.

    I will print on transparency and test the ink itself -- while darkening a disk by hand is OK, it would be nice to be able to just print out encoder disks and linear encoder strips w/o a lot of hand-work.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-04-03 19:20
    Try making Xerox copies of your inkjet-printed disks. The toner used in the copiers may have different IR characteristics.

    -Phil
  • ZootZoot Posts: 2,227
    edited 2008-04-03 19:48
    Yeah, PJ Allen suggested that above. I just haven't had a chance to get to the copy shop...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • ZootZoot Posts: 2,227
    edited 2008-05-20 21:23
    OK -- thought I'd report the results of a bit of informal research over the last number of weeks.

    First, unless there is someone out there that knows something I don't, INKJET INK WILL NOT ABSORB IR. And trust me, I tried more variations than you want to think about -- different colors, different mixes, different papers, running through black only, printing 3-4-5 times on the same sheet, printing both sides, etc.

    Second, most any TONER based print WILL work EVEN IF THE PRINTS ARE REALLY CRAPPY. I had dark dark dark inkjet prints that would not absorb, the same disks as a bad xerox or laser-print (where the "blacks" are washed out and you can see paper showing through, etc) WORKED perfectly every time. I checked all kinds of prints under loupe -- the toner or ink coverage is NOT what matters -- there is something about inkjet ink (at least for Espon, HP, Canon, etc) that reflects IR really really well. In fact, in a number of tests, the "darker" the inkjet ink, the MORE it reflected IR. I had one disc where the "black" actually reflected better than the blank "white" paper. Ambient light, changing sensor distances, different resistance values on the IR led do not seem to affect the results.

    Third, while the QRDs are great sensors, since they are meant for "diffused" purposes, they did not give me nearly the sharp waveforms (nor the rise and fall times) that the Hamamatsus I ordered gave me. The Hamamatsus are SWEET for this purpose -- they are designed specifically for highspeed paper edge detection at close distance (like in copiers). I tested the QRDs both as discrete components and using the Parallax's line-sensor board (which is basically the QRD with a ready-to-go RC circuit). That said, if the encoder is not moving quickly AND you can get by with "wide" stripes, the QRDs would be fine.

    In fact, the QRDs have proven their worth as cliff-detectors in table top robots. If you are using them with RCTIME, you can easily distinguish between a "cliff" (radically high RCTIME) and "black", "white" and "table" -- presuming the latter is a theoretical gray somewhere distanced from your black and white. But that's a separate topic for another time (i.e. when I get pix and video of my line-following, paper-finding "printer" bot up in the projects sections).

    I'm installing encoders on my biggest 'bot over the next few days. I've got 4.25" disks with 142 (72 pairs) edges -- giving me about .26 CM per "tick" of resolution. This is with the Hamamatsus. Not doing quadrature (though I have the parts and the mounts) for now, but should be pretty nice.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
  • ZootZoot Posts: 2,227
    edited 2008-05-20 22:30
    FYIs for the roll-your-own enthusiast:

    - you'll get best "ticks" resolution and largest size of black/white stripes if you mount encoder disk to motor shaft or secondary gear shaft (rather than the wheel). E.g, my motors are geared down ~87:1 so I could put just 6 stripes on a disk on the motor shaft and get 282 ticks per revolution of the wheel. But I didn't. Why? A) I didn't want to permanently glue/modify the motors or secondary shaft on my motors (they are old and not easily replaceable; B) simplicity (I want to be able to change out encoder disks w/o heavy lifting); C) most importantly -- my wheels have nearly .6cm of "slop" from the motor shaft. So I'd rather measure the actual wheels at lower resolution and have something reliable. Newer motors with tight, sealed gearheads should have minimal slop (and the noise can be averaged out). Note that the new Parallax drive train has position encoders (optical interrupts) on the wheels, not the motors. I was initially surprised by this choice, it is less common, but there *is* something to be said for knowing where the wheel/track is at and not abstracting it from the motor shaft position.

    - I cut my encoder disks out of the clear plastic spacer "lid/washer" thingies that come at the top and bottom of a spindle stack of blank CDs or DVDs (sorry, don't know what else to call them). They fit my axles perfectly, are light, stiff, and easily cut. I "turned" them by putting a dowel in a piece of plywood for a spindle, then using a Dremel like record-player needle -- I lowered the cutter and then turned the disk.

    - disks were printed out on an inkjet and mounted with spray adhesive. I also printed a drilling template on the inkjet for mounting holes and such.

    - by sheer luck, the 4 holes already in each wheel are perfectly sized for servo mount plastic "pop" rivets... but super glue (the kind that comes with a plastic prep component) works fine as well.

    - see academic1.bellevue.edu/robots/tanner/ for quickie guide on setting up encoder on a motor shaft (super glue really is way stronger than some may think).

    - encoder ticks are read by an SX -- I'm doing (for now) 50ms PID velocity frames and 100ms odometry frames. Encoders are read and clicks updated as often as they change (the effective encoder click rate is actually pretty low).

    See below for some pix of pieces, wheel where the disks mount, etc. Will try to get some finals up if I finish it up over the next few days (my camera half-quit on me last week or I'd have more current photos).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php
    1199 x 850 - 502K
    1133 x 850 - 472K
    1133 x 850 - 370K
    1200 x 900 - 433K
  • WhitWhit Posts: 4,191
    edited 2008-05-21 00:34
    Nice bot Zoot and good info too. I posted this a while back (though I know you've got yours done and at a much finer resolution).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Whit+


    "We keep moving forward, opening new doors, and doing new things, because we're curious and curiosity keeps leading us down new paths." - Walt Disney
  • ZootZoot Posts: 2,227
    edited 2008-05-21 01:15
    Whit -- that's a nice sheet. "Click" counts on those would be good for motor shafts and the like.

    For my wheel set, I used a postscript file (not mine) -- all that needs to be done is set the number of segments using a text editor to edit the .ps file. At 142 segments it's a *lot* stripes and quite dizzying to look at smile.gif

    I take the edited .ps file and open it in Illustrator for further editing (targets, bolt holes, trim marks, bleed, etc). But you can also open a .ps file right into Acrobat (Adobe's PDF environment) and have a ready-to-go PDF.

    Really, the best way to get nice optical disks would be to have the black strips silk-screened with matte ink onto polished aluminum -- but my next project w/encoders will either use off-the-shelf motors with encoders or I'll use sealed optical interrupt (old optical mouse wheels are perfect for raiding for this purpose, btw).

    In attached .ps file edit the line:


    /segments 142 def % number of segments (black and white)

    and change the number to however many segments you want. That's black and white TOTAL. If you are doing quadrature, remember that HALF the above number needs to be ODD to get 90 phase on the sensors. That's presuming you align the two quadrature sensors 90 degrees apart. I.E., the above is 142 segments, with 71 white, 71 black (odd number of blacks, odd number of whites = 90 degree phase shift).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php


    Post Edited (Zoot) : 5/21/2008 1:20:17 AM GMT
  • LeonLeon Posts: 7,620
    edited 2008-05-21 09:54
    Some people find yellow better than black for PCB transparencies. You could try different colours from black.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle
  • realolmanrealolman Posts: 65
    edited 2008-05-22 20:14
    I had some encoder disks made by printing them on nice white paper and taking them to a local photographer who made dandy transparencies..... didn't cost all that much.· I imagine he could have scaled them larger or smaller if I had asked. Also he could make them positive or negative if wanted.

    To be honest, ·I never tried them in practice,· but I bet they'd have worked.· They were very nice.·
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2008-05-23 05:14
    If you really are willing to go one step further, print a negative transparency and then merely contact print with good old conventional photographic paper. The paper is available is matte, gloss, and semi-gloss finishes and a wide array of contrast sensitivity. Some is no longer even on paper, but a plastic substrate [noparse][[/noparse]which really saves on washing out developer].

    Since it is Black and White, the processing only needs a developer and a fixer. The intermediate stop bath can be either just a wash of plain water as a way to save a few bucks. The chemicals are not so expensive, paper is the main costs. You can even create denser transparencies that are more physically stable.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PLEASE CONSIDER the following:

    Do you want a quickly operational black box solution or the knowledge included therein?······
    ···················· Tropically,····· G. Herzog [noparse][[/noparse]·黃鶴 ]·in Taiwan
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-05-23 05:53
    It used to be easy to get all these processes performed for you at your local print shop: file-to-film, negatives (enlarged or reduced) from master artwork, and PMTs (positive matte transfers) from master artwork. But that's pretty much history with modern print shops. Now everything is disk-direct-to-plate, without any intervening steps — or the equipment that was used to perform them. My local printer, whom I relied upon for years to produce transparencies from Postscript files (including many encoder disks and PCB masters), doesn't even have his printer any more. (I wish I had bought the thing.) That realolman was able to find a photographer to do the transparency work for him was a stroke of good fortune.

    -Phil
  • LeonLeon Posts: 7,620
    edited 2008-05-23 09:06
    I do my PCB transparencies on an inkjet printer. It works very well. No good for encoder disks, though, as the ink is very delicate.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle
  • ZootZoot Posts: 2,227
    edited 2008-06-02 23:04
    Well, the toner prints (laser printer) are working *really* well. Ideally, I think I would silk screen matte ink onto metal disks -- they would be durable, easy to produce, etc. That said, next time 'round I will prob. just buy motors with built-in encoders or motors that are suitable for the $19.95 after-market encoders sold by US Digital.

    In any case, rolling-your-own is pretty satisfying and inexpensive, though more time-consuming. Each encoder/disc combo cost me about $6.

    Here are some pics on the bench. The Hamamatsus are spec'ed for a nominal 3mm distance from surface -- I found once I had aligned the depth of the sensors to the "sweet" spot (just shy of 3mm), the "clicks" on my 'scope are razor sharp, and *insensitive* to vibration, wiggle on the wheel bushings, actual rotational alignment of sensor, etc. The current encoder wheel gives me a resolution of about .26 cm per "click" which is pretty good. The only thing I am concerned about over time is dust and smudges (the disks are on the wheels and are bound to pick up huge amounts of floor lint).

    Hoping to crank out some code this week for the SX servo controller already on board the 'bot: handle encoder counts; velocity PID and comm with the motor controller; speed ramping; comm. with host for x, y and theta odometry calculations; stall conditions; etc.

    P.S. -- you can see in the photos that I drilled mounting holes for another encoder on each wheel -- the discs are good for quadrature encoding. For now, for simplicity's sake, I'm just doing one per wheel and will set direction based on what the the motor controller is sending. It won't be perfect, but this 'bot is pretty heavy, and it's hard to "drag" it (the reverse is more likely). Also PID velocity control is my primary concern on this platform, not precise odometry (the latter is a bonus, really). But I could always add the extra pair of sensors if the need is there.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    1uffakind.com/robots/povBitMapBuilder.php
    1uffakind.com/robots/resistorLadder.php


    Post Edited (Zoot) : 6/2/2008 11:14:26 PM GMT
    768 x 907 - 282K
    1024 x 768 - 355K
    1024 x 768 - 321K
    1024 x 768 - 274K
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2008-06-04 06:27
    There is a very good bit of free software for Windows or Linux called ImageMagick.

    If you have trouble with finding a program that will manipulate your original image into the exact size or quality that you need, this may be a good solution.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PLEASE CONSIDER the following:

    Do you want a quickly operational black box solution or the knowledge included therein?······
    ···················· Tropically,····· G. Herzog [noparse][[/noparse]·黃鶴 ]·in Taiwan
Sign In or Register to comment.