Digital Midi Synthesizer/Sampler with ATxmega128 and 1MByte Sample Ram

Go To Last Post
77 posts / 0 new

Pages

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

The first 3D case designe of DEGENERATOR...

 

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wow, sounds very cool!

 

What a tremendous project!

 

The case looks awesome!

 

JC

Last Edited: Sat. Dec 10, 2016 - 05:41 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello..

Now .. our filterboard for the DEGENERATOR is now ready. Before it next week to the
Production goes to China, I must still check it today. Then the pannelboard and
Filterboard ordered together. I hope the boards Christmas under the Christmas tree lie smile

To the filterboard: The filter is designed as a two-channel 12dB tifpass / highpass / bandpass filter.
It has an input for the DAC output of the CPU and an external input for one
Audio source.

 

Filterboard from DEGENERATOR

 

 

 

Greetings from germany. Rolf

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. Dec 11, 2016 - 11:59 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Triple WoW!

You and your project are great!

Thank you for sharing it.

Several questions:

 

1- What are the part number of T9 and T10? as others 2N3906?

2- It's a filter but you've used DIP components. why? wouldn't that be better to use SMD components? it makes your beautiful project more compact and I heared SMD components are better to minimize the effect of noise.

3- Not sure but is the polarity of c10 correct?

4- You have drawn polygon and I think we always connect it to GND. here are the reasons why we do it:

 

https://en.wikipedia.org/wiki/Ground_plane#Printed_circuit_boards

 

Now if we assume that e.g. TL072CN has a GND and you have connected it to the GND. (right?) AFA I see you've connected all of the pins of the device to traces, then polygon is not connected to anywhere? is it float?(good word to call it?) am I seeing it correctly? or you've used something like "Star Ground"? although I see nothing about "star Ground" or anything else at your schematic. if you've left the polygon float, why did you do it?

 

Sorry if my questions are soo primary

"One's value is inherent; money is not inherent"

 

Chuck, you are in my heart!

Last Edited: Sun. Dec 11, 2016 - 02:44 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Raving Lunatic...

 

Answer to your questions:

 

1. T9 and T10 are 2N3904

2. All circuit boards in DE-GENERATOR designed for self-assembly whitout CPU-Board!

3. C10 is not right in old drawing

4. I do not understand what you mean ???

 

Greetings from germany. Rolf

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The PCBs for Filter and Pannelboard have now arrived from China. Now we will solder the PCBs and test them.

 

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Have just looked how many code lines I've already typed for the DE-GENERATOR. Altogether there are already 22460 lines.

Had never been in the 80s as a listing in a computer magazine fit. And if, then you would have had a lot of fun with the

typing and the error search ;)

 

Code-Listing vom DE-GENERATOR

 

Greetings Rolf

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Mon. Jan 2, 2017 - 05:40 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

It's done...

Just before the year change, I can announce that the DE-GENERATOR or the electronics ready
And everything works. The next days and weeks we will still be at the housing and at the Software.

 

DE-GENERATOR

 

DE-GENERATOR Prototyp

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

rolfdegen wrote:

Hi Raving Lunatic...

...

Just tried to find out what do you mean "Raving Lunatic"? by googling it but didn't find anything.

rolfdegen wrote:
...

4. I do not understand what you mean ???

...

Thank you for answer

I meant have you connected the "Polygon Pour" on your board to anywhere? e.g. GND

 

 

"One's value is inherent; money is not inherent"

 

Chuck, you are in my heart!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Oh sorry.. your name is Rohalamin!

 

The supply voltage in DE-GENERATOR is: +12V, +-8V, + 5V, + 3.3 V and lot of GND Signal on PCBs.

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Mon. Jan 2, 2017 - 11:05 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ok, Thank you

But why didn't you connect the "Polygon Pour" to the GND?

"One's value is inherent; money is not inherent"

 

Chuck, you are in my heart!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

A little sound test with sequencer in DE-GENERATOR

 

https://soundcloud.com/rolf-dege...

 

Greetings from germany. Rolf

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My Lab… The place where DE-GENERATOR was born :)

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The first impressions of the DE-GENERATOR

 

DE-GENERATOR on youtubehttps://www.youtube.com/watch?v=...

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hallo again…

