Re: Martin_H's Tantillus build.
December 28, 2015 07:30PM
People liked pictures, so I figured I would show what I am up to with the control board. Rather than use male pin headers you can see I am using screw terminals for the steppers and extruder heater. I am also using an FTDI header rather than an FTDI/USB interface. The reason is I am thinking of interfacing with a Raspberry Pi Zero running OctoPrint in the future.

Here's the front:


Here's the back:


The Sanguinololu normally uses a 4 pin header where the pins are doubled up two grounds and two MOSFET outputs. You then need to connect your heater cartridge to all four pins. It seems likely that this was done for current handling considerations, but they really should have used wider tracks and screw terminals. To work around this you can see that I soldered bridged the double holes together so the 0.2" screw terminals connect to all four tracks.
Re: Martin_H's Tantillus build.
January 02, 2016 01:21PM
Burning a bootloader has not worked using the Pololu AVR ISP (which is compatible with the Atmel programmer). I am following the steps in the Gen7 documentation, but it fails writing the fuses. It looks like it is unable to connect to the chip. I double checked all of voltage levels on the ATMega1284p, and that the reset pullup is in place. Everything looks good, but it fails. Below is the error and the commands.

avrdude.exe: stk500v2_command(): command failed
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

set AVRROOT=C:\Users\Martin\Documents\arduino-1.6.4\hardware\tools\avr
set GEN7BOOT=C:\Users\Martin\Documents\arduino-1.6.4\hardware\Gen7\bootloaders\Gen7

# find the compatible programer
%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c ?

# write fuses
%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m

# upload bootloader
%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -B 1 -U flash:w:%GEN7BOOT%/bootloader-1284P-16MHz.hex

# lock the bootloader
# this gives an expected "verification error 0xcf != 0x0f"
%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -B 1 -U lock:w:0xCF:m

Edited 1 time(s). Last edit at 01/02/2016 01:24PM by Martin_H.
Re: Martin_H's Tantillus build.
January 03, 2016 06:25AM
Quote
Martin_H
avrdude.exe: stk500v2_command(): command failed
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

This isn't the error message, the actual message is before this text.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Martin_H's Tantillus build.
January 03, 2016 11:57AM
OK. I have some 328p devices that I've used this programmer with, but I figured I would sanity check things. So I went into the Atmel studio Tools->Device Programming and then read the 328p's device signature. To me this confirms PC to programmer to microcontroller connectivity. I then repeated this by switching to the ATmega1284p in the drop down and plugging into the Sanguinololu header. An attempt to get the device ID yields this error:

Timestamp: 2016-01-03 11:49:17.373
Severity: INFO
ComponentId: 20000
StatusCode: 0

Unable to enter programming mode. Verify device selection, interface settings, target power and connections to the target device.

Also, here's the complete output from the avrdude command line interaction:
>set AVRROOT=C:\Users\Martin\Documents\arduino-1.6.4\hardware\tools\avr
>set GEN7BOOT=C:\Users\Martin\Documents\arduino-1.6.4\hardware\Gen7\bootloaders\Gen7
>%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m

avrdude.exe: stk500v2_command(): command failed
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.


avrdude.exe done. Thank you.

I find this really strange because I've built Arduino boards on my own and the various sanity checks I've done usually turn up the problem. I checked the board for shorts and bridges, and nothing is getting warm. A WAG is that either the resonator or the ATmega1284p are duds, or I killed it with ESD, but this is odd.

Update: In reflection on this, I have a spare 16 mHz resonator, and 5 volt regulator. I can breadboard the ISCP circuit and put the ATMega1248p in it. If it doesn't work then it is likely that part. If it does work then it's something about the Sanguinololu.

Edited 1 time(s). Last edit at 01/03/2016 12:52PM by Martin_H.
Re: Martin_H's Tantillus build.
January 03, 2016 04:01PM
What is "Atmel Studio"? Never used such a thing. Apparently it drops the error message, reporting only the meaningless part.

