Maker Faire Bay Area 2012 Countdown Timer

Great news! The Call for Makers has been launched for Maker Faire Bay Area 2012. We're excited and apprehensive at the same time...the days seem to melt away in the months before Maker Faire. The Maker Faire site has a nice countdown timer, and we wanted to duplicate that so we could always keep an eye on the dwindling time. So we did it...in style! Check out the video below:

A big Betabrite LED sign (scored from Silicon Valley Electronics Flea Market) receives serial data from an Arduino. The Arduino is keeping track of the difference in time between now and 10:00 AM on May 19th, 2012. Since the Arduino by itself would quickly drift into the meaningless voids of time, we have a ChronoDot installed to keep everything precise. The very handy Time Library by Michael Margolis works as-is with the ChronoDot, and also provides some handy data structures to help do the necessary math.

Here are a few technical details:

The ChronoDot is wired to the Arduino on the following pins:

  • Arduino GND to ChronoDot GND
  • Arduino 5V to ChronoDot VCC
  • Arduino Analog 4 to ChronoDot SDA
  • Arduino Analog 5 to ChronoDot SCL

No pull-up resistors were installed since the Arduino Wire library already enables the internal pullups, which are OK for such a short I2C bus.

The Time Library works great with the ChronoDot since the DS3231 on the ChronoDot works the same as many other Maxim RTCs, like the DS1307 and DS1337. It's just way more accurate, especially in changing temperature. Between now and Maker Faire, we won't be more than 20 or 30 seconds off the real time. Simply download the Time library, and put the "Time" and "DS1307" folders in your Libraries folder within your Arduino sketch folder. Restart Arduino and it'll pick up the new libraries. Go to Sketch > Import Library... and choose the Time, DS1307, and Wire libraries. Don't forget to look under File > Examples > Time for some good hints on how to proceed.

The Betabrite sign was old and slightly damaged, but a great deal at the flea market for $20. The protocol is pretty complex, and doing something wrong can corrupt the internal memory and require a reset. However, a decent amount of information is available. Most of the protocol info in this document applies to the Betabrite signs: http://www.ams-e.com/Download_files/97088061E_lite.pdf

We don't need to worry about baud rate much, since the Betabrite will detect it. However, it does want a 7E1 serial protocol, instead of the normal 8N1 you get from the Arduino serial port. So we need to tweak some registers to get the correct protocol. Also, the LED sign expects standard RS232 voltage levels instead of TTL RS232, so we need a level converter. We simply threw a MAX232 and capacitors on a piece of proto board.

The idea behind the Arduino sketch is simply to get the Time Library running, synchronize to the ChronoDot, calculate the difference between the current time and a hardcoded time for the start of Maker Faire, and output that time to the Betabrite sign. Controlling the sign was a little less direct than it could be; the sign will shut off the display when you write a new text file, so instead we needed to allocate memory, define a string that can be called within the text file, and then update the string only. That allows the time to be updated as the message begins to scroll across the display.

Here is the Arduino sketch:

// Betabrite Countdown
// Counts down the time until Maker Faire Bay Area 2012
// Uses Betabrite 1040 display, Arduino, and ChronoDot

#include <Time.h> // Time Library
#include <Wire.h> // Wire for RTC
#include <DS1307RTC.h> // DS3231/ChronoDot works like DS1307

time_t MFBA; // Start time of Maker Faire
time_t difftime; // difference between current and target time
int diff_seconds;
int diff_minutes;
int diff_hours;
int diff_days;

// Initialize RTC and Betabrite sign
void setup() {
  Serial.begin(9600); // set baud to 9600
  UCSR0C = (2<<UPM00)|(0<<USBS0)|(2<<UCSZ00)|(0<<UCPOL0); // configure for 7E1 not 8N1

  setSyncProvider(RTC.get); // set sync to use the ChronoDot
  setSyncInterval(10); // sync every 10 seconds if possible

  // check whether sync worked
  if(timeStatus()!= timeSet) 
    Serial.println("Unable to sync with the RTC");
  else
    Serial.println("RTC has set the system time");

  tmElements_t MFBA_elements; // elements array to construct Maker Faire start time

  // 10:00 AM on May 19th, 2012
  MFBA_elements.Second = 0;
  MFBA_elements.Minute = 0;
  MFBA_elements.Hour = 10;
  MFBA_elements.Wday = 7;
  MFBA_elements.Day = 19;
  MFBA_elements.Month = 5;
  MFBA_elements.Year = 2012 - 1970;

  MFBA = makeTime(MFBA_elements); // Unix timestamp of Maker Faire start time

  // Initialize Betabrite memory locations
  for(int i = 0; i < 5; i++) Serial.write((byte)0x00); // auto detect baud
  Serial.write((byte)0x01); // SOH
  Serial.print("Z00"); // All displays
  Serial.write((byte)0x02); // STX
  Serial.print("E$AAU0100FF001BL00C00000"); // Set mem locations for text and string
  Serial.write((byte)0x04); // ETX

  delay(1000);

  // Initialize text file
  // String "1" will be called whenever scrolling animation restarts
  for(int i = 0; i < 5; i++) Serial.write((byte)0x00); // auto detect baud
  Serial.write((byte)0x01); // SOH
  Serial.print("Z00"); // All displays
  Serial.write((byte)0x02); // STX
  Serial.print("AA"); // Text string
  Serial.write((byte)0x1B); // ESC
  Serial.write((byte)0x20); // Line number
  Serial.print("a"); // Scroll right to left
  Serial.write((byte)0x10); 
  Serial.print("1 until Maker Faire"); // Call string 1 plus text 
  Serial.write((byte)0x04); // ETX


}


time_t systime; // holds current time for diff calculation

void loop() {

  if (systime != now()) { // wait for new second to do anything
    systime = now();
    difftime = MFBA - systime; // subtract current time from Maker Faire time
    diff_seconds = difftime % 60; // get seconds
    difftime /= 60; // convert to minutes
    diff_minutes = difftime % 60; // get minutes
    difftime /= 60; // convert to hours
    diff_hours = difftime % 24; // get hours
    difftime /= 24; // convert to days
    diff_days = difftime; // get days

    // Update string on Betabrite with updated countdown
    for(int i = 0; i < 5; i++) Serial.write((byte)0x00); // auto baud rate
    Serial.write((byte)0x01); // SOH
    Serial.print("Z00"); // All displays
    Serial.write((byte)0x02); // STX
    Serial.print("G1"); // Write to string 1
    digitalClockDisplay(); // Send countdown string
    Serial.write((byte)0x04); // ETX
  } 
}

// modified routine from Time Library example
void digitalClockDisplay(){
  Serial.print(diff_days); 
  Serial.print(" Days ");
  printDigits(diff_hours); 
  Serial.print(" Hours ");
  printDigits(diff_minutes); 
  Serial.print(" Minutes ");
  printDigits(diff_seconds); 
  Serial.print(" Seconds");
}

// routine from Time Library example
void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  //Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

Suggestions for improvement: detect when Maker Faire arrives and display an exciting message! However, we'll be there and will never see it, so it didn't seem worthwhile. I'd also like to attach PIR sensor so the display can be turned off when no one is around...alternately, it could shut down the display during timeframes where no one is likely to be nearby.

Feel free to suggest your own improvements in the comments, show off your own LED signs, or ask for help building something similar!


Submitted by Garrett on Fri, 02/10/2012 - 02:56.

Happy Birthday! :)

Happy Birthday! :)

Seriously happy birthday!!!

Seriously happy birthday!!! It's an big achievement!

// BetaBrite Basic Output -

// BetaBrite Basic Output - provides basic output to scrolling led panel BetaBrite 1026 and similar
// based on work found at http://macetech.com/blog/node/115 accessed 27 April 2013 by topls64
// jmg