There are news again. The second filter board for the DE-GENERATOR is ready.
Its a stereophonic 4-pole Mision filter with the following characteristics:

* Lowpass 6dB * Lowpass 12dB * Lowpass 18dB * Lowpass 24dB * Bandpass 12dB * Highpass 12dB * Lowpass + Highpass 12dB

 

Pic1: SMR4 Filter from DE-GENERATOR
Pic2: Filter circuit
Pic3: Filter in DE-GENERATOR

 

 

 

Sound test of new Filter: https://www.facebook.com/tubeohm...

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Thu. Feb 23, 2017 - 05:22 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The DE-GENERATOR is almost finished

 

Zum Vergleich noch einmal die alte Elektronik

 

 

 

Arpeggio function

Video: https://www.youtube.com/watch?v=cGDQK6JMPtc&feature=youtu.be

 

 


Link: https://soundcloud.com/rolfdegen/shruthidegeneratorinarp2

 

 

Greetings from Germany Rolf

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. Apr 30, 2017 - 12:01 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. Apr 30, 2017 - 12:11 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

More sounds from DE-GENERATOR...

 

Video

https://www.facebook.com/tubeohm.tubeohm...89964794421397/

Greetings Rolf 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

De-Generator changings . Hi Guys , here are news from never ending De-Generator Story. We , Rolf and me realize that the Display we use is – bad . Simply bad but it will be more and more expensive . So i buy a new one from Buydisplay.com and this one works ‘ FANTASTIC ‘ very good quality , good contrast – not to compare with the old one !!! This TFT makes fun . Now the >> BUT !!! Shit is that it is not pin kompatible with the old one . Means that we must make a new Pannel board PCB . The contoller is also not the same . Rolf writes a new driver . Not a big problem .
Than , the new display takes more current and i can’t split the current to digital and LED . All works simply with 3.3 Volt .
Yesterday i measure the temperatue of the LM 7805 with the normal heatsink we use – and in the closed case . 67 degree on 19 degree room temperature – much too hot . Actual i take another heatsink , L-profile 20x20x60 mm. Now the temperature is 55 degree . on 21 degree room temperature !! think this is acceptable. Oh man ey – but – we are now short before end . Stepper and ARP works , Sampling and sample-editor also . Filter is also OK.

This year is definitiv the year of the DE-GENERATOR release.

 

Panelboard from DE-GENERATOR

Power circuit from DE-GENERATOR

 

 

New TFT Display ER-TFTM032-3

New TFT Display

Big picture: https://plus.google.com/photos/p...

 

Code examble for TFT Display

//*************************************************************************
// set  xy for TFT (ILI9341 or SSD1289)
//*************************************************************************
void TFT_set_xy(uint16_t x1, uint8_t y1, uint16_t x2, uint8_t y2)
{

    // SSD1289 ------------------------------------------------------------
    TFT_write_com_data(0x44,(y2 << 8) + y1);
    TFT_write_com_data(0x45,x1);
    TFT_write_com_data(0x46,x2);
    TFT_write_com_data(0x4e,y1);
    TFT_write_com_data(0x4f,x1);
    TFT_write_com(0x22);

    //  ILI9341 -----------------------------------------------------------
    TFT_write_com(0x2a);
    TFT_write_data(x1);
    TFT_write_data(x2);
    TFT_write_com(0x2b);
    TFT_write_data(y1);
    TFT_write_data(y2);
    TFT_write_com(0x2c);
}

//*************************************************************************
// write command and data (SSD1289)
//*************************************************************************
void TFT_write_com_data(uint8_t addr, uint16_t num)
{
    // set Com-Register
    LCD_CLR_RS;
    // write Addr-Register
    VPORT0.OUT = addr;
    // WR-Puls
    CLR_WR;
    SET_WR;

    // Set Data-Register
    LCD_SET_RS;
    // send 16Bit Data
    VPORT0.OUT = num >> 8;
    SET_LE;
    CLR_LE;
    VPORT0.OUT = num;
    // WR-Puls
    CLR_WR;
    SET_WR;
}

//*************************************************************************
// write command TFT
//*************************************************************************
void TFT_write_com(uint8_t data)
{
    // set Com-Register
    LCD_CLR_RS;
    // write Addr-Register
    VPORT0.OUT = data;
    CLR_WR;
    SET_WR;
}

