On OreSat, more than 4 RPDOs and 4 TPDOs are need by a device.
How the OreSat device software handles it:
Every device is given the space for 4 NODE-IDs. So if a boards is given NODE-ID 0x12, nodes 0x13, 0x14, & 0x15 will never exist and their TPDOs and TPDOs will be use by the 0x12 node. There for all devices on OreSat have up to 16 RPDOs and 16 TPDOs.
All COB-ID in the OD for the PDOs will be the COB-ID for node 0x00 (0x180, 0x280, etc) and the device software will add the NODE-ID and a offset to the COB-ID from the OD, unless a specific COB-ID is wanted. So if the COB-ID is NOT0x180, 0x280, etc the device software will NOT add the NODE-ID and a offset to the COB-ID from the OD. The offset it the difference between the NODE-ID of the device and the default NODE-ID for that specific RPDO/TPDO.
Example with NODE-ID 0x11 and 6 TPDOs:
COB-ID from OD: 0x180, 0x284, 0x380, 0x480, 0x180, & 0x280
COB-ID with changes: 0x191, 0x284, 0x391, 0x491, 0x192, & 0x292
Notes
This doesn't really follow a standard.
May be good to not expect exactly 16 RPDOs and 16 TPDOs in OD (make it more generalized)
How this works may change if OreSat swaps to using Lely-CANopen instead of CANopenNode.
On OreSat, more than 4 RPDOs and 4 TPDOs are need by a device.
How the OreSat device software handles it: Every device is given the space for 4 NODE-IDs. So if a boards is given NODE-ID
0x12
, nodes0x13
,0x14
, &0x15
will never exist and their TPDOs and TPDOs will be use by the0x12
node. There for all devices on OreSat have up to 16 RPDOs and 16 TPDOs.All COB-ID in the OD for the PDOs will be the COB-ID for node
0x00
(0x180
,0x280
, etc) and the device software will add the NODE-ID and a offset to the COB-ID from the OD, unless a specific COB-ID is wanted. So if the COB-ID is NOT0x180
,0x280
, etc the device software will NOT add the NODE-ID and a offset to the COB-ID from the OD. The offset it the difference between the NODE-ID of the device and the default NODE-ID for that specific RPDO/TPDO.Example with NODE-ID 0x11 and 6 TPDOs: COB-ID from OD:
0x180
,0x284
,0x380
,0x480
,0x180
, &0x280
COB-ID with changes:0x191
,0x284
,0x391
,0x491
,0x192
, &0x292
Notes
Example DCF file: battery.txt