diff --git a/iocBoot/iocCygwin/auto_settings.req b/iocBoot/iocCygwin/auto_settings.req
index c92a2ee903d425e8028a3fe26f9ea886f05e575d..c03cd0cb79e9d9f83f8dcf410e55216caf93342d 100644
--- a/iocBoot/iocCygwin/auto_settings.req
+++ b/iocBoot/iocCygwin/auto_settings.req
@@ -45,3 +45,6 @@ $(P)userStringSeqEnable
 
 file userAve10_settings.req P=$(P)
 
+
+### PID_based feedback
+#file fb_epid.req P=$(P)epid1
diff --git a/iocBoot/iocCygwin/fb_epid.substitutions b/iocBoot/iocCygwin/fb_epid.substitutions
new file mode 100644
index 0000000000000000000000000000000000000000..3ef3706267ba707ca735412ddf5218d338b1f4fd
--- /dev/null
+++ b/iocBoot/iocCygwin/fb_epid.substitutions
@@ -0,0 +1,16 @@
+# $Id$
+
+file "$(OPTICS)/opticsApp/Db/fb_epid.db"
+  {
+    {
+        P=xxx:epid1,  
+	IN=xxx:epid1:sim.VAL, 
+	OUT=xxx:epid1:sim.D, 
+	MODE=PID,   
+	CALC=A,    
+	PERMIT1="xxx:epid1:on.VAL",      
+	PERMIT2="",      
+	PERMIT3="",      
+	PERMIT4=""
+    }
+  }
diff --git a/iocBoot/iocCygwin/st.cmd b/iocBoot/iocCygwin/st.cmd
index 2587024e417b87f245586b69a2a38955e481d0ab..723a3906394a1be06358d09f9b3879b2ac09a4b2 100644
--- a/iocBoot/iocCygwin/st.cmd
+++ b/iocBoot/iocCygwin/st.cmd
@@ -142,6 +142,9 @@ dbLoadRecords("$(STD)/stdApp/Db/timer.db","P=xxx:,N=1")
 # Slow feedback
 dbLoadTemplate "pid_slow.substitutions"
 
+# PID-based feedback
+#dbLoadTemplate "fb_epid.substitutions"
+
 # Miscellaneous PV's, such as burtResult
 dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
 #dbLoadRecords("$(STD)/stdApp/Db/VXstats.db","P=xxx:")
diff --git a/iocBoot/iocLinux/auto_settings.req b/iocBoot/iocLinux/auto_settings.req
index 33e56c46ffb7368997cae7f5123d15c48d15b1ad..20c5c71d614715cf7487747d51673925ba453d18 100644
--- a/iocBoot/iocLinux/auto_settings.req
+++ b/iocBoot/iocLinux/auto_settings.req
@@ -71,3 +71,6 @@ file userAve10_settings.req P=$(P)
 
 ## PF4 dual filter
 #file pf4dual.req P=$(P),H=pf401:,F=seq01:
+
+### PID_based feedback
+#file fb_epid.req P=$(P)epid1
diff --git a/iocBoot/iocLinux/fb_epid.substitutions b/iocBoot/iocLinux/fb_epid.substitutions
new file mode 100644
index 0000000000000000000000000000000000000000..3ef3706267ba707ca735412ddf5218d338b1f4fd
--- /dev/null
+++ b/iocBoot/iocLinux/fb_epid.substitutions
@@ -0,0 +1,16 @@
+# $Id$
+
+file "$(OPTICS)/opticsApp/Db/fb_epid.db"
+  {
+    {
+        P=xxx:epid1,  
+	IN=xxx:epid1:sim.VAL, 
+	OUT=xxx:epid1:sim.D, 
+	MODE=PID,   
+	CALC=A,    
+	PERMIT1="xxx:epid1:on.VAL",      
+	PERMIT2="",      
+	PERMIT3="",      
+	PERMIT4=""
+    }
+  }
diff --git a/iocBoot/iocLinux/st.cmd b/iocBoot/iocLinux/st.cmd
index 5b6244eae4a730cb8a185dc6e6c20fb992870810..b937a9fc20ab4646531c83cf8a53b02ba691eb7e 100644
--- a/iocBoot/iocLinux/st.cmd
+++ b/iocBoot/iocLinux/st.cmd
@@ -142,6 +142,9 @@ dbLoadRecords("$(BUSY)/busyApp/Db/busyRecord.db", "P=xxx:,R=mybusy")
 # Slow feedback
 #dbLoadTemplate "pid_slow.substitutions"
 
+# PID-based feedback
+#dbLoadTemplate "fb_epid.substitutions"
+
 # Miscellaneous PV's, such as burtResult
 dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
 
