A Bit Big for a Bit, But

Thanks Matthias! I hope to find some time this weekend to work on the software - I think the hardware is … done?

ps, @JackANDJude, I don’t know why I balk at surface mount soldering so much - look at the size & proximity of those components near the input bitSnap!

1 Like

Lookin’ good, @chris101! What do you think - is this an input or a wire module? When can we see the clown barf?

1 Like

Clown barf? Heh … I learned that term from the cloudbit documentation. It means lots of colored LEDs, which is what this bit uses for a visual alarm (as well as monitoring the WWVB signal.)

Here’s a demo:

ps, it’s an input bit, same as the previous ‘Time of Day’ bit, but a bit more complex.

Thanks for the demo, @chris101! :slight_smile: I have some questions about…

LED’s

  1. Do they double as a 30 second readout?
  2. Are they necessary? Can the 5 led’s be replaced with 1?

output bitsnaps:

  1. I really like that the number modules display the time with no fiddling! :smiley: Is this a 12 hour clock?
  2. Would you consider an option that allows the seconds bitsnap to be an alarm output?

button: What is the purpose? I’m guessing manual override?

input bitsnap: Will the module react differently depending on the incoming signal?

Thanks, Chris! I’m looking forward to learning more about this module… :smile:

My suggestion to cut down on final cost would be to have only one time output. Simply alternate between showing hours/minutes/seconds on one output. This has the added benefit of only needing one number bit! :smiley:

If you go to one LED on the module, you can have it change state, high or low, every two or more seconds. It would be better to have it change state slower than once per second. If you do alternate hours/minutes/seconds on the time output bit, you could have the LED change state when that does, and synchronize it to every ten or so seconds. Like an LED pendulum. It may be even better to have it change how bright it is smoothly instead of just rapidly changing state to get a better “pendulum” response. :watch:

I think that a second RGB LED could act as a silent alarm. It would be just one LED, but you can get the same burst of color you are already getting. That brings a lot of character to this bit!

There should be a switch that allows the user to decide the high or low status of the alarm output. Usually it would be low until the alarm is high. However, adding a switch to invert the output would be welcome. The advantage of this is that it could be snapped to a wireless transmitter bit without having to add an inverter and two wires to make it fit happily. The same goes for the Arduino bit! :grin:

Bringing the Arduino bit into play, the alarm should be the top bitSnap output as it is digital, and the top bitSnap of the Arduino bit is digital too. Then you can put the time to the first analog in on the Arduino. This will leave a free analog input to allow the atomic clock to interface with another bit’s logic! Like the cloud bit. :heart_eyes:

How can you tell the Arduino bit that the value it is receiving is an hour/minute/second. Simple, just send a high state value for a short period of time. The shorter the high state is read, the shorter the current increment of time. This may cause the number bit to display garbage data for a very short amount of time, but since that output and the alarm output are independent, it won’t affect any time sensitive experiments. :alarm_clock:

Finally, if the experiment you are running needs to be done in minutes or seconds, you can have a switch that changes between hours/minutes/seconds and all times alternating. This is a 4 state switch just like on the number bit.

I hope this wall of advice gives you some inspiration for streamlining your bit! I think that it is very cool! :grinning:

2 Likes

Hi Jude, here are some possible answers to your questions:

LEDs: 1. they do not currently double as a 30 second display. They double (or actually their primary purpose is) as a way of monitoring the WWVB bits: zero (pink), one (yellow), mark (green), frame (blue) and error (red). They also makes a great way to watch a thunderstorm - the red flashes with every lightning strike within a hundred miles in the direction perpendicular to the antenna.

2. necessary? Not in order to function, but I wanted to play with some super bright LEDs I have, so I used them here - they range from 9000 mcd to 17000 mcd. As an alarm, they will wake me up! I used a transistor on each one, so I can run it at full current, without putting a large load on the Arduino pins (the LEDs draw 25ma each, but the Arduino only sees 5ma each.) Over kill I know. As a tribute to WWVB’s cold war heritage, I used can type transistors from the early 1970s.

I have two alternate designs: one uses a single RGB LED, and the other uses one red and one green micro LEDs. I chose the big display for aesthetic reasons. I like a packed circuit board! :wink:

Output: 1. Right now I have it configured as a 24 hour clock - it runs from 0-23 and 0-59. However I’m still developing the display routines, so it’s in flux. The mode switch (slide switch along the bottom, left of center) is used to change the display mode. I think I will incorporate what I call ‘system time’, where the values go 0 to 239, using almost the entire range of possible values. This works best for devices that do not need to be read by a human, as it gives much greater precision at the cost of readability. My ToD bit uses system time to control the position of the World Time globe.

2. I had not considered using an output for an alarm, but I don’t see why that wouldn’t work. My initial idea was to multiplex the alarm trigger as an analog value that is greater than the range of normal output. This is one reason system time only goes up to 240. The extra 15 can be used for control signals. But this part is further down on the list.

Button: I recently added the button. In one mode, it tells the device to immediately begin checking for the WWVB signal and set the clock. In the other mode, it does allow manual over ride, or alarm setting, using the HMS pots.

Input: Right now, input does nothing - the signal line goes to ground through a 1M resistor. I would like to use it, but haven’t. Start trigger perhaps, for a timer?

Thanks for these useful questions Jude - they sure help guide my development of this module. I see that @blindbento has added more while I’ve been answering these, so I’ll look at those next.

1 Like

Hi @blindbento! Thank you for these ideas and imaginings!

The LED output on this device is overdone for sure! My use of the super-bright LEDs with 60s style ‘metal can’ transistors driving them is intentional and part of the art of this piece. Their real purpose is to visualize the WWVB signal in real time, to help me while developing the software, but I must admit, I’m liking clown barf as a color scheme!
I began this project with a bit with a single output, although the function of the output connector does not change in that device (the output measures one day with a resolution of about ±3 minutes.) I have used clocks where the output is one double digit, and I don’t like them, they are slow and difficult to read. If the single output was running an analog display, it wouldn’t have that problem though. Using three output bits makes a faster user interface.

The reminder that the Arduino bit has a digital only pin on the top input connector is really useful! I made sure my bitSnaps would fit an Arduino (I actually used a wireless module while placing them) but forgot about this functional idiosyncrasy. Although H and M change more slowly, it is likely easier to count seconds by pulse when an Arduino is attached, so perhaps seconds should be on top. I wonder why it was designed like that - I rarely use pins 0 and 1 on a regular Arduino.

I’m still thinking about how to bring an alarm out through a bitSnap.

If this is just a one-off bit for your own use, it is great as it is. If you are going to try for the bitLab on this one, I think a bit of extra thought on how this bit can interact with other bits necessary.

I think that a bit that can keep time with the WWVB signal would be a great addition, but it would be cool if it could do more than just display the time. Imagine being able to set a timer that will send an alarm every few seconds or minutes to control some circuit. You could even use a timer like this to make one of those assisted lucid dreaming masks. The user sets up an “alarm” for two hour from when they press a button. The alarm then triggers a blinking LED mask that will help them realize that they are dreaming. :sleeping:

Something similar could be done with the Arduino bit, but having a bit dedicated to precise timing would be very, very welcome. Imagine a clock bit attached to an Arduino bit that will play a custom alarm tone program for certain times of the day. As the WWVB signal also accounts for daylight savings, there would be no need to rewrite the code on the Arduino to account for that. :smile:

If the full time being displayed at all times is the main idea, it would be better to have the time displayed on a few segmented LEDs directly on the bit. That way the outputs are free for more interaction. :seedling:

2 Likes

Right on, @blindbento! I like the example project ideas and the way you are thinking of this module as also being a digital pulse-timeout combo.

@chris101, how about replacing the imaginary segmented LED’s with an LCD Display? Then you could monitor your WWVB signal on screen with a mode button, clean up the clown barf, and reduce to one output.

1 Like

Yep, the only ways to get very delayed signals is via the cloud bit or the Arduino bit at the moment. However, both can do far more interesting things than keep time. :grinning:

If it is possible to add an LCD like on the oscilloscope bit, that would be fantastic. All of the pots and switches could be replaced with one encoder/button combo.

