{"id":35310875,"url":"https://github.com/project705/nixie","last_synced_at":"2026-04-29T12:35:57.367Z","repository":{"id":274891528,"uuid":"402666753","full_name":"project705/nixie","owner":"project705","description":"RaspberryPi Nixie Tube Calculator Clock w/Android Control","archived":false,"fork":false,"pushed_at":"2021-09-03T22:09:25.000Z","size":867,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T00:27:55.088Z","etag":null,"topics":["android","nixie","nixie-tube-clock","raspberrypi"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project705.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-03T06:15:43.000Z","updated_at":"2021-09-08T19:13:38.000Z","dependencies_parsed_at":"2025-01-30T00:37:57.069Z","dependency_job_id":null,"html_url":"https://github.com/project705/nixie","commit_stats":null,"previous_names":["project705/nixie"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/project705/nixie","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project705%2Fnixie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project705%2Fnixie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project705%2Fnixie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project705%2Fnixie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project705","download_url":"https://codeload.github.com/project705/nixie/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project705%2Fnixie/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32426586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T12:24:25.982Z","status":"ssl_error","status_checked_at":"2026-04-29T12:24:24.439Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","nixie","nixie-tube-clock","raspberrypi"],"created_at":"2025-12-30T17:43:16.056Z","updated_at":"2026-04-29T12:35:57.361Z","avatar_url":"https://github.com/project705.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nixie Tube Calculator Clock w/Android Control\n\n\u003cimg align=\"left\" style=\"padding:0px 20px 0px 0px;\" src=\"http://epieye.com/nixie/images/calc_app0sm.png\"\u003e\n\nThere's nothing quite like basking in the soothing orange glow of a\ncold-cathode nixie tube display. An excellent vehicle for aforementioned\nbasking is the Singer/Friden\n[EC1117](http://www.oldcalculatormuseum.com/friden1117.html) calculator.\nReleased in 1971, this beauty sports a full dozen Hitachi\n[CD-90](http://www.tube-tester.com/sites/nixie/dat_arch/Hitachi_catalog.pdf)\nnixie tubes. Given the pervasive nature of modern computers, however, the\nEC1117's number crunching capabilities may seem somewhat modest and its\nportability limited (despite the convenient carrying handle).\n\nSurely you are now thinking precisely what I am: this calculator should be\nturned into a clock; a clock controlled by an Android app! Ask and 'ye shall\nreceive! Below you'll find a write up describing the transformation and also\nlinks to full source code, 'scope traces, schematics (those are kinda rough\nsince I don't have the calculator schematics), packaging info and more. Let me\nknow if anything seems missing.\n\nIf you want to skip right to the details:\n\n*   First [watch the demo](https://www.youtube.com/watch?v=mibd44goZ-E)\n*   Then [see these slides](http://epieye.com/nixie/nixie_calc.pdf) which give an overview with pictures, oscilloscope traces, schematics and more\n*   Read more in the [Hackaday writeup](https://hackaday.com/2016/07/15/45-year-old-nixie-calculator-turned-udp-server/)\n*   Get the code [from github](https://github.com/project705/nixie)\n\n* * *\n\nInstead of watching TV I modified my EC1117 to function as a programmable clock\nand digital display. This was achieved by using an oscilloscope to reverse\nengineer the display interface of the EC1117. Once I understood the interface\nsignaling and protocol, I used a couple of 4504 level shifters to connect it to\nthe GPIO bus of a Raspberry Pi 2B. Then I wrote a small C program to emulate\nthe bus protocol in software. The program busy polls the calculator's 860Hz\nsystem clock waiting for a rising edge. Once the edge is found, it outputs a\nserial bitstream across the 4-wire bus to produce the desired display output.\nThe C code also creates a thread listening for UDP packets. This thread decodes\na simple ASCII protocol that allows wireless network clients to change the\nclock mode (e.g. different date/time formats), and also allows setting each\nindividual digit to an arbitrary value.\n\nPart of this project was an experiment to see if it was possible to emulate\nsuch a protocol without a real-time operating system. The answer seems to be\nmostly yes, it is possible although one can observe a few glitches here and\nthere. Presumably this is due to being descheduled and missing the next edge\ndue to an inconvenient context switch. Note that the code itself always busy\nwaits to minimize context switch overhead. Also the clock I'm using from the\nEC1117 board appears to be the system clock; its period is about 20 bittimes.\nThis means the emulation timing is open loop for all those bittimes, so timing\njitter will be most visible on the uppermost digits (i.e. furthest from the\nsystem clock edge).\n\nAnother objective was writing an Android app to control the clock and display.\nThis was a way for me to learn about app development. The main app activity\nuses an image of the calculator manufacturer's dataplate as the anchor for a\nfling gesture. Swiping this image to the right increments the display mode\nwhile swiping left decrements the mode. The activity also contains 12 wheel\ncontrols, each mapping to a single digit on the EC1117. When in arbitrary\ndisplay mode the user can set the calculator digits in real-time using these\nwheels. Each increment of a wheel results in an event which sends a UDP packet\nto the calculator resulting in a change of the corresponding digit on the nixie\ndisplay. Users can manipulate multiple wheels simultaneously and all digits\nwill smoothly update. There is also a configuration utility to set the IP\naddress and port. I might eventually get rid of this in favor of full\nzero-configuration with UPnP, mDNS and friends.\n\n      Nixie Tube Poetry:\n         i once met a Clock in Dixie\n         who lit up its Digits with Nixie\n         keeping Time with a Pixie\n         while Drinking a Moxie\n         why is Life so Boxie?\n\n      Nixie Tube Poetry by Gabe:\n         Amber digits dance\n         Calculate, enumerate\n         Dozen nixie tubes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject705%2Fnixie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproject705%2Fnixie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject705%2Fnixie/lists"}