Tired of sluggish performance? Want to squeeze a bit more out of your slug? Feel that you're not getting the dish you paid for?

Overclocking (De-underclocking) the Linksys NSLU2! (or how to get your own TurboSlug)

Notes on Slugs supplied at 266Mhz:

Edit: My brand new Slug comes from factory with BogoMIPS: 263.78, so it is already running at 266 MHz?. The Slug is marked with a sticker: Manufactured 05/2006. Maybe someone from Linksys has read this page :)

Edit by Bullfrog: Mine also comes from factory running at 266Mhz ;) - Manufactured 05/2006 - R64 is also now no longer fitted next to flash chip near serial port which with R83 fitted and R81 missing - gives the undocumented code for 266Mhz

Edit by Charly: Mine also comes from factory running at 266Mhz ;) - Manufactured 05/2006. Also the French power adapter is twice smaller for same power (5V 2.0A)

Edit by halfer: purchased 10/May/2007 and found that the "XScale?-IXP425/IXC1100?" is already running at 263.78 BogoMIPS

Edit by Mattia : on my is mouted a IXP420 stepping B1 (marked PRIXP420ABB? on chip and rev2 with cpuinfo) that already run at 263Mhz, if I remove R83 still on 263Mhz but on intensive work on usb drives like transfer of big files with telnet or move it from a drive to other, the system freeze without messeges on consolle. In another older slug with a rev1 of cpu (stepping B0) the R83 switch the turbo speed correctly and no freenze.

Notes on Slugs supplied at the standard half speed:

Edit by Steve 2/25/2007: Purchased yesterday. Mine came with V2.3R73. Only a windows guy so couldn't verify speed. Task manager showed 31% network usage on large files (>2 GBytes?). Opened case and found R83. Removed it with my soldering iron with no problems. Closed case and started NSLU2 again and found that task manager showed 48% network usage on large files.

Edit by ambanmba 6/14/2007: Purchased at a high volume retail store in downtown Sydney, Australia with Slug supplied at half-speed. No MFG date on the box or motherboard, the serial number is SGA00F101272?. Performed mod with a razor blade as per the instructions below and all is well now at 266Mhz.

Edit by docbillnet 3/27/2008: I purchased a refurbished NSLU2. I overclocked it with these directions to 266. My write speed dropped to 2MB/s. When using a powered HUB my write speed is 12MB/s.

Edit by T 8/15/2008: Brand new slug with details as below.

Edit by Asmodee 9/24/2008 Get one today refurbish build in 2005 and I made it in 10 minutes i use a scissor because my fingernail is to big ;)

Edit by RF 10/18/2008 Got a new one last week through an amazon.com reseller and it was underclocked. Not quite as easy as I thought from the description, but with a good magnifier, sharp x-acto style knife, and sharp tweezers, got the offending resistor removed.

Edit by djeaux 11/03/2008 Got a new one three weeks ago (interestingly also through an Amazon reseller) and it was also underclocked, although it did have the V2.3R73 firmware. The case almost fell open. I used some surgical scissors to snip the resistor out. All is running fine at 266MHz, confirmed with /proc/cpuinfo! Thanks to everyone for the help!

Great directions. Removed the resistor in 10 secs, running @266 now. Some stats:

