Affichage des articles dont le libellé est Speak and Spell. Afficher tous les articles
Affichage des articles dont le libellé est Speak and Spell. Afficher tous les articles

mardi 28 février 2012

Arduino midi Speak and Spell code release.

Finally i released the code.
It is a very basic version but a working one. You can find schematics and code at : http://code.google.com/p/noizeinabox/

I've also a few PCB left if someone is interested, drop me a mail.


vendredi 10 février 2012

Midi Speak and Spell/Read recap

Time for a quick recap of the project.

This project was created to connect the speak and X to a midi device enabling control over midi of the speak and x.
The result id  not to be able to make it speak my own word, but more to create some bending like sounds, similar to the already existing highly liquid kit.

Why i wanted to recreate the wheel ? just because I've tried a highly liquid midi modified speak and spell and i wanted to add more midi controlled function to it, or be able to map on a midi keyboard all preferred sounds (without changing banks for ex.)
There is a second reason : because it's possible. As someone already achieved this, i should try myself and provide the infos to the DIY community.

Current project status : the autoshutdown problem as been resolved. now everything seems to be working fine,
will clean all debug crap in the code and release it ..

Quick test of ableton controling the speak and read. (noizy)

noizeinabox speak and read midi test with ableton by noizeInaBox

jeudi 9 février 2012

Arduino Speak and Sell midi interface pinout

Here is the pinout of the Arduino Speak and Sell midi interface Shield.

The code will be, as promised, provided, but i need before releasing it to solve this autoshutdown issue, which seems to be software based an not hardware.(after each midi note it should simulate a "erase button keypress to
reset the autoshutdown counter of the speak and spell)


I plan to sell few PCB or kit if someone is interested.

Speak and Spell Arduino New PCB testing

Finally i soldered and tested my new PCB, (v0.8) and it's working fine..  Great News.
I also tested the functionality to power the arduino with Speak and Spell, it's working as well.
I got some prob with the autoshutdown feature, after 3 min, the speak and spell still shut down. Need to verify the code.

Here some pictures.




As you can see a lot of component are on socket or not soldered, the reason : it is the first soldered test of the new PCB, i prefer to put socket to recovers the component if the PCB was not working, that's it.

Here is some sound, not a track or anything musical, only some sound to listen few different sound of a Speak and Read connected to this arduino speak and spell shield :
Test the Arduino midi Speak and Spell interface 1 by noizeInaBox

mercredi 1 février 2012

Still no big news ...

No this project is not abandonned ..  and  i know that i didn't put many updates on this blog for a while .. so it's time  for a project status :
I've received the new PCB (only few days ago) but didn't get the time to solder it.

I will also put on this blog some side projects or new toys teardown.
So what's next (i hope this week) :
- Solder and test the new PCB (v0.8)
- Finish and test correctly the Speak Spell Library (basic functions)
- Release the Library code.

A quick picture of the new PCB


If you look at the picture, you can see a Midi in and Out, the Speak Spell won't be able to send midi messages. So midi out is not directly used by the speak and spell., but as the project is open source and driven by a Arduino, you will be able to adapt the code to do send midi messages for anything (add midi nutton, sliders,etc..)
The Speak and Spell Shield is also a Midi shield and all connection between Arduino and Speak and spell bus driver can be removed (with the 10x jumpers) so you can disable all the speak and spell electronics and use it as a pure Arduino midi shield for any projects.





vendredi 30 décembre 2011

New Pcb ordered

The new version of the PCB has been ordered (v 0.8)
There is few schematics changes and the Midi connectors has been moved to the back to be able to put this with the Arduino in a case.


And Schematics :


lundi 19 décembre 2011

updates..

Sorry for the lack of update but was busy theses days.

So i've debugged the PCB and it's working fine now .. (need to manufacture another prototype PCB early JAN.)
For the code i'm trying to convert it to a sort of Arduino library, will be much easier to use.


vendredi 18 novembre 2011

It's christmas day

I just received my PCB prototypes they look nice and good quality. :



So quickly let the iron warm up and start to solder 1st prototype.



I soldered only the important parts, because it is the first prototype and you know the murphy's law.
Let's go for the first tests, add S&S power and test some voltage, Guess what .. IT DOESN'T WORK
I got very strange voltage on the output for the speak and spell bus, it's time to start debugging.

After several tests i found why .. all transistors are inverted ..  but strangely i didn't mounted then wrong, the error comes from Eagle. it seems that Eagle got several the BC558 part and one of this part the collector and emitter is inverted and of course i choose the wrong one ..

Next step, remove the transistors and resolder them in the correct way (what a pain to unsolder them on a double side pcb) and re-test. OK now i got the correct voltages. (-18 or 5V). (not with fresh batteries, problem explained in previous post)

midi optocoupler seems to be working right.
Didn't get time to check other part of the pcb for the moment.

Things to change for the next revision :

