Mint19/Ubuntu 18.04 configuring arduino IDE to work with Geeetech Sanguino

Before I start work tuning my Geeetech Prusa i3 clone I thought I’d best get to the point where I can rebuild the firmware supplied by Geeetech. Their firmware appears to be based on an early version of the Marlin firmware and whilst I’d like to upgrade to the latest release in the fullness of time, getting the original to work first seems like a good plan.

I ran into an immediate problem with the 1.0.5 version of the Arduino IDE in the Mint19 and Ubuntu 18.04 repositories because it doesn’t allow me to set the Sanguino board type before I compile the code. There appears to be no fix for this but to download the latest version from the Arduino website (I have v1.8.5) and install it according to their instructions. Unfortunately it’s not quite that easy. Even the 1.8.5 version doesn’t know about the Sanguino, but unlike 1.0.5 it allows us to add some board definitions from external URLs.

After starting the IDE the first thing to do is to go to File->Preferences and near the bottom of the Settings tab there’s a box labelled “Additional Boards Manager URLs”. Into that paste https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json and click “Ok”.

Next go to Tools->Board->Boards Manager... and in the search box it should be enough to enter “sang” to find the right one: “Sanguino by Kristian Sloth Lauszus”. Clicking on “More info” brings up an “Install” button. Do the obvious 🙂 If like me you have a piece of damp string for an Internet connection, you may want to go and make yourself a drink at this point. It can take a while.

Once installed, close the window and go back to the Tools->Board menu. Sanguino should now be selectable right at the bottom of the list. After that the processor must be selected from Tools->Processor. My aluminium printer model has a 16Mhz 1284P so obviously that’s the one I chose.

Unfortunately my problems did not end there. Selecting an arduino project to open, I navigated to the firmware directory and opened Prusa_I3_A.ino. Attempting to compile the firmware throws the following errors:

Build options changed, rebuilding all
In file included from sketch/SdFile.h:27:0,
                 from sketch/cardreader.h:8,
                 from sketch/Marlin_main.cpp:44:
SdBaseFile.h:38: error: using typedef-name 'fpos_t' after 'struct'
 struct fpos_t {
        ^
In file included from sketch/Marlin.h:10:0,
                 from sketch/Marlin_main.cpp:30:
/usr/local/arduino-1.8.5/hardware/tools/avr/avr/include/stdio.h:950:33:
note: 'fpos_t' has a previous declaration here
 __extension__ typedef long long fpos_t;
                                 ^
exit status 1
using typedef-name 'fpos_t' after 'struct'

which looks like some of the firmware files use a variable name that clashes with a system name. More of that in another post.

This entry was posted in 3D Printing and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *