Monday, April 20, 2015

Marlin on Gen6.D with Atmega1284P 16Mhz

DISCLAIMER:"Please be careful in applying any changes to your firmware. Use this at your own risk. I wasn't able to test the result of this customization. I am not responsible for any damages to equipment leading from this hack".

Recently people are seeking my help getting their printer back to working order as they are having issues compiling the firmware posted a few years back. Apparently there is a new version of the Romscraj Gen6.d board which has been released with a Atmega1284P 16Mhz. Selecting the board in arduino 1.02 results in errors.


I found a clue in a Google group ( link ). The quick solution is to edit the following line of code in in "Marlin.h".

Instead of the code starting from line 27:

 #if ARDUINO >= 100   
  #if defined(__AVR_ATmega644P__)  
   //#include "WProgram.h"  
  //#else  
   //#include "Arduino.h"  
  //#endif  
 //#else  
   //#include "WProgram.h"  
 #endif  

Edit and use the following code:

 #if ARDUINO >= 100   
  #if defined(__AVR_ATmega644P__)  
   #include "WProgram.h"  
  #else  
   #include "Arduino.h"  
  #endif  
 #else  
   #include "WProgram.h"  
 #endif  

With this edit the firmware should compile without any errors

DISCLAIMER:"Please be careful in applying any changes to your firmware. Use this at your own risk. I wasn't able to test the result of this customization. I am not responsible for any damages to equipment leading from this hack".

Monday, April 13, 2015

It's been a long while

The last post I made was in the summer of 2013. Since then I've hardly done anything with my Portabee 3d printer. Except the occasional tech support for other 3d enthusiast having issues with their gen6.D board. I would like to announce I'm back in the game with a new printer.

The Velleman Vertex K8400.

Velleman Vertex K8400 kit
Velleman Vertex K8400 kit



Sunday, June 2, 2013

Testing some adjustments!

I did some testing and I started using black filament! I think I have found a nice setup for printing solids! The black gear is without any cleanup afterwards!

Printed gears

Saturday, June 1, 2013

Black Magic!

A new spool of fine black filament has arrived today! I think this will improve some of my prints as the current stock ( white ) is breaking constantly! Btw it's PLA 3mm..
Black Magic!

Friday, May 31, 2013

Marlin on Gen6.d - Part 3

Please be careful with uploading firmware to your board. If you do not know what you are doing please consult someone with experience! Use at your own risk!

This is the end of an 3 part story about uploading firmware on you Gen6.d motherboard by "romscraj". The two other parts can be viewed at the following locations:

Article
Location
Part OneLink
Part TwoLink

Now finally you have managed to secure yourself a working version of the Arduino IDE with the Sanguino drivers. Only the firmware remains now! Before you continue please take note of the warning on the top of the page! I really would hate to see you ruining your board because of this.

I've shared a location on my google drive to share you the firmware! The Marlin firmware is preconfigured to work with the Gen6.d PCB version B1 ( OK-PCB-0021-B1 ). If you have this PCB version, the one with a ATMEGA644PA, it will probably work. If you have another motherboard version you will probably be better of with the provided firmware on the "romscraj" github page ( link )

Prepared Marlin Firmware for Gen6.d ( OK-PCB-0021-B1 )
Download

If you have a look in the pins.h file you can see the comment says is has been adopted for a different pin layout! To look at pins.h extract the zip to a destination on your computer. Next start the program "Arduion-1.02.app" ( for OSX ) discussed in the previous article of this series ( link ) and open "Marlin.ino".
Select the sketch "Marlin.ino"
Then go to tab "pins.h" by selecting under the arrow in the upper right corner. Here, at the pin assignments of motherboard number 65 you will see the following comment added in this Marlin firmware:

// romscraj gen.d revision B1 pin assignment
Tab "pins.h" in the Marlin firmware sketch

Now the only thing left to do is select the correct board and correct port under the tools option. This will be Sanguino W/Atmega664P and the corresponding port on OSX or Windows. If you do not know which port this is go to ( for Mac OSX )  "About this mac" under the apple sign in the upper left corner of your screen. Then select "More Info...". You will see a similar screen:

The "More Info..." screen
Click the "System Report" button and go to the USB tab. If your printer is connected and has power you will find a device with the name "FT232R USB UART". If you select this you will be able to see the serial number ( string ), in this case:"AM01S70X".

Overview device "FT232R USB UART".

This Serial number will correspond in some way with the port name available for selection under the "Tools" menu option in "Arduino-1.02.app". If it doesn't show up in the "Tools" menu there probably is a different problem. If this happens you could try to solve the problem by reinstalling the drivers and checking if the main power-cord hasn't come loose at the connector where it connect's to the board ( happened to me once and it took me an hour to figure it out )

Serial port selection in Arduino-1.02.app
The motherboard is preselected as can be viewed in the "configuration.h" tab. It is possible to adjust some acceleration and feedrate options but the printer will print good enough for a first run. If everything works out "LED1" on the board will start flashing and eventually you should get "Done uploading" in the Arduino screen when you press the upload button ( Second button upper right corner in the screen ).

Tuesday, May 28, 2013

Marlin on Gen6.d - part 2


Please be careful with uploading firmware to your board. If you do not know what you are doing please consult someone with experience! Use at your own risk!

To upload firmware to the Gen6.d board you need the following:
  • The Arduino IDE
  • Sanguino dirvers
  • FTDI Drivers
  • Marlin firmware for Gen6.d
Most post on forums suggest the best working version of the Arduino IDE combined with the sangiuno drivers is a pre V1 version ( example: 0023 ). This also worked for me instead of newer versions where I usually got the message:

avrdude stk500_getsync() not in sync resp=0xd7

avrdude not in sync
All sorts of solutions are provided on the internet but the best solution seems to be to just get the 0023 verison of the arduino IDE. The only problem for the sugested Marlin firmware is it won't compile if you use a pre v1 version of the Arduino IDE. If you do you'll get the following errors:


In file included from Marlin.h:37, 

from cardreader.cpp:1: 

MarlinSerial.h:149: error: expected ',' or '...' before '&' token 

MarlinSerial.h:149: error: ISO C++ forbids declaration of 'String' with no type 

MarlinSerial.h:168: error: expected ',' or '...' before '&' token 

MarlinSerial.h:168: error: ISO C++ forbids declaration of 'String' with no type 

MarlinSerial.h: In member function 'void 

MarlinSerial::print(int)': 

MarlinSerial.h:151: error: 's' was not declared in this scope 

cardreader.cpp: In constructor 'CardReader::CardReader()': 
cardreader.cpp:28: error: 'millis' was not declared in this scope 
cardreader.cpp: In member function 'void CardReader::checkautostart(bool)': 
cardreader.cpp:422: error: 'millis' was not declared in this scope


compiling errors
With the help of a Japanese Yahoo site I managed to strip the Sanguino drivers out of a Windows based Arduino IDE V1.02 and make an OSX version of it. I also included the Windows version in this post as some of you might not be a Mac user like me! 

Below you can download version v1.02 of the Arduino IDE which I have prepared with the Sanguino drivers. This package works with the adopted Marlin firmware for the Portabee printer with the Gen6.d board ( OK-PCB-0021-B1 ). 

Arduino 1.02 with Sanguino Drivers

Operating System Info Location
Windows 7 / VistaFTDI drivers in subfolderDownload
Mac OSXFTDI as separate file includedDownload





For now this is the end of the post. I will continue the story in "Marlin on Gen6.d - Part 3"



Saturday, May 25, 2013

Marlin on Gen6.d - part 1

Uploading a firmware to the Arduino based board is pretty simple but there are some rules you need to follow. In this series I'm going to explain a few things I learned in the past weeks about getting a working Marlin firmware onto the board.

The Gen6.d board is an evolution of the Gen6 design. It is sort of a plug and play board as it has everything you need to get started with 3D printing. The "delux", that's why it's called 6.d, version has support for a heated bed and the ability of autonomous printing thru the use of a SD card reader.

Through my struggle to get the board to work again after I uploaded an unsupported setup, I had learned there are a few differences in PCB versions for this board. So I own PCB version OK-PCB-0021-B1 which has a different pin layout from the first version of the board OK-PCB-0021-A1-3.

Also my Gen6.d board has an ATMEGA644P or so I thought ( link ) because when I made a high resolution picture of my board I discovered it actually has an ATMEGA644PA. 
ATMEGA644PA
This probably doesn't mean you need different drivers but it could explain why the "known" pin layout in the official releases of Marlin do not work. 

As far as I know there is no official release of an adopted Marlin firmware that works on a Gen6.d board by Romscraj. This is why I'm sharing my files with others so they may be helped a bit quicker. 

This is the end of part one.. I will continue my how-to in  "Marlin on Gen6.d - part 2"