diff --git a/BUILD.gn b/BUILD.gn
index 6e79779..336f3f9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -129,7 +129,7 @@
     "$dir_pw_docgen/py",
     "$dir_pw_doctor/py",
     "$dir_pw_env_setup/py",
-    "$dir_pw_hdlc_lite/py",
+    "$dir_pw_hdlc/py",
     "$dir_pw_module/py",
     "$dir_pw_package/py",
     "$dir_pw_presubmit/py",
@@ -144,7 +144,7 @@
     "$dir_pw_watch/py",
 
     # Standalone scripts
-    "$dir_pw_hdlc_lite/rpc_example:example_script",
+    "$dir_pw_hdlc/rpc_example:example_script",
   ]
 }
 
@@ -197,7 +197,7 @@
 if (current_toolchain != default_toolchain) {
   group("apps") {
     # Application images built for all targets.
-    deps = [ "$dir_pw_hdlc_lite/rpc_example" ]
+    deps = [ "$dir_pw_hdlc/rpc_example" ]
 
     # Add target-specific images.
     deps += pw_TARGET_APPLICATIONS
@@ -221,7 +221,7 @@
       "$dir_pw_checksum",
       "$dir_pw_chrono",
       "$dir_pw_cpu_exception",
-      "$dir_pw_hdlc_lite",
+      "$dir_pw_hdlc",
       "$dir_pw_i2c",
       "$dir_pw_metric",
       "$dir_pw_polyfill",
@@ -264,7 +264,7 @@
       "$dir_pw_containers:tests",
       "$dir_pw_cpu_exception_armv7m:tests",
       "$dir_pw_fuzzer:tests",
-      "$dir_pw_hdlc_lite:tests",
+      "$dir_pw_hdlc:tests",
       "$dir_pw_hex_dump:tests",
       "$dir_pw_log:tests",
       "$dir_pw_log_multisink:tests",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ad9e3be..2968a94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,7 @@
 add_subdirectory(pw_containers EXCLUDE_FROM_ALL)
 add_subdirectory(pw_cpu_exception EXCLUDE_FROM_ALL)
 add_subdirectory(pw_cpu_exception_armv7m EXCLUDE_FROM_ALL)
-add_subdirectory(pw_hdlc_lite EXCLUDE_FROM_ALL)
+add_subdirectory(pw_hdlc EXCLUDE_FROM_ALL)
 add_subdirectory(pw_kvs EXCLUDE_FROM_ALL)
 add_subdirectory(pw_log EXCLUDE_FROM_ALL)
 add_subdirectory(pw_log_basic EXCLUDE_FROM_ALL)
@@ -59,4 +59,4 @@
 add_subdirectory(third_party/nanopb EXCLUDE_FROM_ALL)
 
 add_custom_target(pw_apps)
-add_dependencies(pw_apps pw_hdlc_lite.rpc_example)
+add_dependencies(pw_apps pw_hdlc.rpc_example)
diff --git a/PW_PLUGINS b/PW_PLUGINS
index f588ded..fdba3b5 100644
--- a/PW_PLUGINS
+++ b/PW_PLUGINS
@@ -13,5 +13,5 @@
 # Pigweed's presubmit check script
 presubmit pw_presubmit.pigweed_presubmit main
 heap-viewer pw_allocator.heap_viewer main
-rpc pw_hdlc_lite.rpc_console main
+rpc pw_hdlc.rpc_console main
 package pw_package.pigweed_packages main
diff --git a/docs/BUILD.gn b/docs/BUILD.gn
index b6d200f..012fe80 100644
--- a/docs/BUILD.gn
+++ b/docs/BUILD.gn
@@ -70,7 +70,7 @@
     "$dir_pw_doctor:docs",
     "$dir_pw_env_setup:docs",
     "$dir_pw_fuzzer:docs",
-    "$dir_pw_hdlc_lite:docs",
+    "$dir_pw_hdlc:docs",
     "$dir_pw_hex_dump:docs",
     "$dir_pw_interrupt:docs",
     "$dir_pw_interrupt_cortex_m:docs",
diff --git a/modules.gni b/modules.gni
index ee10ead..1604d2e 100644
--- a/modules.gni
+++ b/modules.gni
@@ -44,7 +44,7 @@
   dir_pw_doctor = get_path_info("pw_doctor", "abspath")
   dir_pw_hex_dump = get_path_info("pw_hex_dump", "abspath")
   dir_pw_env_setup = get_path_info("pw_env_setup", "abspath")
-  dir_pw_hdlc_lite = get_path_info("pw_hdlc_lite", "abspath")
+  dir_pw_hdlc = get_path_info("pw_hdlc", "abspath")
   dir_pw_i2c = get_path_info("pw_i2c", "abspath")
   dir_pw_interrupt = get_path_info("pw_interrupt", "abspath")
   dir_pw_interrupt_cortex_m = get_path_info("pw_interrupt_cortex_m", "abspath")
diff --git a/pw_hdlc_lite/BUILD b/pw_hdlc/BUILD
similarity index 82%
rename from pw_hdlc_lite/BUILD
rename to pw_hdlc/BUILD
index f80de90..3dbde8c 100644
--- a/pw_hdlc_lite/BUILD
+++ b/pw_hdlc/BUILD
@@ -22,16 +22,16 @@
 licenses(["notice"])  # Apache License 2.0
 
 pw_cc_library(
-    name = "pw_hdlc_lite",
+    name = "pw_hdlc",
     srcs = [
         "decoder.cc",
         "encoder.cc",
-        "pw_hdlc_lite_private/protocol.h",
+        "pw_hdlc_private/protocol.h",
         "rpc_packets.cc",
     ],
     hdrs = [
-        "public/pw_hdlc_lite/decoder.h",
-        "public/pw_hdlc_lite/encoder.h",
+        "public/pw_hdlc/decoder.h",
+        "public/pw_hdlc/encoder.h",
     ],
     includes = ["public"],
     deps = [
@@ -47,10 +47,10 @@
 
 pw_cc_library(
     name = "rpc_channel_output",
-    hdrs = ["public/pw_hdlc_lite/rpc_channel.h"],
+    hdrs = ["public/pw_hdlc/rpc_channel.h"],
     includes = ["public"],
     deps = [
-        ":pw_hdlc_lite",
+        ":pw_hdlc",
         "//pw_rpc:server",
     ],
 )
@@ -58,10 +58,10 @@
 pw_cc_library(
     name = "pw_rpc",
     srcs = ["rpc_packets.cc"],
-    hdrs = ["public/pw_hdlc_lite/rpc_packets.h"],
+    hdrs = ["public/pw_hdlc/rpc_packets.h"],
     includes = ["public"],
     deps = [
-        ":pw_hdlc_lite",
+        ":pw_hdlc",
         "//pw_rpc:server",
     ],
 )
@@ -70,7 +70,7 @@
     name = "encoder_test",
     srcs = ["encoder_test.cc"],
     deps = [
-        ":pw_hdlc_lite",
+        ":pw_hdlc",
         "//pw_stream",
         "//pw_unit_test",
     ],
@@ -80,7 +80,7 @@
     name = "decoder_test",
     srcs = ["decoder_test.cc"],
     deps = [
-        ":pw_hdlc_lite",
+        ":pw_hdlc",
         "//pw_result",
         "//pw_stream",
         "//pw_unit_test",
@@ -91,7 +91,7 @@
     name = "rpc_channel_test",
     srcs = ["rpc_channel_test.cc"],
     deps = [
-        ":pw_hdlc_lite",
+        ":pw_hdlc",
         "//pw_stream",
         "//pw_unit_test",
     ],
diff --git a/pw_hdlc_lite/BUILD.gn b/pw_hdlc/BUILD.gn
similarity index 84%
rename from pw_hdlc_lite/BUILD.gn
rename to pw_hdlc/BUILD.gn
index 11aa3ec..7522842 100644
--- a/pw_hdlc_lite/BUILD.gn
+++ b/pw_hdlc/BUILD.gn
@@ -22,7 +22,7 @@
   include_dirs = [ "public" ]
 }
 
-group("pw_hdlc_lite") {
+group("pw_hdlc") {
   public_deps = [
     ":decoder",
     ":encoder",
@@ -31,10 +31,10 @@
 
 pw_source_set("decoder") {
   public_configs = [ ":default_config" ]
-  public = [ "public/pw_hdlc_lite/decoder.h" ]
+  public = [ "public/pw_hdlc/decoder.h" ]
   sources = [
     "decoder.cc",
-    "pw_hdlc_lite_private/protocol.h",
+    "pw_hdlc_private/protocol.h",
   ]
   public_deps = [
     dir_pw_bytes,
@@ -50,10 +50,10 @@
 
 pw_source_set("encoder") {
   public_configs = [ ":default_config" ]
-  public = [ "public/pw_hdlc_lite/encoder.h" ]
+  public = [ "public/pw_hdlc/encoder.h" ]
   sources = [
     "encoder.cc",
-    "pw_hdlc_lite_private/protocol.h",
+    "pw_hdlc_private/protocol.h",
   ]
   public_deps = [
     "$dir_pw_stream:sys_io_stream",
@@ -68,19 +68,19 @@
 
 pw_source_set("rpc_channel_output") {
   public_configs = [ ":default_config" ]
-  public = [ "public/pw_hdlc_lite/rpc_channel.h" ]
+  public = [ "public/pw_hdlc/rpc_channel.h" ]
   public_deps = [
-    ":pw_hdlc_lite",
+    ":pw_hdlc",
     "$dir_pw_rpc:server",
   ]
 }
 
 pw_source_set("pw_rpc") {
   public_configs = [ ":default_config" ]
-  public = [ "public/pw_hdlc_lite/rpc_packets.h" ]
+  public = [ "public/pw_hdlc/rpc_packets.h" ]
   sources = [ "rpc_packets.cc" ]
   public_deps = [
-    ":pw_hdlc_lite",
+    ":pw_hdlc",
     "$dir_pw_rpc:server",
   ]
 }
@@ -100,7 +100,7 @@
 }
 
 pw_test("encoder_test") {
-  deps = [ ":pw_hdlc_lite" ]
+  deps = [ ":pw_hdlc" ]
   sources = [ "encoder_test.cc" ]
 }
 
@@ -114,14 +114,14 @@
 pw_test("decoder_test") {
   deps = [
     ":generate_decoder_test",
-    ":pw_hdlc_lite",
+    ":pw_hdlc",
   ]
   sources = [ "decoder_test.cc" ] + get_target_outputs(":generate_decoder_test")
 }
 
 pw_test("rpc_channel_test") {
   deps = [
-    ":pw_hdlc_lite",
+    ":pw_hdlc",
     ":rpc_channel_output",
   ]
   sources = [ "rpc_channel_test.cc" ]
@@ -133,7 +133,7 @@
     "rpc_example/docs.rst",
   ]
   inputs = [
-    "py/pw_hdlc_lite/decode.py",
-    "py/pw_hdlc_lite/encode.py",
+    "py/pw_hdlc/decode.py",
+    "py/pw_hdlc/encode.py",
   ]
 }
diff --git a/pw_hdlc_lite/CMakeLists.txt b/pw_hdlc/CMakeLists.txt
similarity index 95%
rename from pw_hdlc_lite/CMakeLists.txt
rename to pw_hdlc/CMakeLists.txt
index 44c0ba8..b61d885 100644
--- a/pw_hdlc_lite/CMakeLists.txt
+++ b/pw_hdlc/CMakeLists.txt
@@ -14,7 +14,7 @@
 
 include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
 
-pw_auto_add_simple_module(pw_hdlc_lite
+pw_auto_add_simple_module(pw_hdlc
   PUBLIC_DEPS
     pw_bytes
     pw_result
diff --git a/pw_hdlc_lite/decoder.cc b/pw_hdlc/decoder.cc
similarity index 96%
rename from pw_hdlc_lite/decoder.cc
rename to pw_hdlc/decoder.cc
index 76d7ca0..b1cc262 100644
--- a/pw_hdlc_lite/decoder.cc
+++ b/pw_hdlc/decoder.cc
@@ -12,17 +12,17 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/decoder.h"
+#include "pw_hdlc/decoder.h"
 
 #include "pw_assert/assert.h"
 #include "pw_bytes/endian.h"
 #include "pw_checksum/crc32.h"
-#include "pw_hdlc_lite_private/protocol.h"
+#include "pw_hdlc_private/protocol.h"
 #include "pw_log/log.h"
 
 using std::byte;
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 namespace {
 
 constexpr byte kUnescapeConstant = byte{0x20};
@@ -135,4 +135,4 @@
                     buffer_.first(current_frame_size_ - sizeof(fcs)));
 }
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/decoder_test.cc b/pw_hdlc/decoder_test.cc
similarity index 96%
rename from pw_hdlc_lite/decoder_test.cc
rename to pw_hdlc/decoder_test.cc
index a74b34c..dcf12e3 100644
--- a/pw_hdlc_lite/decoder_test.cc
+++ b/pw_hdlc/decoder_test.cc
@@ -12,16 +12,16 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/decoder.h"
+#include "pw_hdlc/decoder.h"
 
 #include <array>
 #include <cstddef>
 
 #include "gtest/gtest.h"
 #include "pw_bytes/array.h"
-#include "pw_hdlc_lite_private/protocol.h"
+#include "pw_hdlc_private/protocol.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 namespace {
 
 using std::byte;
@@ -125,4 +125,4 @@
 }
 
 }  // namespace
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/docs.rst b/pw_hdlc/docs.rst
similarity index 83%
rename from pw_hdlc_lite/docs.rst
rename to pw_hdlc/docs.rst
index 606ebbf..c8b574a 100644
--- a/pw_hdlc_lite/docs.rst
+++ b/pw_hdlc/docs.rst
@@ -1,20 +1,19 @@
-.. _module-pw_hdlc_lite:
+.. _module-pw_hdlc:
 
-------------
-pw_hdlc_lite
-------------
+-------
+pw_hdlc
+-------
 `High-Level Data Link Control (HDLC)
 <https://en.wikipedia.org/wiki/High-Level_Data_Link_Control>`_ is a data link
 layer protocol intended for serial communication between devices. HDLC is
 standardized as `ISO/IEC 13239:2002 <https://www.iso.org/standard/37010.html>`_.
 
-The ``pw_hdlc_lite`` module provides a simple, robust frame-oriented
-transport that uses a subset of the HDLC protocol. ``pw_hdlc_lite`` supports
-sending between embedded devices or the host. It can be used with
-:ref:`module-pw_rpc` to enable remote procedure calls (RPCs) on embedded on
-devices.
+The ``pw_hdlc`` module provides a simple, robust frame-oriented transport that
+uses a subset of the HDLC protocol. ``pw_hdlc`` supports sending between
+embedded devices or the host. It can be used with :ref:`module-pw_rpc` to enable
+remote procedure calls (RPCs) on embedded on devices.
 
-**Why use the pw_hdlc_lite module?**
+**Why use the pw_hdlc module?**
 
   * Enables the transmission of RPCs and other data between devices over serial.
   * Detects corruption and data loss.
@@ -25,7 +24,7 @@
 .. admonition:: Try it out!
 
   For an example of how to use HDLC with :ref:`module-pw_rpc`, see the
-  :ref:`module-pw_hdlc_lite-rpc-example`.
+  :ref:`module-pw_hdlc-rpc-example`.
 
 .. toctree::
   :maxdepth: 1
@@ -38,7 +37,7 @@
 
 Frames
 ------
-The HDLC implementation in ``pw_hdlc_lite`` supports only HDLC unnumbered
+The HDLC implementation in ``pw_hdlc`` supports only HDLC unnumbered
 information frames. These frames are encoded as follows:
 
 .. code-block:: text
@@ -77,7 +76,7 @@
 -----------------------
 Frames may be received in multiple parts, so we need to store the received data
 in a buffer until the ending frame delimiter (0x7E) is read. When the
-``pw_hdlc_lite`` decoder receives data, it unescapes it and adds it to a buffer.
+``pw_hdlc`` decoder receives data, it unescapes it and adds it to a buffer.
 When the frame is complete, it calculates and verifies the frame check sequence
 and does the following:
 
@@ -87,7 +86,7 @@
 
 API Usage
 =========
-There are two primary functions of the ``pw_hdlc_lite`` module:
+There are two primary functions of the ``pw_hdlc`` module:
 
   * **Encoding** data by constructing a frame with the escaped payload bytes and
     frame check sequence.
@@ -103,7 +102,7 @@
 ^^^
 .. cpp:namespace:: pw
 
-.. cpp:function:: Status hdlc_lite::WriteUIFrame(uint8_t address, ConstByteSpan data, stream::Writer& writer)
+.. cpp:function:: Status hdlc::WriteUIFrame(uint8_t address, ConstByteSpan data, stream::Writer& writer)
 
   Writes a span of data to a :ref:`pw::stream::Writer <module-pw_stream>` and
   returns the status. This implementation uses the :ref:`module-pw_checksum`
@@ -111,8 +110,8 @@
 
 .. code-block:: cpp
 
-  #include "pw_hdlc_lite/encoder.h"
-  #include "pw_hdlc_lite/sys_io_stream.h"
+  #include "pw_hdlc/encoder.h"
+  #include "pw_hdlc/sys_io_stream.h"
 
   int main() {
     pw::stream::SysIoWriter serial_writer;
@@ -126,13 +125,13 @@
 
 Python
 ^^^^^^
-.. automodule:: pw_hdlc_lite.encode
+.. automodule:: pw_hdlc.encode
   :members:
 
 .. code-block:: python
 
   import serial
-  from pw_hdlc_lite import encode
+  from pw_hdlc import encode
 
   ser = serial.Serial()
   ser.write(encode.ui_frame(b'your data here!'))
@@ -144,7 +143,7 @@
 
 C++
 ^^^
-.. cpp:class:: pw::hdlc_lite::Decoder
+.. cpp:class:: pw::hdlc::Decoder
 
   .. cpp:function:: pw::Result<Frame> Process(std::byte b)
 
@@ -169,7 +168,7 @@
 
 .. code-block:: cpp
 
-  #include "pw_hdlc_lite/decoder.h"
+  #include "pw_hdlc/decoder.h"
   #include "pw_sys_io/sys_io.h"
 
   int main() {
@@ -188,7 +187,7 @@
 
 Python
 ^^^^^^
-.. autoclass:: pw_hdlc_lite.decode.FrameDecoder
+.. autoclass:: pw_hdlc.decode.FrameDecoder
   :members:
 
 Below is an example using the decoder class to decode data read from serial:
@@ -196,7 +195,7 @@
 .. code-block:: python
 
   import serial
-  from pw_hdlc_lite import decode
+  from pw_hdlc import decode
 
   ser = serial.Serial()
   decoder = decode.FrameDecoder()
@@ -216,12 +215,12 @@
 
 HdlcRpcClient
 -------------
-.. autoclass:: pw_hdlc_lite.rpc.HdlcRpcClient
+.. autoclass:: pw_hdlc.rpc.HdlcRpcClient
   :members:
 
 Roadmap
 =======
-- **Expanded protocol support** - ``pw_hdlc_lite`` currently only supports
+- **Expanded protocol support** - ``pw_hdlc`` currently only supports
   unnumbered information frames with a single address byte and control byte.
   Support for different frame types and extended address or control fields may
   be added in the future.
diff --git a/pw_hdlc_lite/encoder.cc b/pw_hdlc/encoder.cc
similarity index 96%
rename from pw_hdlc_lite/encoder.cc
rename to pw_hdlc/encoder.cc
index 0602481..ae30f02 100644
--- a/pw_hdlc_lite/encoder.cc
+++ b/pw_hdlc/encoder.cc
@@ -12,7 +12,7 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/encoder.h"
+#include "pw_hdlc/encoder.h"
 
 #include <algorithm>
 #include <array>
@@ -22,11 +22,11 @@
 
 #include "pw_bytes/endian.h"
 #include "pw_checksum/crc32.h"
-#include "pw_hdlc_lite_private/protocol.h"
+#include "pw_hdlc_private/protocol.h"
 
 using std::byte;
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 namespace {
 
 // Indicates this an information packet with sequence numbers set to 0.
@@ -133,4 +133,4 @@
   return encoder.FinishFrame();
 }
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/encoder_test.cc b/pw_hdlc/encoder_test.cc
similarity index 97%
rename from pw_hdlc_lite/encoder_test.cc
rename to pw_hdlc/encoder_test.cc
index 195f3e4..f3ce559 100644
--- a/pw_hdlc_lite/encoder_test.cc
+++ b/pw_hdlc/encoder_test.cc
@@ -12,7 +12,7 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/encoder.h"
+#include "pw_hdlc/encoder.h"
 
 #include <algorithm>
 #include <array>
@@ -20,12 +20,12 @@
 
 #include "gtest/gtest.h"
 #include "pw_bytes/array.h"
-#include "pw_hdlc_lite_private/protocol.h"
+#include "pw_hdlc_private/protocol.h"
 #include "pw_stream/memory_stream.h"
 
 using std::byte;
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 namespace {
 
 constexpr uint8_t kAddress = 0x7B;  // 123
@@ -160,4 +160,4 @@
 }
 
 }  // namespace
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/public/pw_hdlc_lite/decoder.h b/pw_hdlc/public/pw_hdlc/decoder.h
similarity index 98%
rename from pw_hdlc_lite/public/pw_hdlc_lite/decoder.h
rename to pw_hdlc/public/pw_hdlc/decoder.h
index d15cbe7..77a32a3 100644
--- a/pw_hdlc_lite/public/pw_hdlc_lite/decoder.h
+++ b/pw_hdlc/public/pw_hdlc/decoder.h
@@ -23,7 +23,7 @@
 #include "pw_result/result.h"
 #include "pw_status/status.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 
 // Represents the contents of an HDLC frame -- the unescaped data between two
 // flag bytes. Instances of Frame are only created when a full, valid frame has
@@ -64,7 +64,7 @@
   ConstByteSpan frame_;
 };
 
-// The Decoder class facilitates decoding of data frames using the HDLC-Lite
+// The Decoder class facilitates decoding of data frames using the HDLC
 // protocol, by returning packets as they are decoded and storing incomplete
 // data frames in a buffer.
 //
@@ -151,4 +151,4 @@
   std::array<std::byte, size_bytes> frame_buffer_;
 };
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/public/pw_hdlc_lite/encoder.h b/pw_hdlc/public/pw_hdlc/encoder.h
similarity index 94%
rename from pw_hdlc_lite/public/pw_hdlc_lite/encoder.h
rename to pw_hdlc/public/pw_hdlc/encoder.h
index 485828d..e885c5e 100644
--- a/pw_hdlc_lite/public/pw_hdlc_lite/encoder.h
+++ b/pw_hdlc/public/pw_hdlc/encoder.h
@@ -17,7 +17,7 @@
 #include "pw_status/status.h"
 #include "pw_stream/stream.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 
 // Writes an HDLC unnumbered information frame (UI-frame) to the provided
 // writer. The frame contains the following:
@@ -33,4 +33,4 @@
                     ConstByteSpan payload,
                     stream::Writer& writer);
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/public/pw_hdlc_lite/rpc_channel.h b/pw_hdlc/public/pw_hdlc/rpc_channel.h
similarity index 91%
rename from pw_hdlc_lite/public/pw_hdlc_lite/rpc_channel.h
rename to pw_hdlc/public/pw_hdlc/rpc_channel.h
index a0ae997..84e2a47 100644
--- a/pw_hdlc_lite/public/pw_hdlc_lite/rpc_channel.h
+++ b/pw_hdlc/public/pw_hdlc/rpc_channel.h
@@ -17,14 +17,14 @@
 #include <span>
 
 #include "pw_assert/light.h"
-#include "pw_hdlc_lite/encoder.h"
+#include "pw_hdlc/encoder.h"
 #include "pw_rpc/channel.h"
 #include "pw_stream/stream.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 
 // Custom HDLC ChannelOutput class to write and read data through serial using
-// the HDLC-Lite protocol.
+// the HDLC protocol.
 //
 // WARNING: This ChannelOutput is not thread-safe. If thread-safety is required,
 // wrap this in a pw::rpc::SynchronizedChannelOutput.
@@ -49,7 +49,7 @@
     if (buffer.empty()) {
       return OkStatus();
     }
-    return hdlc_lite::WriteUIFrame(address_, buffer, writer_);
+    return hdlc::WriteUIFrame(address_, buffer, writer_);
   }
 
  private:
@@ -77,7 +77,7 @@
     if (buffer.empty()) {
       return OkStatus();
     }
-    return hdlc_lite::WriteUIFrame(address_, buffer, writer_);
+    return hdlc::WriteUIFrame(address_, buffer, writer_);
   }
 
  private:
@@ -86,4 +86,4 @@
   const uint8_t address_;
 };
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/public/pw_hdlc_lite/rpc_packets.h b/pw_hdlc/public/pw_hdlc/rpc_packets.h
similarity index 92%
rename from pw_hdlc_lite/public/pw_hdlc_lite/rpc_packets.h
rename to pw_hdlc/public/pw_hdlc/rpc_packets.h
index 8d66c32..d22137c 100644
--- a/pw_hdlc_lite/public/pw_hdlc_lite/rpc_packets.h
+++ b/pw_hdlc/public/pw_hdlc/rpc_packets.h
@@ -15,12 +15,12 @@
 
 #include <cstdint>
 
-#include "pw_hdlc_lite/decoder.h"
+#include "pw_hdlc/decoder.h"
 #include "pw_rpc/channel.h"
 #include "pw_rpc/server.h"
 #include "pw_status/status.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 
 inline constexpr uint8_t kDefaultRpcAddress = 'R';
 
@@ -31,4 +31,4 @@
                              std::span<std::byte> decode_buffer,
                              unsigned rpc_address = kDefaultRpcAddress);
 
-}  // namespace pw::hdlc_lite
\ No newline at end of file
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/pw_hdlc_lite_private/protocol.h b/pw_hdlc/pw_hdlc_private/protocol.h
similarity index 96%
rename from pw_hdlc_lite/pw_hdlc_lite_private/protocol.h
rename to pw_hdlc/pw_hdlc_private/protocol.h
index e675d29..496d9b1 100644
--- a/pw_hdlc_lite/pw_hdlc_lite_private/protocol.h
+++ b/pw_hdlc/pw_hdlc_private/protocol.h
@@ -15,7 +15,7 @@
 
 #include <cstddef>
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 
 inline constexpr std::byte kFlag = std::byte{0x7E};
 inline constexpr std::byte kEscape = std::byte{0x7D};
@@ -53,4 +53,4 @@
   std::byte data_;
 };
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/py/BUILD.gn b/pw_hdlc/py/BUILD.gn
similarity index 82%
rename from pw_hdlc_lite/py/BUILD.gn
rename to pw_hdlc/py/BUILD.gn
index 9ef1a81..5532c3e 100644
--- a/pw_hdlc_lite/py/BUILD.gn
+++ b/pw_hdlc/py/BUILD.gn
@@ -19,12 +19,12 @@
 pw_python_package("py") {
   setup = [ "setup.py" ]
   sources = [
-    "pw_hdlc_lite/__init__.py",
-    "pw_hdlc_lite/decode.py",
-    "pw_hdlc_lite/encode.py",
-    "pw_hdlc_lite/protocol.py",
-    "pw_hdlc_lite/rpc.py",
-    "pw_hdlc_lite/rpc_console.py",
+    "pw_hdlc/__init__.py",
+    "pw_hdlc/decode.py",
+    "pw_hdlc/encode.py",
+    "pw_hdlc/protocol.py",
+    "pw_hdlc/rpc.py",
+    "pw_hdlc/rpc_console.py",
   ]
   tests = [
     "decode_test.py",
diff --git a/pw_hdlc_lite/py/decode_test.py b/pw_hdlc/py/decode_test.py
similarity index 97%
rename from pw_hdlc_lite/py/decode_test.py
rename to pw_hdlc/py/decode_test.py
index 9881bec..fd2ebf7 100755
--- a/pw_hdlc_lite/py/decode_test.py
+++ b/pw_hdlc/py/decode_test.py
@@ -19,8 +19,8 @@
 
 from pw_build.generated_tests import Context, PyTest, TestGenerator, GroupOrTest
 from pw_build.generated_tests import parse_test_generation_args
-from pw_hdlc_lite.decode import Frame, FrameDecoder, FrameStatus, NO_ADDRESS
-from pw_hdlc_lite.protocol import frame_check_sequence as fcs
+from pw_hdlc.decode import Frame, FrameDecoder, FrameStatus, NO_ADDRESS
+from pw_hdlc.protocol import frame_check_sequence as fcs
 
 
 def _encode(address: int, control: int, data: bytes) -> bytes:
@@ -169,7 +169,7 @@
 
 
 _CPP_HEADER = """\
-#include "pw_hdlc_lite/decoder.h"
+#include "pw_hdlc/decoder.h"
 
 #include <array>
 #include <cstddef>
@@ -178,13 +178,13 @@
 #include "gtest/gtest.h"
 #include "pw_bytes/array.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 namespace {
 """
 
 _CPP_FOOTER = """\
 }  // namespace
-}  // namespace pw::hdlc_lite"""
+}  // namespace pw::hdlc"""
 
 
 def _cpp_test(ctx: Context) -> Iterator[str]:
diff --git a/pw_hdlc_lite/py/encode_test.py b/pw_hdlc/py/encode_test.py
similarity index 93%
rename from pw_hdlc_lite/py/encode_test.py
rename to pw_hdlc/py/encode_test.py
index bf219d8..d09902acc 100755
--- a/pw_hdlc_lite/py/encode_test.py
+++ b/pw_hdlc/py/encode_test.py
@@ -16,9 +16,9 @@
 
 import unittest
 
-from pw_hdlc_lite import encode
-from pw_hdlc_lite import protocol
-from pw_hdlc_lite.protocol import frame_check_sequence as _fcs
+from pw_hdlc import encode
+from pw_hdlc import protocol
+from pw_hdlc.protocol import frame_check_sequence as _fcs
 
 FLAG = bytes([protocol.FLAG])
 
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/__init__.py b/pw_hdlc/py/pw_hdlc/__init__.py
similarity index 100%
rename from pw_hdlc_lite/py/pw_hdlc_lite/__init__.py
rename to pw_hdlc/py/pw_hdlc/__init__.py
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/decode.py b/pw_hdlc/py/pw_hdlc/decode.py
similarity index 97%
rename from pw_hdlc_lite/py/pw_hdlc_lite/decode.py
rename to pw_hdlc/py/pw_hdlc/decode.py
index 7fa6005..dbf0d83 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/decode.py
+++ b/pw_hdlc/py/pw_hdlc/decode.py
@@ -11,16 +11,16 @@
 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 # License for the specific language governing permissions and limitations under
 # the License.
-"""Decoder class for decoding bytes using HDLC-Lite protocol"""
+"""Decoder class for decoding bytes using HDLC protocol"""
 
 import enum
 import logging
 from typing import Iterator, NamedTuple, Optional
 import zlib
 
-from pw_hdlc_lite import protocol
+from pw_hdlc import protocol
 
-_LOG = logging.getLogger('pw_hdlc_lite')
+_LOG = logging.getLogger('pw_hdlc')
 
 NO_ADDRESS = -1
 _MIN_FRAME_SIZE = 6  # 1 B address + 1 B control + 4 B CRC-32
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/encode.py b/pw_hdlc/py/pw_hdlc/encode.py
similarity index 96%
rename from pw_hdlc_lite/py/pw_hdlc_lite/encode.py
rename to pw_hdlc/py/pw_hdlc/encode.py
index c38f9c3..ea6ec06 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/encode.py
+++ b/pw_hdlc/py/pw_hdlc/encode.py
@@ -13,7 +13,7 @@
 # the License.
 """The encode module supports encoding HDLC frames."""
 
-from pw_hdlc_lite import protocol
+from pw_hdlc import protocol
 
 _ESCAPE_BYTE = bytes([protocol.ESCAPE])
 _FLAG_BYTE = bytes([protocol.FLAG])
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/protocol.py b/pw_hdlc/py/pw_hdlc/protocol.py
similarity index 100%
rename from pw_hdlc_lite/py/pw_hdlc_lite/protocol.py
rename to pw_hdlc/py/pw_hdlc/protocol.py
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/py.typed b/pw_hdlc/py/pw_hdlc/py.typed
similarity index 100%
rename from pw_hdlc_lite/py/pw_hdlc_lite/py.typed
rename to pw_hdlc/py/pw_hdlc/py.typed
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/rpc.py b/pw_hdlc/py/pw_hdlc/rpc.py
similarity index 98%
rename from pw_hdlc_lite/py/pw_hdlc_lite/rpc.py
rename to pw_hdlc/py/pw_hdlc/rpc.py
index 2405f3b..0146c9f 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/rpc.py
+++ b/pw_hdlc/py/pw_hdlc/rpc.py
@@ -25,8 +25,8 @@
 import pw_rpc
 from pw_rpc import callback_client
 
-from pw_hdlc_lite.decode import Frame, FrameDecoder
-from pw_hdlc_lite import encode
+from pw_hdlc.decode import Frame, FrameDecoder
+from pw_hdlc import encode
 
 _LOG = logging.getLogger(__name__)
 
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/rpc_console.py b/pw_hdlc/py/pw_hdlc/rpc_console.py
similarity index 96%
rename from pw_hdlc_lite/py/pw_hdlc_lite/rpc_console.py
rename to pw_hdlc/py/pw_hdlc/rpc_console.py
index 0c033d9..f5484c8 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/rpc_console.py
+++ b/pw_hdlc/py/pw_hdlc/rpc_console.py
@@ -16,7 +16,7 @@
 To start the console, provide a serial port as the --device argument and paths
 or globs for .proto files that define the RPC services to support:
 
-  python -m pw_hdlc_lite.rpc_console --device /dev/ttyUSB0 sample.proto
+  python -m pw_hdlc.rpc_console --device /dev/ttyUSB0 sample.proto
 
 This starts an IPython console for communicating with the connected device. A
 few variables are predefined in the interactive console. These include:
@@ -42,7 +42,7 @@
 import IPython  # type: ignore
 import serial  # type: ignore
 
-from pw_hdlc_lite.rpc import HdlcRpcClient, default_channels, write_to_file
+from pw_hdlc.rpc import HdlcRpcClient, default_channels, write_to_file
 
 _LOG = logging.getLogger(__name__)
 
diff --git a/pw_hdlc_lite/py/setup.py b/pw_hdlc/py/setup.py
similarity index 89%
rename from pw_hdlc_lite/py/setup.py
rename to pw_hdlc/py/setup.py
index 15266ae..a62ce75 100644
--- a/pw_hdlc_lite/py/setup.py
+++ b/pw_hdlc/py/setup.py
@@ -11,18 +11,18 @@
 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 # License for the specific language governing permissions and limitations under
 # the License.
-"""pw_hdlc_lite"""
+"""pw_hdlc"""
 
 import setuptools  # type: ignore
 
 setuptools.setup(
-    name='pw_hdlc_lite',
+    name='pw_hdlc',
     version='0.0.1',
     author='Pigweed Authors',
     author_email='pigweed-developers@googlegroups.com',
-    description='Tools for Encoding/Decoding data using the HDLC-Lite protocol',
+    description='Tools for Encoding/Decoding data using the HDLC protocol',
     packages=setuptools.find_packages(),
-    package_data={'pw_hdlc_lite': ['py.typed']},
+    package_data={'pw_hdlc': ['py.typed']},
     zip_safe=False,
     install_requires=['ipython'],
     tests_require=['pw_build'],
diff --git a/pw_hdlc_lite/rpc_channel_test.cc b/pw_hdlc/rpc_channel_test.cc
similarity index 97%
rename from pw_hdlc_lite/rpc_channel_test.cc
rename to pw_hdlc/rpc_channel_test.cc
index 4f40ba2..efc95a4 100644
--- a/pw_hdlc_lite/rpc_channel_test.cc
+++ b/pw_hdlc/rpc_channel_test.cc
@@ -26,7 +26,7 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/rpc_channel.h"
+#include "pw_hdlc/rpc_channel.h"
 
 #include <algorithm>
 #include <array>
@@ -38,7 +38,7 @@
 
 using std::byte;
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 namespace {
 
 constexpr byte kFlag = byte{0x7E};
@@ -124,4 +124,4 @@
 }
 
 }  // namespace
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_hdlc_lite/rpc_example/BUILD b/pw_hdlc/rpc_example/BUILD
similarity index 80%
rename from pw_hdlc_lite/rpc_example/BUILD
rename to pw_hdlc/rpc_example/BUILD
index 7e6a30b..b2a48a2 100644
--- a/pw_hdlc_lite/rpc_example/BUILD
+++ b/pw_hdlc/rpc_example/BUILD
@@ -24,13 +24,13 @@
         "main.cc",
     ],
     hdrs = [
-        "public/pw_hdlc_lite/decoder.h",
-        "public/pw_hdlc_lite/hdlc_channel.h",
-        "public/pw_hdlc_lite/rpc_server_packets.h",
+        "public/pw_hdlc/decoder.h",
+        "public/pw_hdlc/hdlc_channel.h",
+        "public/pw_hdlc/rpc_server_packets.h",
     ],
     deps = [
-        "//pw_hdlc_lite",
-        "//pw_hdlc_lite:pw_rpc",
+        "//pw_hdlc",
+        "//pw_hdlc:pw_rpc",
         "//pw_rpc:server",
         "//pw_log",
     ],