'avrdude' has a '-v' parameter, which increases verbosity. It can be used multiple times, up to the level of reporting every single byte sent and received. As it's the SPI protocol, one always receives something, but all zeros or all 0xFF with a nonfunctional chip.

To breadboard an ATmega you need no oscillator at all, they have an internal one. On a factory fresh chip it's set to 8 MHz, with a divider of 8, so you get a 1 MHz clock. External clocks are ignored until you change fuses. Running SPI faster than 0.25 MHz (the max. at a 1 MHz clock) during initial programming is one common reason for failure. Going slower than allowed is never a problem, so it's a good idea to try very slow ( '-b 10' flag) until thre are first successes.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Martin_H's Tantillus build.
January 03, 2016 04:42PM
Thanks for the suggestions. I will use the -v and -b 10 later today. If this does not help I can try breadboarding a minimal circuit. I was unaware that ATMega's had internal oscillators, so you learn something new every day.

AtmelStudio is a Windows IDE for Atmel chips that is integrates editing, compilation, and uploading onto the chip. It's based upon MS VisualStudio so I don't know if it has any Linux analog.
Re: Martin_H's Tantillus build.
January 03, 2016 09:02PM
I used -b 10 and it still didn't work. So I kept adding -v until I got down to the send and receive level. Avrdude has found my programmer, but I don't know enough about what a normal trace would look like to spot the error. For example has it found the chip or not?

>%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -b 10 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m -v -v -v -v

avrdude.exe: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
             Copyright (c) 2000-2005 Brian Dean, [www.bdmicro.com]
             Copyright (c) 2007-2009 Joerg Wunsch

             System wide configuration file is "C:\Users\Martin\Documents\arduino-1.6.4\hardware\tools\avr\etc\avrdude.conf"

             Using Port                    : COM9
             Using Programmer              : avrispv2
             Overriding Baud Rate          : 10
avrdude.exe: serial_baud_lookup(): Using non-standard baud rate: 10avrdude.exe: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [01] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [0b] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [01] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [08] 
avrdude.exe: Recv: S [53] 
avrdude.exe: Recv: T [54] 
avrdude.exe: Recv: K [4b] 
avrdude.exe: Recv: 5 [35] 
avrdude.exe: Recv: 0 [30] 
avrdude.exe: Recv: 0 [30] 
avrdude.exe: Recv: _ [5f] 
avrdude.exe: Recv: 2 [32] 
avrdude.exe: Recv: . [02] 
avrdude.exe: stk500v2_getsync(): found STK500 programmer
             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
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               flash         65    10   256    0 yes    131072  256    512  4500  4500 0xff 0xff
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                      Block Poll               Page                       Polled
               Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
               ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

             Programmer Type : STK500V2
             Description     : Atmel AVR ISP V2
             Programmer Model: STK500
avrdude.exe: Send: . [1b] . [02] . [00] . [02] . [0e] . [03] . [90] . [86] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [0f] 
avrdude.exe: Recv: . [18] 
avrdude.exe: Send: . [1b] . [03] . [00] . [02] . [0e] . [03] . [91] . [86] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [14] 
avrdude.exe: Send: . [1b] . [04] . [00] . [02] . [0e] . [03] . [92] . [82] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [04] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [0a] 
avrdude.exe: Recv: . [1b] 
             Hardware Version: 15
             Firmware Version Master : 2.10
avrdude.exe: Send: . [1b] . [05] . [00] . [02] . [0e] . [03] . [9a] . [8b] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [05] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [ff] 
avrdude.exe: Recv: . [ef] 
             Topcard         : Unknown
avrdude.exe: Send: . [1b] . [06] . [00] . [02] . [0e] . [03] . [94] . [86] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [06] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [13] 
             Vtarget         : 0.0 V
