E-licktronic Yocto (TR-808 clone)

Nog een paar gedachten.

De Yocto v2 heeft een groot voordeel over de v1 wat niet heel duidelijk geadverteerd wordt: ipv het originele 808 globale trigger systeem heeft hij (net zoals de Nava) een DAC en 12 sample&hold's voor de instrumenten. Dat zorgt dat je iedere voice met een andere velocity (accent level) kunt spelen. Ik ben er nog niet helemaal uit of dat ook snellere triggering op zou leveren, ik hoop nog steeds dat ik met goed gebruik van de shift registers optimale MIDI triggering kan maken. Maar velocity per voice is op zichzelf natuurlijk al een heel fijne feature.

Ik zit me nu af te vragen hoe moeilijk het zou zijn om een DAC-accent circuit aan de Yocto v1 toe te voegen. Ik heb er de ervaring niet voor qua electronica ontwerpen maar je zou het circuit uit de Yocto v2 kunnen jatten. Wel een beetje lastig met MCU pinnen want de Yocto v1 gebruikt zijn GPIO pinnen heel royaal om bijvoorbeeld de scale LEDs direct aan te sturen.

Wat ook lastig zou zijn aan een DAC mod in de Yocto v1 is om de accent knop werkend te houden. Ik vind het allemaal een beetje ver gaan eerlijk gezegd.

Vraag me ook af of een Kenton 808 MIDI mod in de Yocto v1 gebouwd zou kunnen worden, want dat komt op hetzelfde neer als mijn idee van een DAC mod maar dan zonder dat ik een PCB hoef te gaan ontwerpen etc. Misschien ga ik Kenton een keer mailen om te vragen.

Verder heb ik ge-experimenteerd met SPI in mijn mini-firmware. Als je naar de schema's kijkt lijkt het alsof ze bij e-licktronic van plan waren om SPI te gebruiken voor de step LEDs en de step knopjes. Echter de officiële firmware gebruikt 'bit banging' ipv de SPI-unit van de Atmega1284P.

SPI gebruiken om de LEDs en instrumenten te updaten werkt prima: https://gitlab.com/jacobvosmaer/yocto-firmware/blob/midi-avrc/sr.c . Je 'praat' dan met een 74HC595N shift register. De buttons lezen is een ander verhaal, echter, want dat is een 74HC165N en die heeft een andere 'clock phase'. Ik vraag me af of e-licktronic SPI heeft opgegeven omdat ze erachter kwamen dat een 595 en 165 niet op dezelfde bus kunnen.

Ik zit nu een beetje te proberen of het lukt om de SPI bus de hele tijd te herstarten met verschillende CPHA instelling, alnaargelang ik wil lezen of schrijven. Maar het voelt een beetje mal.

Het is ook nog te overwegen om SPI te gebruiken voor lezen maar niet voor schrijven, omdat de Yocto volgens mij veel vaker de knopjes leest dan dat hij LEDs schrijft.

Ik weet het niet zeker maar ik vermoed dat de main loop hier sneller mee te maken is. In vergelijking met de officiële firmware in midi expander mode is de main loop van mijn mini-firmware meer dan 20x zo snel.
 
Moet ook toevoegen dat alhoewel in de mini-firmware de main loop 20x zo snel is, hij nog af en toe noten verliest. Dus ik kan het nog niet echt 'beter' noemen. :)
 
Wow, zoveel vragen zoveel antwoorden :

Moet ook toevoegen dat alhoewel in de mini-firmware de main loop 20x zo snel is, hij nog af en toe noten verliest. Dus ik kan het nog niet echt 'beter' noemen. :)

Hoe kun je nou noten verliezen ?
Je main handelt alle noten 1 voor 1 af.

Hoeveel FIFO is je UART ?, als je alles in de interrupt afhandelt heb je een probleem :
switch( alle mogelijkheden ) <----- super traag.

Wat je normaal doet : zo snel mogelijk uit de interrupt gaan, zet je noten in een circulaire buffer,
zet je controllers in een andere circulaire buffer
De interrupt sorteert je midi in deze 2 buffers,
256 size voor de buffers is goed, unsigned char kan de hele tijd ++ gaan zonder check.