diff --git a/pw_hdlc_lite/rpc_example/BUILD.gn b/pw_hdlc/rpc_example/BUILD.gn
similarity index 94%
rename from pw_hdlc_lite/rpc_example/BUILD.gn
rename to pw_hdlc/rpc_example/BUILD.gn
index 2c934ae..06a6407 100644
--- a/pw_hdlc_lite/rpc_example/BUILD.gn
+++ b/pw_hdlc/rpc_example/BUILD.gn
@@ -32,7 +32,7 @@
       "$dir_pw_rpc/nanopb:echo_service",
       "$dir_pw_rpc/system_server",
       "..:pw_rpc",
-      dir_pw_hdlc_lite,
+      dir_pw_hdlc,
       dir_pw_log,
     ]
   }
@@ -40,6 +40,6 @@
 
 pw_python_script("example_script") {
   sources = [ "example_script.py" ]
-  python_deps = [ "$dir_pw_hdlc_lite/py" ]
+  python_deps = [ "$dir_pw_hdlc/py" ]
   pylintrc = "$dir_pigweed/.pylintrc"
 }
diff --git a/pw_hdlc_lite/rpc_example/CMakeLists.txt b/pw_hdlc/rpc_example/CMakeLists.txt
similarity index 85%
rename from pw_hdlc_lite/rpc_example/CMakeLists.txt
rename to pw_hdlc/rpc_example/CMakeLists.txt
index d975789..67f4110 100644
--- a/pw_hdlc_lite/rpc_example/CMakeLists.txt
+++ b/pw_hdlc/rpc_example/CMakeLists.txt
@@ -13,14 +13,14 @@
 # the License.
 
 