avrdude.exe: Send: . [1b] . [07] . [00] . [02] . [0e] . [03] . [98] . [8b] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [07] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [10] 
avrdude.exe: Send: . [1b] . [08] . [00] . [02] . [0e] . [03] . [95] . [89] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [08] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [1d] 
avrdude.exe: Send: . [1b] . [09] . [00] . [02] . [0e] . [03] . [96] . [8b] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [09] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [01] 
avrdude.exe: Recv: . [1d] 
avrdude.exe: Send: . [1b] . [0a] . [00] . [02] . [0e] . [03] . [97] . [89] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [0a] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [03] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [1f] 
             SCK period      : 8.7 us
             Varef           : 0.0 V
             Oscillator      : 3.686 MHz

avrdude.exe: Send: . [1b] . [0b] . [00] . [03] . [0e] . [02] . [9e] . [01] . [80] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [0b] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [1e] 
avrdude.exe: Send: . [1b] . [0c] . [00] . [0c] . [0e] . [10] . [c8] d [64] . [19]   [20] . [00] S [53] . [03] . [ac] S [53] . [00] . [00] ? [3f] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [0c] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [10] 
avrdude.exe: Recv: . [c0] 
avrdude.exe: Recv: . [cb] 
avrdude.exe: stk500v2_command(): command failed
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to override
             this check.

avrdude.exe: Send: . [1b] . [0d] . [00] . [03] . [0e] . [11] . [01] . [01] . [0a] 
avrdude.exe: Recv: . [1b] 
avrdude.exe: Recv: . [0d] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [02] 
avrdude.exe: Recv: . [0e] 
avrdude.exe: Recv: . [11] 
avrdude.exe: Recv: . [00] 
avrdude.exe: Recv: . [0b] 

avrdude.exe done.  Thank you.
Re: Martin_H's Tantillus build.
January 04, 2016 06:44AM
At least some communications happens. Still not sure wether it's communications with the actual chip vs. only some chat between avrdude and the programming device.

I also see a mistake of me, '-b' and '-B' are different flags. '-B', the uppercase one, is the right one. It makes SPI slower, not the serial communications to the programmer.

If this adjustment also fails, I'd try the -F flag to see what happens. If you have a scope or a logic probe it's also a good idea to look wether MOSI and MISO pins both show signal changes when attempting programming. If one is silent, the chip doesn't answer.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Martin_H's Tantillus build.
January 04, 2016 08:33PM
Thanks for the suggestion. I tried the -B switch and got a much better error. It turns out it didn't like the device signature for my ATmega1284p. It expected 0x1e9705 but found 0x1e9706. I tried the -F switch to override and it burned the fuses. Now it doesn't like the bootloader hex file, but this is probably syntax or some other smaller issue. Basic connectivity is working.

c:\Users\Martin>%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -B 1 -U flash:w:%GEN7BOOT%\bootloader-1284P-16MHz.hex
%AVRROOT%\bin\avrdude.exe -C %AVRROOT%\etc\avrdude.conf -c avrispv2 -p atmega1284p -P COM9 -B 1 -U flash:w:%GEN7BOOT%\bootloader-1284P-16MHz.hex
avrdude.exe: invalid file format '\Users\Martin\Documents\arduino-1.6.4\hardware\Gen7\bootloaders\Gen7\bootloader-1284P-16MHz.hex' in update specifier
avrdude.exe: error parsing update operation 'flash:w:C:\Users\Martin\Documents\arduino-1.6.4\hardware\Gen7\bootloaders\Gen7\bootloader-1284P-16MHz.hex'

It turns out the avrdude doesn't like ':' in filenames. I copied the file to the current directory and it uploaded fine. I then locked the bootloader. Now to try it in the Arduinio environment.

Edited 2 time(s). Last edit at 01/04/2016 10:02PM by Martin_H.
Re: Martin_H's Tantillus build.
January 04, 2016 08:47PM
It doesn't seem to be able to upload from the Arduino environment. I recall that Sanguinololu boards needed a jumper set to allow program upload on reset, but adding this didn't solve the problem.

Update 1: I'm using the Arduino IDE 1.6.4 which is slightly incompatible with the Gen7 2.1 zip. I had to reorganize the contents of the Gen7 folder in hardware to match the structure, and add a .upload.tool=avrdude to each Gen7 variant. That resolved the problem and I could upload.

