Wednesday, 24 April 2013

Panelolu2 for RAMPS and Printrboard

Panelolu2 LCD display and control solution working with RAMPS 1.3 and Printrboard.

Finally they are here, the much requested adapter boards that allow the Panelolu2 to interface with RAMPS 1.3 and Printrboard. For details on the background of the Panelolu2, along with more details on how to set it up, how the print the enclosure etc, please see the previous post.

RAMPS 1.3 Adapter

The first point to note is that due to physical differences between RAMPS 1.3. and 1.4, this adapter is sized for RAMPS 1.3 and will not fit on RAMPS 1.4. 

[Update: Panelolu2 with RAMPS 1.4 adapter is also now available from our webstore]




In a similar way to the Melzi and Sanguinololu adapters, the RAMPS 1.3 adapter has two MOSFETs that can be used to switch fans or other small loads. This allows the RAMPS 1.3 with Panelolu2 to control two extruders each with their own software controlled fan.

The schematic and annotated diagram below shows the RAMPS pins used and the connections.



View from the bottom


View from the top showing the purpose of each connector


Transistor 1 is connected to Arduino digital pin 45 which can be controlled by PWM, Transistor 2 is connected to Arduino digital pin 49, a straight on/off pin. The transistors switch the 12V supplied through the input - this must be connected in order to get any output from the transistors.

The additional expansion header breaks out all the pins not used by Panelolu2 along with the I2C pins if you want to add more devices to the bus.

Printrboard Adapter

Update 06 Oct 2014 - check out Colin Bell's blog post about getting this to work with the latest printrbots and board.


This is tested on Printrboard Rev D & E only as I do not have an earlier revision boards to test with.



For the Printrboard Adapter I decided to go for a minimalist approach. There are no additional MOSFETs - it is simply a physical adapter. The reason for this is twofold; firstly the Printrboard already has an onboard MOSFET to switch a fan and secondly, with the default fuse settings, there are no spare pins on the EXP 1 header.



As can be seen from the Schematic above the only pins left unused (and broken out to header SV1) are TDI, TDO,TMS and TCK. These are set as JTAG pins by default although they can be configured for use as I/O, this process is detailed in this blog post. I could have gone with an adapter board that connected to both EXP 1 and EXP 2 on the Printrboard but decided that small was best in this case.



Marlin Firmware Setup

The T3P3 branch of Marlin, available from github, has been updated to include support for the Panelolu2 on Printrboard and RAMPS. Every printer configuration is slightly different but the generic workflow for updating your firmware to support the Panelolu2 is as follows:



  1. If you are not already using it get the standard version of Arduino-0023 from the Arduino website, note that this version of Marlin has not been tested with Arduino 1.0 or higher.
  2. Get T3P3 Marlin from github.
  3.  For Printrboard follow the reprap wiki advice to get up and running with firmware, Lincomatic's blog post is also useful. For RAMPS, support for the Arduino Mega 2560 is built into standard arduino
  4. Get LiquidTWI2 as mentioned in my Panelolu2 blog post, note that configuration changes are no longer required in the latest version of LiquidTWI2.
  5. Modify the configuration.h of the Marlin to fit your printer setup (setting like controller board, axis dimensions, thermistors, etc). Update: This blog post should help.
  6. Confirm Marlin compiles and uploads with //#define PANELOLU2 still commented out in configuration.h.
  7. Then uncomment #define PANELOLU2 , along with #define EEPROM_SETTINGS and #define EEPROM_CHITCHAT and confirm it compiles and uploads. Note that with the #define PANELOLU2 uncommented, you must have the Panelolu2 connected or Marlin will hang and not finish initialising.
  8. Check the printer operation and calibration to ensure you have edited the Marlin configuration.h properly.


Getting one

As always the hardware is open source so the design files are available on Github:
https://github.com/T3P3/Panelolu2.

Update: Now available on eMakershop and Ebay.




18 comments:

  1. Hey,

    I bought one of these (for RAMPS 1.3), it works almost wonderful :) The only issue is that the second mosfet (T2) is not working: I can get the first mosfet T1 to work perfectly (the one behind PWM pin 45), but I can't get power on the one behind port 49. I tried using it as either a CONTROLLERFAN_PIN or a FAN_PIN, in the first case moving the motors, in the other setting it full speed (M106 S255). I tried to figure it out, there's definitely 12V on the 12V side of the plug, but the ground side does not seem to be letting current flow. Have you ever seen this ? Is there a good protocol to debug this ? Thanks !

    ReplyDelete
  2. Hi Guillaume

    This is on pin number 49 so you should be able to control it using M42 P49 D255 - doe this work

    ReplyDelete
  3. Nope, does not work. After doing a little bit more multimeter work, I believe the D49 pin from AUX3 on the RAMPS is not correctly soldered. Going to investigate this more now :) Thanks for the help !

    ReplyDelete
  4. Fixed the solder, it works ! Sorry for the noise :) Your stuff is *great*. Now all I'd need is a 24V bed :p

    ReplyDelete
  5. Hi Guillaume

    Glad that fixed it - as for the 24V bed you could control a relay using the existing setup and then run a 12V heatbed at 24V - It will heat up very quickly but you will have to use bang bang control if you use a normal relay. I have not investigated a solid state relay but is on my ever increasing todo list!

    Tony

    ReplyDelete
  6. Thanks for the tips. I'm a little bit worried, as if I get it right using a 12V heatbed at 24V would also double the current, right ?

    Another question: has your branch of Marlin been merged with the original one from EvdZ ? It seems like it is (req #400 and #407 if I remember correctly), just not sure it is fully up2date !

    ReplyDelete
    Replies
    1. Hi Guillaume

      You are absolutely right it will draw double the current so for a nominal 1ohm bed it would draw 24A. Too much for the fets fitted and I use a relay.

      I have merged my local copy of marlin with the master v1 version about 48h ago but its not compiling for some controller combinations with temperature measurements using tables rather than auto calculation. I am still investigating and once fixed I will update the github version.

      Cheers

      Tony

      Delete
    2. Ack @ relay, I'll investigate using one if I switch to 24V.

      What are the changes between your version and Marlin master for now ? I've looked a little bit and it seems the I2C controller stuff is in and compiles correctly, but I'm not sure whether your version has more goodies or not (and I'm too lazy to do a diff ^^)
      And yeah, the current Marlin master does not compile for all electronics/controller combinations. For instance board 33 + ULTIPANEL does not compile, because some pins have not been defined for all boards (though I understand they might not exist). Anyway...

      Delete
    3. Hm, so I investigated the practical diffs for me, and they mostly seem to be that ErikZalm/Marlin does not contain the proper pins in pins.h for the encoder and beeper. Your version also seemed to react faster (maybe much faster) than ErikZalm's, but I'm not 100% sure about it (as I tried it with an extra extruder than when I used your branch).

      Delete
  7. Hello there,
    I have just bought the panelolu2 LCD controller and I want to use it with printrboard. I have Rapidbot 3.0 and I want to connect panelolu2 LCD controller with it. For that what kind of changes do i have to make in the marlin firmware..plz suggest..

    Thank you

    ReplyDelete
    Replies
    1. Hi Kalpesh

      The steps are outlined in the blog above but since then I have done a more in depth post about modifying your firmware which is here:

      http://blog.think3dprint3d.com/2013/05/basic-marlin-configurationh-modification.html

      this will walk you through each step of the process.

      Looking at the Rapidbot 3.0 pictures on the website you may need to more the mounting point for the printrboard slightly to get the adapter to fit on the printrboard.

      Cheers

      Tony

      Delete
  8. Hello Tony
    Thanks for replying

    I have already gone through the link that you have mentioned. My main problem is that I Can not find my board "[BootloaderCDC]Teenslylu" which I can find on arduino 0022 and which is not available in arduino 0023. So, How can I upload the marlin firmware using arduino 0023 for my printrboard.

    Plz help me

    THANKS

    ReplyDelete
    Replies
    1. Hi Kalpesh

      If your board is not showing up in Arduino then you probably don't have the CDC bootloader. I followed these steps quite some time ago and they worked:
      http://blog.lincomatic.com/?p=502

      might be more uptodate info on the web now though.

      Cheers

      Tony

      Delete
  9. Hi Tony,

    I have a RAMPS 1.4 and the panelolu2 adaptor to go with it. My board is working fine, but as soon as I plug in the adaptor, it gets disconnected from the PC. RAMPS is no more recognized by my system. What could be the issue ?

    Thanks

    ReplyDelete
    Replies
    1. Hi

      It sounds like either the cables are connected wrong between the adaptor and the Panelolu2, or adaptor has a problem or that element of the RAMPS board has a problem.

      Can you try without the Panelolu2 plugged in, just the adaptor board first.

      Which batch of P2 boards did you get?( when was your order?)

      Cheers

      Tony

      Delete
  10. I have built two of these for my printers. I am trying to install the first and am having trouble reading the encoder. The same symptoms occur with both cards. BTW I have RAMPS 1.4. I had my own RAMPS 1.4 adaptors fabricated by starting with your eagle files and then moving the aux connector until it aligned with the RAMPS 1.4 board.

    The symptom is that the encoder up and down does not work. When I hit the encoder button, the menu appears, and as I turn the encoder, I can see the pointer move down to the second menu item, but if I stop turning, the pointer disappears. Sometimes if I play with the position of the dial, I can get the pointer to stay on the second item, and then I am able to select it. The pointer never gets below the cesond item in the list. As I mentioned, this happens with either panelolu2 board and with either adaptor. I played around a bit with the PULSE/STEP and STEP/menu item values.

    I think it's a software issue because I can see different behavior when I change the PULSE settings. I don't know what to try next though. I AM using the "official" marlin because it looked like it had been changed to support the panelolu2. I guess I could try your branch, but it seems dated. Is it still the best branch to try for this?

    ReplyDelete
    Replies
    1. Hey Jeff

      Firstly the official Marlin is the best place to start if you want any of the newer Marlin features/bugs as we are no longer maintaining our branch. That said, just to check the hardware, please do try our branch to confirm if its a marlin issue or not.

      Cheers

      Tony

      Delete
  11. Turned out that the issue was a bad cable. I made it myself, and while I was trying to hold it together in the vise that crimped the connector together, the cable slipped and a few of the wires were not making good contact. The encoders seem to be working fine now.

    Next thing to tackle is the SD card. I'm not certain it's not working, but Marlin can't initialize it. I'm thinking that it may be because there is no SD detect connection, but I haven't really tried to work it out yet.

    This is a great upgrade to my printer. I HAD a parallel LCD panel, but I had constant issues with garbage on the screen. This seems much more solid.

    ReplyDelete