Category Archives: Repairs

MC-2100 Motor Controller Board

MC-2100 Motor Controller Console for Arduino Uno

My fancy NordicTrack iFit treadmill recently greeted me with a blank screen when I switched it on. (No, it wasn’t a victim of the iFit bricking debacle. The console just up and croaked). I was saddened (but not entirely shocked) that neither a replacement console nor parts for it were available. The motor controller board checked okay when tested with a PWM source and 1.5V battery (see below).

I first tried to repair the fried console. Aside from some community created reverse-engineered schematics, I could not obtain service manuals or any other technical documentation for it. I traced the issue to a bad Android MCU that I couldn’t fix or source a replacement for.

Anyway, I was never a big fan of iFit, preferring to run the treadmill in manual mode 99% of the time. So I decided the better course of action was to build my own console, with the following goals:

  1. Full support for the popular MC-2100 motor controller, which is used in NordicTrack, Icon and Proform exercise equipment
  2. Buildable for < $25. Runs on Arduino Uno R3 or compatible MCU.
  3. Open source
  4. Fully customizable controls
  5. Future support for FTMS (FiTness Machine Service) protocol, allowing integration with numerous fitness applications like Zwift. I would welcome some collaboration for this part.

There are generic treadmill controllers available from sites like Aliexpress that replace both the console and motor controller board as a set. The disadvantage of this solution is cost ($150+ for a decent unit) and lack of flexibility. I’m also guessing the genuine MC-2100 boards are more robust.

Assembly

Before I jump into build details, please note that this is experimental pre-production software. The user is responsible for implementing safety controls, including an emergency stop switch.

That said, let’s jump right into a build. These instructions assume you’ve already installed the Arduino IDE:

  1. Download the MC-2100_Treadmill_Controller_Console.ino sketch from Github.
  2. Install the TimerOne, Wire and LiquidCrystal_I2C libraries in your Arduino IDE
  3. Upload the sketch to an Arduino Uno or other compatible board with 5V logic.
  4. Follow this wiring diagram for connections:
MC-2100 Motor Controller Console Wiring Diagram
MC-2100 Motor Controller Console Wiring Diagram

Parts list:

IDDescriptionUno PinsNote
UnoArduino Uno R3Or compatible 5V board
LCD12-line I2C LCDA4, A5Adjust address in sketch if necessary. Default 0x27
R1, R22.4K resistor2, 3Pull-up to +5V. Use instead of internal pull-up resistor.
R3, R5, R6, R7220 ohm resistor4, 10, 11, 13
R41K resistor9
LED1, LED2LEDOptional, but helpful for troubleshooting
SW2, SW3Momentary switch7, 8Incline up/down. Can use one SPDT switch instead if desired. Auto style switches work nicely.
SW1Toggle switch12
POT110K PotentiometerA0Can be either slide or rotary style
PCB1Proto ShieldRecommended for wiring convenience
HD1JST-XH ConnectorOptional. For connecting to treadmill wire harness, if desired.
MC-2100 Motor Controller Console Bill of Materials
PinColorFunction
1Blackground
2Red12V
3Green5V PWM belt speed control
4Bluebelt tach to console (2.4K pullup resistor required; see wiring diagram)
5Orangeincline up (1.5 – 5V relative to pin 6, not ground!)
6Yellowincline down (1.5 – 5V relative to pin 5)
7Violetincline pulse (when moving, 3 pulses per degree of incline. Use a 2.4K pullup resistor.)
8Blk/Whground (unconfirmed reports say this also carries signal info on some models)
MC-2100 HD2 Connector Pinout

Build notes:

  1. If you build the circuit on a proto board, there’s plenty of room to include test controls, if desired. Note that the development board I built has incline and run/stop switches, test points and a speed pot in addition to connectors for external controls.
  2. The LEDs and associated resistors R3 and R7 are optional. R4, R5 and R6 current limiting resistors are recommended even though the circuit will work without them.
  3. R1 and R2 pull-up resistors connect to the transistor side of opto-isolators on the MC-2100. You will need to stay close to these values to get a good pulse signal.

Operation

The current software has these limitations, which will be addressed in a subsequent release:

  1. The speedometer is slow to respond to changes and may intermittently display an incorrect speed.
  2. Incline position is not saved to EEPROM. You must return the treadmill to zero degrees incline before switching it off.
  3. Incline and speed calibration functionality needs to be added. Currently, settings need to be changed in the sketch.

