Marcduino V3 Firmware Commands

Estimated reading time: 2 min

The MarcDuino system is based on Arduino. It controls animatronics (panel movement, lights and sound) of the droid.
It was developed by CuriousMarc.

Original code rights on the Marcduino V2 firmware belong to CuriousMarc & Neil Hutchinson and Marcduino V3 firmware rights belong to Neil Hutchison.
https://www.curiousmarc.com/r2-d2/marcduino-system

This is a copy of the infos at astromech.com (link below)

Setting Up the V3 Firmware

  • The V3 Firmware adds a number of useful capabilities within a single firmware image. These include:
  • Up to 13 panel servos
  • Ability to set the servo direction individually or as a group
  • Change startup sounds or disable the startup sound entirely
  • Set the default “chatty” behavior on startup

These settings can all be changed on the fly, without re-uploading the firmware.
This provides many benefits, as only one version of the firmware is required regardless of how your servos are installed, or how your Droid is configured.

The drawback to this approach, however, is that you need to do some initial configuration of the firmware to match your needs. This configuring is done by sending “Setup” commands to the MarcDuino board in the same way you would send any other command to the MarcDuino.

In this early guide, we will not cover all commands, just the most common. A full command reference, with explanations, is included below. They should be fairly self-explanatory.

Each of the setup commands need be sent only once. After the command is sent, the setting will be stored in the MarcDuino’s EEPROM. The settings will persist even after a power cycle so there’s no need to perform the setup again unless you’d like to modify your setup.

As with all MarcDuino commands the comand must end with a Carriage Return (0x13) ‘\r’

i.e. :SE00\r to execute sequence 00.

Setting the Servo Direction

Previously, you needed to upload a new firmware version to reverse the servo direction. That is no longer necessary. If you find your servos move in the wrong direction for your set up, sending one of the following commands will reverse them. See the full command reference below to reverse servos individually.

#SD00 – Default
This is the normal mode for servos from the original MarcDuino firmware.

#SD01
Reverse Servo direction. This sets the direction of servos to be reversed as per the special reverse firmware in the past.

Note that because two of the 13 panel servos are now on the slave board, sending the command to the Master MarcDuino will forward the command to the Slave, setting the Slave Servos to reversed as well. This does not affect the Holo Projector Servos on the Slave. Be sure to have your slave connected to your master during programming.

#SRxxy – Set individual servo to either forward or reversed xx=servo number y=direction
Servo number must be 2 digits. i.e. Servo 5 is 05
Set the direction with either 0 or 1 (0 normal, 1 reversed)

e.g. #SR051\r will set servo 5 to reversed.

Setting Default Chatty Mode

#SQ00 – Default
Default Chatty Mode. R2 will make random bleeps and bloops after the startup sound finishes playing

#SQ01
Silent on startup. After the startup sound plays R2 won’t make a sound. Shhhh, R2’s sleeping.

Startup Sound Control

#SS00
Disable Startup Sound, and remove startup sound delay for fast boot of R2.

#SS01 -Default
Default Startup Sound in file 255.

#SS02
Alternate Startup Sound in file 254. Note that you’ll need to add a sound to your sound card for this sound to play!

#SS03
Second Alternate Startup Sound in file 253.

MP3 Player Selection

#SM00 – Default
Uses the SparkFun MP3 Trigger

#SM01
Uses the DF Player Mini.

Note: Put the files in a folder called mp3 in the root directory. The files need to be 0000_name.mp3. (DF Player wants 4 char number). I’ve not tried with 3. Other than that, I copied my Sparkfun files, added a 0 and it works. If copying from a MAC, make sure to remove ‘dot files’ as these cause issues for the DF Player (dot_clean /Volumes/<sd_card_name>)

Infos about Marcduino V3 commands:
https://astromech.net/forums/showthread.php?40790-MarcDuino-V3-Support-Thread

Firmware V3:
Main: https://github.com/nhutchison/MarcDuinoMain
Client: https://github.com/nhutchison/MarcDuinoClient

Tags:
Was this article helpful?
Dislike 1 2 of 3 found this article helpful.
Views: 2505
Previous: Control systems overview
Next: Marcduino