LiquidCrystal library documentation

The buffer is in the LCD controller, the library does nothing but relay your commands and parameters to the controller. If you want to write to a fixed location on screen after scrolling the display from Home then you need to either track how much it's scrolled and offset your cursor, or just maintain your own buffers and scrolling code and overwrite the entire display every refresh.

Yes, that is what I meant by having it working with a ring buffer. I rewrite the display on each refresh and use an index to track the start point of the text.

My point is that the documentation does not mention this. In fact, the documentation/examples give the impression that (15,0) is always the upper right character slot. As you say, that changes once you scroll. It would be nice if this was discussed. Once I get it working using the scroll function I'll try and make write something to go in the reference section (assuming no-one else does it first).