Show Posts
Pages: [1] 2 3 4
1  Using Arduino / Displays / Re: 2.2 TFT Serial with ILI9225 - driver needed on: April 05, 2014, 04:58:23 pm
I'm a little bit sleepy, so excuse my answer: smiley
http://lmgtfy.com/?q=arduino+float+to+string
2  Using Arduino / Displays / Re: 2.2 TFT Serial with ILI9225 - driver needed on: April 05, 2014, 08:04:04 am
Hello,
you need to convert the byte/integer as a string

Here is an example:
int tempsensordata =analogRead(A1);
  String outputscreen = String(tempsensordata);

  myScreen.text(10, 10, outputscreen);
3  Using Arduino / Displays / Re: 2.2 TFT Serial with ILI9225 - driver needed on: April 04, 2014, 01:20:53 pm
Because I was asked by PM, some hints:


Hello,
I dont know if I've modified my library, so I'll tell you the way how to find the pin mapping:
For some reasons they are hardcoded in the screen_4D_22_library.h file.
So my *.h file says:
#define _4DSHIELD22_LCD_RESET A0     // Arduino Pin A0
#define _4DSHIELD22_LCD_RS 8         // Arduino Pin 8 - data or command
#define _4DSHIELD22_LCD_CS 7         // Arduino Pin 7 - select
#define _4DSHIELD22_LCD_Backlight 9  // Arduino Pin 9

#define _4DSHIELD22_TOUCH_YU A3  // Arduino Pin A3 - analog
#define _4DSHIELD22_TOUCH_XR A4  // Arduino Pin A4 - analog
#define _4DSHIELD22_TOUCH_YD A1  // Arduino Pin A1 - analog or digital
#define _4DSHIELD22_TOUCH_XL A2  // Arduino Pin A2 - analog or digital

