1
\$\begingroup\$

I'm trying to make my own Arduino based board. I need to have at least 25 digital I/O and no less than 8 analog in pins. I decided on the Atmel ATMega2560 because of its large capacity for both of those. My problem is that I can't find a solid way to burn the Arduino bootloader onto it. From reading online, it seems it's either a hit or miss.

So my solution is to buy a "fake" Arduino board that has the ATMega2560 onboard already, and then desolder it off and use it for my project.

What method would be best for removing the IC without damaging it?

Thanks!

\$\endgroup\$
4
\$\begingroup\$

[This started as a comment. But then I ran out of room. ]

Burning an Arduino bootloader into a "virgin" Atmega is a fairly reliable procedure. It's less risky than a desoldering job. As you probably know, there is a tutorial. Get a DIP version of the ATmega, breadboard it, and practice downloading the bootloader.

Burning an Arduino bootloader worked for me dozens of times, for various Arduino models (case in point).

TL;DR It's a useful skill to be able to desolder an IC. But your approach to the bigger problem is completely wrong.

\$\endgroup\$
  • \$\begingroup\$ I checked out the arduino tutorial you posted. Is it possible to bypass the bootloader altogether and program using just the ISP? I would get a little extra space from it, too. \$\endgroup\$ – falling cat Jan 17 '16 at 9:21
10
\$\begingroup\$

You are solving the wrong problem.

When you are building your own board, you need a sensible way to test and program the board, no matter what. The best way to do so is to make the JTAG interface accessible on some pin header and use that for a boundary scan test after soldering the IC and initial programming afterwards.

\$\endgroup\$
  • 5
    \$\begingroup\$ Or ISP, in the case of AVRs. \$\endgroup\$ – Ignacio Vazquez-Abrams Jan 17 '16 at 1:11
  • \$\begingroup\$ Thanks for the ideas. I planned on having the board programmable once completed, meaning it has breakout pins for doing so. My problem isn't programming it, its getting the bootloader on the chip! Any suggestions? \$\endgroup\$ – falling cat Jan 17 '16 at 9:13
  • 1
    \$\begingroup\$ @fallingcat Find matching bootloader hex online, attach programmer to the board and load the hex. \$\endgroup\$ – varesa Jan 17 '16 at 10:27
  • \$\begingroup\$ The Arduino IDE has a "Burn bootloader" menu item for exactly this, which includes setting correct fuses inside the AVR. If you copy the Arduino schematic for the ICSP pins and don't connect anything else to them along with sticking to the same oscillator setup and frequency, I can't see how you could go wrong. \$\endgroup\$ – stefandz Jan 17 '16 at 10:45
2
\$\begingroup\$

heat the back of the board on a hotplate, (or a with a propane torch) and push the chip gently with a stick until it comes free

you'll likely damage the board beyoned reuse this way, but it does ensure that the chip receives the minimum amount of heat required.

But really the best way is to put a ICSP header on your new board and use an AVR programmer (or FT2232 etc) to program a new chip, or find a vendor who sells programmed chips.

\$\endgroup\$
  • \$\begingroup\$ Atmel sells programmed chips if your volume is large enough (for a certain definition of "large"). \$\endgroup\$ – Ignacio Vazquez-Abrams Jan 17 '16 at 1:12
  • \$\begingroup\$ sparkfun.com/products/10524 \$\endgroup\$ – Jasen Jan 17 '16 at 1:17
  • \$\begingroup\$ shrug DILs are easy, as ZIF sockets are common. Other packages can be trickier. \$\endgroup\$ – Ignacio Vazquez-Abrams Jan 17 '16 at 1:32
  • \$\begingroup\$ @Jasen But the OP wants a 2560. \$\endgroup\$ – tcrosley Jan 17 '16 at 8:21
  • \$\begingroup\$ Using the ICSP headers, could I bypass the bootloader and upload the sketch directly? \$\endgroup\$ – falling cat Jan 17 '16 at 9:23
2
\$\begingroup\$

Chip Quik is a low temperature alloy especially designed for removal of SMD components. A kit is available from Digi-Key for just under $15.

enter image description here

\$\endgroup\$
2
\$\begingroup\$

A common practice for desoldered chips is to throw them away. Regard them as "unreliable".

Desoldering requires a lot of heat because all the pins are soldered at once. This means that it will likely damage/degrade the chip. You don't really want to troubleshoot such foreseeable issues. It can suck a lot of hours for the cost of 1 chip (albeit a rather costly ATMEGA in this case).

I can imagine this cost of 1 chip vs hours debugging a faulty chip is a different trade-off for work and hobby. But even for my hobby purposes I don't bother. I rather spent my 1 hour on writing some code than messing about on some issue that only sucks time.

But for this case, there are better solutions. Prepare your target board in such a way that you can always "in circuit program" the chip. This is applicable for any target package these days, even if are programming a DIP chip in a socket. It's so much easier to have an in circuit programming tool, so you don't have to reposition the chip dozens of times. Additionally it may extend to an in-circuit debugger connection as well. For ATMEGA you can use the ISP for this.

Alternatively (no space for ISP header) you could buy a ZIF socket for the QFP package you're using. With this socket you could make up a programming jig that powers up the chip and breaks the ISP pins out to your programmer. This requires no soldering and thus no thermal stress for the chip.

\$\endgroup\$
  • \$\begingroup\$ For ISP programming, does it accept sketches from the Arduino IDE, or do I have to code something special? \$\endgroup\$ – falling cat Jan 17 '16 at 10:45
  • \$\begingroup\$ Especially for hobbyist use, and especially with SMT chips, salvaging them wholesale is also a common practice :) Whether I'd recommend it in the context of that question - user has no experience in desoldering them - is another matter... \$\endgroup\$ – rackandboneman Jan 17 '16 at 11:14
  • 1
    \$\begingroup\$ @fallingcat Get the HEX file for the ATMEGA bootloader from the Arduino's site. You'd need a AVR ISP programmer (e.g. AVR ISP MK2 or look up Ebay) to program the bootloader on the ATMEGA. There is probably plenty of tutorials online to find out how to use a AVR ISP programmer to program the HEX file with the correct fuses. You could even do it with a few command-lines and avrdude. An AVR ISP programmer is way more valuable than some old salvaged "fake Arduino Mega"s! \$\endgroup\$ – Hans Jan 17 '16 at 12:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.