-add_executable(pw_hdlc_lite.rpc_example EXCLUDE_FROM_ALL
+add_executable(pw_hdlc.rpc_example EXCLUDE_FROM_ALL
     hdlc_rpc_server.cc
     main.cc
 )
 
-target_link_libraries(pw_hdlc_lite.rpc_example
+target_link_libraries(pw_hdlc.rpc_example
   PRIVATE
-    pw_hdlc_lite
+    pw_hdlc
     pw_log
     pw_rpc.nanopb.echo_service
     pw_rpc.server
diff --git a/pw_hdlc_lite/rpc_example/docs.rst b/pw_hdlc/rpc_example/docs.rst
similarity index 81%
rename from pw_hdlc_lite/rpc_example/docs.rst
rename to pw_hdlc/rpc_example/docs.rst
index 11aa87b..d4b4ca3 100644
--- a/pw_hdlc_lite/rpc_example/docs.rst
+++ b/pw_hdlc/rpc_example/docs.rst
@@ -1,12 +1,12 @@
-.. _module-pw_hdlc_lite-rpc-example:
+.. _module-pw_hdlc-rpc-example:
 
 =============================
 RPC over HDLC example project
 =============================
-The :ref:`module-pw_hdlc_lite` module includes an example of bringing up a
+The :ref:`module-pw_hdlc` module includes an example of bringing up a
 :ref:`module-pw_rpc` server that can be used to invoke RPCs. The example code
-is located at ``pw_hdlc_lite/rpc_example``. This section walks through invoking
-RPCs interactively and with a script using the RPC over HDLC example.
+is located at ``pw_hdlc/rpc_example``. This section walks through invoking RPCs
+interactively and with a script using the RPC over HDLC example.
 
 These instructions assume the STM32F429i Discovery board, but they work with
 any target with :ref:`pw::sys_io <module-pw_sys_io>` implemented.
@@ -34,7 +34,7 @@
 3. Flash the firmware image
 ===========================
 After a successful build, the binary for the example will be located at
-``out/<toolchain>/obj/pw_hdlc_lite/rpc_example/bin/rpc_example.elf``.
+``out/<toolchain>/obj/pw_hdlc/rpc_example/bin/rpc_example.elf``.
 
 Flash this image to your board. If you are using the STM32F429i Discovery Board,
 you can flash the image with `OpenOCD <http://openocd.org>`_.
@@ -42,7 +42,7 @@
 .. code-block:: sh
 
  openocd -f targets/stm32f429i-disc1/py/stm32f429i_disc1_utils/openocd_stm32f4xx.cfg \
-     -c "program out/stm32f429i_disc1_debug/obj/pw_hdlc_lite/rpc_example/bin/rpc_example.elf"
+     -c "program out/stm32f429i_disc1_debug/obj/pw_hdlc/rpc_example/bin/rpc_example.elf"
 
 4. Invoke RPCs from in an interactive console
 =============================================
@@ -52,14 +52,14 @@
 
 .. code-block:: text
 
-  $ python -m pw_hdlc_lite.rpc_console --device /dev/ttyACM0
+  $ python -m pw_hdlc.rpc_console --device /dev/ttyACM0
 
   Console for interacting with pw_rpc over HDLC.
 
   To start the console, provide a serial port as the --device argument and paths
   or globs for .proto files that define the RPC services to support:
 
-    python -m pw_hdlc_lite.rpc_console --device /dev/ttyUSB0 sample.proto
+    python -m pw_hdlc.rpc_console --device /dev/ttyUSB0 sample.proto
 
   This starts an IPython console for communicating with the connected device. A
   few variables are predefined in the interactive console. These include:
@@ -93,7 +93,7 @@
 
 .. code-block:: text
 
-  $ pw_hdlc_lite/rpc_example/example_script.py --device /dev/ttyACM0
+  $ pw_hdlc/rpc_example/example_script.py --device /dev/ttyACM0
   The status was Status.OK
   The payload was msg: "Hello"
 
@@ -123,12 +123,12 @@
 
 .. code-block:: sh
 
-  python -m pw_hdlc_lite.rpc_console path/to/echo.proto -s localhost:33000
+  python -m pw_hdlc.rpc_console path/to/echo.proto -s localhost:33000
 
 Run pw_rpc server
 
 .. code-block:: sh
 
-  out/host_clang_debug/obj/pw_hdlc_lite/rpc_example/bin/rpc_example
+  out/host_clang_debug/obj/pw_hdlc/rpc_example/bin/rpc_example
 
-Then you can invoke RPCs from the interactive console on the client side.
\ No newline at end of file
+Then you can invoke RPCs from the interactive console on the client side.
diff --git a/pw_hdlc_lite/rpc_example/example_script.py b/pw_hdlc/rpc_example/example_script.py
similarity index 96%
rename from pw_hdlc_lite/rpc_example/example_script.py
rename to pw_hdlc/rpc_example/example_script.py
index b749c58..eb5f26b 100755
--- a/pw_hdlc_lite/rpc_example/example_script.py
+++ b/pw_hdlc/rpc_example/example_script.py
@@ -20,7 +20,7 @@
 
 import serial  # type: ignore
 
-from pw_hdlc_lite.rpc import HdlcRpcClient, default_channels
+from pw_hdlc.rpc import HdlcRpcClient, default_channels
 
 # Point the script to the .proto file with our RPC services.
 PROTO = Path(os.environ['PW_ROOT'], 'pw_rpc/pw_rpc_protos/echo.proto')
diff --git a/pw_hdlc_lite/rpc_example/hdlc_rpc_server.cc b/pw_hdlc/rpc_example/hdlc_rpc_server.cc
similarity index 94%
rename from pw_hdlc_lite/rpc_example/hdlc_rpc_server.cc
rename to pw_hdlc/rpc_example/hdlc_rpc_server.cc
index 08ceb03..a6184c7 100644
--- a/pw_hdlc_lite/rpc_example/hdlc_rpc_server.cc
+++ b/pw_hdlc/rpc_example/hdlc_rpc_server.cc
@@ -16,8 +16,8 @@
 #include <span>
 #include <string_view>
 
-#include "pw_hdlc_lite/encoder.h"
-#include "pw_hdlc_lite/rpc_packets.h"
+#include "pw_hdlc/encoder.h"
+#include "pw_hdlc/rpc_packets.h"
 #include "pw_log/log.h"
 #include "pw_rpc/echo_service_nanopb.h"
 #include "pw_rpc/server.h"
diff --git a/pw_hdlc_lite/rpc_example/main.cc b/pw_hdlc/rpc_example/main.cc
similarity index 100%
rename from pw_hdlc_lite/rpc_example/main.cc
rename to pw_hdlc/rpc_example/main.cc
diff --git a/pw_hdlc_lite/rpc_packets.cc b/pw_hdlc/rpc_packets.cc
similarity index 92%
rename from pw_hdlc_lite/rpc_packets.cc
rename to pw_hdlc/rpc_packets.cc
index 95e95b3..9d83d86 100644
--- a/pw_hdlc_lite/rpc_packets.cc
+++ b/pw_hdlc/rpc_packets.cc
@@ -12,12 +12,12 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/rpc_packets.h"
+#include "pw_hdlc/rpc_packets.h"
 
 #include "pw_status/try.h"
 #include "pw_sys_io/sys_io.h"
 
-namespace pw::hdlc_lite {
+namespace pw::hdlc {
 
 Status ReadAndProcessPackets(rpc::Server& server,
                              rpc::ChannelOutput& output,
@@ -38,4 +38,4 @@
   }
 }
 
-}  // namespace pw::hdlc_lite
+}  // namespace pw::hdlc
diff --git a/pw_log_tokenized/BUILD b/pw_log_tokenized/BUILD
index c1f5d4a..eac9f29 100644
--- a/pw_log_tokenized/BUILD
+++ b/pw_log_tokenized/BUILD
@@ -51,7 +51,7 @@
     hdrs = ["public/pw_log_tokenized/base64_over_hdlc.h"],
     includes = ["public"],
     deps = [
-        "//pw_hdlc_lite:encoder",
+        "//pw_hdlc:encoder",
         "//pw_tokenizer:base64",
         "//pw_tokenizer:global_handler_with_payload.facade",
     ],
diff --git a/pw_log_tokenized/BUILD.gn b/pw_log_tokenized/BUILD.gn
index d8df960..d03158e 100644
--- a/pw_log_tokenized/BUILD.gn
+++ b/pw_log_tokenized/BUILD.gn
@@ -66,7 +66,7 @@
   public = [ "public/pw_log_tokenized/base64_over_hdlc.h" ]
   sources = [ "base64_over_hdlc.cc" ]
   deps = [
-    "$dir_pw_hdlc_lite:encoder",
+    "$dir_pw_hdlc:encoder",
     "$dir_pw_tokenizer:base64",
     "$dir_pw_tokenizer:global_handler_with_payload.facade",
   ]
diff --git a/pw_log_tokenized/base64_over_hdlc.cc b/pw_log_tokenized/base64_over_hdlc.cc
index ce2d9cb..f7dc0e0 100644
--- a/pw_log_tokenized/base64_over_hdlc.cc
+++ b/pw_log_tokenized/base64_over_hdlc.cc
@@ -19,7 +19,7 @@
 
 #include <span>
 
-#include "pw_hdlc_lite/encoder.h"
+#include "pw_hdlc/encoder.h"
 #include "pw_stream/sys_io_stream.h"
 #include "pw_tokenizer/base64.h"
 #include "pw_tokenizer/tokenize_to_global_handler_with_payload.h"
@@ -43,9 +43,9 @@
   base64_buffer[base64_bytes] = '\0';
 
   // HDLC-encode the Base64 string via a SysIoWriter.
-  hdlc_lite::WriteUIFrame(PW_LOG_TOKENIZED_BASE64_LOG_HDLC_ADDRESS,
-                          std::as_bytes(std::span(base64_buffer, base64_bytes)),
-                          writer);
+  hdlc::WriteUIFrame(PW_LOG_TOKENIZED_BASE64_LOG_HDLC_ADDRESS,
+                     std::as_bytes(std::span(base64_buffer, base64_bytes)),
+                     writer);
 }
 
 }  // namespace pw::log_tokenized
