January 2007
Monthly Archive
Thu 11 Jan 2007

I recently saw an ad for a Cantenna (a commercialized version of the Pringles-can antenna) and realized that it’s a bit bulky for laptop applications. Sure, they claim 12 dBi gain with 30 degree beam width, but there are multiple examples of planar antennas that have similar performance, but can be put in a laptop bag more easily. Since these antennas are purely passive, there is not a whole lot of magic to their design. I think that it is possible to lay out a single layer PCB that can provide adequate gain and directionality compared to the Cantenna, and once I get time on some RF equipment, I will be sure to make one or two of these. Furthermore, it should be possible to reproduce some strip antenna designs on a substrate like FR4, glass or cardboard by patterning metallic tape and get adequate results. Here is a pair of application notes to get you started with patch and strip antennas.
( an2731.pdf ) ( swra117.pdf )
del.icio.us |
digg
Tue 9 Jan 2007
Posted by nico under
HOWTO ,
SoftwareNo Comments

For years and years people have been talking about the eventual migration to IPv6 without anything really happening. Network Address Translation (NAT) is partially to blame for the continuing endurance of IPv4, but it is also the cause of significant segmentation of networks. This is to say, almost every connected household has one public IP address and then has all of the devices behind the NAT gateway with private IP addresses. The motivation to start using IPv6 is that it is easy to set up gateways so each device, across several physical networks, can have its own routable IP address.
The first step is getting IPv6 connectivity, which is typically done by choosing a “tunnel broker”, where you connect to the broker using IPv4 and then route all of the IPv6 traffic over a tunnel. The tunnel broker also has the option of giving you a subnet block of permanent IPv6 addresses, typically a /48 or /64 leading to 2^80 or 2^64 usable IP addresses. Although there are many, go6 (formerly Freenet6) is my favorite because of their unrestricted service and ease of use. They have a client application which can will do all of the tunnel configuration automatically. To configure your machine as a gateway and to get a /48 or /64 address block, the important things to set in the configuration file are host_type=router and prefixlen=64 or 48. Next, all you have to do is run the software and enjoy IPv6 connectivity.
The more complicated part is configuring DNS (forward and reverse) resolution for the new IPv6 addresses. First, a DNS server that can host IPv6 zones needs to be selected. You can run this yourself or you can use a free site like Xname (donation page) to host your zones. You can get a domain for cheap or you can just ask someone who already has one to delegate a sub-domain to you. Creating forward resolution is simple where you create an AAAA record instead of A record which can go in the same zone as your other IPv4 records. Zeros can be left out thereby making the address a little shorter. Ex:
routed.mobi. IN AAAA 2001:5c0:8c2f:2::4
The PTR zones are a bit more tricky. If your assigned prefix is 2001:5c0:8cf2:2/64, and you want to create a single zone for the whole block, then the zone must be called 2.0.0.0.2.f.c.8.0.c.5.0.1.0.0.2.ip6.arpa. Note the extra zeros after the 2 and 5, here all of the zeros must be written in. The PTR entries are standard where you put the remainder of the IP address on the left with all of the zeros, in reverse order, and separated by periods. Then you write IN PTR and then the fully qualified domain name followed by a final period. An example PTR zone is attached at the bottom.
Once these zones are created and are on the live server, the go6 client configuration can be edited and the dns_server=nx1.xname.org (if using Xname) can be added. This line needs to point to the DNS server that hosts the PTR records since the AAAA records will be found through normal methods. Now you have forward and reverse address resolution so you can start fully using those 2^64 or 2^48 IPs that you were just assigned.
$TTL 86400 ; Default TTL
2.0.0.0.f.2.c.8.0.c.5.0.1.0.0.2.ip6.arpa. IN SOA ns0.xname.org. nvc3.psu.edu. (
2007011001 ; serial
10800 ; Refresh period
3600 ; Retry interval
604800 ; Expire time
10800 ; Negative caching TTL
)
$ORIGIN 2.0.0.0.f.2.c.8.0.c.5.0.1.0.0.2.ip6.arpa.
IN NS ns0.xname.org.
IN NS ns1.xname.org.
4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR routed.mobi.
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ojii-san.routed.net.
3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR null.routed.net.
del.icio.us |
digg
Mon 8 Jan 2007
Posted by nico under
SoftwareNo Comments

