Coder Social home page Coder Social logo

sailfish-mightyboardfirmware's Introduction

Table of Contents
1.0 Introduction
	1.1 Advanced printing features
	1.2 SD card features
	1.3 Robustness features
	1.4 General features
2.0 Before Building
3.0 Building Sailfish
	3.1 Advanced building
4.0 Credits

1.0 Introduction

The Sailfish firmware is an enhanced firmware for Makerbot printers containing features intended for advanced users. These features fall into several broad categories:

  1. Advanced printing features such as changing the printing speed and temperature while printing.
  2. More robust error handling.
  3. Additional features such as support for high capacity SD cards and file folders on SD cards.
  4. Support for different bot mechanics and drive systems (e.g., Core-XY, H-gantry, different sized axes, different motion constraints, different LCD hardware, alternate serial comms, etc.).

The bot's firmware is the software which resides within the bot and controls the bot's behavior. It is the software which receives printing instructions from MakerWare, ReplicatorG, SD card files, and other desktop programs and then executes them to create your 3D print. Sailfish has existed since late 2011 and is based upon a combination of the RepRap Marlin and MBI Gen 4 firmwares. Sailfish builds upon Marlin with an improved "Advance" algorithm as well as a five to six times faster acceleration planner. (MBI independently measured it to be ten times faster relative to their own port of Marlin.) The faster planner is achieved by using fixed point arithmetic rather than floating point math which the microprocessor in Makerbots and many DIY 3D printers cannot do in hardware and must emulate in software. Additional performance gains are had through careful optimization of the computations (e.g., elimination of frequent square and square root calculations by working in velocity-squared space rather than velocity space).

Sailfish was originally known as the "Jetty Firmware". In early Fall of 2012, MBI adopted the core acceleration and printing control code of Sailfish into their own firmware, abandoning their own port of Marlin. However, MBI's firmware does not include many of the more advanced features of Sailfish -- in part because of the limited program space in Makerbots and MBI's need to use much of that space for "first run" features.

What follows is a description of features found in Sailfish which are not part of the MBI firmware for Makerbots. A good number of these features are also found in RepRap firmwares; they are not necessarily unique to Sailfish.

1.1 Advanced printing features

  1. Change the printing speed from the LCD display while printing.
  2. Change the extrusion temperature from the LCD display while printing.
  3. At the end of a print, the total print time and the amount of filament used is displayed.
  4. At the end of a print, you can elect to repeat the same print: no need to go through screens reselecting the file. Quite useful when asking an associate, spouse, or child to repeat a print several times.
  5. "Ditto" printing for dual extruder printers: simultaneously print the same model twice using both extruders or do other clever tricks.
  6. Override temperatures found in gcode with different temperatures: useful for redoing a series of prints at different temperatures without having to reslice.
  7. Control whether or not heaters are left active when prints are paused.
  8. Jog the axes when a print is paused so as to make mid print filament loading easier. The axes' position is automatically restored when the print is resumed.
  9. On printers with a most two heaters, a line of the LCD display provides constantly updated build statistics: filament used, percent complete, elapsed time, estimated time remaining, and current height.
  10. Much finer control of the height to pause at with Pause @ ZPos: MBI's firmware only allows specification to the nearest millimeter whereas Sailfish allows 0.01 mm resolution.
  11. Multiple Pause @ ZPos positions may be specified in gcode.
  12. When used in conjunction with GPX, automatic compensation for different filament diameters when placing Pause @ ZPos commands within your gcode.
  13. Support for Emergency stop and Pause stop hardware. Pause stop hardware allows a print to gracefully be paused when hardware detects a temporary problem such as filament running out or being snagged. Once the condition is resolved, the print may be resumed.

1.2 SD card features

  1. Support for file folders on SD cards.
  2. Support for high capacity SD cards (e.g., 4, 8, 16, 32 GB, etc.).
  3. Support for the FAT-32 file system.
  4. Support for the Toshiba AirFlash Wi-Fi card: send files to your bot over Wi-Fi.
  5. SD card error detection and correction.
  6. Long filenames are allowed; long file names scroll in the display so that the entire name can be viewed. MBI's firmware limits file names to 15 characters, not including the mandatory, case-sensitive ".x3g" extension.
  7. Ability to save and restore the bot's internal settings -- onboard preferences -- to an SD card. Backup your bot's settings or quickly transfer them to another bot.

