Close

RS Wedge firmware

A project log for USB CDC Robosapien V1

Robosapien's actions controlled through a virtual USB port. Speaker switchable between Robosapien & external audio jack

christoph-tackChristoph Tack 04/10/2018 at 19:510 Comments

The firmware for the RS Wedge can be found on GitHub.

Communication PC → RS Wedge : CLI

To enable easy interfacing for humans as well as machines, a command line interface has been used.  The Arduino-CommandLine library has been used.

Below you can find a capture of a command line session with the RoboSapien:

Welcome to minicom 2.7

OPTIONS: I18n 
Compiled on Feb  7 2016, 13:37:27.
Port /dev/ttyACM0, 18:02:16

Press CTRL-A Z for help on special keys                 
                                                        
>                                                      
> action 196                                            
> action 197
> action 198
> audio 0                                                                       
> action 198                                                                    
> action 197                                                                    
> action 197                                                                    
> action 196                                                                    
> action 195                                                                    
> audio 1                                                                       
> 

Commands

Two commands are implemented "action" and "audio".  

The "action" command executes one of the Robosapien standard actions.  On a standard Robosapien, you would have used the remote to start these actions.  A list of actions can be found in the source code of the RS wedge.

The "audio" command switches the Robosapien's audio source : "0" selects the audio jack as source, which allows the connected laptop to route speech or music to the Robosapien.  "1" selects the Robosapien controller as source.

Communication RS Wedge → Robosapien : IR protocol

The easiest way to probe the original protocol is at the back of the main board, at the connector named "HEAD".  Remove this PCB, solder your probes to "GND" (black wire of "HEAD"-connector) and "IROUT" (white wire of "HEAD"-connector).

The IR-protocol is quite simple.  The default state of the IR-OUT signal is high.  The message starts with a low pulse that lasts 6.26ms and is followed by databits 7 downto 0.

Using this information, you should be able to figure out that the screen capture shows the 0xCE command.

According to Aibohack, the protocol uses 1200baud.  I noticed quite a lot of jitter between bits.  Pulses of 909ms wide are not uncommon.

Keeping the Robosapien awake

Question: "How to keep the Robosapiens on indefinitely while keeping it still & quiet?"

Answer: Sending 0xEF once a minute keeps the Robosapiens on.

Discussions