Random replies:
1. What's the difference? None - they're all pretty much the same.
2. What does 8/128 mean? They are difference devices. Look at the data sheets.
3. Which uC does the Arduino use? Various depending on where you buy them from.
Best approach I have found for AVR on a budget is:
1. Buy a cheap USBasp, doesn't matter where from. Stick some tape over the LED on it or it'll burn your eyes out.
2. Buy a cheap Arduino Pro mini board. 5v model. These have an ATMEGA328P which is quite a hefty device. It has the uC, crystal and reset circuit canned on it already.
3. Wire it up according to the various instructions on the Internet. I include a picture of my dev rig for these below for the sake of inspiration. Instructions I used are here:
https://www.bitsbox.co.uk/index.php?main_page=page&id=24&pos=v&chapter=20#4. If you're on windows, follow these instructions to get the right driver:
https://rlogiacco.wordpress.com/2016/09/01/usbasp-windows-10/5. You can write your code in Arduino IDE (yuck) or AVR-GCC something else to program it. I am using the latter using Windows Subsystem for Linux on windows and then programming it with eXtreme Burner.
6. If you use the Arduino UI: (1) set target device to ATMEGA328P 16MHz 5V (2) set target programmer to USPasp (3) load the blink sketch example (4) use Sketch -> Upload using programmer (normal upload wont work with USBasp as that requires an arduino bootloader).
This is an in development RF power meter.
If you want to use a PIC, use PICkit3 with an in circuit target. That plus MPLAB X is a much better environment if you ask me if you want to work in assembly. If you want C, then the AVR is better. I tend to use PICs (12/16 series) for noddy tasks like replacing bits of logic and AVRs for computational and more complex tasks mainly because it's pretty easy to look inside the arduino library source code and nick bits of code for controlling LCDs etc.