FUnicorn Programming Guide


A brilliant arduino-compatible way to tell people off

It's a unicorn with a special message.  The base kit activates the message by touching the unicorn, and needs to be plugged in to work (you'll need to provide your own USB power or 5-12V power supply).  

The base kit includes:
- The majestic FUnicorn circuit board
- A piece of dark smoked acrylic to obscure the LEDs when unlit
- A cardboard stand
- A beautiful rainbow USB cord
- Stickers

The full kit includes:
- Everything in the base kit
- A Big Red Button kit (everything you need to add a large arcade button)
- A battery cable, 9V battery not included
A Distance Sensor kit (distance sensor, cables, and stand)
- Headers for the arduino shield pattern
- An FUnicorn magnet and more stickers

The code that ships with the FUnicorn activates the message by either touching the unicorn or pressing a button (provide your own or get the full kit).  It can be put into a low power mode for operating off of battery power by pressing and holding the button for the duration of one of the message cycles.  The message cycles through 5 different fun blinking patterns.

I originally made it as a white elephant gift exchange gag, but thought that this really had to exist in the world as a thing people could buy.  So I made it arduino-compatible and developed libraries for it, and added a shield pattern to the back.  I don't know about you, but I'm much more interested in learning new skills when a project speaks to me, so I'm hoping this will inspire people to learn how to do basic embedded programming in the Arduino IDE.

It's a pretty big board at 4" x 7", a nice size to proudly display on your desk.  It has a majestic unicorn on it with **real gold** plating.  There's an unusual cyan-colored LED on the tip of its horn that adds to the magic.  There are 120 red LEDs that spell out...the thing that it says... in cursive.  So don't worry, your kids probably won't be able to read it anyway.  There's a custom-designed cardboard stand that also holds a piece of smoked acrylic in front of its special message, so it's hidden until activated.  And I found amazing rainbow USB cables, which really tie it all together.  It's also completely made in the USA.  This is also an explanation as to why it's not cheaper.  The size of the board, the number of LEDs, and the fact that it's US-made in a relatively small quantity make it cost more.  

There are 120 LEDs soldered in place to spell out its beautiful message in classy-ass cursive.  Although it's a one-trick pony and you can't change what it says, the possibilities of how to trigger the message are endless.  There's an arduino shield pattern on the back, so you can solder on the headers (or wires) and add practically any sensor to it.  Want to make a "6 feet, mofos" sign?  Add a distance sensor and/or a motion detector.  Want to tell someone they're being too loud?  Add a microphone.  Want to simply keep track of how many times you've told people off?  Add an LCD shield.




There are several steps to get the Arduino IDE downloaded and set up to work with your new FUnicorn board the first time. You won’t have to repeat them all every time!

1. Download the Arduino IDE software from and install it on your computer.

2. Open the Arduino IDE

3. Add the Alpenglow Industries Boards Manager url to Preferences:

4. Add Alpenglow Industries boards to Arduino

  • Go to Tools 🡪 Board 🡪 Boards Manager
(It does not matter what board is currently selected under Board: “BoardName”)
  • Search for "alpenglow" in the search bar
  • Click Install for Alpenglow AVR Boards
5. Add the FUnicorn library to Arduino
  • Add through Library Manager
    • This is the preferred method since you’ll automatically receive updates
    • Go to Sketch 🡪 Include Library 🡪 Manage Libraries
    • Go to Sketch 🡪 Include Library 🡪 Add .ZIP Library.
    • Select the .zip folder you just downloaded
You’re done with the once-only steps!
The following steps you’ll need to either do or confirm whenever you want to load new code on your FUnicorn.
6. Loading the Code:
  • Plug in the FUnicorn to a USB port on your computer. USB drivers should automatically load if it’s the first time you’ve plugged it into that USB port.
  • Go to File --> Examples
  • Under "Examples from Custom Libraries" select Alpenglow FUnicorn
  • Choose the example you'd like to load!
7. Code Examples:
  • FUnicorn_ShipCode = the default code shipped with the unicorn, the message is activated via either capacitive touch or by pressing a button. Pressing and holding the button for the duration of a blinking cycle puts it into low-power button-only mode.
  • FUnicorn_CapTouch = capactive touch only code.
  • FUnicorn_Button = low power button-only mode, good for battery power.
  • FUnicorn_ResTouch = sets up the leg and hoof as a resistive touch "button" if you touch them both together. Generally requires a moist finger. Maybe not the best for COVID times.
8. Send the code to the FUnicorn
  • Go to Tools --> Board and under "Alpenglow AVR Boards" select "Alpenglow FUnicorn"
  • Go to Tools --> Port and select the COM port number of your Alpenglow FUnicorn. Make sure the correct one is selected – you may have several on your computer!
  • Click the "-->" button in the toolbar
  • When a "Done Uploading" message appears, the code is loaded!
  • COM port drivers can sometimes crash. If your COM port isn’t showing up, unplug the FUnicorn, restart Arduino, look at the list of COM ports under Tools 🡪 Port and write down the numbers. Click out of Tools 🡪 Port, then plug in the FUnicorn. Go back to Tools 🡪 Port, and the new FUnicorn COM port should be on the list. Select it. Click the 🡪 button on the toolbar again.
  • Also note that your FUnicorn may show up as different COM port numbers when plugged into different USB ports on your computer.
9. If you’re new to Arduino, there are many tutorials on that take you through writing and modifying code, what Sketches are, what .ino files are, and what the setup() and loop() sections are, how to use libraries, and what basic C syntax looks like.

Have any questions?  Contact us!