Is the pin-mapping the same ? - can one MCU be used to test another board ?
I'm hoping my second clock kit will have the same board and hence the same MCU. If not, it was only $2.19 and I can just build the new kit and hope it works better than the first.
It's yet too soon to be ensured of the exact board model you'll receive, when the new one finally reaches your hands.
Anyway, its good to observe that the one that is actually being promoted at ebay, is a someway cleaner version, of the same basic circuit.
They obviously eliminated the diodes and resistor associated to an eventual battery input connector.
They also seems to got rid of the 4k7 resistor that was paralleling the internal ~100k, available at the RST pin. Perhaps they also improved a bit the 10uF reset cap quality, so the external resistor isn't needed, no more.
Unfortunatelly, in the quest for the smalest possible cost, they also got rid of the 100uF electrolitic filter cap. It sure will demmand a bit more attention, towards having a cleaner (noise-wise) 5V supply.
It didn't occur to me when I ordered this clock that the source code does not seem to be available so if you want to modify it you have to write your own from scratch.
It didn't occur to me when I ordered this clock that the source code does not seem to be available so if you want to modify it you have to write your own from scratch.
If you cannot find a listing (seems there should be one somewhere...), you might be able to read back the code, if the part is not secured ?
See the data for pgm details, just needs fixed pins, and a pulse on XTAL1 outputs the next read byte. Unclear if you need to pulse Vpp, but I think just RST _/= is enough to start RD with RST=H
There is also a device ID read you can use to check connections.
A quick Google does find the attached ASM source, here - but a quick look Assembles ok, but I think it's for a stop-watch, and not a clock. Circuit looks very similar, may need some pin-remap.
My quick Sim shows a LED MUX active, but I cannot make it count ?
Addit: more source (in C) for another variant is here - but I think is truncated ?
Thanks for the link! Interestingly, there are comments suggesting that the ATtiny4313 can be swapped for the AT89C2051. It would certainly be easier to program.
Thanks for the link! Interestingly, there are comments suggesting that the ATtiny4313 can be swapped for the AT89C2051. It would certainly be easier to program.
Saw those when I ordered my 6 digit clocks. Still waiting. My 2 grandchildren are about to have school holidays so I thought the clocks would be a good soldering lesson for them.
Actually, I'm wrong. In fact all of the LEDs come on at one time or other although only one at a time. I also hear beeps from the speaker sometimes. This always happens only right on power up and never later.
If you are sure the power supply is clean, and not sagging, I did find this interesting bug in the Start:Stop Timer, (which is why it failed to run on Sim Debug properly).
ie old code was loading stack from random memory value, instead of that stack base location. result is a lottery for actual Stack, which == erratic startup.
Not CLOCK code, but just maybe they made the same error - with such low RAM usage MOST of the time, this would work.
eg If you try 100 deep power downs (short Vdd/Gnd) do any start better than others ?
Actually, I'm wrong. In fact all of the LEDs come on at one time or other although only one at a time. I also hear beeps from the speaker sometimes. This always happens only right on power up and never later.
If you are sure the power supply is clean, and not sagging, I did find this interesting bug in the Start:Stop Timer, (which is why it failed to run on Sim Debug properly).
ie old code was loading stack from random memory value, instead of that stack base location. result is a lottery for actual Stack, which == erratic startup.
Not CLOCK code, but just maybe they made the same error - with such low RAM usage MOST of the time, this would work.
eg If you try 100 deep power downs (short Vdd/Gnd) do any start better than others ?
Actually, I've never had the clock come up and actually work. The best I've seen is slight flashes in one of the LEDs or maybe a chirp on the speaker. Even those are infrequent.
It didn't occur to me when I ordered this clock that the source code does not seem to be available so if you want to modify it you have to write your own from scratch.
Wow... that would be a huge "re-inventing the wheel" effort. And require a lot of (wait for it...) TIME to calibrate. I wonder if the existing software is temperature calibrated to adjust for thermal drift? Some MCUs can swag ambient temperature.
It didn't occur to me when I ordered this clock that the source code does not seem to be available so if you want to modify it you have to write your own from scratch.
Wow... that would be a huge "re-inventing the wheel" effort. And require a lot of (wait for it...) TIME to calibrate. I wonder if the existing software is temperature calibrated to adjust for thermal drift? Some MCUs can swag ambient temperature.
Yeah, I know. It should be pretty easy to write new code. Heck, there's only 2K of code space on that MCU. How much code could there be? :-)
A few years ago, IC Station offered a kit to produce a large ring of WS2812 RGB LEDs. Once assembled, it looked something like this. They still offer a smaller ring kit, but the big ring seems to have gone away. Now I'm sorry I bought only one.
Anyway, I think the ring is a great idea for displaying seconds (while a conventional HH:MM display is centered inside the hoop). A multitude of dynamic color schemes could be used to mark the advancing seconds, far beyond a single LED or a single color.
Of course there is no better way to drive a large string of RGB LEDs than with a Propeller.
It didn't occur to me when I ordered this clock that the source code does not seem to be available so if you want to modify it you have to write your own from scratch.
Wow... that would be a huge "re-inventing the wheel" effort. And require a lot of (wait for it...) TIME to calibrate. I wonder if the existing software is temperature calibrated to adjust for thermal drift? Some MCUs can swag ambient temperature.
Yeah, I know. It should be pretty easy to write new code. Heck, there's only 2K of code space on that MCU. How much code could there be? :-)
FYI, the ASM code for the stopwatch timer above, is ~ 750 bytes, and the C Clock3 code needs minor update edits to compile on SDCC with 4 warnings, to 1016 bytes.
Either could be used as a basis.
Note the tiny4313 has lower pin drive ability than the 2051, and reset needs inverting. The direct mux drive here, pushes the micro a little..
I wonder if the existing software is temperature calibrated to adjust for thermal drift? Some MCUs can swag ambient temperature.
hehe, the time/stopwatch code I ran above, came in at 'almost' one second viz .990305, .990485, .990583 ~.991383 ( off, and with interrupt jitter, not much point in tempco on that ! )
Some quick & simple fixes, to lock in a 4.0000ms tick, and use that, and that now reports 1.000s within the Sim jitter.
The 12MHz Xtals are much more temperature stable than 32kHz ones, so there is not much point in chasing thermal drift.
I was just now pondering doing a GPS 1pps calibrate readout, to allow a compile-time zero correction of the Xtal variation, likely a few 10's of ppm.
Next step would be a TCXO, and the clipped sine GPS ones are high precision, low cost, and should AC couple into XTAL1 ok.
Did your $2 clock work when you finished soldering it? I sent them a message on eBay about mine and they asked me to send pictures of my PCB. I sent the pictures but haven't heard anything back. I'm still suspecting an unprogrammed MCU.
Yes, something is suss...
Can you pgm AT89C2051, or have someone nearby who can pgm AT89C2051 ?
or, there is a sub $10 ZIF40 programmer on eBay that includes AT89C2051 - search SP200S programmer.
I've modified the timer/stopwatch code I grabbed, to allow easy pin remap and LED polarity flip, so that could remap to your PCB design ?
- at least give you a board that does something
Looks like it can mange 1s LSB mm:ss, but the code is quick enough to allow tenths/hundredth/milliseconds LSB , for LAB timing uses ?
Yes, something is suss...
Can you pgm AT89C2051, or have someone nearby who can pgm AT89C2051 ?
or, there is a sub $10 ZIF40 programmer on eBay that includes AT89C2051 - search SP200S programmer.
I've modified the timer/stopwatch code I grabbed, to allow easy pin remap and LED polarity flip, so that could remap to your PCB design ?
- at least give you a board that does something
Looks like it can mange 1s LSB mm:ss, but the code is quick enough to allow tenths/hundredth/milliseconds LSB , for LAB timing uses ?
I don't have a way to program the AT89C2051. I'm wondering if they locked the flash when they installed the clock program. Of course, I'm claiming they probably forgot to program the chip and if that's the case then it probably isn't locked. I think I found an Arduino program for programming the AT89C2051. I guess I could try that.
I don't have a way to program the AT89C2051. I'm wondering if they locked the flash when they installed the clock program. Of course, I'm claiming they probably forgot to program the chip and if that's the case then it probably isn't locked. I think I found an Arduino program for programming the AT89C2051. I guess I could try that.
Even if locked, an Erase allows you to reprogram. It would be worth trying to read the device, just in case there is code that is not secured, that is largely ok.
Can you confirm this schematic from a earlier post, is for your PCB ?
Can you confirm this schematic from a earlier post, is for your PCB ?
That's not exactly my circuit. Mine has an additional resistor, a couple of diodes and an additional cap. It supports either a 3V or a 5V power supply. I've only tried the 5V supply input though.
Comments
Anyway, its good to observe that the one that is actually being promoted at ebay, is a someway cleaner version, of the same basic circuit.
They obviously eliminated the diodes and resistor associated to an eventual battery input connector.
They also seems to got rid of the 4k7 resistor that was paralleling the internal ~100k, available at the RST pin. Perhaps they also improved a bit the 10uF reset cap quality, so the external resistor isn't needed, no more.
Unfortunatelly, in the quest for the smalest possible cost, they also got rid of the 100uF electrolitic filter cap. It sure will demmand a bit more attention, towards having a cleaner (noise-wise) 5V supply.
https://www.ebay.com/itm/DIY-electronic-Kit-Binary-Clock-24-LED-atmega8-real-time-DS1302-SMD-Arduino/292374766763?hash=item4412e4e4ab:g:DDcAAOSwmgJY6gr2
Of course, it's quite a bit more expensive and requires SMD soldering.
If you cannot find a listing (seems there should be one somewhere...), you might be able to read back the code, if the part is not secured ?
See the data for pgm details, just needs fixed pins, and a pulse on XTAL1 outputs the next read byte. Unclear if you need to pulse Vpp, but I think just RST _/= is enough to start RD with RST=H
There is also a device ID read you can use to check connections.
A quick Google does find the attached ASM source, here - but a quick look Assembles ok, but I think it's for a stop-watch, and not a clock. Circuit looks very similar, may need some pin-remap.
My quick Sim shows a LED MUX active, but I cannot make it count ?
Addit: more source (in C) for another variant is here - but I think is truncated ?
Addit: more C source attached below, this one from http://atmega32-avr.com/clock-controllerv1-1-using-at89c2051/
https://www.ebay.com/itm/401516975526
Edit: under a buck per chip here
Needs a new post to attach - this is a SDCC compatible C source file, from links on here http://atmega32-avr.com/clock-controllerv1-1-using-at89c2051/, via wayback...
It would need pin-remap and some tweaks.
and this one is newer version, called Source Code clock3.c, and SCH - looking very close to the kits now... tho the buttons may map differently.
ie old code was loading stack from random memory value, instead of that stack base location. result is a lottery for actual Stack, which == erratic startup.
Not CLOCK code, but just maybe they made the same error - with such low RAM usage MOST of the time, this would work.
eg If you try 100 deep power downs (short Vdd/Gnd) do any start better than others ?
Blue LEDs look cool, but don't put this where someone is expected to sleep. Really can mess with a person's Circadian rhythm.
Wow... that would be a huge "re-inventing the wheel" effort. And require a lot of (wait for it...) TIME to calibrate. I wonder if the existing software is temperature calibrated to adjust for thermal drift? Some MCUs can swag ambient temperature.
Anyway, I think the ring is a great idea for displaying seconds (while a conventional HH:MM display is centered inside the hoop). A multitude of dynamic color schemes could be used to mark the advancing seconds, far beyond a single LED or a single color.
Of course there is no better way to drive a large string of RGB LEDs than with a Propeller.
Edit: Banggood seems to be carrying the same thing.
FYI, the ASM code for the stopwatch timer above, is ~ 750 bytes, and the C Clock3 code needs minor update edits to compile on SDCC with 4 warnings, to 1016 bytes.
Either could be used as a basis.
Note the tiny4313 has lower pin drive ability than the 2051, and reset needs inverting. The direct mux drive here, pushes the micro a little..
Addit:
More source is here https://github.com/zerog2k/stc_diyclock
and here https://github.com/aFewBits/stc-led-clock
Those are not quite the same hardware designs, but are 8051 cores, low pin count, and MUX leds, so could port to these kits easier than starting with a blank-page.
Some quick & simple fixes, to lock in a 4.0000ms tick, and use that, and that now reports 1.000s within the Sim jitter.
The 12MHz Xtals are much more temperature stable than 32kHz ones, so there is not much point in chasing thermal drift.
I was just now pondering doing a GPS 1pps calibrate readout, to allow a compile-time zero correction of the Xtal variation, likely a few 10's of ppm.
Next step would be a TCXO, and the clipped sine GPS ones are high precision, low cost, and should AC couple into XTAL1 ok.
https://www.ebay.com/itm/232130777450
Can you pgm AT89C2051, or have someone nearby who can pgm AT89C2051 ?
or, there is a sub $10 ZIF40 programmer on eBay that includes AT89C2051 - search SP200S programmer.
I've modified the timer/stopwatch code I grabbed, to allow easy pin remap and LED polarity flip, so that could remap to your PCB design ?
- at least give you a board that does something
Looks like it can mange 1s LSB mm:ss, but the code is quick enough to allow tenths/hundredth/milliseconds LSB , for LAB timing uses ?
Here's the link to the Arduino programmer article: http://ceptimus.co.uk/?p=216
Even if locked, an Erase allows you to reprogram. It would be worth trying to read the device, just in case there is code that is not secured, that is largely ok.
Can you confirm this schematic from a earlier post, is for your PCB ?
https://www.ebay.com/itm/51-MCU-programming-support-AT89C52-24C02-93C46-300-kinds-of-chip-USB-burner/291961336451?hash=item43fa407283:g:OdoAAOSwmgJY52CH