// Initialize Betabrite sign
void setup() {
Serial.begin(2400);
UCSR0C = (2<

// Initialize Betabrite memory locations
for(int i = 0; i < 5; i++) Serial.write((byte)0x00); // auto detect baud
Serial.write((byte)0x01); // SOH
Serial.print("Z00"); // All displays
Serial.write((byte)0x02); // STX
Serial.print("E$AAU0100FF001BL00C00000"); // Set mem locations for text and string
Serial.write((byte)0x04); // ETX

delay(1000);

// Initialize text file
// String "1" will be called whenever scrolling animation restarts
for(int i = 0; i < 5; i++) Serial.write((byte)0x00); // auto detect baud
Serial.write((byte)0x01); // SOH
Serial.print("Z00"); // All displays
Serial.write((byte)0x02); // STX
Serial.print("AA"); // Text string
Serial.write((byte)0x1B); // ESC
Serial.write((byte)0x20); // Line number
Serial.print("a"); // Scroll right to left
Serial.write((byte)0x10);
Serial.print("1 Employees are to return to work NOW !!!"); // Call string 1 plus text
Serial.write((byte)0x04); // ETX
}

void loop() {
sendText();
}

// this can be modified on the fly for dynamic output, it would think.
void sendText(){
for(int i = 0; i < 5; i++) Serial.write((byte)0x00); // auto baud rate
Serial.write((byte)0x01); // SOH
Serial.print("Z00"); // All displays
Serial.write((byte)0x02); // STX
Serial.print("G1"); // Write to string 1
Serial.print("Lunch has been canceled. Management will issue Red Bull and Power Aid at 12:45."); // this can be modified on the fly for dynamic output, it would think.
Serial.write((byte)0x04); // ETX
}

Turn on your own Samsung

Turn on your own Samsung cellular phone without the SIM card in. But that didn't have an impact on the
cellular phone business. Cell phones are employed everywhere:
at the supermarket (Does someone really need to call their spouse every time they
go down another aisle.

Your kid's smile certainly

Your kid's smile certainly is the most cherished moment you can have with your day.
While they're able to certainly allow you to hone your "twitch reflex", instructing
you on to snap your sights on some monstrous
space alien with your laser cannon inside a minute, most games do not encourage much else in the way of personal or mental growth beyond developing
that reflex. In most of the puzzle, action or arcade game,
timing is everything in precision, and Save the Troop shows
you the lesson well. In any case the fad in innovation is just not in the least awful
for youngsters because there are undoubtedly cool math diversions for youngsters connected
and connected math lessons besides. For a lot more than ten years
Really Magnus and Omega Leading have been guiding the teachings of bravery in addition to resilience to kids, great
for first spiders to achieve such higher-level of adulation. Besides, people that are able to enter in the ground should also take a look at on the way to get
on top of the top games. Jack can be a unique chainsaw found for the body of your Enclave officer within the deathclaw sanctuary.
The goal is to take together as much matching marbles as possible, in order to all of the marbles
around the screen. Prevent a horse from getting go beyond by train or running into an electrical fence or getting caught in a tornado, for example.
For starters, you want to choose an area where our currency,
whatever it is (US dollar, NZ dollar, etc. The Plants vs Zombies plush toys are intended by a artist names
Alix. Computer shops that are selling various styles of computers are all around.
It is irrelevant what your son or daughter builds, but once the
project is complete, spend some time referring to it. The objective from the game would be to
fly your plane through the center from the rings coming at
you. However, a lot of people were very good at "button mashing" and the were
players that pressed all of the buttons which they could.
But, you have still got to race against time, which is also a
great deal of fun. Opt for water-proof make-up as sweat would make the
kohl and foundation smeary. MMO games are attractive because everybody can easily achieve great
outcomes and be cool person there. Probably the most appealing aspect of
MMORPG games will be the unique and thrilling worlds
and storylines that all title offers. There a wide range of positives and negatives in relation to kids
going online. Beauty isn't measured by outer appearance and what clothes we
wear,. First coming from all look for a slot machine that you want: the visuals, the
sound, the play buttons, you receive the idea. You have five maps to decide on from and the maps are quite obvious and practical, so that it is much easier in comparison with other war games.
Press and haul the ideal boots most significantly up.
Cooler items may be used temporarily in substitution for watching videos ad on the i - OS device or purchased for permanent access.

Feel liberated to share your

Feel liberated to share your individual ideas inside comment section below.
com is one such website, and new games are constantly being added by its users.
People who enjoy sports games for example Dirt Bike games will definitely find very good games
within this category. Instead to be miserable face to face players take the
initiative to climb the infamous corporate ladder.
Basically, just discover a services or products you'll be able to market online, and do your research.
The only downside to the overall game is the limitation on weaponry and advertisement banners.
State-of-the-art coolness of funny games and fashoins just got ratcheted up with a
new level. The children giving your instructions must reside stationary while giving the specific indications.
The sites happen to be categorized so as to ease your search.
Anything more than because of this the web site isn't favorite
among online users. It features a simple mission or challenge that's satisfying enough for all
the part-time gamers as a quick blaster.
But you are able to play any NES game that's available like a ROM,
with this way, you can enjoy dozens of great
oldies in a convenient location. Ka-Glom Free is often a high-pressure
game of falling blocks. If you think you're patient enough then go ahead and install this app
on your own Black - Berry device. If your home is properly
insulated, your house will always be cool
for the while. This is strictly among cool math
games for your kid that is liberal to download
for i - Phone device. Searching for games now would certainly require less
effort and time. You face various types of foes throughout,
however with numerous force powers on the
side, let alone a trusty lightsaber, there is really nothing you'll
be able to't tackle, including a giant Rancor. A possible way to determine math concepts is as simple as getting among the countless cool math games designed by
professionals while within the explained science. Soccer explains team leadership and management in an attempt to take your team forward around the path of victory.

For those who've never heard the word "Open - SSH" (similar to I hadn't last year), it will be the
single best thing you could do for your phone. If you're currently looking for any cool X men game to learn then I have a very suggestion for you.
Thirty-six percent of the ages 18 to 25, and 40 percent of those ages 26 to 40, have one or more tattoo, according with a 2008 survey by the Pew Research Center.
If you are able to have yourself a replica with the game, you are going to still realize why it turned out
one with the best selling games coming from all time. Your typical puzzle game range from
everything from chess and checkers for your lonely Marble Madness.

Casino games available to

Casino games available to play over the web are highly suitable for various os's including Linux,
Mac, Windows XP, Windows Vista, etc. So, you are able to select which games are great for your son or daughter easily.
There’s many different levels that unlock upon finishing of the last stage.
The official fantasy game of the PGA tour readily available for free.
After all, everyone has their very own preference and favorites, so it is possible to always play whatever car race games you prefer.
It is essential that appear to be for a place that you just could be both comfortable
and also at ease. But the important question this is -- how many of
the people off their late teens to late 20s getting tattoos
are likely to regret, or are already regretting
their choice. Using both good and also evil figures, the specific toys keep her or his imagination going and definately will instigate
hours linked to fun times. If you may spend no time researching it,
you can be squandering your hard-earned dollars on the poor quality game.
The second child should place down a card ( face up, indeed ) that they think
is the same as the facial skin down card. However, you'll find always adjusters available in the event you do need any help.
Also, you can check out online reviews of the game before making the resolve
for buy it. Their light features may bring you an benefit from
playing anywhere you prefer, even during dark areas.
Programmers have proven they are able to think of a cool variation on essentially the
most traditional of games, such as chess with weird character sets since
the depicted pieces, in addition to innovate
new kinds of puzzle games, or even first shooter sort of applications.
There a wide range of available math resources online that might
be used through the summer to aid kids remember what you learned
during the school year. It is simply because these types of
entertainment can simply satisfy a woman's need for self-expression. If you join an excellent soccer coaching, you'll be able
to be able to produce your game more aggressive and challenging.
1 factor a large variety of new Wii owners aren't any doubt questioning is how to backup Wii games.
Usually a toy can provide all of these aspects to get a child so it's imperative
that you discover the right toys along with the right games to try
out along with your children. To play the games mentioned in this guide, click about the
links below:. If you easily get caught up in a game and lose track of your time, you ought to set your watch alarm every thirty minutes.
There is not any reason for that you hate these kinds of
games. And to be organized in the bustle of an airsoft game,
you should invest inside a gun case to keep your weapon and each of the accessories you'll need to bring along.
Soccer can also be known as football in some countries.

As long because majority of folks inside world help
keep while using Internet, games continues rising in number
at the same time.

Hi, always i used to check

Hi, always i used to check blog posts here early in the morning,
since i enjoy to find out more and more.

W zale?no?ci od

W zale?no?ci od umiejscowienia guza pierwotnego wyró?nia si?: resekcj? odcinkow? (w guzach poprzecznicy, esicy), hemikolektomi?
prawostronn? (guzy k?tnicy lub wst?pnicy) i lewostronn? (guzy
zst?pnicy i niektóre esicy), hemikolektomi?
poszerzon? (np.

It features several shopping

It features several shopping programs that include
a variety of lifestyles as well as special interest categories.
Online shopping is extremely prevalent in countries like USA, UK, China, France, Germany and other major countries world wide with India
joining that bandwagon. Online shopping is the demand of todays modern time.

Post new comment

The content of this field is kept private and will not be shown publicly.