- correct silkscreen for transistors
- connect transistor emitters to the regulated 5V supply
- correct the input zener input regulation (put resistor in serie)
- check resistors value to limit the schield current
- remove the -18v / gnd selector jumer (default -18V)
- add a jumper to allow power via arduino.







vendredi 11 novembre 2011

Possible Big design prob found

Argh ...
After reviewing schematics (to adapt them to the teensy) i've found a possible design bug in the schematics.
If my tought are right, i would not be possible to stop the transistor to saturate.


So imagine few values :
Speak and Spell battery + 5V (when Batteries are not new)
Speak and Spell battery : - 12V
Arduino out 1: 5v / 0 : 0V

So when Arduino output =0 , the transistor will saturate and you will 5V on the Speak and Spell BUS
When Arduino output is 5V, the transistor will stop saturate (VBE-0V)and  you will get -12V on the S&S Bus
Everything is fine..

BUT if you put new batteries on the Speak and Spell then the VBATT + is ~ 6.5 V. So  to stop saturate the Transistor we should have min 5.8 V on his base. (VBE 0.7 V).

We have few option to correct this :
- Use darlington transistor (VBE 1.4) 
- Connect Transistor emmiter to regulated 5V supply
- add a diode + a 5V1 zener on emitter of the transistor.

The PCB has been sent to Prod and they are not arrived yet.. and i''ve already spotted a design error.
Why i didn't spotted this during the testing .. ? because i'm using old batteries .. and Speak and spell Battery voltage is 5.3 V. Grr.......





mardi 25 octobre 2011

new Schematics / Edit : Last update 1st nov.

The new schematics, with the midi input and output for the shield
The PCB has been sent to production, i should get them in 10 to 15 days.. 
the PCB will be based on this schematics:

1/12/11 : Schematics Removed, will add them again with the corrected one..
Feb 12 : Last Schmatics are on googlecode.

PCB should look like this..:


And finally the Eagle 3d Preview  (wihout midi connectors) :


mercredi 19 octobre 2011

autoshutown 2 the return