noten zijn belangrijker dan controllers en knipperende LEDs :

if( note ) // high priority
{
// big switch here
}else
if( controller ) // mid priority
{
// big switch here
}else
handleLED // least priority

Heb je het zo geregeld ?
Anders raakt je FIFO vol voordat je switchen afgehandeld zijn.
 
De Yocto v2 heeft een groot voordeel over de v1 wat niet heel duidelijk geadverteerd wordt: ipv het originele 808 globale trigger systeem heeft hij (net zoals de Nava) een DAC en 12 sample&hold's voor de instrumenten. Dat zorgt dat je iedere voice met een andere velocity (accent level) kunt spelen. Ik ben er nog niet helemaal uit of dat ook snellere triggering op zou leveren, ik hoop nog steeds dat ik met goed gebruik van de shift registers optimale MIDI triggering kan maken. Maar velocity per voice is op zichzelf natuurlijk al een heel fijne feature.
[\quote]

De S&H levert heel weinig vertraging op volgens de DIY 9090 ( 100 pf ).

Ik zit me nu af te vragen hoe moeilijk het zou zijn om een DAC-accent circuit aan de Yocto v1 toe te voegen. Ik heb er de ervaring niet voor qua electronica ontwerpen maar je zou het circuit uit de Yocto v2 kunnen jatten. Wel een beetje lastig met MCU pinnen want de Yocto v1 gebruikt zijn GPIO pinnen heel royaal om bijvoorbeeld de scale LEDs direct aan te sturen.

De DAC gaat naar de 4051`s, die gaan weer in de S&H`s,
belangrijk is dat je de S&H op het voice board zet, en het stroom van de voice zelf gebruikt.
Als je hem op het main board zet heb je meer kans op storing ( langere draden & alle S&Hs op 1 stroomtoevoer gaat storen, elke voice heeft 100ohm weerstandjes met 64u elkos )

Wat ook lastig zou zijn aan een DAC mod in de Yocto v1 is om de accent knop werkend te houden. Ik vind het allemaal een beetje ver gaan eerlijk gezegd.

De DAC knop moet daarvoor in een ADC, erg lastig.
Waarom haal je niet gewoon een V2 ?
 
Designer, bedankt voor je reactie!

Ik doe helemaal niks in de UART interrupt, ik gebruik een library die met de interrupt de inkomende bytes in een ringbuffer zet. Ik poll die ringbuffer vanuit de main loop.

Het meest waarschijnlijk is dat mijn UART error handling de schuld heeft https://gitlab.com/jacobvosmaer/yocto-firmware/blob/midi-avrc/midi.c#L186-191

De huidige code gooit de hele ringbuffer weg als er maar iets van een UART error is. Ik moet maar eens lezen wat voor errors er kunnen zijn, en wanneer weggooien zinvol is.
 
Hoezo schrijf je zelf de code niet ?

Als je vast zit kun je me altijd PBtje proberen te sturen,
aangezien ze geen programmeer subforum onder zelfbouw hebben PB me.
Over eigen code hoef je niet te twijfelen, hou het simpel.

Qua errors heb je veel checks niet nodig, die komen bijna niet voor.
Ik denk dat het probleem ergens anders ligt.

Zoiezo reageert jouw ding maar op 1 kanaal, dat gedeelte kan er zoiezo uit,
net wat ik zeg : sorteren op noten en controllers, meer niet.

Zo te zien staat er niets over interrupt in deze code,
probeer het via een interrupt te doen, ok ?
Nu heb je kans dat je mainloop bezig ergens anders is terwijl je FIFO vol loopt.

Moet je nagaan dat 1 zo een switch al te traag is, en je FIFO vol loopt, zo een switch moet je niet in je interrupt uitvoeren, als je alles in mainloop doet is dat hetzelfde.
Een interrupt zet je noten snel veilig terwijl de switch nog bezig is, dat verstoort elkaar niet als je een read en write positie hebt.
 
Ik krijg SPI voor de knopjes/LEDs nog steeds niet aan de praat maar ik heb nu wel een hypothese waarom het misgaat.