1.3 Robustness features

  1. Improved error handling and reporting of heater errors. For example, on bots with more than one heater, the heater errors indicate which heater the error message refers to. No more trying to figure out if it's your HBP or extruder (and which one) which is failing.
  2. MBI's firmware does not return errors when printing over USB. This typically results in gcode instructions being dropped. Often that is benign and merely results in a slight printing blemish (i.e., a dropped G1 command), but in some instances can and will result in prints being ruined. For example, there's been cases of commands to re-enable stepper motor currents being lost, and commands to turn off extruders lost. Sailfish actually returns errors when printing over USB so that MakerWare and RepG can intelligently handle the problem.
  3. Improved SD error messages: finer detail on what failed with the SD card (http://jettyfirmware.yolasite.com/v73-v43.php#sderror). MBI's firmware often produces a message indicating that the SD card is not formatted as FAT-16 when the actual error is something else entirely. This because the firmware lumps about five or six different error cases into one.
  4. Additional safety features: http://jettyfirmware.yolasite.com/v74-v44.php#safety.

1.4 General features

  1. Support for Core-XY and H-gantry drive systems and other alternate hardwares (e.g., I2C LCDs, alternate serials comms, alternate thermocouple chips, etc.).
  2. Track your filament usage: storage and recall of used filament counters; filament "odometers".
  3. Better print quality. Sailfish is careful to run critically timed operations at the highest priority in the microprocessor. Unfortunately, not so in the MBI firmware. When printing very fine detail at high print speeds, this can make a difference. Also, when printing over USB, the fact that the firmware returns error messages actually leads to improved print quality. When no error message is returned as is the case with MBI's firmware, MakerWare and RepG actually pause waiting for a response and then just resend the same command which may then fails again, leading to another pause. These pauses can leave the bot sitting idle, producing a small, extra blob of plastic on the print and visible as pimples when they occur on the outer surface. By returning error messages, these pauses are avoided.
  4. Improved levelling script: allows you to move the extruder to any location over the build platform as many times as you want and however you want. No more checking just a few predefined points.
  5. Extruder hold feature for use with 3mm extruders which have higher internal pressure and thus more significant problems when the gcode gratuitiously disables the extruder motors. This feature allows gcode commands to disable the extruder to be ignored. (Some slicers like to generate many such commands.)
  6. More precise and stable heater control: MBI's firmware introduces an additional +/- 1C of measurement error in their PID control.

2.0 Before Building

In order to build Sailfish, you must first install

  1. An avr-gcc toolchain. Version 4.6.2 is strongly recommended. Earlier versions have a bug in the floating point implementation. Later versions will present difficulties owing to vacillation in the methods of declaring PROGMEM data. If you use a different versionof the avr-gcc toolchain, then you're on your own.

  2. The SCons build tool. MBI chose to use SCons for their build tool and Sailfish follows that choice. You will need to install SCons ("scons").

See the markdown document docs/avr-gcc.markdown contained in the Sailfish source distribution for information on building an avr-gcc toolchain. Additionally, there are scripts in dist/build-avr-gcc/ to build an avr-gcc toolchain. The script for cygwin is a "work in progress".

3.0 Building Sailfish

To build Sailfish move to the firmware/ directory of the source distribution and issue a scons command of the form shown here,

% cd firmware
% scons platform=<platform-name>

where <platform-name> is the name of a supported platform (e.g., mighty_one). To obtain a list of all platform names, issue the command

% python src/platforms.py

As of this writing, the output of that command is

% python src/platforms.py
mighty_one-corexy ff_creator-2560 ff_creatorx-2560 wanhao_dup4 mighty_twox
ff_creator mighty_one mighty_one-2560-corexy mighty_twox-2560 mighty_two
mighty_one-2560 mighty_two-2560 mighty_one-2560-max31855

Note that mighty-one is the name that Makerbot gave to the firmware for the original MightyBoard -- the MightyBoard rev E -- used in the Replicator 1. Sailfish uses the same name as well as the name Makerbot gave for the Replicator 2 firmware,

% scons platform=mighty_two

However, Makerbot uses the same platform name -- mighty_two -- for both the Replicator 2 and Replicator 2X. Sailfish takes a departure and instead builds separate firmwares for the two. To build firmware for the Replicator 2X, use the platform name mighty_twox,

% scons platform=mighty_twox

By doing this, Sailfish saves code space in the Replicator 2 build by not including features needed by the Replicator 2X. That saved code space is then used to provide additional features for the Replicator 2 such as the running build stats ticker showing elapsed time, estimated time remaining, filament used, etc.

After building a binary, the resulting hex file may be found in the directory

firmware/build/<platform-name>/

3.1 Advanced building

When building, additional features may be compiled in by means of command line parameters to the scons command. See the src/SConscript.mightyboard file for all the possible parameters. For example, to generate a Replicator 1 build for a board using the MAX31855 chip, issue the command

% scons platform=mighty_one max31855=1

Additional parameters may be supplied on the command line. E.g.,

% scons platform=mighty_one max31855=1 core_xy=1

General compiler defines, -Dxxxx, can also be supplied. The command,

% scons platform=mighty_one defines=AUTO_LEVEL,DEBUG

will add -DAUTO_LEVEL and -DDEBUG switches to each compile command.

If you will often be building a custom build, consider writing your own platform definition and placing it in the file

~/.sailfish_platforms.py

See the file firmware/src/platforms.py for information on the contents of that file. The following sample file defines a platform named franken-board which is, essentially a Replicator 1 with an ATmega2560, Core-XY drive train (CORE_XY), additional serial comms support (ALTERNATE_UART), MAX31855 chips (MAX31855), a large power supply which can drive all heaters and steppers concurrently (HEATERS_ON_STEROIDS), and includes support for the running build stats ticker display on the LCD (BUILD_STATS),

% cat ~/.sailfish_platforms.py
platforms['franken-board'] = {
	'mcu' : 'atmega2560',
	'programmer' : 'stk500v2',
	'board_directory' : 'mighty_one',
	'defines' : [ 'CORE_XY', 'BUILD_STATS', 'ALTERNATE_UART',
				   'HEATERS_ON_STEROIDS', 'MAX31855' ]
}

This platform is then built with the command,

% scons platform=franken-board

Multiple platforms can be defined in the file. E.g., the following defines a second board, another-board, which is a Replicator 2 style bot (mighty_two) with many of the same characteristics as the franken-board platform,

% cat ~/.sailfish_platforms.py
platforms['franken-board'] = {
	'mcu' : 'atmega2560',
	'programmer' : 'stk500v2',
	'board_directory' : 'mighty_one',
	'defines' : [ 'CORE_XY', 'BUILD_STATS', 'ALTERNATE_UART',
				   'HEATERS_ON_STEROIDS', 'MAX31855' ]
}
platforms['another-board'] = {
	'mcu' : 'atmega1280',
	'programmer' : 'stk500v1',
	'board_directory' : 'mighty_two',
	'defines' : [ 'CORE_XY', 'BUILD_STATS', 'ALTERNATE_UART',
				   'HEATERS_ON_STEROIDS' ]
}

4.0 Credits

This software incorporates code related to acceleration from Marlin:

https://github.com/ErikZalm/Marlin

This software is covered by GNU General Public License v3 and according to Section(7), Subsection (b), additional permissions for author attribution are required on any work that incorporates, is derived or inspired from the following components:

  1. JKN Advance
  2. YAJ (Yet Another Jerk)
  3. Altshell ReplicatorG plugin
  4. Pause @ ZPos
  5. Advance Pressure Relax

Author attribution is required as follows:

  1. If the device this software is executed on has an LCD or display screen attached, credit/attribution must be provided on this screen with at least 1 second duration when and each time the device is powered on.

  2. If the device does not have a display screen attached and the software is distributed in binary form, then credit/attribution is required to be displayed to the user prior to installation of the binary software.

  3. If the software is being supplied in source code form, then any existing credit/attributions must be retained.

  4. If the software is being supplied in source code form, but it is derived or inspired from this source code, then Credit/Attribution below must be provided in the source code near the top of the source file.

  5. The additional permissions listed here are required to be included in their entirety with any license file of any derivative works that use the above features.

Credit/Attribution:

This software uses the following components from Jetty Firmware:
(LIST OF COMPONENTS GOES HERE)
authored by Dan Newman and Jetty.

sailfish-mightyboardfirmware's People

Contributors

aleonard avatar andrethomas avatar chrta avatar cibomahto avatar dayaue avatar dbavatar avatar dcnewman avatar dgs3 avatar dnewman-polar3d avatar farmckon avatar felipesanches avatar gewaechshaus avatar giseburt avatar gottfriedsp avatar guyzmo avatar hmulliken avatar jake-b avatar jetty840 avatar kintel avatar koenkooi avatar palatis avatar phooky avatar rpavlik avatar sciguy14 avatar themaskedbear avatar zaggo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sailfish-mightyboardfirmware's Issues

Beeper Scream

Hi,
please help to understand why my printer scream some time in printing?

Hardware:
wanhao mightyboard rev.A

Software:
build ver: 7.8 (11/08/2015 get)
platform: wanhao_dup4 (with define+ 'ALTERNATE_UART')
language: en
all other options: defaults

Dual extrusion problem (Flashforge Creator Pro)

Hello!

First of all I wanna say thank you for the awesome job youโ€™ve done. The new features in the new firmware are pretty nice when you only use a single extruder. I have a Flashforge Creator Pro with Dual Extruders.

Recently I wanted to calibrate my Dual Extruder via ReplicatorG 40r30 and the scrip โ€œFlashForge Creator Dual Nozzle Calibration.gcodeโ€ after the guidelines mentioned in the Sailfish documentary. With the newest Sailfish firmware (ff_creatorx-2560-Sailfish-v7.7.0-r1591.hex) I am unable to run a calibration because of a problem with the offset during tool change. With firmware (ff_creatorx-2560-Sailfish-v7.7.0-r1416.hex) everythingโ€™s just fine as I was used to it.

Dual extrusion with my Flashforge Creator Pro and the newest Sailfish firmware isnโ€™t possible.

Here some pictures, first pictures with old firmware, last pictures with the newest.
dsc_1829
dsc_1822
dsc_1827
dsc_1828

Change cooling fan setpoint from 50c to 40c

First, why 50c? For people with a MK10 type dual extruder (ie FlashForge Creator Pro), this improves heat dissipation for single extruder prints.

Notice that both thermal tubes are fully extended through an aluminum crossbar and the extruder motors are flush against said crossbar. When doing a single extruder print, heat comes up from the thermal heat-break tube, into the crossbar and back down the other thermal heat-break tube, into the other heating block and can raise the temperature up to 50c, and then the second fan kicks on. The second, unused motor provides a heat capacitor, which cools down from the second fan. I was able to take a temperature measurement from the end of the aluminum crossbar with a probe and confirmed it got to 50c and then held pretty steady.

By engaging the second cooling fan and trying to keep the temperature down will reduce PTFE tube jamming, allowing for longer prints at high temperatures, think 250c for ABS. Yes, the tube start to break down, but they should be replaced per regular maintenance if you do ABS or PETG.

I've successfully changed my EEPROM setting (manually, by rewriting the EEPROM bin file) to 40c and notice that I can hold 40-43c on the second thermistor.

This should not adversely affect anyone, as 40c is significantly above ambient and can only make things better.

If you wish I can generate a pull request. I'm still on the 16/08/11 build r04fd5 and am hesitant to try this new Optiboot stuff.

A related issue could be just allowing the user to manually override the EEPROM setting via LCD.

When printing a file from SD, Sailfish doesn't switch to monitor screen

This was observed on a 2015 Flashforge Creator Pro with Sailfish ff_creator-2560_v7.8.0.en.hex that was build from the github repository.

To reproduce:
Upload the file line1.x3g (generated from line1.gcode) to a SD and use the LCD console to start printing it. Notice that sailfish doesn't switch to the monitor screen (the one that display progress, temperatures, etc) as it should.

Notes:

  • The file line0.gcode was generated by simplify3D and works well.
  • The file line1.gcode is the file line0.gcode with the ~30 last lines deleted. I believe it should still be considered a valid gcode file.
  • The .x3g files were generated from their respective .gcode files using the command
    ./gpx
    -v
    -g
    -p
    -m r1d
    ${base_path}.gcode
    ${base_path}.x3g
  • Using the gpx utility version "GPX 2.0-alpha Copyright (c) 2013 WHPThomas, All rights reserved." on mac osx.

Archive.zip

Nozzle Calibration Scripts

Where are the Nozzle Calibration scripts available for download?
Some webpages suggest they're available in ReplicatorG, but I could not find it,
Also, the nozzle callibration menu option in the firmware does not make it clear that it is necessary to run a script prior to selecting the best matching lines. I think the firmware should display a message instructing the user to do so.

looking for build instructions

I'm trying to build Sailfish from source for the MightyOne board (actually the chinese clone of the mightyboard that is used in the Duplicator 3 printer).

I'm using avr-gcc 4.5.3 on Trisquel GNU/Linux (ubuntu/debian variant).

The build fails because I get errors related to the "pragma gcc diagnostics". I commented out these pragmas and now the build succeeds. But when I upload the resulting firmware image, the printer freezes. Re-uploading the prebuilt firmware image available in RepligatorG brings the 3d printer back to life.

I'm not sure whether the freezing is related to the fact I commented out the pragmas. Or maybe it's something else. Where can I find build instructions for Sailfish ? Does it seem I'm doing something wrong with my build attempts? Or is the chinese clone boards somehow different so that patching the code would be necessary in order to make it work? (I deeply doubt it! I think the boards are preety much a plain copy of the original mightyboard design files.)

Sailfish causes "shuddering and jerking" even with small "max speed change" value

http://3dprintboard.com/showthread.php?15326-Qidi-Tech-1-Replicator-2-clone&p=94492&viewfull=1#post94492

Please refer to the link above, and read through a few pages of posts. I have been suffering from jerking and shuddering problems with my printer regardless of the slicer I am using. Others with the Qidi Tech 7.8 Sailfish firmware have experienced the same problems. There seems to be an issue with Qidi Tech 7.8 Sailfish firmware, or perhaps all Sailfish versions, that limits the firmware's ability to apply acceleration to small moves, such as small features and loops. It seems that acceleration is ignored and that the tool head jerks through all the movements resulting in skipped steps and ruined prints.

I have my "max speed change" setting at 7, vs. the default 15, and am still suffering from this problem. I would really enjoy the opportunity to discuss this problem in more detail... and if it is in fact a limitation of Sailfish, then perhaps I can share enough information for you to remedy it.

It is possible that the Qidi Tech 7.8 firmware is complete trash and based on an old version of Sailfish, but I am unsure of how to update my Qidi Tech MightyBoard controller (with Atmega2560) to an official Sailfish release. Qidi Tech says it cannot be done, under any circumstance.

Thanks!
Chris

Missing platform

So, from what I can see, there doesn't seem to be an option to build the firmware for a wanhao duplicator 4 with an atmega2560. I planned on changing the chip on my printer to a 2560 in the next week or so to enable auto-leveling but since this configuration doesn't seem to exist, which steps would I need to take to build a working firmware for my machine? I'm guessing that only a couple of build options need to be changed/added but some help would be appreciated. Also, I mistakenly bought NO inductive sensors and I do believe that the default z-endstop behaviour is to be NC. Which build option do I need to change to also fix that?

Have a filament Reload operation

I typically don't unload or load a filament but reload it. That is, the machine has filament X and I want to change it to Y.

This feature request is for a reload filament operation that will unload the filament until the user presses a button and then load a new one in.

Heating LED not really Red

Hi!

Is there an option in the firmware, where i can set my own clours to specific temps?
When my printer heats up with activated heating LEDs its even at 220ยฐC quite blue (only a bit purple).
I have searched in the firmware for over 2 hours now.....
I cant even find the script for the heating LEDs.
Thanks!

bad platform moves after cancelling build

steps to reproduce:

  • start a build from SD card
  • cancel the build using the keypad/LCD interface (I did not verify whether the problem happens when cancelling the build via ReplicatorG)

expected result:
The platform should move to an "idle / job completed" position

actual result:
The platform moves down much further than it should, forcing the Z motor. The user has to turn off the printer otherwise the printer seems to be locked in an infinite loop (I didn't want to wait to see how long would it take for it to actually stop forcing the platform down against the wood)

Have a short filament load before unload

On my stock Flashforge creator pro, the unload filament function doesn't work well, (filament is not released) unless if I first load a little bit before unloading it, as if it need to be primed or something.

This feature request is for having the filament unload operation to first push the filament in a little bit before pulling it out.

CTC Rep1 Dual - Extrude or retract on second toolhead causes an X movement?

Hi I've been running Sailfish v7.7 r1432 on my CTC Bizer / Replicator 1 Dual for quite a while now. I've never had any problems until I tried adding the second hotend into the mix. Every time I send the second toolhead (T1) an extract or retract command, it causes the machine to move it's X position. It happens with the machine controls in ReplicatorG and with the machine controls in Octoprint (haven't tried anything else yet).

The machine otherwise runs absolutely fine, toolhead T0 (right side) works as it should. T1 however will always, no matter if I extract or retract, move the X to the right (positive).

Sailfish 7.8, Azteeg X3 Core-XY-min, Print Statistics menu selection causes Print Pause

I noticed that when selecting the "Print Statistics" menu option during a print actually causes the print to pause, rather than display the print statistics.

The "current_version.txt" file shows this at the top:
7.08.0.1.0
* Assorted bug fixes; Jetty/Dan ninth release

The firmware was built with:
scons platform=azteeg-x3-xymin-corexy

The hardware is an Azteeg X3 2560 board with the original ViKi display/button board.

Slic3r with FFCP and sailfish extruder select failing

I can't get Slic3r and gpx to play well. When selecting Sailfish as the gcode flavor, Slic3r insertsM108 T0 or M108 T1 for tool changes. These don't seem to work. The printer always selects T1.

Should an M108 Tx change tools?

Whas the last stabile source?

Hi,

I'm confused about what's the last stabile build of the firmware,
on the homepage it says version 7,7 a.k.a r1432 but this tag is not longer present in the repository.
So why is that, is there a new homepage? What version of the source should i build for productive use?

Cheers
Trax

Small prints on v7.8 don't finish correctly.

Some jobs I use to calibrate my CTC machine just draw a square (openscad 0.2mm high cube with the difference of a 2mm smaller cube inside, leaving a 1mm square outline - or basically 8 lines to draw).

The machine gets to about 5~6 lines done and stops, doesn't lower the Z axis all the way down like it does on much larger jobs. The X/Y max parking doesn't always go all the way either, both go a little distance and just stop!

This works properly on v7.7.

I've noticed the Z (bed) descend at max speed too once on v7.8 at job end (only once) and when my thermocouple wire broke (giving an intermittent reading for a while) the first extrusion line of each new Z layer also went at full travel speed. I'm not sure if it was the job or the broken wire or a bug, but I've never seen these things on v7.7.

Can I also suggest InterfaceBoard.cc : getUpdateRate test for 3 HostState signals : HOST_STATE_BUILDING & ..._FROM_SD & ..._ONBOARD and divide the rate by 5 or so if the machine isn't busy in those states - to give the user a nicer experience in the menus while setting up the machine?

Another idea is an option to limit the Command.cc : HOST_COMMAND_DISPLAY_MESSAGE handler so the timeout_seconds isn't set above a configurable value (3 seconds would be my choice) since when the job finishes and I want to print another I'm left stuck on the message screen for 5 seconds when I really want to restart the heaters quickly!

Finally, is the azteeg_x3 config actually confirmed/known to work still in the latest v7.8? I've been playing around with it for another partially built machine and while the menus/interface etc. seems OK, along with repG config control, the stepper movement is not working right for me. Moving any axis in repG (X, Y or Z) only retracts X if I'm lucky... The jog menu makes a click sound and stops (but I think it's just running really really slow because I sometimes hear a click of the motors at a very slow consistent interval). Oh, also, the SD card menu seems to run really slow too - very very sluggish but still works :) These things might be due to my machine though, so I'm just asking!

Thanks for listening!

what platform is I'm compiling?

I have a FlashForge Creator Pro. I'm having difficulty finding in the documentation or through FlashForge what platform this would be considered. Am I ff_creatorx-2560 or ff_creator-2560?

PSU.cc many times

Hi, why config "platforms.py" in many configurations contain copy of "PSU.cc"?

Problems with Fan and SD Card

Hello,
iI recently updated to the Sailfish 7.8 because i can not find the sources of 7.7. I'm using a CTC printer. Printing works but i found two issues.
When I select print from SD Card it gets a read Error. I have to klick on the back button and choose Print from SD Card again and it works.
Also there seems to be an Error on the Cooling Fan. I've installed the mising Mosfet on my Mightyboard to activate the cooling fan via Software. But the cooling Fan is always set to off in the Printers Menu. I have to start my print and then Turn the Fan on. Maybe I'm doing something wrong?
I hope there is a fix for this in the Future because the cooling Fan is an essential Feature for me.

Additional localizations

Is need to add new language (Russian)?
I plane test and can publish localization file if need...

Why printer shaking on small circles?

Hello, my FlashForge printer is shaking in small circles, mainly in the internal perimeters. I tried to use very low values โ€‹โ€‹of acceleration but for linear movements acceleration is ok while small circles continues shaking (something minor but continual). I've tightened all belts and screws.
a
b

Thanks for the great work!!

Translations

What about to change the locale files from header to source files?
Menu.EN.hh -> Menu.EN.cc
Menu.FR.hh -> Menu.FR.cc
Menu.FR.hh -> Menu.FR.cc

Make a new file "locale.hh" with extern vars.
Then compile all files, but link 3 times with each language like:
mighty_two-Sailfish-v7.6.0-r1234.hex linked with Menu.EN.o
mighty_two-Sailfish-v7.6.0-r1234_de.hex linked with Menu.DE.o
mighty_two-Sailfish-v7.6.0-r1234_fr.hex linked with Menu.FR.o
...

so we can build one time and link 3 or more language files at one build.

Mighty_one Board cannot heat the extruder heater after upload 7.8 (r1682)

I do build Sailfish-mightyboard firmware from version 7.8 (r1682).
scons platform=mighty_one
After upload this firmware to Mightyboard Geeetech Rev G board.,the overheat light on the board is show up. I cannot do Preheat or any printing .
The current board is working with Firmware 7.7 (r1432).
Please recommend me. What I do wrong?
-Thanaphan In.

JKN Advance K and K2 for Bowden extruder conversion

I recently converted my Qidi Tech Dual printer to a dual Bowden extruder. I have been trying to dial in JKN Advance K and K2 to reduce the amount of filament extruded during acceleration and deceleration. It seems I get appreciable print quality above 1.5 for K, and 0.055 for K2. For the sake of it, I tried a value of 10 for K and saw NO difference. It leads me to believe that after a certain value it has no effect. What is the maximum value? My Bowden is still extruding too much in corners and at the end of every infill pass... even at a K value of 10. What else can I do to improve my situation?

Idea: VM Image - build stand with fixed versions of build tools

Discussion: #135

Ideas about VM can contains:

  • needed build tools
  • script systematization - too many places with different scripts, need sync all
  • generate documentation (text faq) for re/build:
  • a) bootloaders (8u2/16u2, 1280/2560) with fuses...
  • b) sample way to custom firmwares (1280/2560)
  • c) actual linux [/windows] - write-to-chip tools [/or just *.sh scripts]

