Breadboard compatbile ATmega1284P board with V-USB

Not so - mine will take shields :slight_smile:
And if you smoke the chip, it can be replaced. Also runs at 16 MHz, not 12.


Is more like this one tho.

I know that yours is really "the coolest" Crossroads :smiley: I was just trying to give the guy a bit of confidence. Yes, SMD really sucks when it comes to ease of replacement

Thanks Pedro147.
I've seen CrossRoads's boards, but I just needed something different. I also want to learn so designing and building my own boards seemed like a good idea. It was also cheaper this way for me.
My board has a 12MHz XTAL simply because it's the only one I had on hand when I was putting it together. Since the MCU is running off of 5v USB it should not have any issues with running at 20MHz, and that's the plan.
Arduino compatibility was not a very big priority for me either, but it should work just fine with Arduino. Also the integrated USB port makes external programmers unnecessary.

Pedro147: I agree on the suckiness of SMD, today I really wished I had a hot air rework station as I think I fried an ATmega328P on another board I'm working on, and there's no easy way to remove it without damaging the chip. I'm not 100% sure it's dead so I want to test it, but I need to find a way to remove it safely first.

Despite my jovial patter with Crossroads re the respective merits of both your boards - they're both great :smiley: I just recently started using Eagle with Crossroads assistance but SMD is something that I will hopefully tackle in the new year. Off topic but was that you I saw on #arduino IRC earlier on today? If so, gee you guys can type fast :open_mouth:

Nice board! A remark if I may: Why do you need 5V? For what?
Atmega1284p works fine @16MHz and 3V3. I think 4050 is slow for SPI (8MHZ clock), so get rid of it. The same for I2C translator..
And you will have no problems connecting 3V3 devices straight (sdcards, i2c stuff, etc).
The idea with usbasp V-usb: does it work already with arduino stuff?
Thanks.

@ Pedro147:

Yeah I'm in #Arduino IRC, so it's quite possible that you saw me there.
I also thought the SMD is hard, but it really isn't. As long as you stick to 0805 passives (0603 aren't that much more difficult), TQFP, SOIC and SOT23 packages or larger, there's really nothing to it. You do need a decent soldering iron, and a hot air rework station can be a very good idea if you ever need to take an IC off a board safely and easily.

@ pito:

You have a point, I thought about it as well. But I'm working on a project which uses both 3v3 and 5V components. According to the datasheet, the 4050 should be fast enough for SPI data transfers. I haven't tried 8MHz yet, as all of the SPI peripherals I have here are rated for up to 4MHz and it works fine at that speed.
The project I'm working on isn't anywhere near being close to final so I may still change my mind further down the road.
Either way, even though the ATmega will probably do fine at 3v3, it's still being run out of spec. In the PC overclocking world it's called undervolting, which is usually done to reduce power consumption and heat dissipation of a processor without sacrificing performance. For the most part it's a good thing, but without running the chip through vigorous testing, you can't say for sure that it is 100% stable. This means that, in theory, it can crash any time. If you intend to integrate your design into an actual product this really isn't a good way to go.

If you look up 'USBASP loader' you will see what I'm talking about. When you enter the bootloader, the computer recognizes the device as a USBASP programmer, so you can simply select USBASP programmer in the Arduino IDE and program the chip directly. The downside of this implementation is that It requires you to manually reboot the device to enter into this bootloader mode, so it isn't completely seamless like an actual Arduino where you just click Upload

I finally figured out what was wrong with my attempts to get the USBasp bootloader to work correctly on this board, fixed it and now sketches can be easily uploaded to the board directly via USB. It's also much much quicker than what we're used to with Arduinos. A 32.8KB sketch takes less than 8 seconds to upload and verify. It's considerably quicker than using a standard USBasp programmer.

A this point, the bootloader takes up 2186 bytes. So I'm using the 4kb bootloader section option. I've got to see if there's any chance of getting the size down to or below 2048 bytes so that the 2kb bootloader section could be used to leave 126KB of flash for sketches.

CrossRoads:
And if you smoke the chip, it can be replaced. Also runs at 16 MHz, not 12.

A definite plus with an expensive MCU like the 1284p. I smoked the first pro mini I bought in the first day by connecting 12v to vbus instead of vin. I've thought about trying to remove the 328p-au and solder another on, but I can get 10 pro minis shipped from China for $25.70, so it's not really worth it.
If it were the 1284p-pu, which goes for $6.79 + shipping in qty 10 from mouser, I'd be replacing the chip.