After recently upgrading my laptop to FreeBSD 6.2-PRERELEASE, I noticed that my IPv6 support became broken. I connect to Freenet6 over IPv4 using their tspc client which does all of the negotiations and configures the tunnel using gif or tun interface. It also sets up the appropriate routing table. I noticed that the default route was properly (netstat -rn) but any time I tried to ping something, even if it is the next hop, I would get a No route to host error from sendmsg. After some investigation, I found a post from John Hay specifying that it was a known problem and that it is being worked upon with a suggested work around. I guess 6.1-RELEASE will have to do.
( 62-ipv6.txt )
del.icio.us |
digg
Sat 6 Jan 2007

I recently inherited a pair of wire-wrapped boards full of 74AS series logic that were of unknown origin and unknown function. I was told to either take them home or throw them out, so I took the chips home and threw the boards out. Now comes the question: what to do with all of these chips? As there are applications where using positive feedback is advantageous, sometimes its good to have race conditions. I’m thinking of designing a circuit to roll a die whose number is generated through the exploitation of race conditions. The easiest method to do this would be to create a feedback circuit that runs while a button is held down whose iterations are not very predictable. The second method is to implement a state machine with enough state variables to try to guarantee that multiple bits are changed in the state variable at every transition and try to develop a non-deterministic state change order. If these two methods don’t work well, I can try to operate the logic in the gray area, although I think that the threshold for high or low is a manufacturing parameter and is fairly fixed. More on this after I try this out in the lab next week.

del.icio.us |
digg
Fri 5 Jan 2007
Posted by nico under
Gaming ,
HOWTO[2] Comments

IBM has released a guide for the installation of Yellow Dog Linux on the PS3. The process is as easy as burning a DVD and using a thumb drive to boot the installer. The OS has access to all functions of the Cell Broadband Engine, but specialized functionality like high end video acceleration are locked out. There is some difficulty with the video display. If you have a 60gb version with HDMI and a HDCP compatible display, then you are set. Otherwise, you may have to hack a video cable and run at sub-800×600 resolution. (I know that isn’t a PS3 in the picture, but I haven’t seen one of these in a while.)
( ydl50_ps3_guide.pdf )
del.icio.us |
digg
Thu 4 Jan 2007

After some help files and some guesswork, I think I have come up with a workable solution to engraving PCBs with EngraveLab. The previous problem was that it did not import the pads properly from a GerbTool generated HPGL file, and it didn’t do the tracks correctly when importing from a GerbTool generated DXF file. The small workaround is to import both files and then lay one on-top of the other, select both, click a single layer so they are both become the same color, and then do a “basic weld” to join the shapes into one. To be specific, export HPGL with outline selected and with a pen that is very small (0.0001″ works fine). Next, import this HPGL file into Engravelab and when it is selected, perform a basic weld to join all of the parts of the tracks together. Finally, import the DXF file and weld that to the tracks. Now a male toolpath can be created which will go around all of the traces and pads. I am still working out good speed and depth settings for 1oz copper plate and how to do the drilling, however, there is a drill toolpath editor in EngraveLab so that looks promising. As usual, more on this later. (previous post)
Another option that I have been looking at is editing the layer in GerbTool by using tools->convert->draw to pad or something like that. This way, you select all of the tracks and convert them to pads, and then when you export the HPGL with the pads-only option selected, the right looking artwork comes out. The trouble is that the toolpath is on the inside of the design instead of outside. Setting the pen size to 1mil or less makes it looked filled in, but then you still have to generate the appropriate toolpath for the contour.

del.icio.us |
digg
Wed 3 Jan 2007

