I2S Microphone ESP32

Standart I2S (INMP441):

i2s_port_t m_i2sPort = I2S_NUM_0;

// i2s config for reading from left channel of I2S

i2s_config_t i2sMemsConfigLeftChannel = {

    .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),

    .sample_rate = 16000,

    .bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT,

    .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,

    .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_I2S),

    .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,

    .dma_buf_count = 4,

    .dma_buf_len = 1024,

    .use_apll = false,

    .tx_desc_auto_clear = false,

    .fixed_mclk = 0};

MSB justified + Falling edge data sampling (SPH0645):

Fix 1:

//Set to Left MSB justified

.communication_format = I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB,

For idf >=5

Change I2S_STD_PHILIP_SLOT_DEFAULT_CONFIG to I2S_STD_MSB_SLOT_DEFAULT_CONFIG

//or modify register by:

REG_SET_BIT(I2S_CONF_REG(m_i2sPort), I2S_RX_MSB_SHIFT);

Fix 2:

//Set to delay sampling time at falling edge(neg edge)

REG_SET_BIT(I2S_TIMING_REG(m_i2sPort), BIT(9)); // [9:8] –> I2S_RX_SD_IN_DELAY  

/*

The I2S_RX_SD_IN_DELAY parameter is used to configure the delay mode of the I2S (Inter-IC Sound) RX SD input signal. The delay mode of I2S Rx SD input signal. 0: bypass. 1: delay by pos edge. 2: delay by neg edge. 3: not used

*/

Layout PCB dengan Laser Engraving dan Eagle

PAstikan cek DRC dengan jarak minimal (track distance) 0.2mm. Aktifkan layer TOP atau Bottom sesuai yang diinginkan. Jika ingin mencetak layer bottom, klik Ikon Flip Board terlebih dahulu, agar tampilan bawah sebagaimana mestinya, atau tidak terbalik.

Misalnya pilih layer Top. Cukup aktifkan Top, Pads dan Vias.

Pilih Menu File dan Pilih Export Image

File -> Export -> Image
Pastikan Monochrome dicentang, Resolusi 1000, lalu klik tombol Browse

Berikan nama file yang diinginkan dalam bentuk png. File PNG menyimpan informasi resolusi file, namun tidak dengan JPG.

Isikan Nama Filenya. Lalu Klik Save dan OK.

Buka file PNG dengan Gimp atau photo editor lainnya. Pastikan jalur berwarna putih dan yang akan dihilangkan berwarna hitam

Pastikan jalur berwarna putih. Jika jalur masih berwarna hitam, maka lakuan invert.
(Cara invert PhotoShop: Ctrl+Shift+I, Gimp: Menu Color -> Invert)

Pilih semua warna putih, select by color, lalu pilih growth selection 0.2mm dan tekan tombol delete untuk menghapus hasil seleksi. Ini diginakan karena laser memiliki dot 0,2mm.

Hasilnya, jalur menjadi tambah lebar

Simpan file!

Buat New Layout dengan ukuran sesuai gambar di PNG, lihat width dan heightnya. Selanjutnya buka file PNG dan pastikan ukuran sesui dengan file PNG.

Pastikan ukuran sesuai dengan PNG dan Eaglenya

Lalukan Engraving dengan kecepatan 300 mm/s s.d 400 mm/s

Stencil PCB mika dengan Laser CNC

Buka Eagle dan buat gerbernya

Buka gerber GTP (Layer solder paste di FlatCam)

Pilih Tools -> Invert Gerber Tool

Buat Isolation Routing dan set tool menjadi 0.4 mm atau 0.5 mm jenis C1

Hasil:

Klk kanan geometry lalu pilik save menjadi .dxf

Buka file di InkScape / CorelDraw

Buat agar halaman menjadi seukuran gambar. InkScape (Ctrl+Shift+R), Corel: ?

Hapus garis tepi

Ubah warna line menjadi merah agar digunakan sebagai garis cut, dengan line strokenya 0.2mm

InkScape: Simpan ke file LaserDraw lalu buka di LaserDraw. Lalu buka icon menu Engraving Manager
CorelDraw: Buka icon menu Engraving Manager

Menggunakan Laser CNC buatan China

1. Pasang LaserDraw bawaan mesin

Download LaserDraw: http://www.3wcad.com/download/LaserDRW%202013.02.rar

2.a Jika pakai CorelDraw: Pasang CorelLaser

Download CorelDraw: –
Download CorelLaser: http://www.3wcad.com/download/CorelLASER%202013.02.rar

Setelah pasang keduanya, buka CorelLaser. corel laser akan otomatis membuka CorelDraw dan pastikan muncul icon berikut di bagian pojok kanan atas CorelDraw

Jika tidak muncul icon-icon tersebut, berarti psang CorelLasernya Gagal, atau CorelDrawnya tidak didukung.

2.b Jika pakai InkScape: Pasang extensinya

