azwing wrote: Just for reference, Jasem's statement about this :

So if I understand well there is a "sync" command in Indi to say the focuser is at a certain value.
I don't see a way to sync in OnStep firmware, is there one except the "zero"?

If I follow Blueshaw, an offset of max/2 would solve this issue.
Just for info, here my focuser set-up (than explains why I don't need the negative value or offset)
#define MinAxis4 0.0 // minimum allowed Axis4 position in millimeters, default = -25.0
#define MaxAxis4 38.0 // maximum allowed Axis4 position in millimeters, default = 25.0
and whith this set-up I have 38000 steps to travel these 38mm with 0 fully retracted. (48 step motor, and approx 20,8/1 gear)
When I start I set the focuser mechanically to zero (0), initialize the focuser to Zero and from then travel to approx half travel where my focus usually is and I'm done.

May be James has some ideas.

After some review in Onstep firmware I think there is no way to sync the focuser in a arbitrary position without modifying Onstep firmware.
All the Onstep Focuser1 commands are here (Driver supported):
// :FA# Active?
// :FAn# Select focuser 1 or 2
// :F+# Move focuser in (toward objective)
// :F-# Move focuser out (away from objective)

// :FQ# Stop the focuser
// :FG# Get focuser current position (in microns)
// :FI# Get full in position (in microns)
// :FM# Get max position (in microns)
// :FT# get status
// :FZ# Set focuser position as zero
// :FH# Set focuser position as half-travel

// :FF# Set focuser for fast motion (1mm/s)
// :FP# Get focuser DC Motor Power Level (in %)
// :FPnnn# Set focuser DC Motor Power Level (in %)
// :Fp# Check for focuser pseudo absolute mode
// :FRsnnn# Set focuser target position relative (in microns)
// :FS# Set focuser for slow motion (0.01mm/s)
// :FSsnnn# Set focuser target position (in microns)
// :Fn# Movement rate, 1=finest, 2=0.01mm/second, 3=0.1mm/second, 4=1mm/second
Set an arbitrary position without moving the focuser:
With OnStep we can only set to 0 (:FZ) or half-travel (:FH) but not any other position.
If we would want to add SyncFocuser Onstep firmware should be modified.
Should we ask to Howard for a change?

Use relative negative movements: // :FSsnnn# Set focuser target position (in microns)
As per Jasem's answer this would break Indi/Ekos since all setpoints for movement / position are defined as (unint), see Focuser Interface
I would be possible to calculate an offset if the returned range (:FI and :FM return values ) is -25000 to + 25000 and present a 0 to 50000 to Indi but this would create even more confusion.
I still don't see a solution here.

Set focuser Speed:
This could be supported by SetFocuserSpeed I presume provided we override the function to deduce the :Fn# arguments (1, 2, 3, 4) from a 0/100% saying 0-25 = 1, 26 to 50= 2 51 to 75=3 and 76 to 100=4 for example.