Copying a 112 MO file from the networked hard drive to the laptop'''

Core-Clock

interface

Time

133Mhz

wifi g

196s

133Mhz

wire 100

24s

266Mhz

wifi g

90s

266Mhz

wire 100

20

Conclusion:
Great!!!

I couldn't figure out the nail trimmer method (maybe they mean scissor type trimmers?), so I warmed up the soldering iron. Running at 266.24 BogoMips now.
Total time was about 20 minutes, from powering down to powering up. This includes time looking for my soldering iron and waiting for the iron to warm up.
Potential gotchas: Opening the case is tricky. Take your time and follow the instructions!

Edit by pjackson 12/11/2009 Found out the NSLU2 I have had for a few years was underclocked, thanks to these fantastic directions and a standard razor blade was easily able to overclock to 263.78 and replace into case. Thank you!

Warning: This is EXPERIMENTAL. Follow these instructions at your own risk!

Warning: This WILL void your NSLU2's warranty!

The NSLU2 as supplied from Linksys actually runs the IXP420 at half its rated clockspeed using an undocumented setting. You can fix the NSLU2 to run the IXP420 at the full 266MHz by removing a single SMD resistor which sets the IXP420 at a documented and recommended setting. Restoring the rated clockspeed only affects the XScale core inside the IXP420. The external interfaces will stay at their respective speeds.

Edit by mxlyons 11/16/2008 I have a Keyspan US-19HS USB-to-serial adapter. After making this modification, the serial interface no longer worked. I suspect the port speed is now incorrect. I need a 57600 bps port, and couldn't change the speed using 'stty' to a value that worked. I moved my installation to a second NSLU2 in original condition and it worked as before. This seems odd, as I would think the adapter does its own timing and doesn't rely on CPU clock speed. I'll do some more research when I have time and update this comment.

Edit by itg 07/04/2009 Hint 1: if you "tombstone" the resistor (mount it standing vertically on one pad instead of horizontally across both pads) you'll never misplace it and you can reinstall it later. Hint 2: the Xscale's CPU frequency is not related to the USB interface speed or the locally generated clocks on any USB devices.

Procedure #1

You will need a pair of fingernail clippers and an anti-static wristband. I suggest you have an anti-static wristband to prevent possible static electricity frying the slug. I however have done this to over 20 slugs without one with no problems. If you do not have an anti-static band, I suggest you touch something metal before you do this and do it in a room around 70 degrees and no carpet.

Just open the case(HowTo.OpenTheCase) find the R83 resistor, grab it with the finger nail clippers, apply a little pressure and pull it straight off. It should come right off, usually in one piece. If it doesn't come off in one piece, turn the unit upside down and shake it gently a bit to make sure it all comes off (or you can blow on it a little, just be sure not to spit on it).

I recommend this over the procedure because its a lot easier. I've moved some of the success stories for this procedure up here.

--- After seeing Martin's post above, I realized that a simple, cheap 0.99c pair of small pharmacy-store nail clippers would do the trick in cleanly removing the resistor without cutting or with heavy force. Same idea as using a pair of pliers: carefully position the "mouth" of the clipper perpedicular to the resistor and apply consistant pressure. A slight twist and the surface mouth resistor should come off quite happily. "- Wei A. Tsang"

--- Just want to second Wei Tsang's recommendation about nail clippers. First thing I did with my slug, before I even plugged it in, was to crack open the case and clip off R83. It worked perfectly and was really easy to do. The resistor's small enough that it took me one or two tries to get the clippers to grab on, but once I'd found the proper angle (YMMV) it took one snip and that was it. Reassembled the case and the slug booted perfectly. -acm.

--- Ditto to success with Nail Clippers. Resistor just ends up as dust. Very quick and easy. -mjed.

---I used some metal tweezers, easy as pie. NSLU is, obiously, twice as fast. Why didn't I do this before? - morphine.

--- I also used a nail clipper. The angle is not so obvious: I just got the jaws to make slight contact with the resistor and lightly twisted. Very easy. Runs much smoother now. -The Phil

--- Things went really wrong for me. Maybe because I forgot to touch "something in metal" (feel really dumb about that : I OWN an anti-static wristband...). After I removed the resistor, the slug didn't boot up, and went to firmware upgrade mode. I tried re-flashing the debian installer, but verification failed, and at that point, I have not been able to put the slug in firmware upgrade mode again. So now I know how to brick a Slug like you can brick a WRT... Anyway, my favourite retailer now has full speed Slugs, I'll just buy a new one... -ScriptFanix?

More success stories below on this page for this technique.

Procedure #2

This is really, really simple (If you've got the proper tools).All you need to do is to desolder one resistor (albeit small, it's rather easy).You might need some solderwick, if you make a mess.

The process goes like this:

Read the whole procedure first. Make sure you understand what you're doing.

Optional: To verify that your slug is slow; from a telnet window, cat /proc/cpuinfo You should see a BogoMIPS value of around 133. Bogo means "Bogus", so don't worry if it's +/- 10!

Locate R83. It's just right of the flash chip (The one that says Intel). Between the flash and the power button there is a row of resistors, with an empty space on the bottom. The one just above the empty space is R83. You can confirm this by looking at the legend on the top right of the flash chip.

Use soldering iron, tweezers, solderwick or whatever means necessary to remove the resistor. Just make sure you don't damage anything else or drop it on the floor as it's pretty small. You may wish to keep the SMD resistor just in case in the future you want to add it back. Not that there is any good reason you'd want to.

Make sure you haven't shorted anything. Check again.

Plug in your slug.

Power up and enjoy your MHz*2 slug. The slug, as manufactured by Linksys, is running at ½ the default speed.

Optional: To verify that your slug is now faster; from a telnet window, again cat /proc/cpuinfo You should see a BogoMIPS value of around 266. Bogo still means "Bogus", so don't worry if it's +/- 10! This is actually the result of a delay loop calibration in the kernel, and certainly not the total perfomance story. But it will confirm that you made the change that you thought you did.

--- If you just cannot wait until the soldering iron heats up: Alternative method of removal of the resistor requires sharp box cutter or a scalpel. Position of the resistor on the board makes it easy to simply cut the resistor in half. Resistor is fragile, it will shatter and pieces will fall out. Make sure pieces do not stick around on the board. Enjoy ! Andrei Volkov --

--- I used a small cutter (looks like a wire cutter) that came with screw driver kit to shatter the R83. I found this to be a little safer than using a box cutter or exacto knife because there is less of a chance of damaging the PCB. With one snip, it was quickly and cleanly cut in two. Lastly, I used one of those 'dust off' cans to clear the dust and fragments. -Martin J. Hsu

--- I have around ... zero soldering skills so I didn't want to accidentilly destroy anything else on the board. So I used a razor blade (the kinds you can get in those 50 packs). I picked at the solder joint on the left side, and eventually broke that whole joint. then just lifted the resistor up, and it snapped off. Fairly quick, took about ... 10 minutes all togeather. -Sharth

--- I sawed off R83 with an XActo knife, and it worked perfectly. Be aware that increasing the clock frequency will also shorten (to about 0.8 seconds) the window within which RedBoot is open to a telnet connection, making it that much more difficult to gain access (see HowToTelnetIntoRedBoot). -Ian

--- Cut with a standard cutter, After I go from 3.94mb/sec to 5,35mb/sec -overlord

If you're happy about overclocking your slug, you may want to send in a donation to the project.

You might want to keep an eye on the temperature, especially if you're running the slug inside its casing. In my experience running outside the case, it keeps a comfortable temperature around 40°C. YMMV!

--- The easiest way might be the 'solder ball trick'. Get a soldering iron (no more than 25W or you'll tear the tracks off the board) and melt a blob of solder onto the tip. Move it into position so that the blob is touching both ends of the resistor simultaneously. Wait for the resistor to stick to the solder, then just lift off the iron. Use some desolder wick to remove any solder left on the pads, check for shorts, then put the Slug back together again. Beats trying to melt one side, then flip to the other before the solder cools down. It also pretty much removes the risk of destroying tracks on the board that the knife/boxcutter method carries. Unless you decide to use a 100W solder gun instead of a 25W iron (or a temperature controlled iron set to about 330 Celsius).

--- I've done this with no cutting anything. Check the table, just added a new 10 K resistors (R81) on the empty slot (A22) (just below the red rectangle on the picture). Like this just, to remove it if I want to go back. Like this A21,A22 and A23 are set to 0. Charly

--- I couldn't managed to cut the resistor with a blade (perhaps mine was slightly blunt) so I used a pair or small embroidery scissors to get a grip on the resistor and pull it off. End result was just the same. -Ed

---Complete idiot success. I had no idea really what I was doing and I somehow did it. Used the nail clipper method.

---One more noob success. Sharp little blade of a Swiss Army Knife® and 3minutes time = turbo-slug!

---3 minutes work, total success. Go Turboslug ! Go !

---Performance frustration success. One evening when it went slow on me I just went and did it nailclipper style. Its a new slug on steroids. Why didnt I do this before?! Hardest part was opening the case. The instructions were a bit vague.

---Did it with very sharp nail scissors. I just cut R83 into two pieces. The slug works without problems, but you can hear a verry quiet sound at a verry high frequency. Almost not hearable for me. Can anyone exlpain to me, where this sound comes from?

---I managed to get the resistor off using a nail clipper after some preliminary cutting of the solder using a utility knife. Everything seems to be running fine at 266 MHz?. Opening the case without breaking the tabs was the hardest part. I'm running NSLU2 (Etch). 2007-04-07.

---I simply desoldered R83. Use one hand to hold it with an IC removal clip and the other to use the iron to melt the solder. Pull up on the end of the solder you melt and it'll pull free easily. Then just clean up the pads and you're set. - Noah

---Removed with clippers. The component labeled '100' on the diagram gets in the way and makes it awkward. As the clippers mangled the resistor I appeared to be making an appalling mess. However, the resistor came away, the board looked okay, and the slug booted. It took about five minutes. - CS, Jan 2008

---Got nail clippers but too hard to get good purchase. In the end a sharp pair of tweezers did the job. Took 5 mins. Hardest part was making sure I did not break the clips when opening case. Slug seems to be running well. - Humpda Aug 2008

---my SO's nail clippers wouldn't work for me (I think a picture of the specific type of clippers is necessary). Used a swiss army knife. Same results, twice as many bogoMIPS. Can't believe it was so easy. - shane t. sept 2008

---New to NSLU2, I was able to perform this mod within about a minute or two, which included case removal and use of toenail clippers (simply because I don't know where the fingernail clippers are). A bit more tedius than others have described, but it still did the trick, grasping at 2 corners of the resistor, diagonally across from one another. NSLU2 is reading at 263.78 BogoMIPS and is noticably faster! - purpleonyx, Sept. 18, 2008

---Used the tweezers method and it worked great. It seems much faster especially the TwonkyVision running on it. Bit scary when you remove the resister but the result speaks for itself

Logo

This was easy - thanks for the info! I used an exacto knife and a magnifying glass. Here's an overclock logo to match. Originals and Photoshop files at michaelebrown's site.

Removed resistor on two boards with the very sharp corner of a brand new single edge razor blade (new blade for each board). Draw the razor blade with some downward pressure toward the outside edge of the circuit board at a point slightly left of center on the resistor. It takes some patience but after a number of cutting movements the resistor comes right out.
UPDATE - 09/14/2008 - Have removed resistor for a total of 5 (five) units now utilizing the razor blade method. Some units are more stubborn than others. Unit #3 took about 15 minutes and 4 razor blades as they dulled, before resistor came out cleanly, unit #4 was extremely difficult and resistor just slowly disintegrated into a pile of dust after 30 very tedious minutes and six razor blades, unit #5 was EXTREMELY easy with very little pressure it just popped out totally clean after three swipes with the razor blade. SRS

Temperature and power considerations

The slight increase in power consumption (see Power measurements below) is negligible. The increase in core temperature caused by this is also negligible. The maximum temperature measured by using IR thermometers on the IXP has been 52°C. The maximum temperature of the IXP core power regulation circuitry has been 42°C. All power and temperature values have been well below the rated maximums given in the various datasheets and will comfortably support operation for extended periods of time with the case on and in a hot room.

We are not overclocking the IXP420. It has been tested for operation at 266MHz by Intel and marked as so. There are no signs that the IXP420 used in the NSLU2 is anything other than a standard part. All the markings and CPU IDs have been exactly as they should be.

It is currently unknown why Linksys decided to halve the clockspeed using an undocumented setting but we have not found any reason to not reset it to 266MHz. At the time of this writing, there have been over 530 modified NSLU2's and each one has been operating under heavy load with no problems.

The small change in power consumption can have some effect. For example, I can get it to boot with a Fujitsu 20GB (5V .55A), but can't get it to boot with a Samsung 40GB (5V 0.7A). (michaelebrown)

<<<<<<<
WARNING: My overclocked slug repeatedly crashed on hot days this summer. Room temerature was always beyond 27° C and the slug crashed during longer read/write operations. Under these conditions the behaviour was absolutely reproducible, that is, I could not get it to read or write larger sets of data without crashing. At cooler temeratures the bahaviour was gone, so it looks like a clearly heat-induced problem. I do not know about the bahaviour of a non-modified slug at these conditions (joerg107)
As for the comments below: Others seem to have better luck with their O/C slug. However, it was my slug that crashed, not the HD. I did test for that. I run the slug from a Flash Memory and it also crashed, when the (additional) HD was removed. I did not test, however, whether my Flash Memory still works at 30+°C. (joerg107)

As aside the above warning...I currently have two slugs O/C to 266 with 3 drives on each. This summer when my A/C was being replaced it was 99F (37C) in my house for about 4 days and my two slugs never crashed and functioned properly. So you mileage may vary due to room temp (shiett)

I live in Rio, where temperatures easily reach more than 35C and my O/C 266 slug never crashed, even during long (more than an our) backup sessions, I recommend checking the harddisk temperature before blaming the slug itself. A good heat dissipation enclosure choice is fundamental for no-power-off use.
(marcelo vianna).
>>>>>>>

I live in Denmark, have only 22C in my rooms. My 133 slug crash every time I do "long" sessins (50Mb - 1Gb). If I cool it down with a little fan it nevver crash at all. (TomKirk?)

Another sucsess, using very small screwdriver to simply crush the resistor. Also made about 8 small holes in the top of the casing to allow a little more air though, just in case overheating becomes an issue - 17/2/2007).

Technical

The XScale core in the IXP420 can be forced to operate at a lower speed than the factory set speed. This is done by a series of pull down resistors connected to the IXP expansion bus which are read at reset. The expansion bus pins on the IXP420 are internally pulled up so default to 1. A 10K pull down resistor is used to set it to 0.

The core speed can not be changed once started so it is a hardware only mod. The part on the current revision NSLU2s is a B0 stepping IXP420 rated for operation at 266MHz.

Expansion bus

Strapping resistor

For 133MHz operation (Linksys default)

For 266MHz operation

A21

R83

10K pull down

Removed

A22

R81

Empty

Empty

A23

R64

10K pull down

10K pull down

The NSLU2 as from Linksys is set for 133MHz operation using the undocumented setting of 010. This causes the IXP420 to divide the core speed by 2.

Settings for core clock speed

although documented on page 13 in Intels Hardware Design Guidelines it was unknown whether the last three combinations produce a greater than 266MHz speed before the guide was released.

A turbo-button alternative to removing R83:

Rather than removing R83, I added a switch + 10K resistor in the pads for A22/R81 (see picture above, switch+resistor wires are soldered in the space below the red box).
I positioned my turbo-button at the back of the slug, next to the Ethernet plug. The switch can change the speed of the slug from 133 to 266MHz and back. This is great if you want some oomf for development but also need to test software at the original speed. Unlike a PC turbo-button, speed is set before switching on the device. Speed cannot be changed once the Slug is on.
This is my own experience with a single device, take with a pinch salt: In terms of current consumption, I noticed that my slug hooked to a 2.5" 12GB Toshiba hard drive (USB powered) will not boot with the original 5V 2A power supply. It will boot fine however, with a 5V 2.5A power supply.

[Added by T] I tried this with limited soldering skills. I used a piece of wire scavenged from network cable and soldered in a 1W 10k resistor. This took ages especially as the wires came off when putting the case back on. I liked the idea of dual speed in case of problems and did not want to damage the board removing the resistor as above with finger nail clippers which do seem to big.

Potential for overclock to > 266MHz

The IXP420 is locked to a specific maximum frequency at the time of manufacture by Intel. There is no known way to override this frequency lock.

One possible method is to change the 33MHz oscillator used in the NSLU2 for a higher frequency part. This will cause the IXP420 to run at a higher core speed and will also have the unfortunate outcome of increasing the PCI, expansion and SDRAM bus. Where the expansion bus clock speed can be specified and the PCI bus (apart from the attached NEC μPD720101? which can't run on a higher frequency than 33MHz) is able to run at 66mhz the only barrier is the sdram, which runs at a frequency of xtal*4.

It is well known that PC133? SDR SDRam? is running woithout problems up to 145MHZ wherefore the slug can be overclocked with an 36MHz oscillator resulting the SDR SDRam? running at 144MHz instead 133MHz.

A NSLU2 with a new 36MHz oscillator (someone exchanged the default 33MHz one) is still working fine, but the frequency reportet via dmesg (OpenSlug) and cat /proc/cpuinfo is still 266MHz resp. BogoMIPS. :-(

The above isn't really too surprising - The time will also be running 10% fast unless the kernel was modified to calculate a different value for the timer that generates the jiffy counter.

Having the default PC133? SDR SDRam? exchanged with DDR SDRam? capable to run at the modified xtal*4 frequency connected to the SDR SDRam? controller over a SDR to DDR interface, the expansion bus clock adapted and the NEC USB Controller disconnected (or exchanged with a PCI USB controller capable to run on a 66MHz PCI bus) it should be possible to run the slug at frequencies over 300MHz.

Temp: Temperature measured at the center of the IXP420 after 30 minutes in state "Running"

Core-Clock

Idle

Running

Current

Temp

133MHz

8.1W

8.6W

1.72A

42.0°C

266MHz

8.2W

9.0W

1.8A

43.6°C

note: These measurements were taken at the mains-side of the PSU and thus include the power-consumption (loss) of the PSU.

Further note: Measuring the AC draw with a Kill-a-watt meter, a total draw of 5W including a laptop hardrive (Samsung MP0603H) was measured on a 266MHz slug, so this is a very different measurement. The Power factor was bad, so the VA draw (the apparent usage) was 9-11, but it's Watts you're billed on. More data points required! For explanation of VA, PF, etc., Google "Power Factor" VA Watts.

More Power measurements

These measurements courtesy of yahpn.

Measurements taken on the low voltage (5V) side, post power supply.

nsieve is an old benchmark that uses more memory as it goes along. It shows peak power usage when the L1 D-cache thrashing but no swapping is happening.