diff --git a/pw_rpc/docs.rst b/pw_rpc/docs.rst
index c44b017..6681a87 100644
--- a/pw_rpc/docs.rst
+++ b/pw_rpc/docs.rst
@@ -9,8 +9,7 @@
 .. admonition:: Try it out!
 
   For a quick intro to ``pw_rpc``, see the
-  :ref:`module-pw_hdlc_lite-rpc-example` in the :ref:`module-pw_hdlc_lite`
-  module.
+  :ref:`module-pw_hdlc-rpc-example` in the :ref:`module-pw_hdlc` module.
 
 .. attention::
 
@@ -143,7 +142,7 @@
 
 4. Register the service with a server
 -------------------------------------
-This example code sets up an RPC server with an :ref:`HDLC<module-pw_hdlc_lite>`
+This example code sets up an RPC server with an :ref:`HDLC<module-pw_hdlc>`
 channel output and the example service.
 
 .. code-block:: cpp
@@ -153,7 +152,7 @@
   // adapt this as necessary.
   pw::stream::SysIoWriter writer;
   pw::rpc::RpcChannelOutput<kMaxTransmissionUnit> hdlc_channel_output(
-      writer, pw::hdlc_lite::kDefaultRpcAddress, "HDLC output");
+      writer, pw::hdlc::kDefaultRpcAddress, "HDLC output");
 
   pw::rpc::Channel channels[] = {
       pw::rpc::Channel::Create<1>(&hdlc_channel_output)};
