Unroute a complete PCB in Eagle

Unrouting a complete PCB in Eagle means that all routed tracks on the board are reverted back into so-called ‘airwires’. Airwires are lines that show that there is a connection between 2 points on the board, but that no actual connection is routed yet.

Unrouting signals on a board is called ‘ripup’ in Eagle slang.

Continue reading Unroute a complete PCB in Eagle

Automatically mounting USB drives on Mac OS X

When plugging in an external USB drive on Mac OS X, it gets nicely mounted under /Volumes and appears on your desktop.

However, since I use my MAC mini as Slimserver machine for my squeezebox, I want this automount also to happen after boot, before a user is logged in.

This seems not to be so trivial. I’ve tried several mechanisms to obtain the automount feature, from scripts executed at boot time to modifiying the fstab. None provided an acceptable solution.

Continue reading Automatically mounting USB drives on Mac OS X

Search for text in files on Linux

Searching for a certain text in mulitple files? Just run:

grep -lir "word" *

And you’re all set. It will return you the name of the files containing “word” in the current folders and subfolders.
E.g.:

~/projects/xap $ grep -lir "header" *
hub.c

If you then need the lines that contain the search term, just omit the ‘l’:

~/projects/xap $ grep -ir "header" *
hub.c:  // Set xap-header.instance name for heartbeat
hub.c:  // If ordinary header then pass to all known listeners

Continue reading Search for text in files on Linux

Recovering from a RAID ‘Degraded Array’ event

OK, so you have that nice and shiny server up and running with a RAID array, and all of a sudden you start getting ‘Degraded Array’ messages…

Assuming the error is not hardware-related (i.e. one drive of the array that is failing) you can easily recover from this message.

Continue reading Recovering from a RAID ‘Degraded Array’ event

Tracing a signal in ModelSim

To log a specific signal in a ModelSim simulation, make  a script like this:

view list
add list -hex /tb_name/dut/signalname
configure list -usestrobe 1
configure list -strobestart {<time> ns} -strobeperiod {<period> ns}
configure list -usesignaltrigger 0
configure list -delta none
configure list -usegating 1
configure list -gateexpr { /tb_name/dut/rst_n=='1' }
write list -window .list <output_filename .log>


Continue reading Tracing a signal in ModelSim