May 19

Export Board from Altium for OSHPark

Here’s a quick guide on exporting a board from Altium Designer 14 to be made by OSHPark.

1. Go to Design -> Layer Stack Manager
2. Set your stackup to be this:

.LayerStackManager

This information was derived from this FAQ.
3. Go to Project -> Compile PCB Project.  Fix any errors that could cause a problem.
4. Go to File -> Fabrication Outputs -> Gerber Files
5. Under ‘General’, set the units to be ‘Inches’ and the Format to be ‘2:4’
6. Under ‘Layers’, select the following layers:

  • Top Overlay
  • Top Paste
  • Top Solder
  • Top Layer
  • Bottom Layer
  • Bottom Solder
  • Bottom Paste
  • Bottom Overlay
  • Mechanical 15(assuming that you have drawn your board outline on mechanical 15)

Now export, save as <projectname>.cam

7. Go to File -> Fabrication Outputs -> NC Drill.  Use the following settings:

  • Units: Inches
  • Format: 2:4
  • Leading/Trailing Zeros: Suprress trailing zeros
  • Coordinate Positions: Reference to relative origin
  • Other: Optimize change location commands

Save as <projectname>-NCDRILL.cam

8. With the NCDRILL.cam file selected, go to File->Export->SaveDrill.  Set the extension to be .xln

9. Go to your project folder, there should now be a sub-folder called ‘Project Outputs for <Project Name>’.  Grab the following files:

  • *.xln
  • *.GBL
  • *.GBO
  • *.GBP
  • *.GBS
  • *.GKO(re-name the .GM15 file to be .GKO)
  • *.GTL
  • *.GTO
  • *.GTP
  • *.GTS

Put these all into a .zip folder.

10. Upload the .zip folder to OSH Park.

11. Have fun!

Apr 23

WMP54G on Windows 7

So I just upgraded my computer today with an nVidia 970GTX so that I can play Grand Theft Auto V.  However, this caused two problems:

  1. I couldn’t fit the card into my case
  2. The new case had a different configuration, so I had to move my wireless card to a different PCI slot.

When that happened, Windows freaked out.  Completely lost its sense of drivers, so my wireless wasn’t working.  How to get it to work(note: this is from memory, some of this wording is not exact):

  1. Go to Device Manager
  2. Right-click on the network device, go to ‘Update Driver Software’
  3. Go to ‘Browse My computer’
  4. Click ‘Let me pick from already existing drivers’
  5. Go to ‘Network Devices’
  6. Scroll down to Ralink Technology
  7. Select the ‘Wireless LAN a/g PCI card’
  8. Install the drivers
  9. Get on the internet!

Now time for GTA V!

Aug 03

Israel and Palestine in 2014

As of today, Operation Protective Edge has been going on for almost four weeks.  There doesn’t seem to be a clear end in sight at the moment.  Here’s some thoughts on what it looks like to me.

While Israel is probably justified in responding to attacks from Hamas, the entire thing is completely stupid.

Why?

Well, you can’t bomb Hamas out of existence.  It’s just not going to happen.

Why does Hamas exist in the first place?  Well, I don’t claim to be an expert on the Middle East.  But there are several problems here.  First, unemployment is around 30%.  That is not to say that unemployment is the root of all the problems; and in fact may not be, as crime does not necessarily go up when unemployment goes up.  In addition to just the unemployment, the population in Gaza is very young.  If the Freakonomics guys are to believed, that is the root of the problem here.  Essentially, people have no future, so they turn to the one organization that can give them something: Hamas.

Now, back to the central question: Why can’t we just bomb Hamas out of existence?  Well a few reasons.

  1. Hamas does have a legitimate grief against Israel, to the extent that Israel takes up much more land now then they originally were supposed to in 1947, and is currently occupying the West Bank.
  2. Bombing people will, in general, make them resentful.
  3. The danger of Hamas isn’t in guns and bombs.

The dangerous man is the one who has only one idea, because then he’ll fight and die for it.

-Francis Crick

I don’t know if the above quote is actually from Crick, but I have seen it attributed to him.  This is the main problem with Hamas – they have an idea, and people turn to them because they feel that there’s no hope(my thoughts, I don’t know if that’s actually true).

So, what has to happen?

If you want to defeat Hamas, you need to weaken them(duh).  To do that, you need to reform them.  That simply isn’t going to happen while bombs are still dropping; it creates a lot of resentment.  A large investment in Gaza and the West Bank is what has to happen in order for people to have jobs and turn against Hamas.  After all, Hamas was first elected because the people in Gaza thought that they would be able to give them a better life – since that hasn’t happened, people have begun to turn against Hamas.  Since the sentiment is generally against Hamas, now is the time to come in and invest properly.

I don’t have a magic pill that will solve everything.  But there are things that should be done to make this a better world.  Even if there aren’t any formal peace negotiations, both sides should still talk to each other.  After all, what my uncle says is true:

You’re not going to solve any problems if you don’t talk to each other.

Not talking to other people means that you don’t go anywhere.  If you’re talking, you can at least get somewhere.

Jul 07

Website Hack

So, apparently my website was hacked.

It doesn’t look like a WordPress vulnerability(although I can’t say for sure).  Anybody know where any logs are kept?

Of course, passwords have been changed to 15+ characters in length, so that should keep any passwords from being hacked easily.

May 09

Gravity

How did Gravity get so many awards?  I didn’t think that it was a very good movie.

 

I mean, sure it was nicely made.  It had good effects.  But it was an hour and a half of Sandra Bullock breathing heavily and being incompetent.  I just don’t see it.  To some extent, a lot of people would freak out; on the other hand, you’re supposed to be a professional.

Mar 25

How to compile a SINGLE kernel module on Ubuntu

 

Today, I had to compile a custom kernel driver for Ubuntu, and it took me quite a while to do. There are a lot of guides out there, but many of them don’t seem to show the right way, or they do it one very specific way.  Fortunately, thanks to this person, I’ve figured out an easy way to do this which doesn’t involve re-compiling the entire kernel.

  1. Install the dependencies you need to build(build-essential will be pulled in automatically on Ubuntu, you may need to specify it if you’re using Debian): sudo apt-get install dpkg-source
  2. Install whatever kernel you want to use.  If you’re running the kernel you want to use, skip this step.  For example, on Ubuntu 12.04, you can install an image as such: sudo apt-get install linux-image-3.5.0-47-generic
  3. Install your kernel headers if you have not done so: sudo apt-get install linux-headers-`uname -r`
  4. Get the source of the kernel.  This is going to be quite large.  Also, you don’t have to do this as sudo.  apt-get source linux-image-`uname -r`
  5. Go to the directory that this source is in; for default Ubuntu installations, this will be: cd ./linux-3.2.0
  6. Prepare the workspace: make oldconfig && make prepare
  7. Copy the Module.symvers file from your currently running kernel into the build directory.  This is VERY IMPORTANT, as otherwise you will be unable to properly build and install the module.  This may lead to errors such as “no symbol table for module_layout” in dmesg when you attempt to load the module.  cp /usr/src/linux-headers-`uname -r`/Module.symvers .
  8. Edit whatever module you want.  In this example, I’m going to edit the ftdi_sio driver so that whenever the driver loads it will print out an awesome message.  In the ftdi_init function, I simply added a line to print when the module is loaded: printk( “RM5248 IS AWESOME” );
  9. Make the module.  Since we don’t want to rebuild the entire kernel, we just have to specify which driver to build.  Do it as such: make M=drivers/serial/usb/
    Using M=<directory> here is important; it makes sure that your Module.symvers won’t be overwritten
  10. Insert the module into the kernel to test it out: sudo insmod drivers/usb/serial/ftdi_sio.ko
    If you get an error “Invalid module format” you’ve done something wrong, probably with the Module.symvers file.  On my system, this fails the first time with “Unkown symbol in module” – you should be able to fix this by doing: sudo depmod -a
  11. Once you’re happy with your kernel module, put it into its permanent location: sudo cp drivers/usb/serial/ftdi_sio.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/ftdi_sio.ko
Mar 17

The Best Action Movie Ever

I just re-watched Transporter 2, and I came up with the best idea ever for an action movie.  Well, technically I came up with it a few days or weeks ago, but now seems like a good time to post.

What if we took Vin Diesel and Jason Statham and put them in a movie together?  It’d be two hours of beating other people up.

After all, most of their movies seem to follow the same basic plot.  Guy goes on a mission/people are coming to get him.  He beats them up.  End of story.  I’m looking at you, Riddick and Transporter.

If we want to throw in more bald people in there, throw Bruce Willis in as well.  That would be a great trio right there.

Of course, I have a feeling that the movie would have no plot.  But then again, you have three guys beating up other guys, so what plot needs to be there? 😛

(also, relevant XKCD)
Feb 27

What we dream

So I had a funny dream last night.

For some reason, I was thinking of the song Tubthumping by Chumawamba(a.k.a. I get Knocked Down).  This morning, shortly I woke up, I had a dream about part of the song.  Only some of the lyrics were replaced.  The best way to describe it is when the woman sings “Pissing the night away / pissing the night away” I replaced the lyrics with “I believe in the darkness / I believe in the light”.  Only a little happier.  And it was also sung by a woman with long pink hair in WWII-era uniform.  She was in the bar from Band of Brothers next to Carwood Lipton.

This brings up a good question: what do we dream?  Do we have full lifetimes in our dreams?  There is one person that I can remember(though sadly I can’t remember who at this point) who had a years-long dream and was in the middle of writing it down when he was interrupted.  Can we all have dreams like this?  It reminds me of the Batman Beyond episode where people were addicted to a virtual reality simulation.

Anyway, that’s the random thought of the day.