Noiseplug – rca plug that plays chiptunes

Do you remember those first 8 bit computers and video game consoles? Do you remember how beautiful music they were able to play? This unusual device is a combination of modern technology and charm of 90’s. A seemingly simple plug, hiding a very small attiny10 microcontroller and two watch batteries inside – plays 2 minutes long Chiptune track, after plugged into the amplifier input.

Introdution

Well you can see how much technology has moved forward, even 25 years ago to play that kind of tune you had to build a device with the size of today’s mini-computers. Now, a small 1,5 x 3mm package is all you need. The presented device is a clone of the original – Noiseplug – by dop3joe . Here you can watch the originalvideo, there is no project site at the moment. 1kB of flash memory and 32 bytes of RAM – this is all the author was needed to fit the “player” that generates sound at the PWM output (pin1), and save the whole melody. Originally, the code was created in C, but with the passage of time author was prescribing it to ASM, until there were left not a single line of C code.

Schematic?

The whole thing is so simple that there is no schematic. Very simple “printed” circuit board with dimensions of 5 x 8 mm was made by scratching-off-copper method, the caliper with sharp jaws is ideal for this task. It makes no sense to dabble in print and etching, scratched takes literally 5 minutes – and the effect can be seen on the pictures. Circuit begins to play a tune as soon as power is supplied, it uses the PWM output on the pin No.1. This pin can be directly connected to the input of the amplifier or computer sound card, because such devices have already capacitors on the inputs to compensate the constant voltage, which this circuit adds. Pin 2 is GND, pin 5 is VCC – that’s all.

Plug itself:
The whole circuit is contained inside of a metal RCA plug, this neat construction can be seen in the pictures. Two “button” battery (3V in total) are located at the rear side of the plug. After tightening the connector housing, the positive electrode touches the VCC field on the board. Power supply from 1.8V to 5V, but the best is 2,5-3V. In my laptop 3V signal level was already on the verge of distortion, but the amp can handle this a lot better.

Programming:
Attiny4 5, 9, 10 series chips uses TPI programming interface (tiny protocol interface). It will not be a problem because usbasp 2011-05-28 version officially supports this protocol, also USBTiny-MkII SLIM (clone of atmel’s MKII) will handle it as well. Just load the hex file from the attachment. The code has been created for the Attiny9, who from Attiny10 differs only with that, the first one does not have ADC – so they can be used interchangeably. If there is a need to compile the code, use the Atmel Studio 6, with use of included makefile.

Gallery:

Original video:

My solution:


(sorry for overdriven sound and shaky hands, it was recorded on the go)

Files:
POBIERZ – HEX file, ASM source file, license file





5.00 avg. rating (96% score) - 1 vote

