posts tagged with the keyword ‘teensy’



A large part of the Power Racing Series is Moxie. Moxie is best described as, being awesome. The crowd gets to vote for your car using the Moxie Board. Each button press equals a vote. Being fast is one way to get points, but another way is by being awesome… so, Moxie.

Above you’ll see a photo of the official Moxie Board used by the series. Since we also had a PPPRS race during Maker Faire Milwaukee, which overlapped the race in New York, we had to build our own Moxie Board, so here’s what we did…

The Moxie Board

It looks fairly similar, but it’s a bit smaller and lighter than the original, and it’s got 24 buttons instead of 30 (though I believe the original was recently expanded to have that 30 buttons. Who knew there’d ever be that many cars in a race!)

I got some Coroplast from Midland Plastics for super cheap, and they didn’t have any wide enough, so the black strip running down the center is gaff tape used to hold two pieces together to be wide enough. I then found some scrap wood in the shop at work which was long enough, but too skinny to be used for anything else, and built a simple frame with some small blocks of HDPE in the corners to hold it all together. (I was told the reduced weight of this Moxie Board was a big plus.)

The front is screwed into the wood frame, and the back is held in place with some VELCRO® hook and loop so we could open it to get to the electronics…

As for the inside and the electronics, while the original uses an Arduino Mega with a Bluetooth module to send real-time updates to Patrick’s Android phone which is running some special app, I chose to do it differently.


I’m using a Teensy 3.5 which has plenty of input pins and a built-in MicroSD card slot. The way it works is simple, each button represents a number from 1 to 24, and when pressed, the Teensy gets the value of every button, with the ones not being pressed equal to 0 and the one being pressed equal to 1, and then writes it to a file called MOXIE.csv. When the race is over you just put the MicroSD card in a card reader and import the CSV file into a spreadsheet and grab the last row. (Hopefully your spreadsheet is set up with the names of the cars in the corresponding columns.)

In testing, this all worked fine, but obviously the real world had to come along and crush my hopes and dreams…


Failure #1: Because the Teensy is a low power device, it doesn’t draw much power from the USB battery pack we were using. I’ve seen this before, so I use a battery pack with a built-in LED “flashlight” that stays on, as long as you press and hold the button when turning it on. I told this to two people, but forgot to write instructions to put inside the Moxie Board, so there’s a chance this was not done properly and power was lost. (There is an indicator LED that lights up when a button is pressed, but not a “POWER ON” LED which would have helped… maybe.

Maybe Failure #2: It could be that my code isn’t quite right. I do not have the most recent code that the official Moxie Board is running, but I have an older version that may be close. My code is a little different, but should yield the same results… I think. This is worth checking on.

I also do not have a good way to attach Moxie Labels, so they are just attached with tape or Hook and Loop for now. Ran out of time for anything better. :/

One more note! In the photo there’s a bunch of green wire and LEDs attached to the front of the Moxie Board. Those were added for the night race. All the actual wiring for the Moxie Board is located on the inside.


I’ve heard of one other group working on a Moxie Board that will use a Raspberry Pi, which I thought about doing as well, but ended up choosing a Teensy instead. As we add more races, we’re going to need more boards, so I’m hoping we see more ideas and eventually come up with even better ideas. (Note that I wanted to stay simple because simple gets done while over-complex builds, while fun, don’t always get finished, or work properly. But then, who am I to talk!?)


You may remember version 1.3 of my Teensy Breakout Board, and some of the planned improvements I mentioned. Well, it’s a year later, so I should probably get around to actually talking about it.

I finished v1.4 last year, and I even had a bunch of them made via Seeed Studio’s Fusion PCB service, and they turned out great. We’ve been using them for numerous projects, and just recently I finally got around to the protective fix I added in v1.4.

Teensy USB Protector

I modeled this tiny part and 3D printed it. It’s got a hole for a screw, and two slots for zip ties. The photos below show the rest.

Teensy BOB v1.4

Teensy BOB v1.4

Teensy BOB v1.4

Teensy BOB v1.4

Okay then, the chance of the Micro USB connection getting ripped loose from the Teensy has been reduced quite a bit! The zip ties hold the cable end in place to the plastic piece which attaches to the fifth hole on the PCB. I’m looking forward to never have to see another Micro USB jack ripped loose.

Teensy BOB v1.4

Oh, and one more thing… I ran into Jasmine during Maker Faire and we talked about Tindie, and somehow she convinced me to start putting things up there, so now the Teensy BOB v1.4 is available on Tindie in case you want or need one.


Teensy LC BOB v1.3

Good News, Everyone! The new Teensy LC break-out board is ready! Yes, we’re now at version 1.3 of the Teensy LC BOB.


I’ve made a few changes since version 1.2. I moved the traces from the top to the bottom (how did I miss that!?) and I added an extra ground line so that you can connect a bunch of screw terminals to the ground row even if you don’t solder in header pins at the end of the board and only do the sides. (This also comes in handy if using the Teensy Audio Adaptor Board.)

I’ve also lengthened the board a bit, and added a fifth hole, and here’s why…


For a recent project I discovered that the USB cable was able to rip the USB connector right off the Teensy if hit, twisted, or yanked in the wrong direction. The fifth hole is for adding a piece (wood? plastic?) by screwing it into the bottom and then looping a zip tie around the USB cable for strain relief.