@@ -178,7 +177,7 @@
     std::array<std::byte, kMaxTransmissionUnit> input_buffer;
 
     PW_LOG_INFO("Starting pw_rpc server");
-    pw::hdlc_lite::ReadAndProcessPackets(
+    pw::hdlc::ReadAndProcessPackets(
         server, hdlc_channel_output, input_buffer);
   }
 
diff --git a/pw_unit_test/BUILD b/pw_unit_test/BUILD
index 8ffaf3e..7d94c19 100644
--- a/pw_unit_test/BUILD
+++ b/pw_unit_test/BUILD
@@ -110,7 +110,7 @@
     deps = [
         ":pw_unit_test",
         ":rpc_service",
-        "//pw_hdlc_lite:pw_rpc",
+        "//pw_hdlc:pw_rpc",
         "//pw_log",
         "//pw_rpc:server",
     ],
diff --git a/pw_unit_test/docs.rst b/pw_unit_test/docs.rst
index ded3202..12f5ca5 100644
--- a/pw_unit_test/docs.rst
+++ b/pw_unit_test/docs.rst
@@ -246,7 +246,7 @@
 
 .. code:: python
 
-  from pw_hdlc_lite.rpc import HdlcRpcClient
+  from pw_hdlc.rpc import HdlcRpcClient
   from pw_unit_test.rpc import run_tests
 
   PROTO = Path(os.environ['PW_ROOT'],
diff --git a/pw_unit_test/rpc_main.cc b/pw_unit_test/rpc_main.cc
index 912deb7..799e8c1 100644
--- a/pw_unit_test/rpc_main.cc
+++ b/pw_unit_test/rpc_main.cc
@@ -12,14 +12,13 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_hdlc_lite/sys_io_stream.h"
 #include "pw_log/log.h"
-#include "pw_unit_test/framework.h"
+#include "pw_rpc_system_server/rpc_server.h"
 #include "pw_unit_test/unit_test_service.h"
 
 namespace {
 
-unit_test::UnitTestService unit_test_service;
+pw::unit_test::UnitTestService unit_test_service;
 
 }  // namespace
 
@@ -32,5 +31,3 @@
 
   return 0;
 }