Here’s how my assembled console looks now. Not pretty, but it works! I want to try reverse engineering and utilizing the stock controls when time permits.

Budget Treadmill Console
Budget Treadmill Console

Why Backups Matter (even when they don’t matter)

Apple continues its multi-year assault on my beloved “late 2011” 17 inch MacBook Pro. First by shipping it with a famously defective logic board, which I learned to repair by periodically baking and now by stymying my efforts to to restore backups to it.

When the 17-incher’s hard disk started to suffer from an “invalid fsroot tree” as reported by Disk Utility, I migrated my account over to a new 15 inch MacBook Pro and started using it as my primary computer. But the 17 kept chugging along and I continued to use it mainly for designing and slicing 3D prints for my awesome Prusa MK3S.

It wouldn’t support any OS after High Sierra and occasionally I was unable to open documents but the laptop performed well enough for its current purpose.

All the work I was creating on the 17″ Mac was either one-off stuff or stored in the cloud. So I saw no point in wasting storage and backing the laptop’s increasingly corrupt file system. When the time came, I would just reformat or replace its SSD and restore from the 15-incher’s backup. Easy peasy.

So the day finally came when ‘Ol Seventeen just kept crashing and I replaced it’s 1 TB SSD with a 2TB disk. I fired it up in Internet Restore mode (Command-Option-R), formatted the SSD, and installed High Sierra.

So just use Migration Assistant to restore my account from a Time Capsule backup, right? Nope, that didn’t show any valid backups to restore from. No problem, I could use Migration Assistant to push the account from the 15-inch to the 17-inch, correct? Um no, Apple wouldn’t have any of that either.

Backups from the 15″, which is running Catalina, could not be migrated to the older High Sierra OS. So instead of restoring my account the easy way using Migration Assistant, I will need to manually copy my stuff over from the 15″, reinstall applications, re-set preferences, re-enter passwords and all that kind of fun stuff. Uck.

So don’t assume that the migration tool that makes it so easy to move from an old to a new Mac works the other way around. In retrospect, I can understand why this isn’t just a diabolical plot to get me to buy another new Mac. There’s no practical way for an OS to know what incompatible applications, features or documents could be added in future operating systems, so no way to determine what stuff is compatible and what isn’t. Lesson learned.

Reflow Madness

Over the past several months, I did a few more reflow repairs with my trusty heat gun.  I successfully resurrected a Beats Pill bluetooth speaker but it failed again after a few weeks.  Another Pill is still working okay.  I rescued a 15″ MacBook Pro with video problems but had no success with a 17-incher.

Meanwhile, my own 17″ MacBook Pro, which had been limping along with disabled AMD graphics (thanks to Cody Krieger’s excellent gfxCardStatus menu bar app), went fully dim after a reboot.  This was my excuse to hang up the heat gun for good and invest in a cheap Chinese reflow oven.

At $369, the Happybuy Reflow Soldering Machine is very cheap for a reflow oven but pricey given its design flaws and build quality.  The oven I purchased is an example of the T962A design, which is produced by several different manufacturers.  Google “T962A” and you’ll find various hardware fixes as well as improved firmware.

As shipped, the T962A is both unpleasant and dangerous to operate.  At this stage, I’ve made two modifications that should be considered mandatory

The first problem is that the metal case is not properly connected to ground, posing the potential risk of electrocution!  This is a widely known (and easy to fix) issue.  I’m amazed that units with such a serious defect continue to be shipped.

The second problem is that a heat shield is secured with what appears to be paper masking tape.  It produces noxious fumes and smoke when the oven heats up.  This is also easy to fix by replacing the tape with Kapton tape.  LOL, on Amazon the oven and tape are “frequently bought together.”

There are other fixes available to improve the UI and performance that I haven’t bothered with.  After fixing the ground and tape issues, the oven performs fine for repair work.  I use profile #3 for lead free solder.

To date, I’ve had one success and one failure with the oven.  I wrecked the aforementioned Beats Pill by melting the line in and out jacks.  These are apparently installed after the SMD components are reflowed.  On the other hand, my ailing MacBook Pro was a complete success.  Time will tell if this repair lasts longer than the heat gun fix.

Resurrecting a 17″ MacBook Pro with a heat gun

