Printrbot rev d issues compiling firmware for e3d v6/heatbed

Troubleshooting talk for software

Printrbot rev d issues compiling firmware for e3d v6/heatbed

Postby Souljasam » 2016-Oct-Sun-16-Oct

So i have been trying to compile a version of firmware for my printrbot rev d for use with an e3d v6 and a heated bed. I believe i found the source code i need on the github for printrbots marlin fork bit every time i compile it i get an error about liquidcrystal and a couple other things. Ill post the exact errors in a little while once i get home. From what i can gather though is that liquid crystal is a file for lcds and that i really dont need it. Im either trying to figure out how to get the compiling to work properly or find someone with a rev d hex that is set up for e3d v6 and a heated bed.

Can anyone lend a hand?

Edit: these are the error messages im getting,

Arduino: 1.6.11 (Windows 10), TD: 1.30, Board: "Teensy++ 2.0, Serial, 16 MHz, US English"

Build options changed, rebuilding all
In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin.h:23:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\BlinkM.cpp:5:

C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\pins.h:1550:21: warning: extra tokens at end of #ifdef directive

#ifdef FAN_SOFT_PWM || FAST_PWM_FAN

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin.h:23:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\ConfigurationStore.cpp:1:

C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\pins.h:1550:21: warning: extra tokens at end of #ifdef directive

#ifdef FAN_SOFT_PWM || FAST_PWM_FAN

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\ConfigurationStore.cpp:4:0:

ultralcd.h:20: warning: 'blink' defined but not used
static unsigned char blink = 0; // Variable for visualisation of fan rotation in GLCD

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin.h:23:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\thermistortables.h:4,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Configuration.h:650,

from C:\Users\Samuel Fausel\Downloads\Marlin-metal-simple-1403\Marlin\Marlin.pde:33:

C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\pins.h:1550:21: warning: extra tokens at end of #ifdef directive

#ifdef FAN_SOFT_PWM || FAST_PWM_FAN

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin.h:23:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\MarlinSerial.cpp:23:

C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\pins.h:1550:21: warning: extra tokens at end of #ifdef directive

#ifdef FAN_SOFT_PWM || FAST_PWM_FAN

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin.h:23:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin_main.cpp:30:

C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\pins.h:1550:21: warning: extra tokens at end of #ifdef directive

#ifdef FAN_SOFT_PWM || FAST_PWM_FAN

^

Marlin_main.cpp:2063: warning: invalid suffix on literal; C++11 requires a space between literal and string macro
LCD_MESSAGEPGM(MACHINE_NAME" "MSG_OFF".");

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\SdFile.h:27:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\cardreader.h:8,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin_main.cpp:44:

SdBaseFile.h:38: error: using typedef-name 'fpos_t' after 'struct'
struct fpos_t {

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin.h:10:0,

from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin_main.cpp:30:

c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:950:33: note: 'fpos_t' has a previous declaration here

__extension__ typedef long long fpos_t;

^

In file included from C:\Users\SAMUEL~1\AppData\Local\Temp\build01a24f094ccc45d962e6938f1a637f87.tmp\sketch\Marlin_main.cpp:39:0:

ultralcd.h:20: warning: 'blink' defined but not used
static unsigned char blink = 0; // Variable for visualisation of fan rotation in GLCD

^

Marlin_main.cpp:929: warning: 'void do_blocking_move_relative(float, float, float)' defined but not used
static void do_blocking_move_relative(float offset_x, float offset_y, float offset_z) {

^

Multiple libraries were found for "LiquidCrystal.h"
Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\LiquidCrystal
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
using typedef-name 'fpos_t' after 'struct'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
  • 0

Souljasam
Waiting to connect to printer...
 
Posts: 5
Joined: 2016-Oct-Sun-16-Oct
Reputation: 0

Printrbot rev d issues compiling firmware for e3d v6/heatbed

Sponsor

Sponsor
 

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby RetireeJay » 2016-Oct-Sun-19-Oct

Can you select and show us only the things that cause Errors? When Marlin compiles it's normal to see many Warnings - but they don't prevent successful compilation. It just means that there may be, for example, variables declared but not used; that sort of thing. Errors, on the other hand, prevent generation of hex code. The difference between Errors and Warnings may be color-coded on your screen, but that doesn't carry over to the posting here.
  • 0

Printrbot Plus operational January 2013
Brass threaded rods (5/16" X 18) & nuts for Z axis
GT2 belts & pulleys
Cable chain to reduce probability of fatigue failure in wires
E3D V5 Hot End, 0.4mm nozzle, also 0.8 and 0.25 in use occasionally
PB fan mount + 40mm fan -- using printed mount adapter, not the E3D supplied fan
Injection molded extruder gears
Optical Z "endstop" (custom designed and built)
Have used many pounds of T-Glase filament. Now also doing some work with Ninjaflex SemiFlex
Print on glass with Scotch Craft Stick or other glue stick
"My next printer is..." Prusa i3 MK3
User avatar
RetireeJay
My next printer is...
 
Posts: 4919
Joined: 2013-Jan-Wed-13-Jan
Location: Greenville, SC
Reputation: 493

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby Souljasam » 2016-Oct-Sun-21-Oct

Specifically this:

Multiple libraries were found for "LiquidCrystal.h"
Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\LiquidCrystal
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
using typedef-name 'fpos_t' after 'struct'

Though i did rename the teensy library and made it use the arduino one and it gave another error about pos, but i cant copy and paste that right now as i am installing an older version of arduino to try that.

Edit: installed an older version and now all i get is this error:

'fpos_t' has not been declared

Edit 2: reinstalled 1.6.11 and the error i get is:

Multiple libraries were found for "LiquidCrystal.h"
Used: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\LiquidCrystal
Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
request for member 'position' in '* pos', which is of non-class type 'fpos_t {aka long long int}'
  • 0

Souljasam
Waiting to connect to printer...
 
Posts: 5
Joined: 2016-Oct-Sun-16-Oct
Reputation: 0

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby RetireeJay » 2016-Oct-Sun-21-Oct

I see a couple of possible strategies here:
(1) See if you can find places in Configuration.h or Configuration_Adv.h where you can disable use of the LCD display entirely; or
(2) Try renaming the file C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\LiquidCrystal.h to ...LiquidCrystal.x and thus force the compiler use the other version of the file - which might be good.

On the other hand, maybe someone else with more relevant experience has another possible solution.

BTW, I enjoy using Notepad++ and PlatformIO much more than using the Arduino IDE. This is a long thread, with a few mistakes and misdirections, but on the whole it gives you good info on how to do that: viewtopic.php?f=22&t=10160
  • 0

Printrbot Plus operational January 2013
Brass threaded rods (5/16" X 18) & nuts for Z axis
GT2 belts & pulleys
Cable chain to reduce probability of fatigue failure in wires
E3D V5 Hot End, 0.4mm nozzle, also 0.8 and 0.25 in use occasionally
PB fan mount + 40mm fan -- using printed mount adapter, not the E3D supplied fan
Injection molded extruder gears
Optical Z "endstop" (custom designed and built)
Have used many pounds of T-Glase filament. Now also doing some work with Ninjaflex SemiFlex
Print on glass with Scotch Craft Stick or other glue stick
"My next printer is..." Prusa i3 MK3
User avatar
RetireeJay
My next printer is...
 
Posts: 4919
Joined: 2013-Jan-Wed-13-Jan
Location: Greenville, SC
Reputation: 493

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby Souljasam » 2016-Oct-Sun-22-Oct

doesnt seem to make a difference which library its using it just keeps giving me:

request for member 'position' in '* pos', which is of non-class type 'fpos_t {aka long long int}'

and looking further up into the log these as well:


SdBaseFile.cpp:298: error: request for member 'position' in '* pos', which is of non-class type 'fpos_t {aka long long int}'
pos->position = curPosition_;

^

SdBaseFile.cpp:299: error: request for member 'cluster' in '* pos', which is of non-class type 'fpos_t {aka long long int}'
pos->cluster = curCluster_;

^

C:\Users\SAMUEL~1\AppData\Local\Temp\arduino_build_509163\sketch\SdBaseFile.cpp: In member function 'void SdBaseFile::setpos(fpos_t*)':

SdBaseFile.cpp:1496: error: request for member 'position' in '* pos', which is of non-class type 'fpos_t {aka long long int}'
curPosition_ = pos->position;

^

SdBaseFile.cpp:1497: error: request for member 'cluster' in '* pos', which is of non-class type 'fpos_t {aka long long int}'
curCluster_ = pos->cluster;
  • 0

Souljasam
Waiting to connect to printer...
 
Posts: 5
Joined: 2016-Oct-Sun-16-Oct
Reputation: 0

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby RetireeJay » 2016-Oct-Mon-10-Oct

The SdBaseFile.cpp code appears to be concerned with reading and writing files on the SD card (nothing to do with the LCD display). My copy of the SdBaseFile says that it was created as part of the standard Arduino library (i.e. it's not a Marlin-specific file).

I think, therefore, that the problem has to do with updates to the Arduino environment rather than Marlin. In other words, apparently the copy of SdBaseFile that's included with the Marlin package works with an older version of Arduino, but the more recent version of Arduino must use a newer version of SdBaseFile.cpp.

So you have a few options here:
(1) If you never expect to use the SD card, you could try disabling it in the Configuration files, and that might "turn off" the request by Marlin to include code from SdBaseFile in the code it generates.
(2) You probably can find an up-to-date copy of SdBaseFile.cpp on Arduino's web site to replace your older version.
(3) You could try using an older version of the Arduiono IDE which accepts the code in your older version of SdBaseFile
(4) You could try compiling with PlatformIO instead of Arduino
(5) You could learn enough about programming in C++ to understand why the line of code generates an error, and fix the error.
  • 0

Printrbot Plus operational January 2013
Brass threaded rods (5/16" X 18) & nuts for Z axis
GT2 belts & pulleys
Cable chain to reduce probability of fatigue failure in wires
E3D V5 Hot End, 0.4mm nozzle, also 0.8 and 0.25 in use occasionally
PB fan mount + 40mm fan -- using printed mount adapter, not the E3D supplied fan
Injection molded extruder gears
Optical Z "endstop" (custom designed and built)
Have used many pounds of T-Glase filament. Now also doing some work with Ninjaflex SemiFlex
Print on glass with Scotch Craft Stick or other glue stick
"My next printer is..." Prusa i3 MK3
User avatar
RetireeJay
My next printer is...
 
Posts: 4919
Joined: 2013-Jan-Wed-13-Jan
Location: Greenville, SC
Reputation: 493

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby Souljasam » 2016-Oct-Tue-09-Oct

Someone on reddit actually figured out it was just a change from fpos_t with FatPos_t and made an edit to the firmware that now compiles properly. i wont have a chance to upload it to my board until tomorrow but when i do compile it a teensy window pops up and at the bottom it says that the file is too large. is this something to be concerned with in relation to printrbots? If i do have to remove some stuff do i just delete it? reading around people have said you can just comment things out but that doesnt seem to change the hex files size.
  • 0

Souljasam
Waiting to connect to printer...
 
Posts: 5
Joined: 2016-Oct-Sun-16-Oct
Reputation: 0

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby RetireeJay » 2016-Oct-Tue-10-Oct

Great, so Option (5) worked except someone else figured it out for you. :D

The place that you would comment things out is in Configuration.h (and Configuration_Adv.h).
For example, if you won't be using auto bed leveling, you will change this
Code: Select all
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)

#ifdef ENABLE_AUTO_BED_LEVELING

to this
Code: Select all
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)

#ifdef ENABLE_AUTO_BED_LEVELING

Doing so will eliminate some code because anything in the block of lines following the "#ifdef ENABLE_AUTO_BED_LEVELING" line will be ignored if the ENABLE_AUTO_BED_LEVELING flag is not defined (i.e. the #define line is commented out). Similarly, you could look for #define statements that enable the LCD display, and the SD card (if you don't plan to use the SD card).

BUT... Most Printrbots have those things enabled, so the code will fit. Assuming you have a genuine Printbot Rev D board, which has the DFU bootloader, then it can handle large files. Some clone boards ship with the CDC bootloader, which can't handle large files. In any event, when you go to upload the compiled hex file from your computer to the board, the Arduino IDE can't do it; you have to use FLIP. See the article on updating firmware in the Wiki (the red-white-beige button next to the "Search" text box at the top right of the Printrbottalk home screen).
  • 0

Printrbot Plus operational January 2013
Brass threaded rods (5/16" X 18) & nuts for Z axis
GT2 belts & pulleys
Cable chain to reduce probability of fatigue failure in wires
E3D V5 Hot End, 0.4mm nozzle, also 0.8 and 0.25 in use occasionally
PB fan mount + 40mm fan -- using printed mount adapter, not the E3D supplied fan
Injection molded extruder gears
Optical Z "endstop" (custom designed and built)
Have used many pounds of T-Glase filament. Now also doing some work with Ninjaflex SemiFlex
Print on glass with Scotch Craft Stick or other glue stick
"My next printer is..." Prusa i3 MK3
User avatar
RetireeJay
My next printer is...
 
Posts: 4919
Joined: 2013-Jan-Wed-13-Jan
Location: Greenville, SC
Reputation: 493

Re: Printrbot rev d issues compiling firmware for e3d v6/hea

Postby Souljasam » 2016-Oct-Tue-11-Oct

yeah i have everything set up to actually flash it with flip. when i can tomorrow ill just try to flash it the way i have it and see what happens. i figured the too large thing wouldnt matter much as we arent using a teensy board. thanks again.
  • 0

Souljasam
Waiting to connect to printer...
 
Posts: 5
Joined: 2016-Oct-Sun-16-Oct
Reputation: 0


Return to Troubleshooting talk

Who is online

Users browsing this forum: No registered users and 3 guests