15 Comments

  1. WOW. Ale cudeńko :) Koniecznie takie chce. Skąd brałeś attiny10 i taką wtyczkę? Możesz dać jakieś linki?

    • Wtyczka w lokalnym sklepie, każda jedna powinna dać radę, tylko dobierzesz sobie na długość swoją pcb, lub podłożysz coś grubszego zamiast podkładki. Attiny10 brałem w seguro, jeszcze nie zyskały takiej popularności wśród amatorów aby znalazły się na allegro.

    • Mam jeszcze pytania jeśli pozwolisz.

      Te dwie bateryjki jak długo potrafią grać? Np gdybym chciał zrobić komuś kawał i na stałe podłączyć pod wzmacniacz?

      Czy dobrze rozumiem że należy je włożyć tak aby mniejszy biegun ujemny dotykał tej podkładki z tyłu? Nie zwiera się z dużym biegunem dodatnim? A jeśli u siebie dam biegun dodatni na masę wtyczki i wzmacniacza, będzie to normalnie grało, no bo jak piszesz wzmacniacz ma na wejściu kondensator i napięcie i tak sobie wyrówna, obojętnie czy dodatnie czy ujemne?

      W co włożyłeś baterie? Tzn chodzi mi o ten izolator.

      Jak rozumiem, płytka została przylutowana jedynym końcem do środkowego bolca i tak się trzyma, czy jest przyklejona jeszcze jakoś?

      Attiny już zamówiona, jutro idę po wtyczkę :)

    • Ad.1 – nie wiem, ale jutro zmierzę pobór prądu.

      Ad.2 – tak, na obudowie ma się znaleźć minus. Eksperymentowałem z plusem na obudowie, bo jak piszesz dla wzmacniacza nie powinno to robić różnicy. Jednak wraz z dźwiękiem słychać było jednostajny pisk o f kilku kHz. Podobny do tego który jest generowany na pinie PORTB2. Podejrzewam że ma coś z tym wspólnego, a sygnał na PORTB2 prawdopodobnie został dodany przez autora w celach diagnostycznych, tzn żeby jak szybko wykonuje się kod programu. W kodzie można znaleźć dwie instrukcje cbi PORTB, 2 oraz sbi PORTB, 2 które nieustannie zmieniają jego stan. Można spróbować skompilować kod bez tych instrukcji i sprawdzić czy będzie poprawa. Ale nie widzę potrzeby takiego kombinowania.

      Ad.3 – rurka termokurczliwa.

      Ad.4 – tak, tą stroną która wyprowadza PORTB0. Trzyma się dobrze. Za pierwszym razem próbowałem zrobić tak jak autor, czyli polutować w pająku, a potem kombinować z jakimś wspornikiem dla tego VCC. Urwałem nóżkę tiniemu i na tym się skończyło. Są BARDZO delikatne.

  2. Działa :D Chciałbym jednak pozbyć się tego sygnału z portb.2 dla uproszczenia płytki – tzn reszte i/o dać do vcc lub gnd aby tyle nie drapać. Niestety nie jestem zbyt dobry w takich mechanicznych obróbkach, suwmiarki nie mam, i ciężko mi tą płytkę wyskrobać. Niestety po skompilowaniu program nie działa, nawet jeśli nic nie zmieniałem. Na załączonym hexie wszystko jest ok. Jakieś pomysły?

    • W czym kompilowałeś? Mi w AVR Studio 4 kompilowało ale właśnie kod nie działał, wydawał z siebie tylko krótki pisk. Atmel Studio 6 daje rade. Zajmuje to coś koło 700MB albo i lepiej. Pochwalisz się jakimś zdjęciem?

  3. Nie można powiększyć zdjęć. Da radę innego chiptuna wgrać?

    • Hmm u mnie zdjęcia się poprawnie powiększają – trzeba chwile odczekać.

      Autor na swojej stronie udostępnił jeszcze jakieś narzędzie do zmiany melodii, ale w ogóle się nim nie bawiłem i nie wiem jak działa.

  4. Ja się słabo orientuje w te tematy… Mini programator z avt do avr kompatybilny z stk500 v2 nie zaprogramuje tego ATtiny?

  5. A mam takie pytanie, czy na tego atmelka można wgrać program, żeby zrobić taki mini generatorek testowy o cz-ci 1kHz?
    Można gdzieś zaleźć taki kod żeby tam w nim umieścić?

  6. czy może mi ktpś pomuc niewiem jak podłączyć usbasp do mikro procesora
    do pinu
    1-? niewiem czy MISO/SCK/RST/MOSI
    2-GND
    3-? niewiem czy MISO/SCK/RST/MOSI
    4-? niewiem czy MISO/SCK/RST/MOSI
    5-Vcc
    6-? niewiem czy MISO/SCK/RST/MOSI

    Bardzo bym prosił bo attiny zamuwiony a ja niewiem jak podłączyć :(

  7. A czemu schemat nie podany???

    • Obawiam się kolego że to Cię już przerosło. Przeczytaj opis, a dowiesz się że nie ma schematu. VCC GND i pin nr.1 jako wyjście dźwięku – potrzebny schemat? Przeczytaj opis, a dowiesz się że te układy programuje się poprzez TPI a nie ISP. Opis wyprowadzeń dla TPI znajdziesz w nocie katalogowej swojego attiny.

Leave a Reply

Your email address will not be published. Required fields are marked *

Please leave these two fields as-is: