There are only five PGNs that are absolutely essential for an RV-C node. All nodes must support these, even if they have no real function on the network.
DM1 - The DM1 must be sent on a regular schedule. This is the "heartbeat" that allows other nodes to detect your presence on the network.
NAME - This message prevents two nodes from using the same source address. Even if you use static addressing, sending this PGN is essential.
Product ID - The DM1 says you are here. NAME says where you are. Product ID says who you really are. This PGN is crucial as it allows a service technician to identify your product exactly.
Request for PGN - This is the only PGN that you absolutely must respond to. If you don't respond to requests, no one will ever know your NAME or ID. Remember to parse both the address-specific version and the global version.
ACK/NAK - At the very least you need to acknowledge Requests for PGNs. Pay attention to what needs to be acknowledged and what doesn't. Do not send a NAK when a global request for a PGN is sent that you don't support. Do acknowledge any address-specific requests. Do not acknowledge merely informational messages, but do acknowledge commands to your device.
We suggest to all programmers to begin every project by implementing these five basic features. Only after these are complete and tested should you add the application-specific commands and messages.