The last 4 lines you can forget for the moment, because our display has no touch screen.
So the configuration should be:
(left: display, right UNO)
CLK <—> SPI clock signal D13 (SCK)
SDI <—> Serial data input pin sda D11 (MOSI)
RS <—> D8 (Data/Command)
CS  <—> D7 (chip select (SPI command))
LCD  <—> D9 (Display backlight on/off, can be wired directly to 5v (better with 100R resistor!)
RST  <—> A0 (Reset)
 
The library itself is a little bit overloaded in my opinion and hard to comprehensible.
I found another library, but didn't tested it out:
https://github.com/blitzter/ILI9225G
https://github.com/blitzter/LcdTimer
 

Regards
Matthias
4  Using Arduino / Audio / Re: Using MCP4921 DAC for wave generation... strange line on scope reading. on: March 29, 2014, 02:53:15 pm
Hello,
looks like that the output is disturbed by an interrupt.
Unfortunately you didn't post any code or library you are using.
So if the library isn´t using any interrupt, you could try the noInterrupts() argument. Otherwise you have to disable any other interrupt, that you don't use by hand. (especially PWM, tone()...)
I'm interested in your project:
My attempts getting out wavetables from the 4922 (even with only 256 steps) were unsatisfactory: I was only able to get out about 1kHZ, so if you could post your code (and perhaps the used library) I'll try to help you!

Regards
Matthias 
5  Products / Arduino Due / Re: Arduino DUE X10 library on: March 23, 2014, 04:10:59 pm
Did you ever got a answer about this problem?
I'm struggling with the same problem with a different library, but this is not the only problem. It would be nice for a documentation how to convert libraries from avr to sam. (not only spi...)
6  Using Arduino / Displays / Re: 2.2 TFT Serial with ILI9225 - driver needed on: March 19, 2014, 06:08:44 pm
SUCCEED!
Using following library works like a charme with my display:
https://github.com/4dsystems/screen_4D_22_library/blob/master/screen_4D_22_library.cpp
Using the first example sketch!
7  Using Arduino / Displays / 2.2 TFT Serial with ILI9225 - driver needed on: March 19, 2014, 03:51:47 pm
Hello,
I'm struggling around with following device:
http://tinyurl.com/ovbrvgg
I tried out many libraries, even utft doesn't work. (Driver must be in serial mode, tried out every one in the source code)
Voltage isn´t a problem because this device has an onboard converter for all pins.

Pin description is easy:
11PIN Standard wiring used IO:
1. VCC—Power supply (5V/3.3V)
2. GND-- Power supply (GND)
3. GND-- Power supply (GND)
4. NC—No connect
5. NC—No connect
6. LED-- Pick IO control back light off or PWM brightness control
7. CLK—SPI clock signal
8. SDI—Serial data input pin sda
9. RS—Command (RS=0)/ Parameter (RS=1)
10. RST—Reset pin
11. CS-- Chip selection pin

I can connect it (as shown on the product foto) directly to VCC,GND,A0-A5
A0 is only for the brightness.
Unfortunately there is no easy research for that display ( in serial mode)
I tried to contact the (friendly) seller, he only send me the same description for the display as on the product page (but in chinese smiley )
Does anybody has a working code for this display or some hints?

Thank you
Matthias
8  Using Arduino / Audio / Re: Possibility for polyphonic Wavetables (DDS) on different pinouts on: February 19, 2014, 06:23:03 am
Dear TRGT8,
4 voices without modulation sounds good for me!
I know Timer one, interrupts, progmem, but the atomic library is new for me! Mozzi is a really hugh project and a little overkill for my further project.
May you can post some code of your experiences?

Thank you
Matthias
9  Using Arduino / Audio / Re: Possibility for polyphonic Wavetables (DDS) on different pinouts on: February 10, 2014, 04:24:43 pm
"Schematics and Source Code - $ 14.95 USD "
...a little bit pricey just to answer my question  smiley
seriously: It should be possible to get out 8 voices per chip.
10  International / Deutsch / Re: Arduino Uno verhindert hochfahren (Mac Mini) on: February 10, 2014, 11:49:58 am
...das mit dem nicht hochfahren wollen ist mir bei meinem 2009er MBP auch schon öfters passiert. Kann auch nicht nachvollziehen wann und wie, hängt wohl auch davon ab, welchen USB-Port ich verwende.
Hab das Problem anders gelöst:
Aktiven USB-Hub um ein paar Euro gekauft (ist beim MBP sowieso fast Pflicht) und weg sind die Probleme und du hast dadurch gleichzeitig einen kleinen Schutz für die Mac-USB Ports vor Überspannung (dann ist halt der paar Euro Hub hin).
Also bitte nicht gleich das OS neu installieren usw..

LG
Matthias
11  Using Arduino / Audio / Possibility for polyphonic Wavetables (DDS) on different pinouts on: February 10, 2014, 11:41:24 am
Hello,
I'm working on an analog synthesizer project with "real" VCO´s (based an ICL8038), so my idea for the next projekt is, using DCO´s, with other words DDS, direct digital synthesis.
So the setup should be:
1 Atmega328 for controlling MIDI, ADSR, routing, switching, connected to:
Amega328(s) for DCO routed to:
SSM/V2164 (for VCA and  VCF good and cheap chip by the way!)
To make the project more interesting i´ll use polyphonic of 4-6 voices
 
My first attempts generating wavetables (8-bit, 256steps) with external DAC´s (MCP49xx)  brought me back to the ground of the earth. (Slow as hell). Not even more than 1.2khz was possible (without control!) in the shortest code example (and different libraries).

So I came over the "Mozzi library" which generates DDS as a charme but only for one pinout. (I want to filter the voices individually, like a "real synth").

My question is whether it would be possible, making up to 4-6 (basic)wavetable voices with on atmega and how.(8bit, 256 steps minimum)
The control of the chip should be easy as possible (Voice#, value, waveform (maybe PWM and modulation..keep on dreaming)).

My short calculation says no: 16MHZ / 256 = 60khz left for everything...

Thank you and
Regards
Matthias
12  International / Deutsch / Re: Brainstorming: Arduino gesteuerter Analogsynth on: October 13, 2013, 03:23:13 am
Hab ihn leider auch noch nicht getestet, beim kurzen Durchlesen ist mir folgendes aufgefallen:
Funktionsweise:
1 Poti am AnalogIn0 = Wellenformauswahl (7 Werte)
1 Poti am AnalogIn1 = Speed
Pin3 ist die Ausgabe (einfach mal ein TestLED daranhängen)
Die Timer2 Config (/*--- TIMER2 CONFIG ---*/) würde ich mal entfernen. (sehe den Sinn nicht im Sketch)
Serial.begin ist auch nicht notwendig.
Werd´s selbst mal testen

Am LCD Shield hab ich den Code schon erfolgreich getestet (selbst geschrieben):
mit Timer1.initialize(100000);  legt  man die Rate fest, Ausgabe ist 12 Bit
Code:
#include <TimerOne.h>
 #include <LiquidCrystal.h>
 LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 byte zaehler     = 0;
 int sintable[] = {
   2048,2098,2148,2198,2248,2298,2348,2398,2447,2496,2545,2594,2642,2690,2737,2784,2831,2877,2923,2968,3013,3057,3100,3143,3185,3226,3267,3307,3346,3385,3423,3459,3495,3530,3565,3598,3630,3662,3692,3722,3750,3777,3804,3829,3853,3876,3898,3919,3939,3958,3975,3992,4007,4021,4034,4045,4056,4065,4073,4080,4085,4089,4093,4094,4095,4094,4093,4089,4085,4080,4073,4065,4056,4045,4034,4021,4007,3992,3975,3958,3939,3919,3898,3876,3853,3829,3804,3777,3750,3722,3692,3662,3630,3598,3565,3530,3495,3459,3423,3385,3346,3307,3267,3226,3185,3143,3100,3057,3013,2968,2923,2877,2831,2784,2737,2690,2642,2594,2545,2496,2447,2398,2348,2298,2248,2198,2148,2098,2048,1997,1947,1897,1847,1797,1747,1697,1648,1599,1550,1501,1453,1405,1358,1311,1264,1218,1172,1127,1082,1038,995,952,910,869,828,788,749,710,672,636,600,565,530,497,465,433,403,373,345,318,291,266,242,219,197,176,156,137,120,103,88,74,61,50,39,30,22,15,10,6,2,1,0,1,2,6,10,15,22,30,39,50,61,74,88,103,120,137,156,176,197,219,242,266,291,318,345,373,403,433,465,497,530,565,600,636,672,710,749,788,828,869,910,952,995,1038,1082,1127,1172,1218,1264,1311,1358,1405,1453,1501,1550,1599,1648,1697,1747,1797,1847,1897,1947,1997
};
void setup()
{
  // Initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards
//  pinMode(13, OUTPUT);   
   lcd.begin(16, 2);              // start the library
 lcd.setCursor(0,0);
 lcd.print("Welcome");
  Timer1.initialize(100000); // set a timer of length 100000 microseconds (or 0.1 sec - or 10Hz => the led will blink 5 times, 5 cycles of on-and-off, per second)
  Timer1.attachInterrupt( timerIsr ); // attach the service routine here
}
 
void loop()
{
  // Main code loop
  //
      lcd.setCursor(0,1);
 lcd.print(sintable[zaehler]);
 lcd.print("   ");
 if (zaehler ==0)
 {
         lcd.setCursor(0,1);
 lcd.print("         ");
 }
}
/// --------------------------
/// Custom ISR Timer Routine
/// --------------------------
void timerIsr()
{
    // Toggle LED
    zaehler++;
}
13  International / Deutsch / Re: Brainstorming: Arduino gesteuerter Analogsynth on: October 12, 2013, 04:08:06 pm
hab mittlerweile auch einen einfachen, brauchbaren Code gefunden, muss natürlich modifiziert werden:
http://abrammorphew.com/notes/2012/01/05/arduino-lfo-generator/
Glaube aber, dass in seinem Text ein Fehler ist:
i’m only using timer2 for output in this code. i’ve started implementing the LFO code into my 8-bit melotronium where timer 2 is dedicated for the audio output.
Ist wohl ein Tippfehler und er meint, dass Timer0 verwendet wird.
14  International / Deutsch / Re: Brainstorming: Arduino gesteuerter Analogsynth on: October 12, 2013, 12:48:24 pm
Lt. deiner Tabelle dürften die Centbereiche recht egal sein, nunmal da ein LFO nicht unbedingt die Rolle eines VCO´s übernehmen muss.
Wie gesagt, ob der 328er die "Power" besitzt, da kann ich nur eines machen: Es ausprobieren smiley Realistisch gesehen, werden mehr als 500HZ-1kHZ nicht drinnen sein.
Zu den ganzen alten analog(digital) IC´s: Die hat restlos alle Dave Smith aufgekauft und verbaut sie in seinen Neuerscheinungen smiley
Ironischerweise bin ich ja Behringer zum Dank verpflichtet, da diese CoolAudio vor x Jahren aufgekauft haben und dadurch sind zumindest noch VCA-Chips und BBD-Chips zu humanen Preisen erhältlich, wenn auch schwer zu bekommen. http://www.coolaudio.com/products.html
Die einzige andere Firma ist THAT, die Preise sind sind halt nicht mehr im Budgetbereich anzusehen.
Sounddemos werden wohl noch länger auf sich warten lassen, da ich noch mitten in der Experimenterphase bin, wo ich alles austeste bevor ich meine Prototypplatinen löte.
Interessanterweise ist mir bei meinen ganzen Überlegungen und Experimenten ein "Abfallprodukt" eingefallen, dass - zumindest am analog Retro Synthiemarkt ein Renner wäre: Das Midi-CV Interface mit Wertetabelle (könnte man sogar als Autotune konzipieren) - die meisten alten Analogsynths sind, alterungsbedingt - vollkommen out of tune (auch in sich), DAS wäre dann die Abhilfe smiley-wink

LG
Matthias
15  International / Deutsch / Re: Brainstorming: Arduino gesteuerter Analogsynth on: October 12, 2013, 06:32:07 am
die Idee mit dem 8-Bit Counter+R2R + EEProm gefällt mir! Da sind wir schon fast bei Wavetables!
Hab auch schon ein Projekt gesehen, wo ein 555-Timer über einen Eingangspin die Frequenz im Microprozessor steuert, der dann über R2R/DAC´s/wasauchimmer die Wellenformen/Wavetables ausgibt, also fast der umgekehrte Weg deiner Idee.

Nur bei meinem Projekt stellt sich weniger die Frage nach der Hardwarelösung, hab es wohl noch nicht ganz klar beschrieben:

Der Haupt"Arduino" soll folgendermaßen funktionieren (ich speck jetzt die Funktionen ein bisschen ab)
Empfängt Mididaten:
Midiempfang: Noteon/off: geht an den Pitch DAC + generiert die ADSR Hüllkurve(n) (GATE on Gate off) für VCA und VCF
Midiempfang: Controller(x) Wert y: Beispiel: Empfängt Controller 47 mit Wert 80, Intern hab ich festgelegt, falls Controllernummer 47 empfangen wird, dann gibt er den Wert(y) auf den VCF-Cutoff DAC aus. Das lässt sich beliebig fortsetzen (wie ich halt die DAC´s hardwareseitig beschaltet habe).
Im Minmalbetrieb hab ich drei DAC´s:
1x für Pitch
1x für VCA
1x für VCF (Cutoff)

d.h. mein digitaler LFO rechnet sich dann an die Ausgangswerte hinzu, Beispiel:
Note C1 wird gedrückt:
Pitch-DAC sendet Wert für CV-Pitch (aus Wertetabelle)
ADSR1 (für VCO) bekommt das Gatesignal (Note xx on) und generiert die Hüllkurve, die über den VCA-Dac ausgegeben wird
ADSR2 (für VCF) bekommt das GAtesignal (Note xx on) und geniert die Hüllkurve für den Cutoff-DAC,
aber jetzt:
Ich habe definiert, dass LFO1 mit z.B. Amplitude 127 (maximal) auch das Cutoffsignal beeinflussen soll:
D.h. die Ausgabe  für den CutoffDAC: (Momentan)Wert der Hüllkurve + (LFO *Amplitude)

Somit lässt sich der LFO x-beliebig mit x-beliebiger Amplitude an jeden DAC addieren.

Vorteile der Software-LFO Lösung:
kein zusätzlicher  Hardwareaufwand
Software lässt sich x-beliebig erweitern/verändern usw... ohne dass die Hardware umgebaut werden muss
kompletter "Recall" über Midi: da alle Werte über Midi gesteuert werden, kann man Programs generieren.

Also ich muss nur 1-2 LFO´s zusätzlich berechnen, die sollen aber a) nicht "eiern" (wenn z.b. mehrere Controllerdaten gleichzeitig empfangen werden) und b) wenig CPU Last benötigen, damit die anderen Funktionen nicht gestört werden.

Mein "Vorbild" für das ganze Projekt ist der Oberheim Matrix 1000, der in einer 19' Höheneinheit ein 6-stimmiger analoger Synth war und über Software (oder Hardwarecontroller) unzählige Funktionen und Kombination beherrschte. (Sicher auch dank seiner 6x CEM3396, die eine "all inclusive" Lösung für Synths waren)

Liebe Grüße
Matthias


Pages: [1] 2 3 4