Software Architecture
Not logged in

The Platypus CPU runs the system, mediating and routing between attached resources.

Remember, the glossary can be useful.


The process of negotiating with the Management Module (MM) on the Control Channel (CC) for each Feature Module (FM) is spelled out here. CC is UART, running at a rate suited to the FM.

  1. FM, upon power up (hot pluggable), will boot itself, then pull the ATTENTION pin HIGH.
  2. FM announces its name and uuid at 9600 BAUD (8n1) on the CC
  3. MM responds on the CC that the name and ID are registered without conflict. OR, if there is a problem, MM pulls SLEEP pin HIGH.
  4. FM sends its preferred BAUD rate.
  5. MM decides if MM needs to run slower, responds acceptable BAUD rate that each can handle.
  6. (potentially, negotiation reallocates CC to SPI bus, along with suitable clock rate. consider this option, instead of bit-banging software serial, for low spec parts that have SPI peripheral but neither UART peripheral nor precise clock signals. though, if there is no need or ability of the FM to process CC communications from the MM, then remaining on software serial, and responding appropriately only on ATTENTION, /SLEEP, and /RESET pins is perfectly acceptable)
  7. FM sends SPI clock rate that it prefers.
  8. MM responds with SPI clock rate that will be acceptable to both.
  9. FC sends series of Service Paths to features available on the FM.
  10. MM maps those into the Global Service Table (GST) alongside other feature modules and nested beneath the System Root Path.
  11. FM sends Service Path Parameter Sets, including their attributes, available at each Service Path. (not sure what this looks like, just yet.)