Nếu dữ liệu của bạn đi qua XBees, bạn nên đặt các mô-đun vào chế độ API với các ký tự thoát, chia dữ liệu của bạn thành các gói logic và tận dụng thực tế là trong chế độ API, gói được cung cấp cho XBee sẽ còn nguyên vẹn hoặc không có gì. Thiết kế giao thức của bạn xung quanh việc truyền các khối 1-255 byte và để các mô-đun XBee lo lắng về cách phân phối dữ liệu trong mỗi khối. Đừng lo lắng về việc duy trì tính toàn vẹn của các gói riêng lẻ hoặc các phân chia giữa chúng. Các mô-đun Digi sẽ làm tốt công việc chăm sóc điều đó. Điều lớn nhất bạn cần lo lắng là thực tế là ngay cả khi nút truyền gói tin tin rằng nó không được gửi và gửi thay thế, người nhận cuối cùng có thể nhận được nó - thậm chí có thể sau khi nó được thay thế. Mọi thứ có thể dễ dàng nhất nếu bạn thiết kế giao thức của mình sao cho một bên là "chính"; nếu chủ yêu cầu một phần dữ liệu, nô lệ nên gửi nó một lần và không lo lắng về việc chủ có nhận được dữ liệu đó không. Nếu chủ không nhận được dữ liệu mà nó muốn, nó có thể yêu cầu lại.
Slave nên gán một số loại số thứ tự cho dữ liệu và chủ nên gán số thứ tự cho các yêu cầu trạng thái thay đổi nô lệ. Nếu yêu cầu của chủ có dạng "gửi mục đầu tiên có số thứ tự lớn hơn XXX" và mỗi phần của mục dữ liệu của nô lệ bao gồm số thứ tự của chính nó và của mục trước đó (nếu chúng không được đánh số liên tiếp ), các gói đến muộn có thể khiến nô lệ gửi dữ liệu cho chủ, nhưng chủ sẽ không gặp khó khăn gì trong việc bỏ qua các phản hồi đến muộn. Nếu nô lệ nhận được yêu cầu thay đổi trạng thái có số thứ tự thấp hơn yêu cầu trước đó, thì nên bỏ qua yêu cầu đó, vì nó đã được áp dụng ngay cả trước khi nhận được.