Update 2: I tried several samples and they all seem to work, so they board and bootloader seems good to me. There was a minor issue with uploading a program when the IDE doesn't close it from the previous upload, but I think it's unrelated.

Update 3: There was some FUD about fuse settings on the Sanuinololu page [reprap.org]

Warning-general-2.gif.png	Caution
However, the fuse settings there do not completely translate to the Sanguinololu. The Gen7 board uses a crystal resonator but Sanguinololu uses a ceramic.

I used the Gen7 bootloaded and instructions, including the fuse settings. When I've built Arduino boards in the past I've used resonators and crystals interchangeably without any issue. Any ideas what they;re talking about?

Edited 5 time(s). Last edit at 01/04/2016 09:57PM by Martin_H.
Re: Martin_H's Tantillus build.
January 05, 2016 07:42AM
Quote
Martin_H
I tried the -B switch and got a much better error.

Glad to see you got much closer now. :-)


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Martin_H's Tantillus build.
January 06, 2016 10:33PM
As luck would have it the microwave died on Monday. So I spent last night shopping for a new one, tonight removing the old one from over the stove, and tomorrow I will be installing the new one. So no progress on the Tantillus.

Removing the old one was harder than expected. The person who installed it made it too snug against the top cabinet. Even after the top bolts were removed, it was wedge tight, and would not tip forward. Years of watching Wile E. Coyote prepared me for what was coming, it would fall right when I wasn't expecting it. So I made sure the kids and dog were out of the kitchen, and nothing (including me) was under it. Sure enough I moved it just right and it suddenly came loose and fell to the floor with a crash. The glass in the door shattered and I had a mess to clean.
Re: Martin_H's Tantillus build.
January 18, 2016 01:48PM
I've been having some trouble getting the firmware to compile. I was using the Arduino IDE 1.6.4 and when I compiled it would hang, so I upgraded to a recent build and it failed with errors about build.board preference missing. At that point I concluded that the Get7 support probably wasn't compatible with a modern Arduino IDE. But for thoroughness I downloaded a newer version of Marlin, but didn't have any more luck.

Given that the Gen7 code and this Marlin build were compatible with 1.0.5, and that build is still available, I downloaded and installed a copy. I installed the Gen7 libraries and set the board type to Sanguniololu. That produced better errors about missing pin definitions:

ultralcd:35: error: 'LCD_PINS_RS' was not declared in this scope
ultralcd:35: error: 'LCD_PINS_ENABLE' was not declared in this scope
ultralcd:35: error: 'LCD_PINS_D4' was not declared in this scope
ultralcd:35: error: 'LCD_PINS_D5' was not declared in this scope
ultralcd:35: error: 'LCD_PINS_D6' was not declared in this scope
ultralcd:35: error: 'LCD_PINS_D7' was not declared in this scope
ultralcd.ino: In function 'void beep()':
ultralcd:140: error: 'BEEPER' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_RPORT' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:142: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_RPORT' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:144: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd.ino: In function 'void beepshort()':
ultralcd:158: error: 'BEEPER' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_RPORT' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:160: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_RPORT' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_WPORT' was not declared in this scope
ultralcd:162: error: 'DIOBEEPER_PIN' was not declared in this scope
ultralcd.ino: In function 'void buttons_init()':
ultralcd:206: error: 'BTN_EN1' was not declared in this scope
ultralcd:207: error: 'BTN_EN2' was not declared in this scope
ultralcd:208: error: 'BTN_ENC' was not declared in this scope
ultralcd:209: error: 'SDCARDDETECT' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_RPORT' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_WPORT' was not declared in this scope
ultralcd:210: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_RPORT' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_WPORT' was not declared in this scope
ultralcd:211: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_RPORT' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_WPORT' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_PIN' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_WPORT' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_PIN' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_WPORT' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_PIN' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_WPORT' was not declared in this scope
ultralcd:212: error: 'DIOBTN_ENC_PIN' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_RPORT' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_WPORT' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_WPORT' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_WPORT' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_WPORT' was not declared in this scope
ultralcd:215: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd.ino: In function 'void buttons_check()':
ultralcd:235: error: 'DIOBTN_EN1_RPORT' was not declared in this scope
ultralcd:235: error: 'DIOBTN_EN1_PIN' was not declared in this scope
ultralcd:235: error: 'BLEN_A' was not declared in this scope
ultralcd:236: error: 'DIOBTN_EN2_RPORT' was not declared in this scope
ultralcd:236: error: 'DIOBTN_EN2_PIN' was not declared in this scope
ultralcd:236: error: 'BLEN_B' was not declared in this scope
ultralcd:237: error: 'DIOBTN_ENC_RPORT' was not declared in this scope
ultralcd:237: error: 'DIOBTN_ENC_PIN' was not declared in this scope
ultralcd:238: error: 'BLEN_C' was not declared in this scope
ultralcd:258: error: 'BLEN_A' was not declared in this scope
ultralcd:260: error: 'BLEN_B' was not declared in this scope
ultralcd:266: error: 'encrot0' was not declared in this scope
ultralcd:267: error: 'encrot3' was not declared in this scope
ultralcd:269: error: 'encrot1' was not declared in this scope
ultralcd:272: error: 'encrot1' was not declared in this scope
ultralcd:275: error: 'encrot2' was not declared in this scope
ultralcd:278: error: 'encrot2' was not declared in this scope
ultralcd:281: error: 'encrot3' was not declared in this scope
ultralcd:284: error: 'encrot3' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showPrepare()':
ultralcd:522: error: 'BLEN_C' was not declared in this scope
ultralcd:526: error: 'BLEN_C' was not declared in this scope
ultralcd:543: error: 'BLEN_C' was not declared in this scope
ultralcd:546: error: 'BLEN_C' was not declared in this scope
ultralcd:554: error: 'BLEN_C' was not declared in this scope
ultralcd:558: error: 'BLEN_C' was not declared in this scope
ultralcd:562: error: 'BLEN_C' was not declared in this scope
ultralcd:567: error: 'BLEN_C' was not declared in this scope
ultralcd:572: error: 'BLEN_C' was not declared in this scope
ultralcd:575: error: 'BLEN_C' was not declared in this scope
ultralcd:652: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showLoad()':
ultralcd:685: error: 'BLEN_C' was not declared in this scope
ultralcd:688: error: 'BLEN_C' was not declared in this scope
ultralcd:692: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showUnload()':
ultralcd:716: error: 'BLEN_C' was not declared in this scope
ultralcd:719: error: 'BLEN_C' was not declared in this scope
ultralcd:723: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showAxisMove()':
ultralcd:747: error: 'BLEN_C' was not declared in this scope
ultralcd:761: error: 'BLEN_C' was not declared in this scope
ultralcd:806: error: 'BLEN_C' was not declared in this scope
ultralcd:851: error: 'BLEN_C' was not declared in this scope
ultralcd:886: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showTune()':
ultralcd:912: error: 'BLEN_C' was not declared in this scope
ultralcd:925: error: 'BLEN_C' was not declared in this scope
ultralcd:961: error: 'BLEN_C' was not declared in this scope
ultralcd:1030: error: 'BLEN_C' was not declared in this scope
ultralcd:1065: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showControlTemp()':
ultralcd:1139: error: 'BLEN_C' was not declared in this scope
ultralcd:1153: error: 'BLEN_C' was not declared in this scope
ultralcd:1188: error: 'BLEN_C' was not declared in this scope
ultralcd:1222: error: 'BLEN_C' was not declared in this scope
ultralcd:1256: error: 'BLEN_C' was not declared in this scope
ultralcd:1294: error: 'BLEN_C' was not declared in this scope
ultralcd:1353: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showControlMotion()':
ultralcd:1557: error: 'BLEN_C' was not declared in this scope
ultralcd:1570: error: 'BLEN_C' was not declared in this scope
ultralcd:1604: error: 'BLEN_C' was not declared in this scope
ultralcd:1647: error: 'BLEN_C' was not declared in this scope
ultralcd:1683: error: 'BLEN_C' was not declared in this scope
ultralcd:1718: error: 'BLEN_C' was not declared in this scope
ultralcd:1761: error: 'BLEN_C' was not declared in this scope
ultralcd:1795: error: 'BLEN_C' was not declared in this scope
ultralcd:1830: error: 'BLEN_C' was not declared in this scope
ultralcd:1867: error: 'BLEN_C' was not declared in this scope
ultralcd:1905: error: 'BLEN_C' was not declared in this scope
ultralcd:1944: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showControl()':
ultralcd:1994: error: 'BLEN_C' was not declared in this scope
ultralcd:1997: error: 'BLEN_C' was not declared in this scope
ultralcd:2000: error: 'BLEN_C' was not declared in this scope
ultralcd:2008: error: 'BLEN_C' was not declared in this scope
ultralcd:2022: error: 'BLEN_C' was not declared in this scope
ultralcd:2037: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showSD()':
ultralcd:2082: error: 'BLEN_C' was not declared in this scope
ultralcd:2113: error: 'BLEN_C' was not declared in this scope
ultralcd:2113: error: 'SDCARDDETECT' was not declared in this scope
ultralcd:2149: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::showMainMenu()':
ultralcd:2231: error: 'BLEN_C' was not declared in this scope
ultralcd:2234: error: 'BLEN_C' was not declared in this scope
ultralcd:2237: error: 'BLEN_C' was not declared in this scope
ultralcd:2241: error: 'BLEN_C' was not declared in this scope
ultralcd:2250: error: 'DIOSDCARDDETECT_RPORT' was not declared in this scope
ultralcd:2250: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd:2266: error: 'DIOSDCARDDETECT_RPORT' was not declared in this scope
ultralcd:2266: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd:2268: error: 'BLEN_C' was not declared in this scope
ultralcd.ino: In member function 'void MainMenu::update()':
ultralcd:2297: error: 'DIOSDCARDDETECT_RPORT' was not declared in this scope
ultralcd:2297: error: 'DIOSDCARDDETECT_PIN' was not declared in this scope
ultralcd:2324: error: 'BLEN_C' was not declared in this scope
ultralcd:2332: error: 'BLEN_C' was not declared in this scope