-
-}  // namespace pw
diff --git a/targets/host/BUILD b/targets/host/BUILD
index 5967231..20fd666 100644
--- a/targets/host/BUILD
+++ b/targets/host/BUILD
@@ -26,7 +26,7 @@
     srcs = ["system_rpc_server.cc"],
     deps = [
         "//pw_rpc/system_server:facade",
-        "//pw_hdlc_lite:pw_rpc",
+        "//pw_hdlc:pw_rpc",
     ],
 )
 
diff --git a/targets/host/BUILD.gn b/targets/host/BUILD.gn
index 4f35eef..65f1f43 100644
--- a/targets/host/BUILD.gn
+++ b/targets/host/BUILD.gn
@@ -29,8 +29,8 @@
 if (current_toolchain != default_toolchain) {
   pw_source_set("system_rpc_server") {
     deps = [
-      "$dir_pw_hdlc_lite:pw_rpc",
-      "$dir_pw_hdlc_lite:rpc_channel_output",
+      "$dir_pw_hdlc:pw_rpc",
+      "$dir_pw_hdlc:rpc_channel_output",
       "$dir_pw_rpc:synchronized_channel_output",
       "$dir_pw_rpc/system_server:facade",
       "$dir_pw_stream:socket_stream",
diff --git a/targets/host/CMakeLists.txt b/targets/host/CMakeLists.txt
index a05e237..dfacc25 100644
--- a/targets/host/CMakeLists.txt
+++ b/targets/host/CMakeLists.txt
@@ -20,7 +20,7 @@
   SOURCES
     system_rpc_server.cc
   PRIVATE_DEPS
-    pw_hdlc_lite
+    pw_hdlc
     pw_rpc.server
     pw_rpc.synchronized_channel_output
     pw_stream.socket_stream
diff --git a/targets/host/system_rpc_server.cc b/targets/host/system_rpc_server.cc
index 203d2a9..2e2c260 100644
--- a/targets/host/system_rpc_server.cc
+++ b/targets/host/system_rpc_server.cc
@@ -15,8 +15,8 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "pw_hdlc_lite/rpc_channel.h"
-#include "pw_hdlc_lite/rpc_packets.h"
+#include "pw_hdlc/rpc_channel.h"
+#include "pw_hdlc/rpc_packets.h"
 #include "pw_log/log.h"
 #include "pw_rpc/synchronized_channel_output.h"
 #include "pw_rpc_system_server/rpc_server.h"
@@ -31,10 +31,10 @@
 stream::SocketStream socket_stream;
 sync::Mutex channel_output_mutex;
 rpc::SynchronizedChannelOutput<
-    hdlc_lite::RpcChannelOutputBuffer<kMaxTransmissionUnit>>
+    hdlc::RpcChannelOutputBuffer<kMaxTransmissionUnit>>
     hdlc_channel_output(channel_output_mutex,
                         socket_stream,
-                        hdlc_lite::kDefaultRpcAddress,
+                        hdlc::kDefaultRpcAddress,
                         "HDLC channel");
 Channel channels[] = {rpc::Channel::Create<1>(&hdlc_channel_output)};
 rpc::Server server(channels);
@@ -43,7 +43,7 @@
 
 void Init() {
   log_basic::SetOutput([](std::string_view log) {
-    hdlc_lite::WriteUIFrame(1, std::as_bytes(std::span(log)), socket_stream);
+    hdlc::WriteUIFrame(1, std::as_bytes(std::span(log)), socket_stream);
   });
 
   socket_stream.Init(kSocketPort);
@@ -54,7 +54,7 @@
 Status Start() {
   // Declare a buffer for decoding incoming HDLC frames.
   std::array<std::byte, kMaxTransmissionUnit> input_buffer;
-  hdlc_lite::Decoder decoder(input_buffer);
+  hdlc::Decoder decoder(input_buffer);
 
   while (true) {
     std::array<std::byte, kMaxTransmissionUnit> data;
@@ -62,8 +62,8 @@
     if (ret_val.ok()) {
       for (std::byte byte : ret_val.value()) {
         if (auto result = decoder.Process(byte); result.ok()) {
-          hdlc_lite::Frame& frame = result.value();
-          if (frame.address() == hdlc_lite::kDefaultRpcAddress) {
+          hdlc::Frame& frame = result.value();
+          if (frame.address() == hdlc::kDefaultRpcAddress) {
             server.ProcessPacket(frame.data(), hdlc_channel_output);
           }
         }
diff --git a/targets/stm32f429i-disc1/BUILD b/targets/stm32f429i-disc1/BUILD
index 3dd27d2..d88113b 100644
--- a/targets/stm32f429i-disc1/BUILD
+++ b/targets/stm32f429i-disc1/BUILD
@@ -40,6 +40,6 @@
     srcs = ["system_rpc_server.cc"],
     deps = [
         "//pw_rpc/system_server:facade",
-        "//pw_hdlc_lite:pw_rpc",
+        "//pw_hdlc:pw_rpc",
     ],
 )
diff --git a/targets/stm32f429i-disc1/BUILD.gn b/targets/stm32f429i-disc1/BUILD.gn
index 2549920..b148981 100644
--- a/targets/stm32f429i-disc1/BUILD.gn
+++ b/targets/stm32f429i-disc1/BUILD.gn
@@ -49,8 +49,8 @@
 
   pw_source_set("system_rpc_server") {
     deps = [
-      "$dir_pw_hdlc_lite:pw_rpc",
-      "$dir_pw_hdlc_lite:rpc_channel_output",
+      "$dir_pw_hdlc:pw_rpc",
+      "$dir_pw_hdlc:rpc_channel_output",
       "$dir_pw_rpc/system_server:facade",
       "$dir_pw_stream:sys_io_stream",
       dir_pw_log,
diff --git a/targets/stm32f429i-disc1/system_rpc_server.cc b/targets/stm32f429i-disc1/system_rpc_server.cc
index 2a66fb8..00b9bf9 100644
--- a/targets/stm32f429i-disc1/system_rpc_server.cc
+++ b/targets/stm32f429i-disc1/system_rpc_server.cc
@@ -14,8 +14,8 @@
 
 #include <cstddef>
 
-#include "pw_hdlc_lite/rpc_channel.h"
-#include "pw_hdlc_lite/rpc_packets.h"
+#include "pw_hdlc/rpc_channel.h"
+#include "pw_hdlc/rpc_packets.h"
 #include "pw_log/log.h"
 #include "pw_rpc_system_server/rpc_server.h"
 #include "pw_stream/sys_io_stream.h"
@@ -30,8 +30,8 @@
 stream::SysIoReader reader;
 
 // Set up the output channel for the pw_rpc server to use.
-hdlc_lite::RpcChannelOutputBuffer<kMaxTransmissionUnit> hdlc_channel_output(
-    writer, pw::hdlc_lite::kDefaultRpcAddress, "HDLC channel");
+hdlc::RpcChannelOutputBuffer<kMaxTransmissionUnit> hdlc_channel_output(
+    writer, pw::hdlc::kDefaultRpcAddress, "HDLC channel");
 Channel channels[] = {pw::rpc::Channel::Create<1>(&hdlc_channel_output)};
 rpc::Server server(channels);
 
@@ -41,7 +41,7 @@
   // Send log messages to HDLC address 1. This prevents logs from interfering
   // with pw_rpc communications.
   pw::log_basic::SetOutput([](std::string_view log) {
-    pw::hdlc_lite::WriteUIFrame(1, std::as_bytes(std::span(log)), writer);
+    pw::hdlc::WriteUIFrame(1, std::as_bytes(std::span(log)), writer);
   });
 }
 
@@ -50,7 +50,7 @@
 Status Start() {
   // Declare a buffer for decoding incoming HDLC frames.
   std::array<std::byte, kMaxTransmissionUnit> input_buffer;
-  hdlc_lite::Decoder decoder(input_buffer);
+  hdlc::Decoder decoder(input_buffer);
 
   while (true) {
     std::byte byte;
@@ -59,8 +59,8 @@
       return ret_val;
     }
     if (auto result = decoder.Process(byte); result.ok()) {
-      hdlc_lite::Frame& frame = result.value();
-      if (frame.address() == hdlc_lite::kDefaultRpcAddress) {
+      hdlc::Frame& frame = result.value();
+      if (frame.address() == hdlc::kDefaultRpcAddress) {
         server.ProcessPacket(frame.data(), hdlc_channel_output);
       }
     }