De officiële firmware gebruikt een vrij forse interruptfunctie op timer 1 voor de master clock. Bijna al het 'werk' gebeurt in die interrupt. Echter, de main loop leest en schrijft de knopjes/LEDs _ook_. Op die manier kan er van alles misgaan als de interrupt en de main loop "tegelijk" SPI gebruiken.

Met 'bit banging' ipv SPI loopt het niet vast, maar ik vraag me af of sommige van de bugs in de officiële firmware alsnog veroorzaakt worden door ongelukkige interactie tussen de main loop en de interruptfunctie.

Niet zo'n zin om dat op te gaan lossen want dat klinkt als een rewrite.

(SPI werkt prima in mijn mini-firmware waar ik zo min mogelijk met interrupts doe.)
 
Designer: sorry er is natuurlijk geen touw vast te knopen aan mijn geklets.

Ik ben met twee dingen tegelijk bezig:

- eigen firmware schrijven die alleen maar MIDI doet
- kijken of ik de officiële firmware ergens kan verbeteren

En mijn opmerkingen springen heen en weer tussen deze twee onderwerpen.

Ik moet zeggen dat ik eigen firmware schrijven leuker vind dan klooien met de officiële firmware.

Ik verplaats mijn geklets over mijn nieuwe firmware naar https://www.synthforum.nl/forums/showthread.php?p=1977895#post1977895

Designer: ik ga in die nieuwe thread op je laatste post reageren.
 
De roll mode doet het met deze firmware ook in midi slave mode! Ik ben echt super super blij hiermee :D Nu doet mn Yocto het gewoon zoals 'ie t moet.
 
Nou ik heb eindelijk mijn Yocto 808 af met interne PSU.
Het meeste werk zt in het noise circuit en heb uiteindelijk de mod toegepast zoals in de TR 808 service manual is beschreven om de 130 mv te krijgen.

Heb de gelijkrichter verbouwd naar 'full' door 2 diodes extra te plaatsen.
Mijn travo zit onderste boven op de behuizing geplakt.


Issues:

- Ik heb alleen een hum op de High Tom en op geen van de andere sounds. (ga een shield om de toms plaatsen)
- Cowbel klinkt zacht (had een transitor verkeerdom gedaan) Moet een nieuwe in

Daarna wat mods uitkiezen.
De mod pcb heeft een andere case nodig en veel mods zijn voor mij te veel van het goede, beter zelf mods kiezen.

Cheers,

Tim


@flyweight
die post op yocto forum is van mij..
voor die psu hebben we een speciale pcb gemaakt zelfs.. maareuh.. ik ga hem er binnenkort uitgooien.
- maakt uit zichzelf behoorlijk wat herrie, en ik ben enorm overgevoelig voor zo'n dingen
- stoot redelijk wat straling uit, die zich uit als een zoemtoon in het audio path. heb een speciale shield hiervoor laten lassen en het helpt heel wat, maar is toch niet optimaal.

electrisch ontwerp laten nakijken door verschillende bollebozen en niemand vond er iets verkeerd aan. dus kan ik me nog 2 dingen bedenken:
- het groundplane ontwerp van de yocto is ruk
- de case is te klein waardoor degelijke shielding quasi onmogelijk is.

ik denk dat het een combi van 2 bovenstaande zaken is.
in een echte 808 zie ik trouwens ook een shield thv de toms..

ik ga gewoon externe voeding gebruiken nu.
 
Ja idd een 50hz hum, met het tunen veranderd deze niet in frequentie maat igg van de hoogste pitch is de hum wel het minst hoorbaar. Een op de goede plek geaarde shielding zal dit wel kunnen oplossen hoop ik zo.
 
Ik heb daarnet een pull request gedaan op de onofficiele git repo van de firmware om Midi SysEx Dump/Restore toe te voegen..
Wie dit al eens wil proberen, stuur me een PB.
Info: https://github.com/HomoElectromagneticus/Yocto_808/pull/12

51787901-953ae300-2177-11e9-86d8-a8bd2ed144eb.jpg
 
Back
Top