So the dreaded day came when my beloved “late 2011” 17 inch MacBook Pro died.  The screen wigged out while it was in use, then it would only boot halfway before stopping at a gray screen.  From experience, I knew that it was suffering from the dreaded AMD GPU logic board failure.  What commonly happens is that the solder joints in or around the GPU daughter-card fail over time, resulting in a gray, blank or garbled screen.

Ordinarily I would not attempt to repair any board with solder failure but new logic boards are simply not available for the late 2011 models and used ones are absurdly expensive (and may be close to failing anyway).  The repair I describe below worked perfectly for my 17 incher and also applies to the 15 inch models from the same era.

Best MacBook Pro ever?

IMHO, Apple has never made a better laptop for the the specific use case scenario where some limited portability is required and screen real estate is more important than size/weight.  This was the last of the 17-inchers, perhaps forever, and I plan to keep using it until it is pried out of my cold dead hands.  Okay, the last part is a bit of an exaggeration but my MBP does everything I need it to do and is still plenty fast.  Over the years I’ve managed to keep it ticking by upgrading to 16 GB RAM–Apple only officially supports 8 GB, but this works just fine thank you very much–and a 1 TB SSD.

Several people suggested that I should just put the old relic out to pasture and update to a new 15″ MacBook Pro.  “You can fit even more stuff on the new 15 inch screen!” they say.  Indeed, the 17-incher’s 1920 X 1200 pixel native resolution seems puny compared with the current 2880 X 1800 px Retina display.  But my eyes ain’t what they used to be and cramming my workspace into 15 inches just makes everything too darned small.

Non-intrusive repair option

Anyway, back to the repair.  The least intrusive way to make a MBP with GPU failure operational again is to disable the AMD GPU via software.  The built-in Intel GPU will take over but video performance for demanding tasks would suffer greatly.  I use my laptop for photo editing so that wasn’t a viable option.

Logic board repair options, from conservative to crazy

The other common fix is to reflow the solder in and around the GPU by using a heat source.  Multiple techniques, ranging from reckless (and cheap) to professional (and expensive) have been applied, with mixed success.  I hit the web to see what worked best.

During my research, mainly on Youtube, solutions included:  bake your MacBook in the kitchen oven at 350 degrees for an hour (like a cake?), disconnect the fans and leave it running and wrapped in blankets for a couple of hours (so snug and warm), open the bottom cover and hit the logic board with a hairdryer until you smell stuff melting, or (yawn) remove the logic board and put it though a programmed heating profile in an expensive professional reflow oven.  This video was one of my favorites.

So lacking a reflow oven but wanting to be halfway scientific about doing the job, I decided to reflow the GPU using a common hot air gunThis video does a good job at demonstrating the technique and is pretty close to how I did it.  The time/temperature points I chose are a little different based on my review of lead free solder reflow oven profiles, with times and temperatures increased slightly to compensate for hot air heating inefficiency.

Hot air reflow procedure

Note that all temperatures are specified in degrees Centigrade.

  1. Disassemble the MacBook Pro, referring to an online guide like those on ifixit.com, and remove the logic board.
  2. Clean all thermal paste residue off the CPU and GPU, using thermal grease solvent, flux remover, methanol or any other PCB-friendly solvent that works.  Just please do not use rubbing alcohol. It contains water and could create some new problems.
  3. Create a mask for the GPU using two or three sheets of aluminum foil.  You’ll want to cover all of the logic board except for the GPU.  Don’t install the mask yet.
  4. Place the logic board on a heat proof surface.  With your heat gun set to high and held a couple of feet away, heat both sides of the logic board for a couple of minutes to around 100° C.  The temperature isn’t really critical at this stage. The goal is warm up the entire board, but not so much that it cannot be handled by its edges.
  5. Attach the aluminum foil mask that you made in step 3.  If you are using a thermocouple for temperature measurement, affix the end so that it is resting on a corner of the GPU.  (I used a Fluke multimeter with a Type K thermocouple).  An infrared thermometer also works great;  keep it aimed at the middle of the GPU.
  6. In the subsequent steps, stay as close to the recommended times and temperatures as possible.  If your heat gun has high and low settings, select low.  Hold the heat gun about 3 inches from the GPU, moving it closer or further as necessary to hit the temperature targets.
  7. Apply heat until the surface of the GPU reaches 200° C, then continue applying heat for 3 minutes, keeping the GPU at 200°.
  8. Slowly increase heat to 220°, no more than 3° per second.
  9. Hold at 220° C for 2-1/2 minutes.
  10. Increase GPU temperature to 290° C and hold for 1 minute.
  11. Slowly back away the heat gun, decreasing heat by no more than 6° per second until you reach 200°, then turn off the heat gun and allow the logic board to continue cooling to room temperature
  12. Apply new thermal paste to the CPU and GPU, reinstall the heat sink and reassemble the laptop.