While shopping at Microcenter, I found a “bargain” wireless mouse and keyboard combination on sale for $12.99. I wanted to add something like this to my media center and the price was really low so I decided to give it a try. The first attempt at using this proved that you really do get what you pay for. Both the mouse and keyboard work fine if they are only a foot or two from the receiver, however, the mouse stops working intermittently as the range is increased. I opened the receiver up and noticed that it was an inductively coupled system running at around 27MHz. The receiver has a pair of MC3361 (one to receive keyboard and one to receive mouse), low power FM IC and a single loop antenna. The mouse has a MA6221-S7K IC for a transmitter. The documentation for these chips has been very scarce, but what is available is at the bottom. The keyboard worked fine at large distances so I assumed it had a good antenna and didn’t bother taking it apart. It looks like the whole system is based on a reference design from Mosart, a Chinese company. Without having direct access to a network analyzer or standing wave ratio meter or lock-in amplifier, the two improvements that I could think of making were to “upgrade” the antenna and to change the squelch setting on the receiver ICs.
After playing with a few different designs, I settled on a 15-turn bundle of insulated wire to be attached in series with the single turn antenna on the board. Since I did not change the capacitors in the LC circuit, assuming the inductance was increased 16-fold, the resonant frequency of the circuit decreased to 1/4th. Again, without proper instrumentation, it is very hard to determine accurately what the actual resonant frequency is. My hypothesis was that even though the resonant frequency was lowered, the operating frequency was still a harmonic of the resonant frequency whose gain would be higher than what the original antenna circuit was. A better design here would be to replace the fixed capacitors with a variable 5-100pF cap and try to tune the antenna for better performance, but I didn’t have one laying around. The only thing that I could test was the effective range improvement which almost doubled making this device usable a few yards from the TV. This is acceptable for now, however, the next step is to try to determine if the squelch setting is hardwired for the device or if it can be made more sensitive by changing some biasing. Again, there are a-lot of ifs here, so your millage may vary.





( mc3361.pdf ) ( ma6221-s7k.pdf )
del.icio.us |
digg
Tue 2 Jan 2007
Posted by nico under
SoftwareNo Comments

Following the Month of Kernel Bugs and Month of Browser Bugs, the Month of Apple Bugs started yesterday. This interesting contest comes at a time when Apple is still supporting both the PowerPC and x86 versions of OS X, so there is a slight chance that some code has been overlooked. Beyond that, the bugs are not limited to the OS, third party software is also fair play. Finally, these bugs are presented in the style of full-disclosure where the security lists will get the notifications first. Let’s remember that nobody is perfect, and lets remember to have some fun.
(image is from vintage computer festival)
del.icio.us |
digg
Tue 2 Jan 2007
Posted by nico under
Circuits ,
HOWTO ,
PCB1 Comment

Some time ago we good an EGX-300 engraver from Roland in the hope of doing small 3D and PCB prototyping. As far as the 3D goes, the Modella tool that comes from Roland is not too useful for any kind of complex 3D design and most people seem to use VisualMill to generate the tool paths from standard 3D files. An example guide is over at instructables. The EngraveLab software that lots of EGX-300 vendors try to push with this device has so far proven to be fairly useless for 3D work and can be considered to be a waste of 1000USD for this application. (It turns out that EngraveLab is useful once you get some details worked out.)
As far PCB milling goes, I have had a hard time finding a commercial package that will take a Gerber file and create a toolpath to send to an engraver without using some messy intermediate step. One guide is available from UMass which relies on PCBMill web utilities by C. Scott Ananian. These are written in JAVA but have some portability issues with the compiler available for OSX (workgroup server). I have email the authors of the UMass webpage and Ananian about commercial packages and have found none so far. I will try to compile PCBMill on a FreeBSD system next and will post the results. If anyone has reasonably priced alternative software suggestions, please let me know!
( pcbmill-098tar.gz )
del.icio.us |
digg
« Previous Page