//*************************************************************************
// write 16 Bit Data TFT
//*************************************************************************
void TFT_write_data(uint16_t data)
{
    // set Data-Register
    LCD_SET_RS;
    // set high Byte to LCD Port
    VPORT0.OUT = data >> 8;
    SET_LE;
    CLR_LE;

    // set low byte to LCD Port
    VPORT0.OUT = data;
    // wr-puls
    CLR_WR;
    SET_WR;
}

 

Greets Rolf from germany :)

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. May 28, 2017 - 08:30 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello dear friends..

I still working diligently. The new TFT display has compared to the old one
Display unfortunately no external connection for the LED background lighting. This is about the
3.3Volt Power supply on the display hardwired. This, however, led to a higher one
Load the 7805 voltage regulator on the motherboard and listen to temperatures in the
Device (> 64C). The heat sink of the 7805 was cooked in a closed cabinet. From this
The 7805 is replaced by a switching regulator.

We have used a DCDC converter TRACO TSR 1-2450. He is not cheap, but has one
High efficiency of 94%. The switching frequency of the converter is 500KHz. An integrated
Filter provides a low output ripple and noise of 50mVp-p. The max. output current is at 1A.

 

Figure 1: Motherboard with Traco TSR 1-2450 DCDC converter

 

New Power circuit with Traco 1-2450

 

More favorable is the R-78W5.0-0.5 from RECOM. The efficiency and output ripple is almost the same.
However, the switching frequency is somewhat lower compared to the Traco controller and is included
330KHz. The max. Output current is 500mA.

In my little toy box I still had a Traco TSR 1-2450 which I immediately in the DE-
ENERATOR. The housing temperature was now below 30C. Ripple and noise at the audio-
Output was less than 5 mVp-p. Since the traco controller is not quite cheap (about 4.42 at Völkner)
We will try the somewhat favorable regulator of RECOM times.

Figure 2: Ripple and noise at the audio output with Traco TSR 1-2450

Greeting Rolf

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. May 28, 2017 - 09:05 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Temperature measurement with ATxmega

Hello. In the DE-GENERATOR is known as an ATxmega128A1AU (older version) resp
ATxmega128A1U (newer version). Both processors have an internal one at home
Temperature sensor. This sensor can be read out via the ADC registers in the ATxmega.
I have used this to determine how high the approximate housing-
Temperature in the DE-GENERATOR. After a few "complicated" calculations the Tempe-
In the system menu in degrees Celsius.

 

Figure 1: System menu & ATxmega CPU on the CPU board

 

Code example from DE-GENERATOR

//*************************************************************************
// init temperature sensor in CPU
//*************************************************************************
void init_temp_sensor(void)
{
    // init ADC for CPU temperature measurement ---------------------------
    ADCA.CTRLB = ADC_CONMODE_bm | ADC_RESOLUTION_12BIT_gc | ADC_FREERUN_bm;
    ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | ADC_TEMPREF_bm;
    ADCA.EVCTRL = ADC_SWEEP_0_gc;
    ADCA.PRESCALER = ADC_PRESCALER_DIV512_gc;
    ADCA.CAL = ADCon.temp_calval;
    ADCA.CH0.CTRL = ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_INTERNAL_gc;
    ADCA.CH0.MUXCTRL = ADC_CH_MUXINT_TEMP_gc;
    ADCA.CTRLA = ADC_ENABLE_bm;
    ADCA.CH0.CTRL = ADC_CH_START_bm;
}

