Here's the error from the Linux Mint 17.5 computer.
Some of your errors:
fastio.h:56:4: error: #error "No FastIO definition for the selected AVR Board."
#error "No FastIO definition for the selected AVR Board."
^
fastio.h:313:4: error: #error "unknown CPU"
#error "unknown CPU"
^
When I check line 56 and 313 of fastio.h in the Marlin firmware you sent me, I don't find that code.
pins_GEN7_14.h:55:4: error: #error "Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu."
#error "Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu."
^
The Marlin you sent me doesn't even contain a file named "pins_GEN7_14.h".
This makes it seem that you're compiling some different code that I've never seen. I was working under the understanding that you were compiling the version of Marlin that I modified and sent you.
Hi Pert, thank you for the reply.
In my last posting I said I updated to Marlin 1.1.x.
I did this to see if they made any changes for the signature byte error I was getting in the older versions of Marlin.
In the Marlin 1.1.x version they did fix the signature byte error. So now Marlin 1.1.x is saying the chip is a ATmega1284 with signature 0x1e 0x97 0x05 for both bootloader and sketch.
The "pins_GEN7_14.h" is in the Marlin 1.1.x version.
In Marlin 1.0.2 they are in "pins.h".
The file is to big to post I will email it to you.
Thank you, Kenn.
Hi Pert,
I'm having a problem with Gmail attaching the 1.1.x.zip file. You'll have to download it from Marlin directly that is were I get them from.
Thank you, Kenn.
The error is because you have selected Tools > Variant > 1284. With Tools > Variant > 1284P selected, it will compile fine. It's really silly that the Marlin developers didn't add support for the ATmega1284. Luckily, it's easy enough to make it compatible. I tried to email you the version of Marlin that I made compatible with your ATmega1284 but gmail rejects it, so I forked Marlin on GitHub. You can download it here:
https://github.com/per1234/Marlin/archive/atmega1284-support.zip
After that, you'll need to change line 134 of Configuration.h from:
#define MOTHERBOARD BOARD_RAMPS_14_EFB
to:
#define MOTHERBOARD BOARD_GEN7_14
Hi Pert, thank you for the reply.
If I select the variant 1284p I get this error.
Sketch uses 56,610 bytes (43%) of program storage space. Maximum is 130,048 bytes.
Global variables use 2,501 bytes (15%) of dynamic memory, leaving 13,883 bytes for local variables. Maximum is 16,384 bytes.
avrdude: Expected signature for ATmega1284P is 1E 97 05
Double check chip, or use -F to override this check.
Wrong microcontroller found. Did you select the right board from the Tools > Board menu?
It's because the software is saying I have a 1284 non-p chip with the signature byte 0x1e 0x97 0x06.
Thank you, Kenn.
KennTech:
If I select the variant 1284p I get this error.
Then select Tools > Board > 1284 instead. The whole point of me taking the time to modify and publish a version of Marlin that is compatible with the ATmega1284 was so you can do that.
From this:
KennTech:
What I can read on top of the chip is "ATmega1284 U-35452B 1802YRW".
I'm pretty sure you do have an ATmega1284, not an ATmega1284P
1284 and 1284P have different fuse bytes, the software can read them:
ATmega1284, 0x1E 0x97 0x06
ATmega1284P, 0x1E 0x97 0x05
Hi Pert, Thank you for the reply.
I would love to see this work.
I have a fully made Mendel90 sitting on my dinning room table since 2016 and not working because of this chip.
So don't think I'm playing games.
I'm just trying everything I can to get it to work. I read all the postings on Arduino forum on this chip subject and try them just to gain a little ground.
I do appreciate all the help you've been giving me Pert.
I wish you were here to see what is happening on the screen instead of me having to explain it through a text forum.
Yes I do agree that this stuff should be on the forum so everyone can benefit from it.
And I'm sorry if I'm frustrating you Pert, It's just that my mind goes faster the what I can put down in text in order to explain things I'm better with verbal communication.
This chat has taken me 1 an half hours to write.
Right now the only problem seems to be a FastIO pin configuration for the 1284 (non-p) setting.
Thank you for your help, Kenn
KennTech:
I wish you were here to see what is happening on the screen instead of me having to explain it through a text forum.
But I'm not. That is why you need to make the effort to provide me with the information I need to help you. A vague description of the error isn't good enough. I need the complete error output, as you did before.
Hi Crossroads, thank you for the reply.
I tried that trick with the older versions of Marlin and in the old versions of Marlin it would upload the sketch to the chip.
But when I put the chip on to the Gen7 board it wouldn't connect to Pronterface. Pronterface was telling me that I didn't have the right baudrate and I tried all the baudrates but Pronterface wouldn't connect to the chip.
I get the rx and tx led's flashing on the Gen7 board but Pronterface keeps telling me the baudrate is not set right.
Now with the Marlin1.1.x version I go into the avrdude.conf file and change the signature byte from 0x1e 0x97 0x05 to 0x1e 0x97 0x06 I get this error.
Arduino: 1.6.7 (Linux), Board: "ATmega1284, Standard, 1284P, 2.7v, Disabled (default), 16 MHz external"
Sketch uses 56,610 bytes (43%) of program storage space. Maximum is 130,048 bytes.
Global variables use 2,501 bytes (15%) of dynamic memory, leaving 13,883 bytes for local variables. Maximum is 16,384 bytes.
/home/kenn/arduino-1.6.7/hardware/tools/avr/bin/avrdude -C/home/kenn/.arduino15/packages/MightyCore/hardware/avr/2.0.1/avrdude.conf -v -patmega1284p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build5204156af053382f59318edcbe125d99.tmp/Marlin.ino.hex:i
avrdude: Version 6.0.1, compiled on Apr 14 2015 at 18:03:40
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/home/kenn/.arduino15/packages/MightyCore/hardware/avr/2.0.1/avrdude.conf"
User configuration file is "/home/kenn/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyACM0
Using Programmer : arduino
Overriding Baud Rate : 115200
AVR Part : ATmega1284P
Chip Erase delay : 55000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 10 128 0 no 4096 8 0 9000 9000 0xff 0xff
flash 65 10 256 0 yes 131072 256 512 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 6.2
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9706
avrdude: Expected signature for ATmega1284P is 1E 97 05
Double check chip, or use -F to override this check.
avrdude done. Thank you.
Wrong microcontroller found. Did you select the right board from the Tools > Board menu?
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
It's like it's verifying the signature byte from a second cash place or source. I even tried changing the 644p in avrdude.conf to 0x1e 0x97 0x06 but it came back with an error as well.
The other thing I can get to work is the Arduino 1.6.7 serial monitor for some reason no mater what baudrate I set it to.
Thank you for your help, Kenn.
Hi Pert,
Sorry about the vague description I've never been good at explaining things to other people. But I'm willing to try.
Yes I can give you the full verbose error report from now on.
Which version of Marlin do you want to work in the 1.0.2 you fixed or the 1.1.x new version?
Thank you, Kenn.
Please use this version of Marlin:
https://github.com/per1234/Marlin/archive/atmega1284-support.zip
You'll need to change line 134 of Configuration.h from:
#define MOTHERBOARD BOARD_RAMPS_14_EFB
to:
#define MOTHERBOARD BOARD_GEN7_14
Hi Pert, Thank you for the reply.
Wow that worked great the Marlin firmware uploaded right to the 1284 chip.
These are my settings.
Linux Mint 17.5
Arduino IDE 1.6.7
Board : Mighty Core ATmega1284
Variant: 1284
BOD: 2.7
Pinout: Standard
Clock: 16Mhz External
Compiler LTO: Disabled (default)
Port: /dev/ttyACM0 (Arduino/ Genuino Uno)
Programmer: Arduino as ISP
Upload Status: uploaded to 1284 chip with no reported errors
#define BAUDRATE 115200
#define MOTHERBOARD BOARD_GEN7_14
That was awesome the RX and TX led's flashed back and forth on the Arduino Uno for the first time ever.
I will put the mega1284 chip on to the Gen7 board and see if Pronterface makes a connection to it.
Thank you, Kenn.
Hi Pert,
Well Pronterface made a usb2 connection at 115200 baudrate but then lost it.
I attached Pronterfaces serial port read out so you can see it.
The extruder and hot bed led's on the Gen7 1.5v board both came on. Then the extruder led went out on the Gen7 1.5v board but the hot bed led stayed on.
The RX and TX led's on the Gen7 1.5v board both flashed back and forth.
I will try it again later as it's 1:00am Monday morning.
Thank you so much, Kenn.
Pronterface to Gen7 031119 1249am.txt (1.73 KB)
KennTech:
Pinout: Standard
That is wrong. You need to select Tools > Pinout > Sanguino.
KennTech:
Clock: 16Mhz External
I seem to remember you saying earlier in the thread that you have a 20 MHz crystal, not a 16 MHz crystal on your board. Is that correct?
Hi Pert, Thank you for the reply.
No I said 20Mhz chip. You suggested a 20Mhz crystal on 2 of this chat.
If you want me to try it with a 20Mhz crystal I can look and see if I have one. I'll let you know if I find a 20Mhz crystal.
I tried uploading the Marlin firmware again with the Sanguino and got a time out error.
Here are the settings.
Linux Mint 17.5
Arduino IDE 1.6.7
Board : Mighty Core ATmega1284
Variant: 1284
BOD: 2.7
Pinout: Sanguino
Clock: 16Mhz External
Compiler LTO: Disabled (default)
Port: /dev/ttyACM0 (Arduino/ Genuino Uno)
Programmer: Arduino as ISP
Upload Status: Time out error
#define BAUDRATE 115200
#define MOTHERBOARD BOARD_GEN7_14
Thank you, Kenn.
Marlin 1284 support error upload 031119 0448am.txt (86.7 KB)
Hi Pert,
Okay I got the Sanguino to upload.
Here's what's happening.
If you have a blank atmega1284 chip you can burn the Mighty Core bootloader and upload the Marlin firmware and it work perfectly.
But say you want to upload the Marlin firmware a second time because you tweaked a setting. The second time through you have to re-burn the Mighty Core bootloader in order to get the newly tweaked Marlin firmware to upload.
Here are the settings.
Linux Mint 17.5
Arduino IDE 1.6.7
Board : Mighty Core ATmega1284
Variant: 1284
BOD: 2.7
Pinout: Sanguino
Clock: 16Mhz External
Compiler LTO: Disabled (default)
Port: /dev/ttyACM0 (Arduino/ Genuino Uno)
Programmer: Arduino as ISP
Upload Status: good upload no errors
#define BAUDRATE 115200
#define MOTHERBOARD BOARD_GEN7_14
Thank you, Kenn.
Marlin 1284 support sanguino good upload 031119 0601am.txt (88.2 KB)
KennTech:
No I said 20Mhz chip. You suggested a 20Mhz crystal on 2 of this chat.If you want me to try it with a 20Mhz crystal I can look and see if I have one. I'll let you know if I find a 20Mhz crystal.
Using a 20 MHz crystal shouldn't be necessary. I misunderstood you. Please set the Tools > Clock menu according to the frequency of whatever crystal is on your board.
KennTech:
Here's what's happening.If you have a blank atmega1284 chip you can burn the Mighty Core bootloader and upload the Marlin firmware and it work perfectly.
But say you want to upload the Marlin firmware a second time because you tweaked a setting. The second time through you have to re-burn the Mighty Core bootloader in order to get the newly tweaked Marlin firmware to upload.
After the Burn Bootloader process, the bootloader is permanently activated because there is no user application on the ATmega1284P. After the first upload, the bootloader is only active for a short period after you reset the microcontroller. If the bootloader is not active when the upload starts, the upload will fail. On a standard Arduino board, there is a circuit that causes this reset to happen automatically during the upload process. If you don't have an auto-reset circuit, you need to manually reset the board just as the upload starts. That is not when you click the "Upload" button because the Arduino IDE first compiles the sketch before starting the actual upload. If you have verbose output during upload enabled in File > Preferences, you will be able to see in the black console window at the bottom of the Arduino IDE window when the upload finishes (right after you see the line that looks something like "Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes." appear).
Hi Pert, thank you for the reply.
Well the Global variables line is just two lines before the end of the compiling and the upload of the Marlin firmware. I don't think I'm going to be fast enough to press that reset button, I'm old dude.
Now the Gen7 1.5v uses a MCP2200 chip for the usb2 port. I looked up the MCP2200 datasheet and on page 5 there's a table 1-3 Uart Primary Baud Rates that states any baud rate above 19200 baudrate starts to get a 0.16% error. This might explain why Pronterface had a disconnect error because I had Pronterface baudrate set to 115200.
Also when uploading a sketch to the Gen7 1.5v board through the MCP2200 chip I should set the Arduino IDE programmer to AVRISP MKII or to AVRISP?
Thank you for your help, Kenn.
mcp2200-datasheet.pdf (494 KB)