This is the Arduino/lightsaber/prop board you are looking for! It all started back in 2013 when we released the DIY Lightsaber Audio Board project. Since then we wanted to integrate that project into a custom little board with everything you need not only to create the most spectacular lightsabers, but also to create any kind of prop that needs audio, motion and light effects.
The result is called PropBoard: a board you can use as a lightsaber sound/light/motion board using our PBSaber firmware, or program it yourself using the Arduino IDE to create amazing props.
On the board there is:
- the microcontroller, a cortex M4 with 256KB flash, 64KB of RAM, hard floating point and DSP instructions.
- A micro SD slot, with super fast access thanks to the SDIO in 4-bit configuration and 48MHz clock access.
- 3 high-brightness LED drivers optimized to drive LEDs up to 1A each.
- Powerful digital audio, through I2S and codec with up to 96kHz sample rate and 24-bit capabilities, connected to a mono, 2.9W, Class-D amplifier.
- A motion sensor: the Freescale/NXP MMA8452Q 3-axis digital accelerometer.
- A micro USB connector and an USB-to-UART FTDI converter.
The board supports power supply in two configurations: from 3.7V to 5V and from 5.5V to 12V, switchable by a simple hardware setting (you can power the board from a single or dual 18650 battery cell). The on-board 3.3V and 5V LDO regulators take care of converting the input voltage to the required voltage of the board.
There is also 13 general purpose input/output pins that you can use, for example, to connect additional LEDs, or use them as UART, I2C, SPI, PWM, ADC or external interrupts. There are also pins for GND, 3.3V and 5V output to power external peripherals.
You can program the PropBoard using the Arduino IDE. Download the PropBoard board support package and start developing your props right away! The PropBoard comes pre-programmed with a bootloader that allows you to start downloading sketches right out-of-the-box.
We have some amazing projects for you to try, including our super-powerful PBSaber project, that allows you to use the PropBoard as a lightsaber soundboard, fully configurable, without writing a single line of code.
In case you want to roll your own personalized props, we have developed an extensive but very simple API to interact with every part of the hardware available on the board, including functions for playing WAV files from the SD, driving LEDs, sense motion, plus all you can expect from the classical Arduino API: PWM, ADC, Wire, SPI, IO, etc. All the API functions and examples regarding the PropBoard can be found here.
The API was conceived to be as simple as it gets: play and mix several WAV file by just calling a single function, or start an automatic shimmering effect on the LEDs, asynchronously, leaving room for your sketch to execute.
There are also supporting libraries to ease the inclusion of LED strips (WS2812, APA102 and SK6812RGBW) and momentary buttons as well.
Here are some of the many possibilities you can do with the PropBoard:
Features and specifications
- STM32F401RCT6 Cortex M4 microcontroller, with FPU and DSP instructions and on-board 10MHz ceramic resonator.
- 3x ST LED2001 LED drivers, with output current up to 1A each and shortcircuit/over-current/over-temperature protection. Recommended LED forward current: 700mA and up.
- MMA8452Q 3-axis, digital, accelerometer with two dedicated interrupt pins.
- Micro SD slot with push-push technology accessed through 4-bit SDIO and 48MHz clock.
- Micro USB connector.
- Wolfson WM8523 I2S audio codec, with sample rates up to 96kHz and up to 24-bit bit depth. Programmable master volume through I2C.
- ISSI IS31AP2005 2.9W Class-D mono amplifier.
- Mute control.
- FTDI FT231XQ-R for USB-to-UART conversion.
- Auto-reset circuit for sketch download.
- Voltage sensing for battery charge reading.
- Row of 17 pins including 13 pins for general purpose IO (or PWM, ADC, SPI, I2C, external interrupt) plus 2 GND pins and pins for 3.3V and 5V output.
- On-board 3.3V and 5V LDO regulators.
- Battery disconnection circuitry to protect the battery from involuntary recharge when USB is connected.
- SWD JTAG connector.
- Power supply ranges: 3.7V to 5V or 5V to 12V.
- Typical stand-by current consumption: ~3.5mA @ 7.4V.
- Supports 4-8 Ohm speakers.
- Dimensions: 56mm x 24mm.
- 3 mounting holes.
- 4 layers PCB with ENIG contacts.
Guides and documentation
- PropBoard manual
- PBSaber project
- PropBoard Audio API
- PropBoard Motion API
- PropBoard LED API
- PropBoard Power API
- PropBoard Advanced Audio API
- LedStrip library
- PropButton library
- PropConfig library
- PropBoard simple lightsaber tutorial
- PropBoard Halo: Reach M6G Magnum tutorial
- Battery indicator using an OLED display
- Mechanical (dimensions)
- Bill of materials
- Eagle files
- STL files for a 25mm hilt chassis (as seen in the pictures).
Reduced mechanical dimensions (56mm long, 24mm wide) and 3 mounting holes.
You must be logged in to post a comment.
Does this have the ability to drive displays, like LCD screens or touch screens?
The chip does not have an LCD controller. As for displays, you can drive some displays like for example: https://www.artekit.eu/doc/guides/propboard-battery-indicator/
Touch controllers are usually driven by I2C, so it would be possible. You have to implement the code for it.
Would it be possible to generate a square wave on a pin (like you do on an arduino) but pass that to the audio amp?
This would to be able to create accelerometer controlled 8bit effects separately to the audio player
Apart from some weird hardware hack, I would say it is not possible. But it can be done with software: filling a buffer with data for a square wave (or any other waveform, sine, saw, etc.) and output it as any other audio source, inheriting from the AudioSource class: https://github.com/Artekit/propboard-core/blob/master/cores/propboard/AudioSource.h
It is in fact a nice idea for a PropBoard tone library, making it possible to play and mix several tones at once.
Can the Prop Board be programmed to use the accelerometer to control the master volume in real time? For example, holding a toy tie fighter… moving it faster would make the volume louder (engine sound loop), as it slows down, the volume ramps down equally. I read the motion API and I understood the interrupt commands, but it wasn’t clear to me if a continuous reading from the accelerometer could control a function like the volume command.
Yes, the accelerometer can be read continuously. With the read values you can then calculate speed and set the volume accordingly. Check the Motion.read (g) section of the Motion API.
Hello, when will more libraries be included to support additional LED strips? I’m very eager to prototype an invention using Neopixel RGB+W LED strips (4 LEDs in each cell). Your prop board is the perfect solution…. if I can somehow get it to support an RGB+W strip. Any information is greatly appreciated. Thank you.
Hi. Is the SK6812RGBW LED? We don’t have any around at the moment, so I’d need find a strip and implement it. The timing looks much like the RGB (WS2812B) one, so it should be a matter of extending the current LedStrip library.
Yes, it is the SK6812RGBW LED. Thank you for clarifying. I’m glad to hear it’s very similar and easy to implement. Perhaps, if I get my hands on a strip soon, I could send it your way to help the process. Thank you for your help.
FInally we have released v1.0.3 with support for SK6812RGBW LED strips.