1 Like

@blindbento, I really dig that lucid-dream mask! I played with ld back in the day and it’s an amazing experience. :man_with_turban:

Displaying the time is not the main thing this bit does: it’s purpose is to provide analog representation of the time that works in the littleBits system. I had considered using slow serial data previously, but decided instead to represent time with continuously increasing voltages.

I can think of two ways to handle alarms: internally with a specific pattern of discontinuous output, or externally, using for example an arduino or threshold bit.

[quote=“blindbento, post:28, topic:22739, full:true”]
… As the WWVB signal also accounts for daylight savings, there would be no need to rewrite the code on the Arduino to account for that. :smile:
…[/quote]

Both WWVB and the DS3231 on the Chronodot handle DST (although I live in DST-free Arizona :sunglasses: ), leap years, and leap seconds!. This is a huge bit of work off the software!

I’ve looked at LCDs, but I have also thought about nixie tubes!

They go well with the metal can transistors and 1960’s ULF radio transmissions, eh? :wink:

1 Like

If you can come up with lots of examples where converting an analog time signal to binary on/off switch is a must, wouldn’t it be better to have that right on the bit? :grinning:

I think that the final bit would be two bitSnaps tall due to the size of the components. This would leave room for an analog time out. That could be changed for seconds/minutes/hours output. The hours output should be 0 to 23 for a full day.

With just these two outputs, several experiments could be done to measure the accuracy of two clocks. Going back to your original day clock, you could use the alarm to mark when your clock actually did wrap over to a new day using a cloud bit. This way you can have it appear in a nice spread sheet without having to stay awake and write down the time manually. :calling:

Most of this advice is for if this is not a one-off bit. I think that Nixie tubes are cool, but they are pricey for commercial production. :moneybag: When it comes to making thousands of units, even a savings of ten cents can make a major difference in the final price.

I’m glad you like the idea for using littleBits as a lucid dreaming aide. I’m not sure it would be so simple without an alarm function. :sweat_smile:

Yes, please use Nixie tubes, and while we’re at it, let’s ask @Philip_Verbeek to put vaccuum tubes on his radio bit. :slight_smile:

2 Likes

Haha, That would be sooo cool. I like it!

1 Like

I love tubes - they are so cool and so retro, but for the sake of ease of use and design, I am so glad that we have solid state now! I will however keep my eye out for some cool nixies. Never can tell when they’ll be needed! I read somewhere though that 7 segment LEDs are almost as nostalgic. I don’t see it, but then I have a bunch of those!

@chris101, look at this Robot by @drthuler! The kids put a clock in Robot’s belly! :slight_smile: :clock1030:

1 Like

Very cool! Clocks are in right now, and those kids know it. :smile:

Hey Diego (@drthuler), what kinds of features would you like in a time bit (especially, as the kids in your chapter have used a clock already)? Join in if you have any ideas!


I’ve not had much ‘bench-time’, but have been working through some of the ideas from the conversation with you, and @blindbento as noted above. I added a display, especially for those who would want to use the time bit as a clock:

This also relieves the output bitSnaps of their ‘clock’ duties, and they can do alarms, timers, or the original analog H, M, S. I ran out of board space, so, just like Manhattan, it’s built ‘upward’. This configuration, with the display above the antenna, is not ideal though.

As you can see here:


the antenna is pretty crowded.

When the display is powered on (it doesn’t even need to be active), there is RF interference, and the error rate when receiving the time from WWVB doubles. It can take much longer to lock on to the time, and the times of availability are limited to a few hours after midnight. If I elevate the display another centimeter, then everything is fine.

I am also considering making the display separate and optional.

3 Likes

Hi Chris @chris101,
Nice multi-storage bit !
Can you make a little bullet summary of all the functions you now have built in?
:watch:

1 Like

I’m sure that most of the components on the lower part of the circuit would be on the underside of the PCB.

The antenna would on the upper part of the PCB with the clock display LEDs on the lower part where all of the digital logic is. That should avoid interference.:satellite:

I cant wait to see what else you can accomplish with this bit now! :grinning:

2 Likes