Buzzer not working on CTC (Flashforge Creator clone)

In file firmware/src/MightyBoard/Motherboard/Piezo.cc, the COM0B0 bit in the TCCR0A register is not being set when Timer 0 is used. This is because the preprocessor directive on line 215 is "#if defined(BUZZER_SOFT_PWM)" instead of "#if !defined(...)".

X/Y axis Jump when viewing LCD Menu.

I have been printing a case to house the Ramps board on one of my printers here.
13Hrs in to the print, the monitor was telling me it was at 92% finished, so out of curiosity I wanted to look at the Total Statistics for the machine. In scrolling through the LCD menu I found what I wanted to see, and changed back to the monitor. When I glanced up at the nearly finished print, the X & Y axi had moved approximately 1 to 1.5mm to the right and Forward (i.e. X increase by 1mm & Y decrease by about 1mm) for no reason. The only thing that happend was I scrolled through the LCD Menu. I love SailFish, and am very happy with it, but that will be the last time I access the LCD when on a big print... So please be aware of the problem. I hope they catch the Bug Quickly.... (I'm using 7.6 at the moment, so maybe it's been fixed already in 7.7....I don't know)....

building error

Hello, I get a compiler errors:

maxe@schorsch:/tmp/Sailfish-MightyBoardFirmware/firmware$ scons platform=ff_creator-2560 max31855=1
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
/usr/bin/avr-g++ -o build/ff_creator-2560/MightyBoard/Motherboard/Command.o -c -DF_CPU=16000000L -DCUTOFF_PRESENT=0 -DESTIMATE_TIME -DVERSION=707 -DSTREAM_VERSION=100 -DVERSION_INTERNAL=0 -DSVN_VERSION=1234 -DSVN_VERSION_STR='"01234"' -DVERSION_STR='"7.7"' -DDATE_STR='"14/07/23"' -g -Os -Wall -Winline -fno-exceptions -ffunction-sections -fdata-sections -fshort-enums -mmcu=atmega2560 -DHAS_RGB_LED -DFF_CREATOR -DBUILD_STATS -DALTERNATE_UART -DHEATERS_ON_STEROIDS -DAUTO_LEVEL -DMAX31855 -Ibuild/ff_creator-2560/MightyBoard/shared -Ibuild/ff_creator-2560/MightyBoard/Motherboard -Ibuild/ff_creator-2560/MightyBoard/shared/locale -Ibuild/ff_creator-2560/MightyBoard/Motherboard/avrfix -Ibuild/ff_creator-2560/MightyBoard/Motherboard/boards/mighty_one -Ibuild/ff_creator-2560 build/ff_creator-2560/MightyBoard/Motherboard/Command.cc
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:88:2: warning: #warning "Building with HEATERS_ON_STEROIDS defined will create firmware which allows ALL heaters to heatup at the same time; this requires a PSU, power connector, and associated electronics capable of handling much higher current loads than the stock Replicators can handle" [-Wcpp]
#warning "Building with HEATERS_ON_STEROIDS defined will create firmware which allows ALL heaters to heatup at the same time; this requires a PSU, power connector, and associated electronics capable of handling much higher current loads than the stock Replicators can handle"
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:913:2: warning: #warning "Building with HEATERS_ON_STEROIDS defined; all heaters allowed to run concurrently" [-Wcpp]
#warning "Building with HEATERS_ON_STEROIDS defined; all heaters allowed to run concurrently"
^
In file included from build/ff_creator-2560/MightyBoard/shared/Menu.hh:10:0,
from build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:26,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/shared/LiquidCrystalSerial.hh:143:32: error: 'prog_uchar' does not name a type
void writeFromPgmspace(const prog_uchar message[]);
^
build/ff_creator-2560/MightyBoard/shared/LiquidCrystalSerial.hh:143:51: error: ISO C++ forbids declaration of 'message' with no type [-fpermissive]
void writeFromPgmspace(const prog_uchar message[]);
^
build/ff_creator-2560/MightyBoard/shared/LiquidCrystalSerial.hh:145:36: error: 'prog_uchar' does not name a type
const prog_uchar message[]);
^
build/ff_creator-2560/MightyBoard/shared/LiquidCrystalSerial.hh:145:55: error: ISO C++ forbids declaration of 'message' with no type [-fpermissive]
const prog_uchar message[]);
^
In file included from build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:26:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/shared/Menu.hh:396:24: error: 'prog_uchar' does not name a type
void addMessage(const prog_uchar msg[]);
^
build/ff_creator-2560/MightyBoard/shared/Menu.hh:396:39: error: ISO C++ forbids declaration of 'msg' with no type [-fpermissive]
void addMessage(const prog_uchar msg[]);
^
In file included from build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:27:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/shared/InterfaceBoard.hh:130:26: error: 'prog_uchar' does not name a type
void errorMessage(const prog_uchar buf, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/shared/InterfaceBoard.hh:130:38: error: ISO C++ forbids declaration of 'buf' with no type [-fpermissive]
void errorMessage(const prog_uchar *buf, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/shared/InterfaceBoard.hh:131:26: error: 'prog_uchar' does not name a type
void errorMessage(const prog_uchar *buf1, const prog_uchar *buf2 = 0, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/shared/InterfaceBoard.hh:131:38: error: ISO C++ forbids declaration of 'buf1' with no type [-fpermissive]
void errorMessage(const prog_uchar *buf1, const prog_uchar *buf2 = 0, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/shared/InterfaceBoard.hh:131:50: error: 'prog_uchar' does not name a type
void errorMessage(const prog_uchar *buf1, const prog_uchar *buf2 = 0, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/shared/InterfaceBoard.hh:131:69: error: ISO C++ forbids declaration of 'buf2' with no type [-fpermissive]
void errorMessage(const prog_uchar *buf1, const prog_uchar *buf2 = 0, bool incomplete = false);
^
In file included from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:27: error: 'prog_uchar' does not name a type
void errorResponse(const prog_uchar *msg, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:39: error: ISO C++ forbids declaration of 'msg' with no type [-fpermissive]
void errorResponse(const prog_uchar *msg, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:27: error: 'prog_uchar' does not name a type
void errorResponse(const prog_uchar *msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:39: error: ISO C++ forbids declaration of 'msg1' with no type [-fpermissive]
void errorResponse(const prog_uchar *msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:51: error: 'prog_uchar' does not name a type
void errorResponse(const prog_uchar *msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:63: error: ISO C++ forbids declaration of 'msg2' with no type [-fpermissive]
void errorResponse(const prog_uchar *msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
In file included from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:26:0:
build/ff_creator-2560/MightyBoard/shared/Eeprom.hh:20:26: error: 'prog_char' does not name a type
bool saveToSDFile(const prog_char *filename);
^
build/ff_creator-2560/MightyBoard/shared/Eeprom.hh:20:37: error: ISO C++ forbids declaration of 'filename' with no type [-fpermissive]
bool saveToSDFile(const prog_char *filename);
^
build/ff_creator-2560/MightyBoard/shared/Eeprom.hh:21:31: error: 'prog_char' does not name a type
bool restoreFromSDFile(const prog_char *filename);
^
build/ff_creator-2560/MightyBoard/shared/Eeprom.hh:21:42: error: ISO C++ forbids declaration of 'filename' with no type [-fpermissive]
bool restoreFromSDFile(const prog_char *filename);
^
In file included from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:40:0:
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:8:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar ON_CELCIUS_MSG[] = "/ C";
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:9:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar CELCIUS_MSG[] = "C ";
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:10:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar BLANK_CHAR_MSG[] = " ";
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:11:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar BLANK_CHAR_4_MSG[] = " ";
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:13:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar CLEAR_MSG[] = " ";
^
In file included from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:40:0:
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:21:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar SPLASH1_MSG[] = "Sailfish FF Creator ";
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:34:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar SPLASH2_MSG[] = "--------------------";
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:50:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar SPLASH3_MSG[] = "Thing 32084 " DATE_STR;
^
build/ff_creator-2560/MightyBoard/shared/Menu_locales.hh:51:22: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar SPLASH4_MSG[] = "Sailfish v" VERSION_STR " r" SVN_VERSION_STR " ";
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:97:14: error: 'prog_uchar' does not name a type
static const prog_uchar *pauseErrorMessage = 0;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:150:34: error: 'prog_uchar' does not name a type
void displayStatusMessage( const prog_uchar msg1[], const prog_uchar msg2[] ) {
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:150:50: error: ISO C++ forbids declaration of 'msg1' with no type [-fpermissive]
void displayStatusMessage( const prog_uchar msg1[], const prog_uchar msg2[] ) {
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:150:59: error: 'prog_uchar' does not name a type
void displayStatusMessage( const prog_uchar msg1[], const prog_uchar msg2[] ) {
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:150:75: error: ISO C++ forbids declaration of 'msg2' with no type [-fpermissive]
void displayStatusMessage( const prog_uchar msg1[], const prog_uchar msg2[] ) {
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc: In function 'void command::buildReset()':
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:407:2: error: 'pauseErrorMessage' was not declared in this scope
pauseErrorMessage = 0;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc: In function 'void command::handlePauseState()':
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:941:69: error: cannot convert 'const unsigned char
' to 'const int_' for argument '1' to 'void command::displayStatusMessage(const int_, const int_)'
displayStatusMessage(PAUSE_ENTER_MSG, PAUSE_DRAINING_PIPELINE_MSG);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1001:12: error: 'pauseErrorMessage' was not declared in this scope
if ( pauseErrorMessage )
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1004:108: error: cannot convert 'const unsigned char_' to 'const int_' for argument '1' to 'void command::displayStatusMessage(const int_, const int_)'
displayStatusMessage((cancelling) ? CANCELLING_ENTER_MSG : PAUSE_ENTER_MSG, PAUSE_CLEARING_BUILD_MSG);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1083:68: error: cannot convert 'const unsigned char_' to 'const int_' for argument '1' to 'void command::displayStatusMessage(const int_, const int_)'
displayStatusMessage(PAUSE_LEAVE_MSG, PAUSE_RESUMING_POSITION_MSG);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1105:4: error: 'pauseErrorMessage' was not declared in this scope
pauseErrorMessage = 0;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1117:48: error: 'pauseErrorMessage' was not declared in this scope
Motherboard::getBoard().errorResponse(pauseErrorMessage, false, true);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc: In function 'void command::runCommandSlice()':
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1154:64: error: 'pauseErrorMessage' was not declared in this scope
if ( sdcard::sdAvailable == sdcard::SD_ERR_NO_CARD_PRESENT ) pauseErrorMessage = NOCARD_MSG;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1155:57: error: 'pauseErrorMessage' was not declared in this scope
else if ( sdcard::sdAvailable == sdcard::SD_ERR_CRC ) pauseErrorMessage = CARDCRC_MSG;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1156:8: error: 'pauseErrorMessage' was not declared in this scope
else pauseErrorMessage = CARDERROR_MSG;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1161:17: error: 'pauseErrorMessage' was not declared in this scope
else if ( !pauseErrorMessage ) {
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1249:25: error: 'prog_uchar' does not name a type
const static PROGMEM prog_uchar pstop_msg[] = "P-Stop triggered";
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1250:4: error: 'pauseErrorMessage' was not declared in this scope
pauseErrorMessage = pstop_msg;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1250:24: error: 'pstop_msg' was not declared in this scope
pauseErrorMessage = pstop_msg;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1270:62: error: no matching function for call to 'Motherboard::errorResponse(const unsigned char [])'
Motherboard::getBoard().errorResponse(EXTRUDER_TIMEOUT_MSG);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1270:62: note: candidates are:
In file included from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: void Motherboard::errorResponse(const int_, bool, bool)
void errorResponse(const prog_uchar msg, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: no known conversion for argument 1 from 'const unsigned char []' to 'const int
'
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: void Motherboard::errorResponse(const int_, const int_, bool, bool)
void errorResponse(const prog_uchar msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: candidate expects 4 arguments, 1 provided
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1297:62: error: no matching function for call to 'Motherboard::errorResponse(const unsigned char [])'
Motherboard::getBoard().errorResponse(PLATFORM_TIMEOUT_MSG);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1297:62: note: candidates are:
In file included from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: void Motherboard::errorResponse(const int
, bool, bool)
void errorResponse(const prog_uchar msg, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: no known conversion for argument 1 from 'const unsigned char []' to 'const int
'
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: void Motherboard::errorResponse(const int_, const int_, bool, bool)
void errorResponse(const prog_uchar msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: candidate expects 4 arguments, 1 provided
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1661:14: error: 'pauseErrorMessage' was not declared in this scope
pauseErrorMessage = ALEVEL_INCOMPLETE_MSG;
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1663:14: error: 'pauseErrorMessage' was not declared in this scope
pauseErrorMessage = ( skew_status() == ALEVEL_COLINEAR )
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1869:65: error: no matching function for call to 'Motherboard::errorResponse(const unsigned char [])'
Motherboard::getBoard().errorResponse(ERROR_STREAM_VERSION);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1869:65: note: candidates are:
In file included from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: void Motherboard::errorResponse(const int
, bool, bool)
void errorResponse(const prog_uchar msg, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: no known conversion for argument 1 from 'const unsigned char []' to 'const int
'
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: void Motherboard::errorResponse(const int_, const int_, bool, bool)
void errorResponse(const prog_uchar msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: candidate expects 4 arguments, 1 provided
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1877:86: error: no matching function for call to 'Motherboard::errorResponse(const unsigned char [])'
if ( bot_type != BOT_TYPE ) Motherboard::getBoard().errorResponse(ERROR_BOT_TYPE);
^
build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:1877:86: note: candidates are:
In file included from build/ff_creator-2560/MightyBoard/Motherboard/StepperAxis.hh:46:0,
from build/ff_creator-2560/MightyBoard/Motherboard/StepperAccel.hh:30,
from build/ff_creator-2560/MightyBoard/Motherboard/Steppers.hh:28,
from build/ff_creator-2560/MightyBoard/Motherboard/Command.cc:19:
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: void Motherboard::errorResponse(const int
, bool, bool)
void errorResponse(const prog_uchar msg, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:217:7: note: no known conversion for argument 1 from 'const unsigned char []' to 'const int
'
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: void Motherboard::errorResponse(const int_, const int_, bool, bool)
void errorResponse(const prog_uchar msg1, const prog_uchar *msg2, bool reset = false, bool incomplete = false);
^
build/ff_creator-2560/MightyBoard/Motherboard/Motherboard.hh:218:7: note: candidate expects 4 arguments, 1 provided
scons: *
* [build/ff_creator-2560/MightyBoard/Motherboard/Command.o] Error 1
scons: building terminated because of errors.

Extrusion too high after increasing and lowering the speed

I've tested how fast I can print with my Replicator 1 Dual. Up to 2.00x everything worked fine. But after increasing up to 3.00x the "Z axis step" on a spiral vase did not work properly, so I've reduced it again to 2.50x and even down to 1.00x. But the extruder kept extruding much more filament than before which resulted in a thinker wall on the vase beginning with the layer that had the speed at 3.00x. I did not see a difference between 2.50x and 1.00x, so the extrusion speed adjustment seems to work, but at a higher level than before the switch to 3.00x.

I can provide the gcode file as well as pictures of the print.

need Update docs\avr-gcc.markdown

  1. This lines must be corrected to last version ()

curl -O http://www.netgull.com/gcc/releases/gcc-4.6.3/gcc-core-4.6.3.tar.bz2
curl -O http://www.netgull.com/gcc/releases/gcc-4.6.3/gcc-g++-4.6.3.tar.bz2
bunzip2 -c gcc-core-4.6.2.tar.bz2 | tar xf -
bunzip2 -c gcc-g++-4.6.2.tar.bz2 | tar xf -
cd gcc-4.6.2

Correct url and folders:

  1. This lines must be updated up to

curl -O http://savannah.spinellicreations.com/avr-libc/avr-libc-1.7.2rc2252.tar.bz2
bunzip2 -c avr-libc-1.7.2rc2252.tar.bz2 | tar xf -
cd avr-libc-1.7.2rc2252

Correct url and folders:

Toolhead offset of 0 doesn't actually make the toolhead offset 0

I'm running a mixing extruder, so I need the toolhead offset to be exactly 0, but whenever I set it to 0, it still prints at 33. Setting the offset to -33 moves the offset -66 from the original spot. Is there something in the firmware that just defaults an offset of 0 to the factory default?

Two shells after increasing and lowering the speed

I've tested how fast I can print with my Replicator 1 Dual. Up to 2.00x everything worked fine. But after increasing up to 3.00x the "Z axis step" on a spiral vase did not work properly, so I've reduced it again to 2.50x and even down to 1.00x. But then I had 2 shells instead of 1 shell, which resulted in a thinker wall on the vase beginning with the layer that had the speed at 3.00x. I did not see a difference even when switching back to 1.00x.

I can provide the gcode file as well as pictures of the print.

Request for Mighty_one-2560-corexy-min platform

Hello,

Would it be possible to set up a XY-min homing platform for building Sailfish for the mighty_one-2560?

I had previously been monkeying around with the Configuration.hh to get my printer to home correctly. After running into an issue with the r1677 build, I decided to go back to an earlier version (r1675) but was unable to get my printer to home correctly, even after making the same changes to Configuration.hh.

Thanks much,

-Joe

printing still occurs after heater failure

Okay. Going to spend tonight to dig through the code, but here's what happened. My HBP on FF Creator Pro has been having problems and had failed previously due to bad power connector. I set up a print via SD card and left. When I returned the printer was still printing, although the LED's were flashing red, the HBP was off, the extruder heater was off, the extruder kept pushing filament though a cold nozzle until the set-screw finally gave up and the nozzle came out. The print head, still going back and forth across the print with the nozzle dangling managed to break the thermocouple wire.

I had a custom flash from master just prior to the Sep 11 2016 commit (in which I only enabled the PWM fan).

A note on the HBP power connector. It is a molex connector with tin pins. Apparently, it built up oxidation, which allowed it to get hotter and build up even more oxidation. The plastic housing, although not totally melted, showed some "carmeling" and the connector couldn't be removed without damaging the pads on the HBP plate. When I related the story to one of my many bosses, he nodded and stated he has seen the problem in our shop and the solution was to use gold-plated pins, not tin pins. So, a word of warning - clean your HBP tin pins, check for damage regularly, remove tin pins from molex and replace with gold pins ( about 0.46 cents a piece via DigiKey)

checksize.sh

I use ubuntu and checksize.sh puts an error:
./checksize.sh: 7: ./checksize.sh: [[: not found

I found the issue in https://wiki.ubuntu.com/DashAsBinSh
So they use dash and not bash.
To fix this, I change the first line in checksize.sh to:

!/bin/bash

I think this should work on each developement System?

ff_creator-2560 platform should not have AUTO_LEVEL define

Having the AUTO_LEVEL defined interferes with the display of the Z Pos in the stats page.

As far as I know, FFC do not come with auto level mechanism and thus there is no need to defined the AUTO_LEVEL flag for the ff_creator-2560 platform.

https://github.com/jetty840/Sailfish-MightyBoardFirmware/blob/master/firmware/src/platforms.py#L327

If some people want to experiment with auto leveling on FFC printer, they can use an alternative platform such as ff_creator-2560-alevel such that the rest of the users are not penalized.

enable/disable features on compile time

In order to reduce the binary size, we could have a configurations.h file where we can enable/disable features at compile time. For instance, some printers lack LED lights. So, we could save program memory for other features.

Inconsistent ZPos label

When compiling without AUTO_OFF, the stats page starts with ZPosition label and then switch to ZPos.

Looking at the code, I think it's:

https://github.com/jetty840/Sailfish-MightyBoardFirmware/blob/master/firmware/src/MightyBoard/shared/Menu.cc#L3280

vs.

https://github.com/jetty840/Sailfish-MightyBoardFirmware/blob/master/firmware/src/MightyBoard/shared/Menu.cc#L299

Suggestion: change the line at first link to use the same message as the second link, and if Z_POSITION_MSG is not used in other places, just drop it.

Atmel Studio

what about Atmel Studio 6.2?
It have gcc-avr 4.8.1
But it needs to rename the .cc to .cpp and the .hh to .h to work.
Then it works for other Compilers too.

I use Atmel Studio, it have a great ide for searching, compiling, Debugging, ...

Use B extruder as primary

I have an old MightyBoard Rev H with blown circuitry next to the A extruder output which prevent the hotend from receiving power. However, the B extruder ouput still works. Is there any way I could build Sailfish to use the B extruder by default instead of A?

Homing via the LCD / Keypad with the new X/Y MIN Z MAX

I think the manual homing via the LCD interface is not taking into consideration the homing directions. It works with the control panel in ReplicatorG. I can live with it, just an fyi if it is an easy / doable fix.

v7.7 sometimes computes accelerations incorrectly?

Is this a known bug? I've noticed this in two different brand replicator clones, and using multiple slicers, although it was unclear what was happening at first. Basically max speed change XY seems to work almost all of the time, but for certain arcs, it seems to have minimal effect, hammering the print head instead, sometimes skipping steps. This happens in both axes, and continues to happen even if changing the onboard speed multiplier from 1.00 to 0.35. If I turn down max speed change XY to 1 or 2 mm/s, then I observe it does have an effect on the entire print (slowing down arcs that printed fine before), and pretty much eliminates the hammering. But 5 for example, is too high! If I try and manually jog with acceleration disabled, it isn't a problem for my printer to go much much faster (i.e. over 30 mm/s)

I do have test objects that do this now kind of reliably. A 6mm circular "hole" in an object seems to do it, or a block with decreasing radius holes.

Idea: Some global variables

What if do some refactoring and place some board preferences as global variables?

I mean this:

<==========>
// microstepping is 1 / (1 << MICROSTEPPING)
...
// 4 for 1/16
// 5 for 1/32
...

define MICROSTEPPING 4

<==========>

make define from scons script?
like: "stepdrv=a4988"
A4988 = 4
A4982 = 4
DRV8825=5
...
or just fixed set "stepdrv=4"

What do you think?

Odd menu behavior - After heater timeout and then print start

I noticed something peculiar while running the latest and greatest 7.8 code.

I turned on the heat bed and after a long idle time, it timed out as expected with the message "Heaters shutdown due to inactivity".

I then started a print and the normal "monitor mode" menu displayed and it started printing.

The peculiar bit is this: When I press the left button to pull up the menu to do things like go into the "Print Statistics" screen, it does not allow me to and just displays the "Heaters shutdown.." message.

Now, while it is still printing, if I press Up, Right, or Down, it does not do anything other than display the "Heaters shutdown" message. (Although the right button does flash something really really fast on the screen, but goes returns to the heaters message)

If I press left, it asks me if I want to cancel the print and prompts me yes or no. I select no, and it kicks me back to the heaters message. :-)

It's still printing, but I'm unable to get to any of the normal active-print menu items...

Build ends with linker warning producing not working binary :(

When building the source with some added features I get a strange linker warning

build\mighty_one-2560\MightyBoard\shared\UART.o:(.ctors+0x0): warning: internal error: out of range error
build\mighty_one-2560\MightyBoard\shared\VikiInterface.o:(.ctors+0x0): warning: internal error: out of range error

When that happens the resulting binary is unusable.

When I disable some original features like by adding '-HAS_RGB_LED' my features build fine.
So its some compiler/linker issue, any ideas how to fix that?

I build using WinAVR 4.6.2 with avr-libc 1.7.2.

I forked 128cee9 for my modifications as that is the source for the last public binary release.

Should I try to use a newer compiler version? Of so which one and if that causes any build issues as hinted in the docs how to fix these?

Cheers
Trax

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.