There is no doubt that a DIP package is easier to replace, but sometimes form factor or layout takes precedence.
Also, if you have the right tools (hot air) replacing an SMD package is not that big of a deal.

TheCoolest:
Also, if you have the right tools (hot air) replacing an SMD package is not that big of a deal.

I guess it's worth a try. Any tips for avoiding solder bridges when dealing with 0.8mm pitch QFPs?
My other problem is the pro mini is a bit more cramped than your board layout, so removing the QFP will be difficult without bumping an adjacent resistor or cap.

Do you have a pic\link to the Pro boards? Either way I really don't think it's worth replacing the ATmega on these, as it's cheaper to just replace the board itself than mess with replacing the MCU.
With a hot air smd rework station you can remove chips pretty easily. And if you get some solder paste, soldering one back in place should be just as easy. I don't have one yet, so I'm using a 936 soldering station, with the right tip and 0.5mm (or thinner) solder it's not too hard. Removing a chip is very difficult with just a soldering iron, but there are kits for that like QuickChip.
DIY boards are tougher to solder to as they don't have a solder mask, but the boards I've got do, so soldering to them is piece of cake. Good flux and solder wick are also good things to have.

TheCoolest:
Do you have a pic\link to the Pro boards?
...
Removing a chip is very difficult with just a soldering iron, but there are kits for that like QuickChip.

Here's the pro mini I smoked:
http://www.fasttech.com/products/0/10004915/1380906-pro-mini-microcontroller-circuit-board-module

I've since ordered another from a different supplier for $3.65 shipped, and if it works well I'll be getting a batch of 10 for $2.57 ea. I may still try replacing the chip just to see if I can do it.
As for removing the chip, one guy told me he cut a SOIC-8 Tiny85 off a board with a utility knife. The leads on that are bigger than the qfp32, so I've been meaning to try it on the pro mini.

That's right, you can cut off the pins, and then remove them with a soldering iron.
I forgot to mentioned that because I really wanted to remove my 328p without damaging it to test it on another board.

I think that PRO board should be doable using a soldering iron, just may need a thinner tip on some of the pins.

TheCoolest:
That's right, you can cut off the pins, and then remove them with a soldering iron.

Turns out to be pretty easy with a cheap utility knife aka box cutter (photo attached).
I am a bit concerned I may have accidentally cut one of the traces that runs underneath the chip though...

But it turns out the circuit board pads are very fragile.

Ouch. What temperature did you set your soldering iron to? When cleaning the pads you should use as low temp as you can get away with, using a lot of force pushing down on the pads is also a no-no. The solder mask on that pcb looks fried.

TheCoolest:
Ouch. What temperature did you set your soldering iron to? When cleaning the pads you should use as low temp as you can get away with, using a lot of force pushing down on the pads is also a no-no. The solder mask on that pcb looks fried.

It's an uncontrolled 35W soldering iron. I think my mistake was putting too much lateral pressure on the lead ends when trying to unsolder them. The mask is fine; I hadn't cleaned the tip well and there was some carbon on it that mixed with the water-soluable flux paste I had put on the board; I was able to rub the dirty residue off with my fingernail (not that it matters much since I broke off the two pads). Also if the traces to those pads came from under the chip I may have accidentally cut the traces when I cut the leads off the chip.

TheCoolest:
I finally figured out what was wrong with my attempts to get the USBasp bootloader to work correctly on this board, fixed it and now sketches can be easily uploaded to the board directly via USB.

Hi, a weeks ago, i tried to implement an usbasp to this avr, but unfortunately i cant did it. Could you help me, please, which is the problem in the "original" code? (i changed the pins and add the signature, the gcc was translate it, but the code didnt do anything and don`t have any idea)
rpeter

Did you use USBasp or the USBasp-loader?
If you used the loader, did you burn it as a bootloader to the chip or just as a program? did you set the appropriate bootsection size fuses?

TheCoolest:
Did you use USBasp or the USBasp-loader?
If you used the loader, did you burn it as a bootloader to the chip or just as a program? did you set the appropriate bootsection size fuses?

The v-usb based usbasp bootloader, which i used earlier successfully some 328p, burned with a dopper by a modified makefile.
Yes, i tried with 2k and 4k bootsize too, set the bs start address in byte base (1f000 or 1f800). A simple blink prg is working correctly.
Unfortunately i havn`t any idea, which is the problem...
Maybe could you send me the modified part of the code, please?