This is a modified Shadow sketch to work with the Penumbra controller.
The folder marcduino-body
contains a customised version of the v3 MD firmware that has sequences for the body panels and tools. These have been ported from Tim Hebel's SHADOW MD fork.
The marcduino-dome
and marcduino-slave
contain v3 MD firmware with additional sequences.
The PenumbraShadowMD sketch has also been updated to work with custom sketches for PrintedDroid DPL/CSL+/LDPL, Astropixels and the Lost Rebel MP..
Use the pin mapping below for wiring up your servos to your body MD:
1 - Data Panel Door
2 - Upper Utility Arm
3 - Lower Utility Arm
4 - Left Bread Pan Door
5 - Left Arm Raise/Lower (Gripper)
6 - Left Arm Tool (Gripper)
7 - Right Bread Pan Door
8 - Right Arm Raise/Lower (Interface Arm)
9 - Right Arm Tool (Interfface Arm)
10 - Charge Bay Door
Controller button mappings:
Control System:
PS + CROSS (Disable Drive)
PS + CIRCLE (Enable Drive)
L3 + L1 (Toggle Overspeed)
L2 + CROSS (Disable Dome Automation)
L2 + CIRCLE (Enable Dome Automation)
Drive Remote:
Arrow Up (HP Random Move/On)
Arrow Down (Quiet)
Arrow Left (Mid Awake)
Arrow Right (Holo Lights On/Off)
Arrow Up + CROSS (Volume Up)
Arrow Down + CROSS (Volume Down)
Arrow Keft + CROSS (Previous Song)
Arrow Up + CROSS (Next Song)
Arrow Up + CIRCLE (Reset - Close Panels, Holos Reset, Logics Reset)
Dome Remote:
Arrow Up (Scream, Wiggle Dome and Body)
Arrow Down (Wave Bye, Sad Sound)
Arrow Left (Disco)
Arrow Right (Cantina)
Arrow Up + CIRCLE (Leia)
Arrow Down + CIRCLE (Knight Rider)
Arrow Left + CIRCLE (Smirk)
Arrow Right + CIRCLE (Marching Ants)
Arrow Up + CROSS (Utility Arms Open/Close)
Arrow Down + CROSS (Data Port and Charge Bay Open/Close)
Arrow Left + CROSS (Use Interface Arm)
Arrow Right + CROSS (Use Gripper Arm)
Flashing MD firmware:
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -p m328p -P usb -c usbtiny -U flash:w:./marcduino-dome.hex
Astropixels/Penumbra ShadowMD:
make clean
make build
make upload
Other sketches build + upload from Arduino IDE. The Penumbra Shadow MD sketch can also build from the IDE, but make sure the flash size is set to 16MB.
- https://github.com/reeltwo/Reeltwo
- https://github.com/rimim/espsoftwareserial
- https://github.com/reeltwo/USB_Host_Shield_2.0
- https://github.com/DFRobot/DFRobotDFPlayerMini
A web-based installer for the latest firmware can be found here: https://reeltwo.github.io/Penumbra-Installer/
The firmware should build with esp32 board package 1.0.6 or 2.0.5. For ESP32S2 support 2.0.5 is required.
cd ~/Documents/Arduino
curl -o Arduino.mk https://raw.githubusercontent.com/reeltwo/Arduino/master/Arduino.mk
# Fetch repository
git clone https://github.com/reeltwo/PenumbraShadowMD
# Enter directory
cd PenumbraShadowMD
# Build firmware
make
cd ~/Arduino
wget https://raw.githubusercontent.com/reeltwo/Arduino/master/Arduino.mk
# Fetch repository
git clone https://github.com/reeltwo/PenumbraShadowMD
# Enter directory
cd PenumbraShadowMD
# Build firmware
make
Restart the controller.
#SMRESTART
Delete all preferences, reset button triggers to sketch defaults, unpair controllers.
#SMZERO
List all button triggers and associated commands.
#SMLIST
Set the volume to the specified value.
#SMVOLUME500
Set the startup sound to the specified file number.
#SMSTARTUP255
Set the minimum delay before playing the next random sound.
#SMRANDMIN600
Set the maximum delay before playing the next random sound.
#SMRANDMAX10000
Disable random sound playback.
#SMRAND0
Enable random sound playback.
#SMRAND1
Set the button trigger (trigger) to the specified action (action).
#SMSET btnUP_MD $83
Reset command for specified trigger to sketch default.
#SMDEL btnUP_MD
Set the sound output module to of the following:
- 0: Disabled
- 1: MP3 Trigger
- 2: DFMini Player
- 3: HCR Vocalizer
#SMSOUND 3