I click the teleplot button, and it opens teleplot. I then choose /dev/ttyACM0 on the serial menu. When I click open, nothing happens until I get a window saying it clashed. It asked if I wanted to submit a report about VScode crashing, so I did, but it seems to be a problem with teleplot. I was sending serial data using the USB ACM-CDC model from a raspberry pi pico using Earl Philhower's Arduino Pico library at about 3 Mbit/s or so. The serial monitor works fine, but of course does not plot. I am new to this so I'm not sure my code has the teleplot initialization. If I leave it like I would with the the Arduino IDE it just crashes. If I add a Serial.print(">Left: "); ahead of the Serial.println() statement it runs a while plotting, but then crashes. I think it may be slowing down or missing my data while it is briefly running. I'm tryinig to plot I2S data from a PCM1808. It works from the Arduino IDE fine. I'll paste it here since github doesn't seem to allow pasting a .cpp file.
`/*
I2S stereo microphone (input) example
Run using the Arduino Serial Plotter to see waveform.
Released to the Public Domain by Earle F. Philhower, III
For the Google AIY Voice Hat Microphone daughterboard, part
of the Raspberry Pi AIY cardboard box, the I2S stereo pinout
looking at the board top with the RPI logo on the left hand
side:
+-- ------------------------------------ --+
left RPI | (1) GND (2) DIN (3) BCLK (4) LRCLK (5) 3.3V | AIY right
logo +---------------------------------------------+ logo
The other idiosyncrasy of most modern MEMS microphones is that they
require a minimum clock rate to wake up. For example, the SPH0645
microphone needs at least 1MHz.
*/
include
define RATE 16000
define MCLK_MULT 256 // 384 for 48 BCK per framme, 256 for 64 BCK per frame
I2S i2s(INPUT);
void setup() {
Serial.begin();
i2s.setDATA(2);
i2s.setBCLK(0);
i2s.setMCLK(3);
// Note: LRCK pin is BCK pin plus 1 (1 in this case).
i2s.setBitsPerSample(24);
i2s.setFrequency(RATE);
i2s.setMCLKmult(MCLK_MULT);
i2s.setSysClk(RATE);
i2s.setBuffers(32,0,0);
i2s.begin();
}
void loop() {
static int32_t r, l;
i2s.read32(&l, &r);
Serial.print(">left:");
Serial.printf("%d \r\n", l<<9); // This only works up 16 kHz.
}
`
I found vscode crashing is an issue if you send data at a too high rate indeed. Serial prints worked reliable for me up to 1Khz without vscode crashing
I click the teleplot button, and it opens teleplot. I then choose /dev/ttyACM0 on the serial menu. When I click open, nothing happens until I get a window saying it clashed. It asked if I wanted to submit a report about VScode crashing, so I did, but it seems to be a problem with teleplot. I was sending serial data using the USB ACM-CDC model from a raspberry pi pico using Earl Philhower's Arduino Pico library at about 3 Mbit/s or so. The serial monitor works fine, but of course does not plot. I am new to this so I'm not sure my code has the teleplot initialization. If I leave it like I would with the the Arduino IDE it just crashes. If I add a Serial.print(">Left: "); ahead of the Serial.println() statement it runs a while plotting, but then crashes. I think it may be slowing down or missing my data while it is briefly running. I'm tryinig to plot I2S data from a PCM1808. It works from the Arduino IDE fine. I'll paste it here since github doesn't seem to allow pasting a .cpp file.
`/* I2S stereo microphone (input) example Run using the Arduino Serial Plotter to see waveform. Released to the Public Domain by Earle F. Philhower, III
For the Google AIY Voice Hat Microphone daughterboard, part of the Raspberry Pi AIY cardboard box, the I2S stereo pinout looking at the board top with the RPI logo on the left hand side: +-- ------------------------------------ --+ left RPI | (1) GND (2) DIN (3) BCLK (4) LRCLK (5) 3.3V | AIY right logo +---------------------------------------------+ logo
For an Adfruit I2S MEMS microphone (https://www.adafruit.com/product/3421), connect the pins as follows:
The other idiosyncrasy of most modern MEMS microphones is that they require a minimum clock rate to wake up. For example, the SPH0645 microphone needs at least 1MHz. */
include
define RATE 16000
define MCLK_MULT 256 // 384 for 48 BCK per framme, 256 for 64 BCK per frame
I2S i2s(INPUT);
void setup() { Serial.begin();
i2s.setDATA(2); i2s.setBCLK(0); i2s.setMCLK(3); // Note: LRCK pin is BCK pin plus 1 (1 in this case). i2s.setBitsPerSample(24); i2s.setFrequency(RATE); i2s.setMCLKmult(MCLK_MULT); i2s.setSysClk(RATE); i2s.setBuffers(32,0,0);
i2s.begin(); }
void loop() { static int32_t r, l; i2s.read32(&l, &r); Serial.print(">left:"); Serial.printf("%d \r\n", l<<9); // This only works up 16 kHz. } `