diff --git a/iocBoot/iocSolaris/auto_settings.req b/iocBoot/iocSolaris/auto_settings.req
index 8ef5c5cbdfebd3f4976578c6ee73731407cafe5e..3e0d733e30f38a2bb5403ae3d1a0f4b37457a59d 100644
--- a/iocBoot/iocSolaris/auto_settings.req
+++ b/iocBoot/iocSolaris/auto_settings.req
@@ -84,3 +84,6 @@ file pid_control_settings.req P=$(P) PID=pid_slow
 file pid_control_settings.req P=$(P) PID=async_pid_slow
 $(P)async_pid_slow.TRIG
 $(P)async_pid_slow.TVAL
+
+### PID_based feedback
+#file fb_epid.req P=$(P)epid1
diff --git a/iocBoot/iocSolaris/fb_epid.substitutions b/iocBoot/iocSolaris/fb_epid.substitutions
new file mode 100644
index 0000000000000000000000000000000000000000..3ef3706267ba707ca735412ddf5218d338b1f4fd
--- /dev/null
+++ b/iocBoot/iocSolaris/fb_epid.substitutions
@@ -0,0 +1,16 @@
+# $Id$
+
+file "$(OPTICS)/opticsApp/Db/fb_epid.db"
+  {
+    {
+        P=xxx:epid1,  
+	IN=xxx:epid1:sim.VAL, 
+	OUT=xxx:epid1:sim.D, 
+	MODE=PID,   
+	CALC=A,    
+	PERMIT1="xxx:epid1:on.VAL",      
+	PERMIT2="",      
+	PERMIT3="",      
+	PERMIT4=""
+    }
+  }
diff --git a/iocBoot/iocSolaris/st.cmd b/iocBoot/iocSolaris/st.cmd
index 5cfb862d8fa33fdd55096581cb3c45ed186b128f..653103ea4434fd55dd27b74e2e40b79e4470d991 100644
--- a/iocBoot/iocSolaris/st.cmd
+++ b/iocBoot/iocSolaris/st.cmd
@@ -124,6 +124,9 @@ dbLoadRecords("$(STD)/stdApp/Db/pvHistory.db","P=xxx:,N=1,MAXSAMPLES=1440")
 dbLoadTemplate "pid_slow.substitutions"
 dbLoadTemplate "async_pid_slow.substitutions"
 
+# PID-based feedback
+#dbLoadTemplate "fb_epid.substitutions"
+
 # Miscellaneous PV's, such as burtResult
 dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")
 
diff --git a/iocBoot/iocvxWorks/auto_settings.req b/iocBoot/iocvxWorks/auto_settings.req
index 8ed1069775df6fca165e0363ff059fa0f17edf4e..21571e7221e4d038ab07b1f7377cccda6c1693c8 100644
--- a/iocBoot/iocvxWorks/auto_settings.req
+++ b/iocBoot/iocvxWorks/auto_settings.req
@@ -192,3 +192,6 @@ file softGlue_settings.req  P=$(P) H=softGlue:
 #file octupole_settings.req P=$(P),Q=octupole:
 
 file trajectoryScan_settings.req P=$(P),R=traj1:
+
+### PID_based feedback
+#file fb_epid.req P=$(P)epid1
diff --git a/iocBoot/iocvxWorks/fb_epid.substitutions b/iocBoot/iocvxWorks/fb_epid.substitutions
new file mode 100644
index 0000000000000000000000000000000000000000..3ef3706267ba707ca735412ddf5218d338b1f4fd
--- /dev/null
+++ b/iocBoot/iocvxWorks/fb_epid.substitutions
@@ -0,0 +1,16 @@
+# $Id$
+
+file "$(OPTICS)/opticsApp/Db/fb_epid.db"
+  {
+    {
+        P=xxx:epid1,  
+	IN=xxx:epid1:sim.VAL, 
+	OUT=xxx:epid1:sim.D, 
+	MODE=PID,   
+	CALC=A,    
+	PERMIT1="xxx:epid1:on.VAL",      
+	PERMIT2="",      
+	PERMIT3="",      
+	PERMIT4=""
+    }
+  }
diff --git a/iocBoot/iocvxWorks/st.cmd b/iocBoot/iocvxWorks/st.cmd
index 2902f6135555fec9df4b7e0aad943914551bb099..220faf15baa29185791f0259d2ee278dc0b3a978 100644
--- a/iocBoot/iocvxWorks/st.cmd
+++ b/iocBoot/iocvxWorks/st.cmd
@@ -206,6 +206,9 @@ dbLoadRecords("$(BUSY)/busyApp/Db/busyRecord.db","P=xxx:,R=mybusy")
 # Slow feedback
 #dbLoadTemplate "pid_slow.substitutions"
 
+# PID-based feedback
+#dbLoadTemplate "fb_epid.substitutions"
+
 # Miscellaneous PV's, such as burtResult
 dbLoadRecords("$(STD)/stdApp/Db/misc.db","P=xxx:")