Finally i got the reset of autoshutdown working .. (need to verify but don't know how to do a midi note every 20 sec without doing it manually).

When pressing the "erase button" it connect the pin 6 to the pin 33 in the microctronller (via the membrane keypad), the pulse shown in the previous post will output from pin 33 and goes in the pin 6.

After few tests the conclusion is :  needed to recrate this pulse and it need to be well synced with the signal from pin 6. Using port maipulation i get env, 500 ns difference between the received pulse and the created one.
Normally this pulse should simulate a "erase" keypress and erase the screen if you press a letter button before.i execute the function (generate the pulse after every midi note) and strangely it does not erase the screen each time .. but seems to reset the autoshutdown counter correctly. To be sure it will erase the screen i should do a few of theses pulses, be they appear each 7,x ms , so if i want to put 4 pulse it will take approx 30 ms, after each midi note, which is far too much i think if you want to trigger the note quickly (not sure the S&S will accept not ever 20 ms need to be tested). i prefer to keep responsiveness of the S&S.


I also tried something totally different, remove the negative voltage from the interface and replace it with the GND, it should work in theory because the bus should have pulldown resistor.
Result  : it works , yeah .. but with some interference on the VFD display.


With the negative voltage
 correct screen with the underscore (the ctl8 pulse is due to this underscore)








 



Without negative voltage  you get strange display but works.

I'm tired of all this cable and stuff
 that's why i'm designing a sort of shield (smaller one)for arduino, once done, will sent it to a PCB prototyping service.
This shield will be usable to the arduino to S&S interface, will power the arduino with S&S batteries, it could also be used as a midi shield.


mercredi 5 octobre 2011

autoshutdown

The Speak and spell got a anoying feature, the autoshutdown when no button is pressed.
By using the arduino Speak and Spell interface, we inject signals directly into the speech synth and not using any button. So the Speak and Spell will power off after few minutes.
We will need to add a "automatic button press" when a midi note is played to ensure the device does not power off. For example the "/" or "erase" on the keyboard don't do any sound ..  sounds the good key to use ..

First find the connection on beetween the CPU and the keyboard :
 Keyboard connector pin   ->  CPU pin
1   ->  2
2   ->  6             used for the "/" or erase key
3   ->  5
4   ->  33           used for the "/"or erase key 
5   ->  32
6   ->  Vbatt+
7   ->  31
8   ->  30
9   ->  34
10   ->  29
11   ->  28
12   ->  4
13   ->  3

Next step watch the signals ... on the Cpu pin 6 = nothing interesting.
on pin 33 .. a pulse of approx. 500 uS.

So will check if generating a pulse will do the job of if the pulse need to be correclty timed and triggered..



mercredi 28 septembre 2011

First Midi test

Midi support is working fine now. Only Note On for the moment ,I need to add the pgm change to change bank of sound.becaus theoretically i can have 16383 different address. (14 bits address 2 bit for Rom chip select, 2 unused = 20 bits = 5 x 4 bit nibble)

It currently doing sound with "Note off" (because my M-audio keyboard doing Note off with a Note On velocity 0 ) will be corrected tonight.
Sorry for the Video quality and the crappy sound, it's recorded with the internal Cam/mic of my Macbook)


Code will be published soon, i need to clean it..

mardi 27 septembre 2011

Midi on the way .. usb midi S&S for the future ?

I've added midi basic support and it works.
I still need to manipulate some bits to create correct mapping on midi notes and S&S addresses. but i's responding to midi keypresses :)

I also received my new geek toy, a teensy 2.0. which support USB directly. i will try to make it work with the Speak and spell. to get a USB Midi speak and spell, sounds fun .. 

I'm also thinking of adding some midi controlled loops and glitches (maybe pitch or lfo) if someone have good working loops bend point i will be happy to try them if it is still stable with them. (bend point cannot be on the same pint as the midi speak spell devices).



lundi 19 septembre 2011

Work in progress

Now i get a working speak function with reliable result.
I'm investigating now the structure of addresses sent to the Speech synth (the 5 nibbles). i'm trying to do a "map" of the Rom.
The addresses are 20 bits. but only 14 are the address, 4 are Rom selection (you can put more than 1 ROM) and 2 are unused.

Ref: TMS6100 datasheet
http://www.ti99.com/exelvision/website/telechargement/tms6100-80-data-manual.pdf

mercredi 14 septembre 2011

Interface Schematics (Beta) (don't use this schematics before read the correction in the post)

This schmatics is wrong, don't know why i did this stupid error. (only on the schematics). the D2 should be connected to the collector of Q3 and not Q1, (it is to detect the pulse on CTL8)

mardi 13 septembre 2011

Signals...


See here a logic sniffer capture with explanation:

Quick Warning if you want to connect S&S to your Logic analyser, remember that the logic level are not TTL.
1 is ~ 5 V and 0 is ~ -15V. if you connect your analyzer directly to the S&S it will probably fry ..

She's Alive ... aliiive...

She's alive, yes.. she's  alive..
Finally i got something working, it is still not perfect but the beta is working.
Status of the Project : one button connected to Arduino. When pressed, The Arduino send the commands/addresses in the S&S speech synth to make it speak. At each click on the button i get the same sound (because it send each time the same Rom address) which is the way it should be working.
Next Steps: 
-Analyse the OLS capture (open logic sniffer) to adjust the timing and found why i get some spike on the signals.
-Optimize and clean the code to get a perfect "Speak function" (and release it)
-Add midi feature  
-Add pitch/lfo/filter? midi controlled.
-Create PCB, propose Kits for the community.



How to make it cry :
Please note that the Speech Synth bus is shared with the display,When trying to inject some command in the bus be sure only underscore is displayed on the S&S (for a S&R do WORD MAKER ->GO->ERASE)

Info: Periodically the ctl8 will go high due to the underscore on the display, you will need to inject the code between 2 ctl8 pulse which occur every 7.7ms and pulse duration is approx 780us. So you have 6.9ms to inject your code wich is more than enought..

1. detect the ctl8 pulse
2. Enable TMS (CS high)
3. Reset TMS (bus 0000 + clock)
4. Load address command ( bus 0010 +Clock)
5. 1st address nibble (bus xxxx +clock)
6. Load address command ( bus 0010 +Clock)
7. 2nd address nibble (bus xxxx +clock)
8. Load address command ( bus 0010 +Clock)
9. 3rd address nibble (bus xxxx +clock)
10. Load address command ( bus 0010 +Clock)
11. 4 address nibble (bus xxxx +clock)
12. Load address command ( bus 0010 +Clock)
13. 5 address nibble (bus xxxx +clock)
14. read Rom command (Bus 1000 +clock)
15. Speak command ( Bus 1010 +clock)

to be more clean you shoud do a test speech busy command to be sure the speech synth has finished speaking..

Voila..
more to come..



samedi 10 septembre 2011

Arduino-S&S interface prototype ready

the interface prototype using veroboard is done
After few test is seems to be working,I didn't saw interference to the S&S, Voltage are correct.
Next step connect Arduino and inject some bits in this box to make it cry ...



mardi 30 août 2011

let's Start .... again..

I tested the interface from Arduino to S&S using brand new 74HC126  .. result = not possible.
I tried to use them in a non-classical way  : output a "1" when input is Hight and High Z when input is low (using the internal pulldown resistor of Speech synth to get a low at -12V).After few tests it seems that connecting negative voltage to the HighZ output of the 74HC126 is not possible. (I get ~0.5v instead of -12V ). i don't know exactly why because i didn't check internal schematic of the 74HC126.
So .. bye bye  the 74HC126 ... and welcome back to the littles Transistors .. :)

For people asking for the code,I will release it, don't worry. Actually it doesn't work and i'm trying to identify the source cause of the prob. I will rebuild a new interface to ensure it doesn't interfere with S&S data bus