Shop OBEX P1 Docs P2 Docs Learn Events
The (Propeller powered) FlipClock - A potential product? — Parallax Forums

The (Propeller powered) FlipClock - A potential product?

MicrocontrolledMicrocontrolled Posts: 2,461
edited 2011-09-24 12:28 in Propeller 1
I've just gotten done with my recent project, and accelerometer controlled digital clock, and I started wondering whether or not this could actually become a consumer product. I have a writeup on my blog here: http://microcontrolled.com/?p=72
(Sorry I keep linking to my blog, but once I write an article, there's no reason to do it twice.)

It's easy to use, fun, and useful. I was wondering, if I wanted to make this a commercial product, is it worth it and if so how would I do it? I understand this is a big undertaking.

Thanks,
Microcontrolled
«1

Comments

  • RaymanRayman Posts: 13,955
    edited 2011-05-16 08:10
    I like the idea! Nice job.

    Maybe the easiest way to make money is to sell it as a kit somewhere like GadgetGangster...
  • ctwardellctwardell Posts: 1,716
    edited 2011-05-16 08:16
    Pretty cool.

    I would make GPS and option to allow a lower cost version.

    C.W.
  • Alex41Alex41 Posts: 112
    edited 2011-05-16 08:29
    Great idea!

    A comment or two - maybe you've thought of these already.

    1. Time off the GPS - doesn't that come in Z time (GMT)? What if you travel to another time zone? Would it update?
    2. Setting the alarm time. You already have the accelerometer built in maybe shake 4 times to enter the alarm set mode, shake left and right to pick hours or minutes, then shake up/down to adjust the selected digit.
    3. Snooze function?
    4. If it had a battery it would be a great travel alarm clock - Ever try to find an outlet within 10 feet of the bedside table in a hotel room?

    I would buy one. I think the final version would have to be very user friendly to be a big seller.

    Overall I think you have a winning product here.
    Alex
  • potatoheadpotatohead Posts: 10,254
    edited 2011-05-16 08:37
    I like it. Have you thought about gestures? Lots of stuff could be done. Have a "mode" gesture to start, then do stuff like roll it on one axis for setting the minutes, another to do hours, etc...

    Should be possible to never use a button.
  • RavenkallenRavenkallen Posts: 1,057
    edited 2011-05-16 08:38
    I really like the idea... Perhaps you could use a nicer enclosure(With cool colors, pink for girls, blue for boys... Or if you are like me, then purple would be spectacular:)). Pricing may be a concern. Aren't accelerometers kinda expensive? What about a simple tilt switch?...
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-16 09:11
    @ctwardell: The GPS is optional. As said at the end of the article, it has an RTC (costs ~$5 for the setup) that keeps time when the GPS is unplugged, so essentially it can work without the GPS module.
    @Alex41: Good idea with the GPS. I have it manually set to Eastern Time, but adding in a function that changed it according to the time zone would make it worth buying the "gps version" to people who travel often. As for a snooze function, maybe I could make knocking it over set snooze and flipping it over turn the alarm off. If it's going to be battery powered, it's going to have to drive all of those LEDs. The regulators get too hot to touch when running off wall power, so I don't know how long a battery would last. As I said before, maybe I could have a "Traveler's version"....
    @potatohead: To set the alarm, I'm thinking set it upright on it's side for 3 seconds, or until the digits start blinking, then tilt it side to side to set the time. Tilting more will make it go faster, and it will be set in increments of 5 minutes (who sets their alarm to 6:53?). When done, simply set it back on it's side until the digits stop blinking. There will be no hours or minutes settings, it will just count the hours when the minutes reset.
    @Ravenkallen: The accelerometer I used is the 3AD module from GG. It cost $8 for the module and the bare chip is only $2-$3.
  • schillschill Posts: 741
    edited 2011-05-16 09:26
    The regulators get too hot to touch when running off wall power, so I don't know how long a battery would last.

    What regulators are you using and what is your input voltage (from the power supply)? Have you tried measuring the actual current usage?
  • WBA ConsultingWBA Consulting Posts: 2,933
    edited 2011-05-16 10:23
    Wow, nice. I definitely think it could be a commercial product. I would prefer without the GPS and use the gestures as mentioned to set the time. Roll back and forth 3 times to enter clock set, shake to the left to increase hour, shake to the right to increase minutes, etc.

    Sorry the PowerTwig didn't work out for this. What propeller main board are you using? I can't see how the GPS, LEDs, etc could get near the PowerTwig's max, but I could see how the spikes from driving the speaker would affect the output to the point of sending the prop into a brownout state. Try adding a large cap to the PowerTwig's output to see if that would help sustain the output through the spike in current draw. In my Reverse GeoCache project, I was using a protoboard, GPS, uOLED and servo and I did not see any issues when I would drive the servo (which would be a spike similar to the speaker) but the protoboard has a large cap on the supply to aid with those spikes.

    I second schill's question about input voltage from the wall wart. I don't think current should be an issue, so it may be that you are asking your regulators to drop too much voltage?
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-16 10:44
    I think the reset problem was more of a problem with the wall wart then with the PowerTwig. The wall wart is an adjustable one set to output 12V, however at a measly 500mA, which may have caused the problem.

    Thank you very much for pointing out that I COMPLETELY forgot to post a picture of the circuits! Here it is:
    http://microcontrolled.com/FlipClock5.JPG

    Now for some additional info.
    The whole circuit board is custom, and the enclosure I'm using is a Hammond enclosure bought at my local electronics store (he doesn't carry 10k resistors, but he carries Hammond enclosures?!?!) and I personally like the simplistic design and the piano black finish that reminds me of a Nintendo DS. I cut the square hole with a Dremel.

    Thanks for all the replies!
    Microcontrolled
  • ctwardellctwardell Posts: 1,716
    edited 2011-05-16 10:51
    You are your own customer on this, you've commisioned yourself to commercialize this idea.

    Some things to think about...

    1) How can you reduce number of components?

    2) How can you reduce component cost, ie: Is the Prop the correct uC for this?

    3) Should you vary LED brightness based on ambient light?

    Be creative, do your really need a seperate RTC, do the LED's need to be powered from the regulated supply?

    C.W.
  • schillschill Posts: 741
    edited 2011-05-16 10:52
    Thanks for the picture.

    If your internal voltages are 5V and 3.3V (I can't tell from the picture), you should be able to keep things cooler by dropping from 12V input to much lower - maybe even as low as 6V depending on the dropout of your regulators.

    Do you have decoupling capacitors on the prop power pins? I don't see any on the top of the board.
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-16 12:10
    @ctwardell: The current lowest number of components is: DS1302 RTC, Xtal's (for prop and RTC), 1000uf cap, 3.3v regulator, 5v regulator, speaker, transistor, Propeller Chip, EEPROM, 10k resistor, 4 segment LED clock display, and accelerometer.
    I'm estimating a total parts cost of $30, which although isn't bad, with profit would be about $50, which is a little steep for a digital clock. If I dumped the RTC and used the Propeller's internal clock it would be down to $22, if I used cheaper regulators $21, if the 4 segment display is less than $4 that would also save, but I don't have a source yet so I wouldn't know. I would also have to count the $6 enclosure, the $? PCB, and the ~$5 wall wart. This is going to take some work to knock it down any farther....

    @schill: I dropped the input voltage to 6V and the heat has dropped dramatically. Thanks!
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-16 12:21
    I just thought of something: If I can't make it cheaper, maybe instead I should add something small that with the right software could make it more valuable. Like an SD card slot. Then you could put in a card with your music on it, and it would play that as the alarm. This would be a huge push to a lot of people to buy it.
  • RobotWorkshopRobotWorkshop Posts: 2,307
    edited 2011-05-16 12:22
    Have you thought about a more formal write up and then submitting it to Nuts'N'Volts or one of the other magazines? Didn't you already have one article in the Nuts'N'Volts?

    Robert
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-16 13:00
    @RobotWorkshop: Yes, I do, and this one looks a lot better and is way cooler! Maybe I should start writing an article....
  • RobotWorkshopRobotWorkshop Posts: 2,307
    edited 2011-05-16 13:04
    That's why I mentioned it. ;-) Someday you'll really be glad to have articles in print. It will look great on a resume if you ever need it....
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-16 17:24
    If I recall, you and David James were my big supporters last time I wrote an article. Thanks for your support! I'll start writing. I'll hopefully have a final draft done in about a week. I already like having an article in print, and as a nice side effect it pays well too. The last article I wrote got me $400. Who says you can't be motivated? :-)
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-17 04:06
    I've updated the source code so that you can set the alarm. You can now set it on its side until the colon stops blinking, then tilt it back and forth to quickly scroll through the time. It doesn't have separate settings for hours and minutes.
    Here is the updated code:
    ''Name: Digital Clock
    ''Author: Corbin Adkins (Microcontrolled)
    ''Description:
    ''This project is in it's early stages of development. Version 1.1 has GPS support
    CON
    
      _clkmode = xtal1 + pll16x 
      _xinfreq = 5_000_000
    
      pulse = 190
    
    VAR
    
      long stack[50]
      byte time[4]
      long hour, minute, second, day, month, year, dow        'Date data
      long latitude, longitude
      long alarmhour, alarmminute
      byte t,o
      byte gpsenabled
    
    OBJ
    
      rtc  :  "DS1302_full"
      gps  :  "GPS_Float"
      ns   :  "NS_sound_drv_051_22khz_16bit.spin"
      i2c  :  "PSB_I2CDriver"
     ' ser  :  "FullDuplexSerial"
    
    PUB Start | i,c, alarmflag, oldmin,x,y,z, ycounter, absx
    
      gps.Init
     ' ser.start(31,30,0,9600)
      rtc.init(16,17,18)
      rtc.config
      rtc.write(rtc.command(rtc#clock,rtc#tc,rtc#w),(%1010 << 4) + (1 << 2)+ ( 1 ))
      'Initialize the Accelerometer
      i2c.WriteAccelReg($16,%0101)
      cognew(Disp,@stack)
      dira[0..14]~~
      outa[12..14]~~
      gpsenabled := "!"
      alarmhour := 6
      alarmminute := 45
      repeat
        rtc.readTime( @hour, @minute, @second )     'read time and date from RTC
        rtc.readDate( @day, @month, @year, @dow )
        if gpsenabled == "!"
          latitude := gps.Float_Latitude_Deg    'Dump data into variables
          longitude := gps.Float_Longitude_Deg
          year := gps.Long_Year                       
          month := gps.Long_Month
          day := gps.Long_Day
          hour := gps.Long_Hour
          minute := gps.Long_Minute
          second := gps.Long_Second
          if hour < 5                          'Adjustment for the eastern time zone  
            hour := 24-(4-hour)
          else
            hour -= 4
        x:=i2c.GetAccelX8
        y:=i2c.GetAccelY8
      '  ser.tx(13)
      '  ser.str(string("X= "))
       ' ser.dec(x)
       ' ser.str(string("  Y= "))
       ' ser.dec(y)
        if y > 0
          ycounter++
        else
          ycounter~
        if ycounter == 4
          ycounter~
          repeat until y < 0
            x:=i2c.GetAccelX8
            y:=i2c.GetAccelY8
            if x > 0
              alarmminute++
            if x < 0
              alarmminute--  
            if alarmminute == 60
              alarmhour++
              alarmminute~
            if alarmminute == -1
              alarmhour--
              alarmminute := 59  
            if alarmhour == 25
              alarmhour := 1
              alarmminute~
            if alarmhour == 0
              alarmhour := 24
              alarmminute := 59
            dec(alarmhour,0)
            dec(alarmminute,2)
            waitcnt(clkfreq/( ||x) + cnt)       
        if x > 0 and x < 100    
          outa[13..14] := %10
          if hour == alarmhour and minute == alarmminute
            ifnot alarmflag == "!"
              ns.start(22) 
              repeat 500
                ns.PlaySoundFM(0,ns#SHAPE_TRIANGLE,3000,ns#DURATION_INFINITE,255,$2457_9DEF)
                waitcnt(clkfreq/4 + cnt)
                ns.StopSound(0)
                waitcnt(clkfreq/4 + cnt)
                x:=i2c.GetAccelX8
                if x < 10
                  quit 
              ns.Stop
              alarmflag := "!"
              oldmin := minute
          ifnot oldmin == minute
            alarmflag~
          if hour > 12
            hour -= 12  
          decInverted(minute,0)
          decInverted(hour,2)  
        if x < 0 or x > 100
          outa[13..14] := %01
          if hour > 12
            hour -= 12  
          dec(hour,0)
          dec(minute,2)         
        
        waitcnt(clkfreq + cnt)
        !outa[12]
    
    PUB dec(char, display) | i,c
    
      t~
      o~
      if char < 10
        time[display] := numbers[0]
        time[display+1] := numbers[char]
      else
        c := char
        c -= 10
        t++
        repeat until c =< 0
          if c > 10
            t++
            c -= 10
            if c == 0
              t++
            next
          else
            o := c
            quit
        time[display] := numbers[t]
        time[display+1] := numbers[o]        
    
    PUB decInverted(char, display) | i,c
    
      t~
      o~
      if char < 10
        time[display+1] := inverts[0]
        time[display] := inverts[char]
      else
        c := char
        c -= 10
        t++
        repeat until c =< 0
          if c > 10
            t++
            c -= 10
            if c == 0
              t++
            next
          else
            o := c
            quit
        time[display+1] := inverts[t]
        time[display] := inverts[o]        
        
    PRI Disp | i
    
      dira[0..14]~~ 
      repeat
        repeat i from 0 to 3
          outa[8..11]~
          outa[8+i]~~
          outa[0..6] := time[i]
          waitcnt(clkfreq/pulse + cnt)
        'waitcnt(clkfreq/80 + cnt)  
          
    DAT
    
    numbers     byte %00000001, %01001111, %00010010, %00000110, %01001100, %00100100, %00100000, %00001111, %00000000, %00000100
    inverts     byte %00000001, %01111001, %00010010, %00110000, %01101000, %00100100, %00000100, %01110001, %00000000, %00100000 
    
  • RavenkallenRavenkallen Posts: 1,057
    edited 2011-05-17 07:51
    @Microcontrolled.... Huh, i didn't know that accelerometers were that inexpensive? I have never even bothered buying any because i thought they were like $30 bucks or something?... You mentioned using the internal clock as a RTC? Beau's RTC emulator has a drift of 12 minutes a year. Add a little software to compensate for the crystal and you might be able to get away with it.. Also you might be able to add a rechargeable Lithium- Ion battery that would just keep the clock going in case of power outage(Or maybe even power the whole system depending on if you have any 5 volt components or not?)... The music player sounds cool to, but adding a SD card will bump up the costs quite a bit... You had a article in Nuts and Volts? That is so cool:) I must have completely missed it. What issue was it in?
  • davejamesdavejames Posts: 4,045
    edited 2011-05-17 08:01
    If I recall, you and David James were my big supporters last time I wrote an article. Thanks for your support!

    Welcome!

    If you wish to have another pair of eyes on this upcoming article, give a holler.
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-18 10:34
    @Ravenkallen: I didn't either until I saw this one at UPEC last year. The Parallax one is $30, but they use a different chipset, and unlike Rayslogic, they have a lot more expenses to cover. The accelerometer itself is only ~$3, so there isn't that much of an investment in putting one in a project.
    My Nuts and Volts article was in last year's July issue and was on my Self Locking RFID box: http://www.parallax.com/tabid/827/Default.aspx
    Now you see why I think this one is better! :-)

    @davejames: Hey! I didn't know you would be reading this thread! Your help last time was probably what got my article accepted into the magazine! Once I finish the article, I'll post a public link to the rough draft for anyone to examine - but as soon as it gets accepted I'll have to take it down due to legal rights.


    I'm posting because I have a schematic made and I would like to be informed if I left anything out. PLEASE don't nail me on some technicality like "traces too close together..." or something similar! (I know someone will just because I said that. :-) )
    You can view the schematic here: http://microcontrolled.com/FlipClockSchematic.bmp
  • Invent-O-DocInvent-O-Doc Posts: 768
    edited 2011-05-18 11:31
    Clever project micro! I don't think it is cost effective to do with the prop, as much as I like it. A production version might be better based upon ~$1 or less MCU with built in flash/eeprom program storage.

    As a DIY project for N&V of something, it hits the right spot, especially using a prop which can showcase how easy it is to do something with parallel procesing and no using interrupts. It is a clever idea with an elegant implementation.

    Emerson clock radios now receive a radio signal to self set time. Are they pulling a GPS signal (I dont think so) or one of those time-code radio signals (I think so)? Is there a cheap chip out there that does this?
  • schillschill Posts: 741
    edited 2011-05-18 11:38
    The Emerson clocks probably use the WWVB radio signal from Colorado (assuming you are in the US). It's cheaper than GPS. You can buy receiver chips for it. Here's an example of a kit: http://www.sparkfun.com/products/10060.

    I've never played with these and don't know how easy they are to use.

    My watch syncs almost every night using this signal. The signal is notoriously weak and it's not always easy to pick up. My old watch did not do as good a job as this one does. The further you are from Colorado, the weaker the signal. It's better when it's night at your location and in Colorado.
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-05-26 20:06
    UPDATE: I've been on a camping trip for a week (no internet obviously) and I've just now got back. I'm still working on writing an article for this project, and I have about 1500 words down so far. I'll probably need to reach at least 2000 more before editing before I can release it.
  • WBA ConsultingWBA Consulting Posts: 2,933
    edited 2011-09-21 13:23
    Microcontrolled: I just read in your blog that Nuts n Volts declined your article saying it was too complicated!?!?!?!? Really? I thought this would be a perfect project for them.
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-09-22 05:04
    So did I. They stated the following:
    In any event, the project seems a bit unpolished for newbie N&V readers. For this level of complexity, most readers would need a pc board layout. Given the size issue, you might consider the smaller smt propeller chip.

    Also, if you suggest ribbon cable, your finished project photo should show that. Ditto with the RTC option. It's not clear (to newbies) how the circuit is wired. It would be good to see the project outside of the box.

    It's also expensive with the GPS module.

    So, in summary, it's a good start, but needs to be in post-prototype form for readers.

    I have neither the funds nor am I willing to get a PCB made for this, simply because I don't think it would be a profitable investment, so that is out of the question.
    The reason why it didn't get accepted was because I was not willing to redesign my entire product, though I might in the future.
  • mindrobotsmindrobots Posts: 6,506
    edited 2011-09-22 06:31
    Micro: you have a great attitude! maybe it's a hack-a-day project candidate? You've learned from the building experience, the writing experience and the rejection. Not a bad return for this project. Next time, you'll be aware of how N&V wants projects groomed for submission and maybe a bit more of what they are looking for. I have a feeling they are fickle and what they are interested in changes from month to month.

    Keep going with what you're doing, don't lose faith, don't stop trying! The work of yours I saw at UPENE was very impressive and your personality, character and maturity are admirable!
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-09-22 06:53
    @mindrobots: Thanks!!! I have learned a lot from this project, even from the rejection. In the future, I will be more aware of what they are looking for and only submit more simple, complete projects. After this one was denied, I started to realize how lucky I was that my other (much less professional) project was accepted!
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2011-09-22 07:18
    Add at temp sensor and flip to room temperature.

    OBC
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2011-09-23 05:48
    @OBC: That sounds pretty cool! What temp sensor would you recommend for the Prop?
Sign In or Register to comment.