We have had this question before, so it’s a good one to remind everyone of in case you’re not aware of it. What I usually hear asked is how can you have the tool automatically pan/roam when your cursor gets to the edge of the canvas.
The good news is that this is there today for you; it may just be that you don’t realize it! To make sure that you don’t pan the canvas at times when you don’t intend to, you will have to be holding down the middle mouse button. This prevents you from accidentally moving the screen while you’re doing interactive routing, editing a shape, or simply moving to another window on your screen. I suspect you might not be thrilled if the window started panning when your cursor got to the edge as you tried to answer an email, dragging your differential pair route straight across the entire design!
As you press the middle mouse button, you’ll see the cursor on the screen turns into a hand, like it is gripping the canvas display. As you then move the cursor, it will pan in that direction. However, if you get to the edge of the canvas, or you just stop moving your cursor, the design will continue to pan until you stop it.
The speed of the pan is controlled by an environment variable, pcb_autoroam. By default, it will go one step further every ¼ of a second. Use the variable to increase or decrease the delay between steps to match your movement and remote desktop connection speeds as necessary. Below is a short video to show you how things work. I’ve set the updates to be every second so that it’s a little bit clearer:
Beyond Auto-Roaming
You can configure how the tool pans and zooms beyond just how fast this happens, however. Two related options that you might not have seen, but which could make your life easier, are:
roaminc– controls how far (in display pixels) the screen pans with each step.
design_hdlpan – Changes how panning works. When set, the pan is in the same direction as mouse movement. This matches other tools you might use, like the front-end tools.
As a reminder, you can always pan with the keyboard arrow keys as well. Each press of an arrow will pan the amount specified in roaminc mentioned above, like a single panning step with the mouse. The arrow keys, of course, do not abide by the delay specified with pcb_autoroam. As fast as you can press the arrow keys and redraw the screen, it will pan.
The middle mouse button isn’t limited to just helping with panning, either. Click with it to enable fast access to zoom operations like zoom in, out, and zoom to window. If you have a mouse wheel, you can roll forward to zoom in or back to zoom out, too. Make good use of that middle mouse button! It can save you a lot of time and effort if you do!