About this project
What is the Firecricket?
The Firecricket is an Arduino compatible light, sound, and motion controller featuring a 48MHz 32-bit ARM Cortex M0+ microcontroller w/ 16K of RAM, a MicroSD slot so you can store sound effects, bitmaps, and configuration files, a 2.5W audio amplifier, and an N-MOSFET w/ flyback diode for driving high current inductive loads, like vibration motors or 3W LEDs.
What can I do with it?
The Firecricket is designed to add light, sound, and motion to replica props from your favorite movies, video games, TV shows, and comics. It's a must have for any cosplayer or anyone who wants to add some extra flair to their Halloween costume or decorations!
But the only limit to what you can do with it is your imagination!
Use it to add lights and sounds to a toy car or space ship. Or, make a favorite stuffed animal talk and "purr" with a vibration motor. Or, place it in a chest with a limit switch on the lid and a high power LED and have it play the fanfare from the Legend of Zelda whenever it's opened. The possibilities are endless!
How do I program it?
Programming is easy! Like all Arduino compatibles you simply download the Arduino IDE, install the configuration files through the board manager, select the Firecricket, plug the board into your PC using a MicroUSB cable, compose your sketch, and hit the upload button in the IDE when you're ready!
A sample sketch that performs all the functions seen in the demo will also be provided so you'll have a solid starting point to build upon!
- Microcontroller: Atmel ATSAMD21E17A ARM Cortex M0+
- Clock speed: 48 MHz
- Operating voltage: 3.3V
- I/O pin limits: 3.3V, 3 mA (7mA w/ strong drive enabled)
- Digital I/O pins: 12 w/ 10 PWM channels + 2 dedicated I2C pins w/ pullups
- Analog inputs: 3 12-bit ADC channels
- Analog outputs: 1 10-bit DAC
- Flash (program) memory: 128K
- RAM: 16K
- Voltage regulator: TLV702, 3.5V - 5.5V input / 3.3V, 300mA output
- Dimensions: 1.65 x 1.0" (42mm x 25mm)
- Amplifier: TPS6211A1, 2.5W into 4Ω w/ 5V supply
Pin A0 / DAC + Volume
Pin A0 is the output for the DAC. Typically you'd just ignore it as it can't be used if you're going to be playing sound effects, but if you'd like to add a volume control to your project, there's a trace on the underside of the board between A0 and the pad in the middle that goes to the amplifier. If you cut that trace, you can connect a potentiometer with the wiper on the center pad, and the ends attached to A0 and GND, and voila, instant volume knob!
Pins A3 + A4 / Analog + Digital IO
These pins serve as both analog and digital inputs, or digital outputs. Want to connect a potentiometer to adjust the speed of your animated LED display? These pins are just what the doctor ordered! In my demo you'll noticed I've attached these pins to switches and used them as digital inputs. You could also attach LEDs to them and use them as outputs. The possibilities are endless!
AREF / Analog Reference
You can just ignore this pin. If you ever need this, you'll know!
Pins 0..5 / Digital IO
These pins serve as digital inputs and outputs. That means you can connect LEDs (Don't forget the resistors!), switches, or a multitude of other things!
Pins 0 + 1 are special in that they do double duty as the RX/TX pins if you ever need to do serial communication that doesn't involve debugging, which takes place over the USB port. If you wish to connect a Bluetooth module for example, this is where you'd do so!
SPKR / Speaker
These pins connect to the built-in TPA6211A1 amplifier. Simply attach a 4 ohm speaker, and the amplifier will supply up to 2.5W of audio power!
If you don't have a 4 ohm speaker, a pair of 8 ohm speakers connected in parallel will do nicely, but a single 8 ohm speaker will only be half as loud.
And speaking of loudness... For maximum volume, choose a speaker that is as big as you can fit in your enclosure, and with the highest sensitivity rating and widest frequency range you can get. A larger speaker will reproduce lower frequencies making it seem louder and of course the audio quality will be improved. Realistically though, for an amplifier of this power, 4" is probably as large as you will want to go.
Pins 8 + 9 / Servos and Relays
These pins are designed with servos and relays in mind. They have VIN on the center pad instead of 3.3V so if you connect a 5V supply you will have that available to power them. And even if you don't have a 5V supply you may find that 3.7V will be sufficient. In my demo for instance, you can see that I am driving a typical servo rated for 4.5-5V from a 3.7V supply when I have the LiPo battery connected.
A word of warning! The IO pins of the Firecricket are not 5V tolerant, so if you're going to use these pins as inputs, for example, to connect switches as I have in the demo, make sure you either connect the switch to ground and enable the internal pull up, or do as I did in the demo and connect it to one of the spare 3V3 pads on the board and enable the internal pull down.
Pins 10..13 / SPI
These are the pins for the SPI bus, and they connect to the SD card. You can use them to connect other breakout boards which require SPI communication, but this is discouraged as the SPI bus will be in constant use whenever audio is playing, and pin 10 is the chip select for the SD card. If you want to connect additional LED drivers or other modules it is suggested you use...
Pins 16 + 17 / I2C
The I2C pins are your best bet for connecting breakouts to the Firecricket. These pins have built-in 4.7K pull ups and are conveniently located next to 3V3, GND, and VIN, with three sets of pads available for you to use. As you can see in my demo, I've connected an OLED display here, and Adafruit makes a nice PCA9685 breakout that also works over I2C and can be used to drive both LEDs and servos if you need more outputs!
Pin 26 / High Power Inductive Loads and Status LED
Pin 26 is designed for connecting devices like vibration motors, solenoids, or high power LEDs that require more current and voltage than a normal pin can supply.
The two pairs of pads for this pin are tied together with an N-FET on the - side, VIN on the + side, and a flyback diode wired in reverse between them to protect against high voltage spikes when driving inductive loads.
Note: This pin is connected to the red status LED so when you trigger it that LED will also light.
Risks and challenges
As you saw in the video, a prototype of the Firecricket has already been assembled and tested! I've also received quotes for manufacture, taken shipping costs and Kickstarter's cut into account, and have chosen components that are available in large quantities from reputable distributors. As such, I don't anticipate any problems delivering the boards to you on time, and I'll keep you updated every step along the way!Learn about accountability on Kickstarter
Support this project
- (30 days)