Conclusion

So far my success rate with this process is 100% 🙂  During my web research, I saw several comments indicating that this repair should be viewed as only temporary because the original design is flawed.  But if it my trusty 2011 17″ works for another six years, I’ll be more than satisfied with the couple of hours time invested in fixing it.

This repair was performed in March 2018 and I’ll make a follow-up post if the same failure occurs sometime in the future.

Update – December 30, 2018:  The repair only lasted for nine months before artifacts started appearing again whenever the GPU was activated.  At this stage, I had already shifted to a new 15″ MacBook Pro as my main computer and relegated the 17-incher to my workshop, where it is mainly used for slicing 3D prints.  The GPU’s improved graphics performance has no benefit for this application.  Integrated graphics work just fine.

Instead of spending half a day performing another heat gun repair, I installed Cody Krieger’s excellent gfxCardStatus menu bar app to permanently disable the GPU.  gfxCardStatus is free and open-source, but please consider giving Cody a generous donation if you use his app to extend the useful life of your $1500+ laptop.

 

13″ Retina MacBook Pro Retina won’t boot, fan running full blast

So this repair is mildly interesting.  The user’s late 2012 MacBook Pro just wouldn’t start up one morning.  It would get as far as a “missing boot disk” icon and shortly thereafter the fans started running full blast.

Apple Diagnostics recognized that an SSD was installed but was unable to determine any of its attributes like capacity, etc.

The computer would boot from an external USB drive but it ran very, very slowly and mouse cursor movement was erratic.

So the first task at hand was to attempt to recover the user’s data before trying anything else.  Some quick research on ifixit.com revealed that Apple really doesn’t want its customers repairing or upgrading this laptop.  I thought I had every conceivable security bit in my kit, but nope, I had to part with $8  for a P5 Pentalobe driver kit.

Adding insult to injury, for a very short time in 2012-2013, Apple used a proprietary SSD in the Pro and Air laptops.  Just for giggles, it uses the same connector as an industry standard mobile SATA drive but has a different pinout.  There are only a couple of options for replacement/upgrade SSDs and they are really expensive.  But at least you won’t spend a lot on RAM for this machine because it is not user replaceable.

So there went another $16 for a SSD HDD to SATA 22Pin adapter that may never get used again.

Some good news!  I hooked up the SSD to another Mac and it was 100% fine.  I backed up the user’s files to flash drive so he could get back to work while I investigated further.  The initial diagnosis was that the logic board had gone bad and we agreed to a maximum repair budget of $300.

Upon initial inspection, there was no evidence of physical or liquid damage anywhere inside the notebook.

Halfway through the disassembly process, I found one possible symptom source.  When I removed the heat sink from the logic board, I noticed a small spot of rust on the surface of the CPU.  Could this be interfering with good thermal transfer between the CPU and the heat sink, causing the CPU to overheat?

Next problem:  when I removed the I/O board data cable, I noticed some white corrosion on the cable connector and socket opposite the logic board. (See step 12 of the logic board replacement guide on iFixit.)

It took a bit of time under a large magnifier with some sharp dental picks, but I was able to clean all the corrosion off the cable and I/O board connectors.

It appeared that a very small amount of liquid (probably plain water given no evidence of stickiness) had been sucked in by the left fan and blown across the I/O cable and between the CPU and heat sink.  The user never noticed how or when this happened.  Perhaps the laptop was being used on a surface where something had spilled or was briefly used in the rain.

I carefully reinspected the MacBook and found no further signs of liquid or corrosion so I decided to just clean up the CPU and heat sink with some solvent and gave both a light polish with a new dollar bill to remove the rust.  I put a dab of Arctic Silver thermal paste on the CPU, reinstalled the heat sink, and reassembled the MacBook.

Bingo!  Everything works normally now.  So for $24 for tools and $0 for parts, the laptop was revived.