Ecco esatto. Per integrare la risposta di quizface, si può dire che:
1. ti serve sapere qual è l'architettura interna della macchina e su quali SoC è basato "il cervello"
2. dov'è memorizzato il programma, eventualmente se il firmware è modificabile a piacimento oppure è firmato, il bootloader qual è, cosa fa e come
3. quali sono i componenti pilotati dal firmware e in che modo. Per esempio, l'Atombios di AMD pilota le sue GPU, cioè implementa una serie di funzionalità e comunica con le GPU nel loro linguaggio macchina ( ovviamente ). Bene, se tu dovessi realizzare un clone dell'Atombios, probabilmente non ti basterebbe una vita, perchè dovresti reversare prima quello originale ( capire cosa fa, come, qual è il linguaggio delle GPU AMD ) e poi realizzare il tuo.
Chiaramente, parlando di macchine più semplici ( è un robot aspirapolvere in fondo ), è assai probabile che siano stati usati componenti commerciali, per i quali sono disponibili ( sui forum specializzati ).
Nel link indicato leggo che hanno già tirato fuori info sul SoC e acceduto all'USART ( serve per la programmazione della macchina, specialmente in assenza di JTAG, che è decisamente meglio, ma evidentemente non c'è in quel robot ).