While I want to add an LCD and SD card reader, I don't have them at the moment. How do I disable them? When I add them how do I defined these?
Re: Martin_H's Tantillus build.
January 19, 2016 01:13PM
In Configuration.h I found commenting out these two lines:
// #define ULTIPANEL
// #define ULTRA_LCD

Allowed the code to compile, and that pins.h is where I need to add the definitions when I get there.
Re: Martin_H's Tantillus build.
January 24, 2016 04:17PM
I was able to burn the firmware, install the board in the printer, and download pronterface. I only have one axis connected and wanted to try jogging it. Unfortunately the firmware detects my not having the extruder and thermistor installed and shuts down to prevent a cold extrusion. I tried commenting out that #define but it didn't seem to make a difference.

So the new plan is to take the path of least resistance and install the heater and thermistor. I have to do it anyway and it might as well be now. Then I will install the other axes.

Edited 1 time(s). Last edit at 01/24/2016 04:18PM by Martin_H.
Re: Martin_H's Tantillus build.
January 25, 2016 02:02PM
I'm guessing you haven't tried the M302 command, allowing cold extrusion? [reprap.org]
Re: Martin_H's Tantillus build.
January 25, 2016 03:37PM
Thanks for the tip. I'll try that.
Re: Martin_H's Tantillus build.
February 07, 2016 04:27PM
This is strange, but I thought I posted a reply to this thread about 302 not working within the errors in a code block. The colon P rendered as a smily, but now that reply is gone.