Download Inkscape: https://inkscape.org/download
Download Ektensi: https://www.scorchworks.com/LaserDRW_extension/laserdrw_extension.html

Cara pasang ektensi:
Ekstrak file lalu taru di folder yang ditunjukkan di menu “Edit” – “Preferences” – “System”: “User extensions”

Jika pemasangan ektensi berhasil, maka buka InkScape dan pilih File -> Save As… (Ctrl+Shift+S) Jika di bagian pilihan Save as type ada pilihan LaserDraw (.lyz)

3. Seting mesin

Klik icon setting berikut: (pada CorelLaser atau LaserDraw)

Lalu setting seperti berikut (ini untuk mesin laser 40 x 60 cm, untuk ukuran lain sesuaikan petunjuk datasheet)

Kadang CH341A tidak terdeteksi, atau error di windows 11. Pasang ulang LaserDraw, maka driver akan terupdate dengan sendirinya.

4. Membuka file desain

Cukup buka file (.cdr) lewat CorelLaser atau CorelDraw. Pastikan satuan dalam ukuran milimeter (mm)

4.a. Jika menggunakan InksSpace, berikut cara membuka File CorelDraw (.cdr) di InkScape

Cukup buka file .cdr dengan InkScape, namun ukuran biasanya berubah. Maka, setelah file dibuka, buka XML-Editor lewat menu Edit (atau Ctrl+Shift+X). File cdr biasanya disimpan dalam satuan px, jadi ubahlah menjadi pt.

Biasanya kita di CorelDraw menggunakan satuan mm, maka pilih gambar dan ubah ukuran dengan bulatkan ke mm terdekat.

Ringkas ukuran halaman lewat menu File –> Document Properties (atau Ctrl+Shift+R). Ubah ukuran sesuai dengan mm terdekat.

4.b Jika filenya dalam format EPS, membuka File Encapsulated PostScript (.eps)

Untuk membuka file .eps, perlu pasang ghostScript. Cek sumber: How to Open and Edit an EPS File in Inkscape – Better Tech Tips

5. Pilih path (jalur) Engraving atau Cutting

Untuk dipotong, pilih path atau object yang dipotong, lalu pilih Fill -> None, Stroke -> Flat Color gunakan warna Merah, Style -> Line, width <=0,2mm. Jika lebih dari 0,2mm maka akan dipotong 2 kali atau double cut.

Untuk digurat (engraving), pilih path atau object yang diukir, lalu pilih Fill -> None, Stroke -> Flat Color gunakan warna Biru, Style -> Line, width <=0,2mm. Jika lebih dari 0,2mm maka akan digurat 2 kali atau double cut. Jika ingin mengukir dalam betuk blok, isi object, pilih Fill -> Flatt dan gunakan warna biru.

5.a. Jika menggunakan CorelLaser (CorelDraw) cukup klik icon

Maka akan otomatis membuka LaserDraw dan masuk ke Engraving Manager

5.b. Jika menggunakan InkSpace

Simpan ke format LaserDraw (.zip) agar file tersimpan dalam bentuk .svg dan .lyz nya. Jika belum ada, pasang extensinya dulu!

Ekstrak file zip hasil penyimpanan, maka akan berisi 5 file.

File berformat .lyz dan file design dalam format .svg untuk dapat diedit lagi

Lalu buka file LYZ dengan LaserDRW, dan klik ikon

6. Setting Engraving Manager

Setelah Engraving manager terbuka maka perlu ditentukan beberapa parameter berikut:

Isikan Common parameter, di bagian Refer: menjadi TopRight. Hilangkan centang donotback.

Gerakkan cursor titik awal pojok kanan atas laser dengan mouse, atau isikan nilai Refer-X, misalnya jadi 10, refer-Y jadi 10. Jika kepala laser bergerak, maka mesin siap digunakan. Jika kepala laser tidak bergerak maka pastikan Doggle USB terpasang dan cabut pasang ulang USBnya.

Pilih bagian Style:
Engraving –> untuk mengukir
Cutting –> untuk memotong

Pilih bagian Speed:
Untuk Engraving –> 100 mm/s s.d 450 mm/s
Untuk Cutting –> 20 mm/s s.d 1 mm/s

Untuk pemotongan Akrilik (Laser 36Watt):
Style: Cutting
Speed:
-> 8mm/s (tebal 3mm)
-> 10mm/s (tebal 2mm)
-> 20mm/s (mika, 0,1mm)

Untuk membuat jalur PCB, pastikan dulu lapisan PCB di-cat/pilox:
1. Style: Engraving PCB, PCB di-Pilox, tool 0.2mm, laser 36Watt, Speed: 300mm/s
2. Style: Cutting stencil, mika, tool 0.4mm, laser 36Watt, Speed: 20mm/s

7. Letakkan media yang akan dipotong atau diukir, lalu klik tombol Starting