USB mock-up

I scanned in a Micro USB cable and placed it over an image of the board to figure out spacing. It should work. I may end up 3D modeling the piece that holds the USB cable in place.

As I use the boards more I may find other improvements along the way. Also, I’m now able to load in custom images and graphics onto the PCB, so I’m already scheming for my next OSH Park project.


Traffic Lights

I recently repaired the traffic and walk signals at BBCM. The system had been running on a PLC (Programmable Logic Controller) which failed, and rather than find the proprietary programming cable and find and install the PLC Windows software, I decided to just put an Arduino and relay control board in place.

Arduino and Relay Board

I had a Teensy++ 2.0 I had pulled from another exhibit during an upgrade, and an 8 channel relay board on hand. These relay boards come in different configurations from 1, 2, 4, 8, and even 16 relays. Since I really only needed 5 relays (and 5 pins) I could have used an ATtiny85, but I had the Teensy++ 2.0 readily available. The wiring is all done using female to female jumper wires.

Traffic Controller

I mounted everything to a piece of scrap MDF and added mounting holes to that, with the idea that we’d screw the whole thing directly into the wall. The relay board has mounting holes, but the Teensy does not. That’s probably my one complaint about the Teensy boards, is that mounting them isn’t always easy. My Teensy BOB has mounting holes, but for mounting this Teensy++ 2.0 I just used some 3M™ VHB™ tape. (The “VHB” stands for “Very High Bond”). And yes, there are a few 3D printed parts on there. At some point I should make a 3D printed holder/mount for a Teensy++ 2.0


I try to label things clearly. If I look at this thing in 6 months, or 2 years, or someone else has to look at it, I want it to be somewhat apparent what is what, so there’s not a lot of guesswork as to what is going on. I included a label with the name of the Arduino sketch, and I always like to label power supplies. Sometimes we use 5 volts, and sometimes 12 volts, and they typically have tiny hard to read type printed on the side of the power supply that you can’t see when it’s plugged in.

The one thing I should start to add to the labels is the URL of the wiki page where the thing is documented. (Next time I’ll do this.)

Controller Mounted

Here’s the controller mounted. It’s not pretty. We ended up re-using the mount that the PLC was in, rather than screwing it right into the wall. In my defense, we did this repair on the floor during open hours, and it’s mounted high on a wall behind a TV. Does it work? Yes… Is it awesome, no… but again, it totally works.

The wiring for the lights was all 12 VDC, not 110 VAC, so those thin gauge wires are fine. Also, they were labeled, which was handy. (Thanks previous person who worked on this and labeled things!)

Wiring Diagram

I try to create wiring diagrams for everything. I use Fritzing because it’s simple and awesome and open and free. I often don’t find the components I need, but you can always just use a note and some text.

Here’s the script/sequence for the lights:

  1. Green Light is ON
  2. Walk Light is ON
  3. Waiting 4 seconds…
  4. Walk Light is OFF
  5. Don’t Walk Light is BLINKING (for 5 seconds)
  6. Green Light is OFF
  7. Don’t Walk Light is ON
  8. Yellow Light is ON
  9. Waiting 4 seconds…
  10. Yellow Light is OFF
  11. Red Light is ON
  12. Waiting 6 seconds…
  13. Red Light is OFF
  14. Don’t Walk Light is OFF
  15. (Repeat sequence)

I wrote this up to figure out how to program things. I find it helpful to plan things out before I start writing the code.

At first I just talked through the light sequence with someone and we made some assumptions about how it worked. We were slightly wrong, which I discovered when I dug a bit deeper into traffic lights and walk signals. I read at least some of the (very long) Wikipedia page on Traffic Lights. I also hunted for other info, and found some on the Signals FAQ page on the Minnesota Department of Transportation web site. (As I mentioned with the 911 Phone I really do aim for an accurate and realistic experience with these things.)

It’s been a few weeks and the lights have been working fine. Hopefully that will continue to be the case. If something does stop working we’ll open a ticket for it so we have a record. And yes, we do use an issue tracker for our museum exhibits… doesn’t everyone?



When we last saw the Decagon Light the scale model wasn’t functional… Well, it is now functional!

I spent a bit of time at Kenilworth Open Studios getting things wired up and writing some code. I wrote a bunch of functions to run different patterns. Each function can be called with two parameters, the delay (which specifies how long the light is on) and the number of loops the pattern should run. Right now there are just four functions, but they can be called differently, and put into iterative loops. (I’m sure I’ll write more as this project progresses.)


For this test I’ve got the DecaLight powered by a Teensy with one of my Teensy BOBs. There’s also a USB battery pack from Brown Dog Gadgets supplying portable power. The final version will probably use the Teensy but use an AC adapter for power.

Back of DecaLight

I reused a bunch of JST connectors that were chopped off some other wires to plug the LEDs into. There’s also plenty of pieces of wire and heat shrink holding it all together. At some point maybe I’ll build this into a much nicer looking unit.

Teensy + BOB

The combo of an OSH Park purple board with the SparkFun Pink Teensy 3.1 (Anouk Edition) makes this one of the most colorful PCB project I’ve worked on yet.

Here’s a quick video of the light in operation.

« Older Entries |

buy the button:

Buy The Button