Automatic Daily Upload

I have been searching, but can find a solution.

I made a nixie clock that is powered by an arduino board. It keeps time by tracking milliseconds, but as you know milliseconds on arduino are not that accurate. I am pretty close to correct (only off a couple seconds per day) at 998.3 milliseconds per second. I would try to get more accurate to keep better time but it overflows in like 6 days anyway. I'm sure there is a way to program around all this, but I have no idea how to program.

I have an old laptop with windows 7 that stays right next to the clock (I use it as a print server). Does anyone know how I could make it so once per day the laptop would automatically upload the sketch? I can choose the time the sketch starts at, so at say 02:59:53 it would upload the sketch with the 03:00:00 time (takes a few seconds to upload and power back on. The clock would never be off by very much since it would update every day, and would reset itself automatically after power outages.

Any ideas?

Forcing a sketch upload every day is not necessary. Create a process on the PC that connects to the serial port that the Arduino is on. That process should listen for a time sync request, and supply the current time.

Once an hour or so, the Arduino should ask for an updated time.

I understand what you are saying, but like I said, I don't know how to program. What program would you make the listening process on the computer in? I have no even if you could get that to work how to incorporate it into the code loaded in the arduino. I just downloaded a the code and made minor changes (just switching which number when to which bulb). There are two spots to type in a start time, one for hours and one for minutes, then i hit upload 7 seconds early to set the clock.

If you know how much error you're getting each day, it should be easy to modify the code to add/subtract that many seconds at a certain time. That'd certainly get you closer to accurate.

Why not add an RTC chip for much more accurate time and drop the need for a PC? DS3231 or DS3234 for examples. Stick it on a prototype shield, connect to Power, Ground, I2C or SPI, couple of caps, couple of resistors, and a coincell backup battery holder.

Not hard load an initial time into it, not hard to pull the time to display on your Nixe tubes.

GoBetwino can get the time from the PC