In any event I finished wiring all axes and added the Z limit switch. I turned on the printer, connected the GUI and was told extrusion was blocked. So I sent a M302 and then tried again, but it made no difference. I thought that perhaps an M999 was required but that made no difference.

Edited 1 time(s). Last edit at 02/07/2016 08:10PM by Martin_H.
Re: Martin_H's Tantillus build.
March 06, 2016 09:43PM
My initial experience attempting assembly of the e3d, but getting stymied by the thermistor insulation made me a bit hesitant to try again. So I've proceeded with everything but the hot end, but I am stuck as the firmware wants a working hot end to continue. I've been stalling and not making any progress.

So tonight I bit the bullet and completed the hot end assembly. The new blue fiber insulation is much stronger, and after three attempts I was able to insert the thermistor eventually without any shorts to the block. I did all the hocus pocus with the ferrules and heat shrink, zip tied the cables together. But one of the thermistor wires snagged and slipped out of the ferrule and heat shrink. A bit more jiggery Pokery and I was complete. I then installed the heat block onto the heat sink in the printer.

I inserted the Bowden tube and collet into the heat sink, and although I think it is at the bottom, I'm not completely sure. I will have to double check that somehow.

Next I need to connect all the cables to the controller and the other end of the Bowden tube to the extruder. Once the wiring is done I can see if the firmware will let me move the print head and extruder.
Re: Martin_H's Tantillus build.
April 01, 2016 06:18PM
I'll be following this with interest! I've bought a set of laser cut casing parts + various bits from Tony Davies' Drakkn workshop. Just need to get past improving my Prusa with a thermal hood and re-routing the wiring before I print off the necessary parts.
Re: Martin_H's Tantillus build.
June 23, 2016 09:17PM
Getting back to this project after an absence due to taxes and work.

I ordered a rotary encoder from Sparkfun and found the shaft was about half a mm too wide. So I filed out the hole and installed it. I'll wire it up later. I also have a 16x2 LCD display to match.

As per the website I put a dab of cyanoacrylate glue on the Z axis limit switch to secure it to the holder. Well Murphy's law took hold and a bit of glue got on the switch end and jammed it. So I need to rework that part. Groan. I will use some other glue as CA has done this to me previously, the stuff seems to always find the worst place to adhere to.

I also installed the hot end heat sink block fan. Now to wire it, the heat cartridge, and the thermistor to the electronics.
Re: Martin_H's Tantillus build.
January 23, 2017 08:39PM
So, how did you go, finished and printing now?
Re: Martin_H's Tantillus build.
December 04, 2020 03:22PM
This is embarrassing, but I shelved working on this printer because of taxes, taking kids for college visits, a death in the family, and other life happens stuff. So it's been sitting ignored on my workbench for four years since I last worked on it.

Yesterday I dusted it off and evaluated what else needed to be done. It's still in good shape, but I corrected some minor wiring errors, and then powered it up.

Pronterface connects to Marlin, and the extruder thermister reads 20 C. I turn on the heat, the thermister registers it, and reaches target temperature.

So far so good.

I jog the X axis and it stutters. I jog the Y axis and the same thing. Not so good, so I look for any binding, and everything moves freely.

The motors are getting power and according to the Sanyo 103h5208 datasheet the A and B coils are wired properly.

I adjust the Pololu A4988 stepper driver current to both min, 1/2 way, and max. At min the motors don't do anything, at 1/2 way and max the stutter occurs.

These motors are rated for 24 volts, and I'm wondering if maybe at 12 volts they're not getting enough power?
Re: Martin_H's Tantillus build.
December 04, 2020 10:57PM
I recalled that steppers lose torque when stepped rapidly. The feed rate was 3000 mm/min which seems high. I turned it down to 1000, then 500, and finally 200. At that point I was able to successfully jog both the X and Y axis, but the printer is noisy. I am not sure what value should be used here.
Re: Martin_H's Tantillus build.
December 17, 2020 02:27AM
What kind of motors do you have?
Sorry, only registered users may post in this forum.

Click here to login