diff --git a/sbp.cabal b/sbp.cabal
--- a/sbp.cabal
+++ b/sbp.cabal
@@ -1,5 +1,5 @@
 name:                  sbp
-version:               1.0.1
+version:               1.1.0
 synopsis:              SwiftNav's SBP Library
 homepage:              https://github.com/swift-nav/libsbp
 license:               LGPL-3
diff --git a/src/SwiftNav/SBP.hs b/src/SwiftNav/SBP.hs
--- a/src/SwiftNav/SBP.hs
+++ b/src/SwiftNav/SBP.hs
@@ -109,6 +109,7 @@
    | SBPMsgSettingsReadByIndexResp MsgSettingsReadByIndexResp Msg
    | SBPMsgSettingsReadReq MsgSettingsReadReq Msg
    | SBPMsgSettingsReadResp MsgSettingsReadResp Msg
+   | SBPMsgSettingsRegister MsgSettingsRegister Msg
    | SBPMsgSettingsSave MsgSettingsSave Msg
    | SBPMsgSettingsWrite MsgSettingsWrite Msg
    | SBPMsgStartup MsgStartup Msg
@@ -194,6 +195,7 @@
           | _msgSBPType == msgSettingsReadByIndexResp = SBPMsgSettingsReadByIndexResp (decode (fromStrict _msgSBPPayload)) m
           | _msgSBPType == msgSettingsReadReq = SBPMsgSettingsReadReq (decode (fromStrict _msgSBPPayload)) m
           | _msgSBPType == msgSettingsReadResp = SBPMsgSettingsReadResp (decode (fromStrict _msgSBPPayload)) m
+          | _msgSBPType == msgSettingsRegister = SBPMsgSettingsRegister (decode (fromStrict _msgSBPPayload)) m
           | _msgSBPType == msgSettingsSave = SBPMsgSettingsSave (decode (fromStrict _msgSBPPayload)) m
           | _msgSBPType == msgSettingsWrite = SBPMsgSettingsWrite (decode (fromStrict _msgSBPPayload)) m
           | _msgSBPType == msgStartup = SBPMsgStartup (decode (fromStrict _msgSBPPayload)) m
@@ -271,6 +273,7 @@
       encode' (SBPMsgSettingsReadByIndexResp _ m) = put m
       encode' (SBPMsgSettingsReadReq _ m) = put m
       encode' (SBPMsgSettingsReadResp _ m) = put m
+      encode' (SBPMsgSettingsRegister _ m) = put m
       encode' (SBPMsgSettingsSave _ m) = put m
       encode' (SBPMsgSettingsWrite _ m) = put m
       encode' (SBPMsgStartup _ m) = put m
@@ -351,6 +354,7 @@
         | msgType == msgSettingsReadByIndexResp = SBPMsgSettingsReadByIndexResp <$> parseJSON obj <*> parseJSON obj
         | msgType == msgSettingsReadReq = SBPMsgSettingsReadReq <$> parseJSON obj <*> parseJSON obj
         | msgType == msgSettingsReadResp = SBPMsgSettingsReadResp <$> parseJSON obj <*> parseJSON obj
+        | msgType == msgSettingsRegister = SBPMsgSettingsRegister <$> parseJSON obj <*> parseJSON obj
         | msgType == msgSettingsSave = SBPMsgSettingsSave <$> parseJSON obj <*> parseJSON obj
         | msgType == msgSettingsWrite = SBPMsgSettingsWrite <$> parseJSON obj <*> parseJSON obj
         | msgType == msgStartup = SBPMsgStartup <$> parseJSON obj <*> parseJSON obj
@@ -433,6 +437,7 @@
   toJSON (SBPMsgSettingsReadByIndexResp n m) = toJSON n `mergeValues` toJSON m
   toJSON (SBPMsgSettingsReadReq n m) = toJSON n `mergeValues` toJSON m
   toJSON (SBPMsgSettingsReadResp n m) = toJSON n `mergeValues` toJSON m
+  toJSON (SBPMsgSettingsRegister n m) = toJSON n `mergeValues` toJSON m
   toJSON (SBPMsgSettingsSave n m) = toJSON n `mergeValues` toJSON m
   toJSON (SBPMsgSettingsWrite n m) = toJSON n `mergeValues` toJSON m
   toJSON (SBPMsgStartup n m) = toJSON n `mergeValues` toJSON m
@@ -509,6 +514,7 @@
   msg f (SBPMsgSettingsReadByIndexResp n m) = SBPMsgSettingsReadByIndexResp n <$> f m
   msg f (SBPMsgSettingsReadReq n m) = SBPMsgSettingsReadReq n <$> f m
   msg f (SBPMsgSettingsReadResp n m) = SBPMsgSettingsReadResp n <$> f m
+  msg f (SBPMsgSettingsRegister n m) = SBPMsgSettingsRegister n <$> f m
   msg f (SBPMsgSettingsSave n m) = SBPMsgSettingsSave n <$> f m
   msg f (SBPMsgSettingsWrite n m) = SBPMsgSettingsWrite n <$> f m
   msg f (SBPMsgStartup n m) = SBPMsgStartup n <$> f m
diff --git a/src/SwiftNav/SBP/Settings.hs b/src/SwiftNav/SBP/Settings.hs
--- a/src/SwiftNav/SBP/Settings.hs
+++ b/src/SwiftNav/SBP/Settings.hs
@@ -217,3 +217,31 @@
 $(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadByIndexDone_" . stripPrefix "_msgSettingsReadByIndexDone_"}
              ''MsgSettingsReadByIndexDone)
 $(makeLenses ''MsgSettingsReadByIndexDone)
+
+msgSettingsRegister :: Word16
+msgSettingsRegister = 0x00AE
+
+-- | SBP class for message MSG_SETTINGS_REGISTER (0x00AE).
+--
+-- This message registers the presence and default value of a setting with a
+-- settings daemon.  The host should reply with MSG_SETTINGS_WRITE for this
+-- setting to set the initial value.
+data MsgSettingsRegister = MsgSettingsRegister
+  { _msgSettingsRegister_setting :: ByteString
+    -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,
+    -- SETTING, VALUE].
+  } deriving ( Show, Read, Eq )
+
+instance Binary MsgSettingsRegister where
+  get = do
+    _msgSettingsRegister_setting <- liftM toStrict getRemainingLazyByteString
+    return MsgSettingsRegister {..}
+
+  put MsgSettingsRegister {..} = do
+    putByteString _msgSettingsRegister_setting
+
+$(deriveSBP 'msgSettingsRegister ''MsgSettingsRegister)
+
+$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsRegister_" . stripPrefix "_msgSettingsRegister_"}
+             ''MsgSettingsRegister)
+$(makeLenses ''MsgSettingsRegister)
