What is the Firecricket XL?
The Firecricket XL is an Arduino compatible light, sound, and motion controller featuring a 48MHz 32-bit ARM Cortex M0+ microcontroller w/ 32K of RAM, a MicroSD slot so you can store sound effects, bitmaps, and configuration files, a 2W stereo audio amplifier*, and an N-FET w/ flyback diode for driving high current inductive loads, like vibration motors or high power LEDs, and a 5V logic buffer for controlling strings of WS2812 Neopixel LEDs!
(* Both channels of the amplifier are connected to the same DAC, so the output is still mono, but two speakers gives you twice the volume!)
What can I do with it?
The Firecricket XL 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! 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 only limit is your imagination. 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 Arduino Zero, plug the Firecricket XL 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 ATSAMD21G18A 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: 14 w/ 12 PWM channels + I2C (SDA/SCL) + UART (RX/TX)
- Analog inputs: 5 12-bit ADC channels
- Analog outputs: 1 10-bit DAC
- Flash (program) memory: 256K
- RAM: 32K
- Voltage regulator: TLV702, 3.5V - 5.5V input / 3.3V, 300mA output
- PCB Dimensions: 2.0" x 1.1" (51 x 28mm)
- Amplifier: TPA2012D2, 2W into 4Ω x 2 w/ 5V supply
- N-FET + Flyback diode: FDN337N + SS24FL, 30V 2A max
- Buffer: SN74LV1T125SC70
Open Source Hardware
The Firecricket XL, like most of the boards I offer, will be open source. This means you'll have access to the Eagle CAD files and schematics, and the ability to modify and reuse the design as you see fit!
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 A1..A5 / 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..6 / 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!
SPKRS L + R / Speakers
These pins connect to the built-in TPA2012D2 stereo amplifier. Simply attach a 4 ohm speaker or two, and the amplifier will supply up to 2.1W of audio power per channel. That's twice as loud as the original Firecricket!
(Please note: Both channels of the amplifier are connected to the single DAC, so even though the amp itself is stereo, the output will be mono!)
If you don't have 4 ohm speakers, 8 ohm speakers will work as well, but be only 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.
(* Within reason. A 2W amplifier probably won't be able to take advantage of a speaker much larger than 4".)
Pins 7..13 / 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 XL 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.
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. If you want to connect LED drivers or other modules it is suggested you use...
SCL + SDA / I2C Bus
The I2C pins are your best bet for connecting breakouts to the Firecricket XL. 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!
Pin 11B / 5V Logic Buffer for Neopixels
This pin is the output of a logic buffer, connected to pin 11, which converts 3.3V logic to 5V logic.. or whatever VIN happens to be.
I chose pin 11 for a very specific reason: it supports DMA!
What's the big deal about DMA you ask?
DMA enables the processor to drive a strip of Neopixels in the background while other tasks are being performed without interruption in your main loop!
Pin 26N / N-FET + Diode for High Power LEDs and Inductive Loads
Pin 26N 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 the LED will also light.
Optional Add-on: The TLC59116 LED Module
The TLC59116 LED module is a constant-current 16 LED driver which works via the I2C bus!
When driving LEDs with this module, you won't need to wire resistors to all your LEDs... and you can control the brightness of them in software!
You also won't be limited to 3mA per LED as you would be if you were attempting to drive LEDs directly from the microcontroller's pins. With this module you can supply each LED with a full 20mA, which is especially handy with those dim rectangular LEDs that are often used for ammo counters!
And, if you need more than 16 LEDs, you can chain multiple modules together or wire them in parallel. Each module has a set of pads on the bottom which you can bridge with solder to set that module's I2C address!
Risks and challenges
I've 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. I don't anticipate any problems delivering the boards to you on time, and as usual, I'll keep you updated every step along the way!Learn about accountability on Kickstarter
- (22 days)