//*************************************************************************
// read adc calibrate values
//*************************************************************************
void read_ADC_calval(void)
{
    #define ADCACAL0_offset 0x20  // read ADC Calibration Byte 0
    #define ADCACAL1_offset 0x21  // read ADC Calibration Byte 1

    #define TempCAL0_offset 0x2E  // read Temp.Sensor Calibration Byte 0
    #define TempCAL1_offset 0x2F  // read Temp.Sensor Calibration Byte 1

    uint8_t cal_l = read_calibration_byte(PROD_SIGNATURES_START+ADCACAL0_offset);
    uint8_t cal_h = read_calibration_byte(PROD_SIGNATURES_START+ADCACAL1_offset);
    ADCon.calval = (cal_h << 8) | cal_l;

    cal_l = read_calibration_byte(PROD_SIGNATURES_START+TempCAL0_offset);
    cal_h = read_calibration_byte(PROD_SIGNATURES_START+TempCAL1_offset);
    ADCon.temp_calval = (cal_h << 8) | cal_l;
}
uint8_t read_calibration_byte( uint8_t index )
{
    uint8_t result;

    /* Load the NVM Command register to read the calibration row. */
    NVM_CMD = NVM_CMD_READ_CALIB_ROW_gc;
    result = pgm_read_byte(index);

    /* Clean up NVM Command register. */
    NVM_CMD = NVM_CMD_NO_OPERATION_gc;

    return( result );
}

//*********************************************************************
// read case temperature
//*********************************************************************
uint8_t read_temperature(void)
{
    uint8_t temp_offset = 15; // CPU temperature offset
    uint16_t result_ = ADCA.CH0RES;
    uint16_t calval_ = (uint32_t)(ADCon.temp_calval-200)*2048/(4096-200);
    uint8_t temperature = (((uint32_t)358*result_)/calval_) - (273+temp_offset);

    return ( temperature);
}

Initially, the ADC is initialized and the calibration bytes for the temperature sensor are set.
This is followed by the interrogation of the 12-bit wide sensor data in the ADC data register and the
In degrees Celsius. Since the processor actually only measures its core temperature, I have
In my calculation an offset value (-15 degrees) is taken into account and then calculate the approximate enclosure temperature.

Man or woman should note that the first temperature value after the start of the ADC is not a valid measured

value and belongs in the trash ;)

 

Greeting Rolf

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. May 28, 2017 - 02:07 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi AVR friends..

 

This is a temperature curve of Atmel Sensor. The real temperature from sensor is 15 degrees too high. But under 50 degrees the measurement is linear. 

In my calculation I consider an offset value (CPU temperature offset). This is good enough for the temperature measurement in my synthesizer case. It will not be warmer than 50 degrees.. I hope wink

 


uint8_t read_temperature(void)
{
    uint8_t temp_offset = 15; // CPU temperature offset
    uint16_t result_ = ADCA.CH0RES;
    uint16_t calval_ = (uint32_t)(ADCon.temp_calval-200)*2048/(4096-200);
    uint8_t temperature = (((uint32_t)358*result_)/calval_) - (273+temp_offset);

    return ( temperature);
}

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Sun. May 28, 2017 - 02:22 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How many of these are you selling by the way?

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Not yet sold.. Its a prototyp. The development work is soon finished :)

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

Hello..

 

The Xmega128 processors have different temperature characteristics. I have here two CPU-Board with different Xmega MCUs. One with an older typ ATxmega128A1-AU and other with a new ATXMEGA128A1U-AU.

The correction value for the temperature (temp_offset) for older ATxmega128A1-AU is -18 degree and for new ATxmega128A1U-AU is -2 degree. The accuracy of the measured for both processors is + - 1 degrees.
Since we only use the newer type (this is cheaper) I have set the offset value in the Software to a fixed value of 2.

 

CPU board for the DE-GENERATOR

 

 

Windows 10 Home 64Bit, ASUS M4A89GTD-PRO/USB3, AMD Phenom II X6 1055T, Ram 2x 4GB, SSD Samsung EVO840 250GB, SATA HD 2.0TB, NVIDIA GeForce GTX 750

Last Edited: Thu. Jun 1, 2017 - 01:47 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

rolfdegen wrote:
The Xmega128 processors have different temperature characteristics. I have here two CPU-Board with different Xmega MCUs. One with an older typ ATxmega128A1-AU and other with a new ATXMEGA128A1U-AU.

The correction value for the temperature (temp_offset) for older ATxmega128A1-AU is -18 degree and for new ATxmega128A1U-AU is -2 degree. The accuracy of the measured for both processors is + - 1 degrees.
Since we only use the newer type (this is cheaper) I have set the offset value in the Software to a fixed value of 2.

 

What exactly do you mean by that? Is that after you corrected with the data in the production signature row, or is that wrong? I seem to recall some parts had zeros written in to the calibration values.

Pages