I have two older Seeeduinos v328 and v3.0. I can highly recommend them. They work absolutely fine at 3.3V and 16MHz. In fact I seldom select 5V GPIO.
The extra headers were unique when I bought mine. Many 5V Uno clones have extra headers now.
But the 3.3V operation is the best feature.
I always use shields. This means I can swap between Seeeduino, Zero, Nucleo, ...
I prefer to solder electronics onto Protoshields or pcb. Breadboards are untidy.
Yes, I could solder level-shifters onto a Protoshield but life is easier at 3.3V in the first place.
Oh, and I have put LogicGreen modules onto a Protoshield with female headers. So I can swap shields onto the LGT8F328P (which I run at 3.3V).
I once decided to create connector shields for all of my displays (for tests with u8glib and u8g2). Guess what is always included on such a shield... yes, a 74HC4050 for level shifting. So each display can be tested with any Arduino Standard board.
Arduino: 1.8.3 (Windows 10), Board: "Arduino Mini, ATmega328P"
Sketch uses 22682 bytes (79%) of program storage space. Maximum is 28672 bytes.
Global variables use 1469 bytes (71%) of dynamic memory, leaving 579 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x43
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x43
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
I tried with 2 different USB to Serial devices CP2102 and 2104.
Remember that most 3.3V boards will be 8MHz and the bootloader will run at 57600 baud.
My v328 and v3.0 Seeeduinos both have FTDI bridge chips and came with Duemilanove bootloaders.
After all, these boards were made before the Uno was released.
I simply installed the Uno bootloader. It is smaller and runs at 115200 baud.
You either add a specific Seeeduino entry to your boards.txt or choose the "most similar" official board.
david_prentice:
Remember that most 3.3V boards will be 8MHz and the bootloader will run at 57600 baud.
I guessed that could be the reason for the issue. But how to fix it? Do I need to edit boards.txt or load another package for 3.3V ?
Found it, found entry "Arduino Pro or Pro mini", with selectable voltage and speed.
It seems my Seeeduino V4.2 came with ATmega16u2 not programmed for Arduino. Maybe need Flip to program it. I loaded the package for Seeed-Studio, so I have the board selectable. But so far no COM port for it.
david_prentice:
The 16u2 should appear as a COM port in Device Manager.
If not, you would program it
I had to program it. It is now a COM port Arduino/Genuino UNO. But this does not work with Seeeduino V4.2.
There should be some optiboot.hex in the Seeeduino package, but this is missing.
The story goes on. The Seeeduino V4.2 was at a reduced price (half price), but still no bargain. Not recommended in my opinion.
Now that it has a working COM port, just call it Uno. Select Uno in the IDE. Burn bootloader with an external programmer.
All Uno sketches should build out of the box. You have a 16MHz crystal.
Just flip the switch for 3.3V or 5V operation.
Yes, I know that the mega328P is out of spec for 16MHz and 3.3V. I can assure you that it works fine.
I saw that the v4.2 was a bargain. ...... until you added the delivery cost.
Since it is offered cheap, perhaps there is a hardware problem. If it is just bootloader omission, Seeed could have programmed it before sale. They are a proper company. Not like the usual Lingerie websites that sell electronics on the side.
Today is set for hard learning; not one of my best days.
I have no programmer for AVR, except other Arduinos; I try with UNO clone.
I found ArduinoISP, compiled, downloaded and run it.
I connected the ICSP connections, swapped MISO/MOSI on the second try (I really should know that), with pin 10 of source UNO to reset to the target.
I selected "Arduino as ISP" as programmer, and hit "Burn Bootloader".
I got:
Arduino: 1.8.3 (Windows 10), Board: "Arduino/Genuino Uno"
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
Error while burning bootloader.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Seems I need to look for tutorial; I had seen somewhere already; Google knows.
You're right. This happens on such days. MOSI to MOSI, MISO to MISO, of course, as one is master, the other slave.
I took an other Arduino UNO clone as master, with yellow PCB, one that worked fine so far:
And now: "Done burning bootloader."
Thank you, you saved my day.
Jean-Marc
But even with the burned bootloader, download does not work.
(And I tried with bootloader for UNO and for Seeeduino V4 (change Board before Burn)
Arduino: 1.8.3 (Windows 10), Board: "Seeeduino V4(Atmega328P)"
Sketch uses 24050 bytes (74%) of program storage space. Maximum is 32256 bytes.
Global variables use 1684 bytes (82%) of dynamic memory, leaving 364 bytes for local variables. Maximum is 2048 bytes.
Low memory available, stability problems may occur.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x46
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x46
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Maybe I would need replace boot code in ATmega16u2, but don't know how, and don't know which hex file to take.
New question: is there similar method to use one Arduino to download a full program to a second Arduino?
I have seen commands for avrdude somewhere, go searching once more.
I thought I made it clear that I tried both, UNO with UNO bootloader, and Seeeduino with its bootloader.
Both produce the same errors on download. Seeeduino was just the last test I made.
I throw these Seeeduinos in a corner of some drawer; no need to waste more time, as I have working 3.3V Mini and Micro clones. There may come I time with spare time for this "challenge".
I put this issue aside, but can't stop thinking about it.
Fact is, I have no idea about how bootloaders work.
There seems to be a bootloader in the device, that comes with the chip and is active until a new bootloader is programmed into the device.
I assume, the original bootloader is still there, and can be re-activated.
I have checked the loopback test on the Seeeduino V4.2, echo is ok.
I have programmed the bootloader several times, without error message.
But program download does not work.
One interesting symptom is the three short blinks of the LED on reset.
Could it be that the orignal bootloader is still active, and the programmed bootloader just doesn't get started?
I read about attaching a capacitor on the reset line for programming, would this help?
What happens if the some fuse value is wrong; there is a difference between UNO and Seeeduino.
Maybe the device bootloader just does not accept the programmed bootloader as valid.