{"id":16938747,"url":"https://github.com/dsnet/mario-doorbell","last_synced_at":"2025-10-29T11:44:34.348Z","repository":{"id":132959726,"uuid":"41650861","full_name":"dsnet/mario-doorbell","owner":"dsnet","description":"Custom doorbell design that plays the Mario coin sounds upon every press.","archived":false,"fork":false,"pushed_at":"2015-08-31T05:16:05.000Z","size":24520,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T06:22:38.320Z","etag":null,"topics":["doorbell","mario"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dsnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-31T02:11:06.000Z","updated_at":"2022-07-27T07:04:45.000Z","dependencies_parsed_at":"2023-03-10T15:56:25.353Z","dependency_job_id":null,"html_url":"https://github.com/dsnet/mario-doorbell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fmario-doorbell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fmario-doorbell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fmario-doorbell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsnet%2Fmario-doorbell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsnet","download_url":"https://codeload.github.com/dsnet/mario-doorbell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248734385,"owners_count":21153202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["doorbell","mario"],"created_at":"2024-10-13T21:02:24.982Z","updated_at":"2025-10-29T11:44:34.269Z","avatar_url":"https://github.com/dsnet.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mario Themed Doorbell #\n\n## Introduction ##\n\nWho wants a boring old doorbell that simply goes \"ding dong\" when pressed?\nI sure didn't! That's why I decided to design my own doorbell that provides\nample entertainment for the guest at the door. Now, introducing the new\nMario Doorbell; it's flashy, it's got coins, and it's guaranteed to increase the\nfrequency of ding-dong ditchers or your money back! In fact, your guests won't\neven be at your door to visit you, they'll be too busy racking up coins to even\nnotice you.\n\n[![doorbell-demo](media/door-button.jpg)](http://www.youtube.com/watch?v=j20RfiTt6zI)\n(Click above image for demonstration video)\n\nBasically, every time a guest presses the coin button, the counter displayed\nwill increment and the coin sound from Mario will be played. As a special\nbonus, every 10 coins will cause the life-up sound to be played, and every 100\ncoins will cause the mushroom upgrade sound to be played. Technically, the\nlife-up sound should have been for every 100 coins, but the mushroom upgrade\nsound was so obnoxiously loud and long, that I switched those two clips.\n\n\n## Implementation ##\n\nThe doorbell system was split into two separate sub-projects. The first is the\ndoor button that sits outside the apartment and is responsible for counting the\ncoins and transmitting which sound clip to play over UART. The second is the\ndoor ringer that sits inside the apartment and is responsible for listening for\nthe sound clip to play and to generate the audio signal for the selected sound\nclip. The interaction between the two sub-projects is as shown:\n\n![diagram](doc/diagram_lite.png)\n\nThe door button basically comprises of a PIC16F628A microcontroller connected to\na dual 7-segment LED display. I tried to keep the costs of this portion as low\nas possible in the unfortunate event that someone steals my precious doorbell.\nThe ugliness of circuit board and electronics is masked by a Mario themed decal\nbased on art from Yoshi's Island. The image of the coin itself is the button\nthat guests press to earn coins.\n\n![decal](media/decal.png)\n\nThe door ringer is built on a PIC16F687 microcontroller connected to a MCP4822\nDAC and a 25LC1024 EEPROM. When the MCU receives a signal over UART from the\nbutton, it will play the requested sound clip by reading sample bytes out of the\nEEPROM chip via a SPI bus and and feed the data into the DAC chip. The door\nringer does not have any speakers, so it is necessary to plug an external\nspeaker into the audio jack port on the circuit board.\n\n\n## Folder Structure ##\n\n* **board**: Circuit board schematics or PCB layouts\n* **doc**: Documentation related files\n* **media**: Multimedia files such as photographs or decals\n* **mikroc**: C sub-projects targeted at the microcontroller realm\n* **mikroc/door_button**: Project for controlling the door button\n* **mikroc/door_ringer**: Project for playing sound samples as the door ringer\n* **mikroc/hex_convert**: Program to convert Wave files to EEPROM hex dump\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsnet%2Fmario-doorbell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsnet%2Fmario-doorbell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsnet%2Fmario-doorbell/lists"}