Flying saucer clock (and NAS!)

This digital clock uses a ring of 60 neopixels of a flying saucer design and 12 on the inner ring for hours. It also does backups.

Similar projects worth following
So what do you do when your formally trusty NAS dies and is no longer supported? You can buy a replacement or go the hacker route, and spend the next few days, and then weeks, making the perfect replacement: a UFO inspired clock with a Raspberry Pi 4-powered NAS embedded in the middle. The UFO can also accept pixel data via OPC and be part of a bigger light display.

At the end of November 2019 my trusty old iomega StorCenter NAS started behaving eratically and would keep disappearing from the network and locking up every few hours. I immediately made sure I had several copies of the data and started the search for a replacement. But it dawned on me that whatever I would buy would ultimately go the same way: unsupported and unfixable.

So, with the new Raspberry Pi 4 having USB3 ports and a long running desire to make a circular neopixel clock at some point, it dawned on me that there are two devices that run 24 hours a day: my NAS and my trusty old Tix clock that I bought several years ago.

Why settle for another boring NAS when I can make the ultimate NAS come Clock combination? So began the flying saucer clock project...

I started in Fusion 360 designing some LED support rings, to support the WS2812B LEDs (neopixels). These were quite complicated interlocking beasties to begin with, but were later simplified with greater tolerances to allow for 3D printing on my CR10-S5. The outer diameter of the 60-pixel ring, using a 60 LED/m strip ended up being 326mm, with the LED being mounted at a radius of 158.4mm giving a circumferance of slightly under 1m to match the actual LED strip length of 995mm - just over 60 LEDs per m, which cost me one of many failed prints!

It's worth noting that once the diffusers and body plates were designed this turned out to be a big print - the final saucer came in at a diameter of 400mm. This was going to be a job for the big printer, although it's little brother (CR-10S) came in handy for a lot of the smaller parts.

The inner ring of the saucer contains 12 LEDs behind diffusers made from a ring of transparent PLA with black PLA colour separators, which are lit according to the current hours. The minutes and seconds are shown on the outer 60 LED ring. This also displays the hour as a series of 5 LEDs lit blue and also hour markers shown at spacing of every 5. There is plenty of scope to tune the colours and display.

This pic shows the UFO design viewed from the top in Fusion 360:

And from the bottom:

As well as telling the time, the UFO now stores all my home data on a 3TB 3.5" hard disk. A second disk is used to give 'tiered' backups "time machine" style so I can go back in time if files change or are accidently deleted, or if one of the kids were to let some malware loose whilst downloading something they shouldn't! This uses a fairly simply SAMBA setup with an account for each member of the family and some other shares for photos and TV recordings. A Node.js script is used to run rsync commands hourly to create multiply linked backup copies of the files for the "time machine" backup. In time I might need to increase the size of the second disk to take account of the extra file copies, however using rsync to create links to unchanged files means that so far I'm not seeing much increase over the single copy of data on the first disk.

This image shows how I modelled the NAS components in the middle of the flying saucer in Fusion 360:

Because having 2 functions is not enough, the saucer can also display some UFO effects. The 12 transparent lengths that run from the inner ring towards the outer ring can be pressed to activate switches. The switches are connected to the pi's GPIO pins and trigger UFO effects. There are another 12 LEDs in a ring at the bottom of the saucer, so one of the effects pulses those and will be used with a little add-on (TBD) for cow abduction.

Another feature is that the 'client' code that handles the button presses is separate from the 'server' code that handles the LED display. The client can be disconnected and the server can accept OPC data from my PC or other source. I used this set up when I was DJ'ing on News Years' Eve together with my large LED matrix displays (another project to be documented at some point) for some extra "light" entertainment! I printed out and built another flying saucer that chained...

Read more »

  • 1 × Raspberry Pi 4
  • 2 × USB3 SATA Adapter
  • 2 × 3.5" NAS Disks, rescued from a dying NAS
  • 1 × 12V 5A PSU
  • 3 × 12V to 5V voltage level converters (DC/DC step down buck converter)

View all 9 components

  • 1
    3D printing

    I created a spreadsheet of the times to print the parts for the basic flying saucer. This is the one I made without a NAS in it, that acts as a slave set of 84 LEDs to the first. It takes around 8 days to print (at 14 hours per day) or less when using a second printer for the smaller parts,

    All-in the project uses 1.8KG of filament of various colours. The silver is used for the outer body parts, black is used for the main structural parts and as light separators. The white filament is used for the bottom 12-pixel-strip ring so as to reflect the light towards the centre of the 'cow abduction beam' . Transparent/clear filament is used for the diffuser parts.

    You can download the STLs from thingiverse:

    The silver body plates are printed as 12 separate parts, both top and bottom. They are printed in vertical orientation so that curved surface can be printed in a good resolution without the 'stepped' effect that the layer height otherwise gives.

    All parts are printed with a 0.6mm nozzle and either 0.4mm layer height, which is about as high as I found to be reliably printable with a standard hot end on a CR10-S or S5, or 0.2mm layer height for those in the "fine print" column.

    The top body plates are printed in sets of 4 around a central support pillar. I found this was necessary to avoid a strange warping effect that plagued my first set of body plates, which you can see in the image:

  • 2
    Making the top

    For the UFO containing the Raspberry Pi and other NAS components, small push buttons are added to the internal top plate. These buttons can be omitted for a 'slave' saucer that doesn't need these inputs. A transparent lever is added (in all cases) and a spare piece of 1.7mm filament is used to secure it. Repeat 12 times and solder wires to the buttons if used, enlarging the small holes with a drill if needs be to get the wires to the reverse side.

    Wires come through like so:

    After hot-gluing on the diffusers, the body plates are then attached to the support frame, which is in turn attached to the internal top plate, all using M3 screws.

    This pic shows more of the construction:

  • 3
    Make the LED rings

    This is pretty straightforward now that the tolerances for the LED rings are generous. Two halfs of each ring sandwich a strip of 60 LEDs for the large outer ring and 12 LEDs for the top and bottom ring. A bit of soldering to the strips and hot glue later, you end up with a set of 3 rings that you can temporarily wire together and test with an Arduino running the example strandtest sketch.

    M3 screws are used throughout almost all of this build.

View all 6 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates