mirror of
https://github.com/erik-toth/audio-synth.git
synced 2025-12-06 11:20:02 +00:00
Compare commits
9 Commits
latest-saf
...
V3.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 1947164f08 | |||
|
|
20c7b413d2 | ||
| 99c2542890 | |||
| 855fd01821 | |||
|
|
f86db9c917 | ||
| b106859252 | |||
| dac90a977b | |||
| ce4e6cb536 | |||
|
|
ae7b6f6114 |
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(143).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(143).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(144).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(144).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(145).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(145).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(146).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(146).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(147).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(147).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(148).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(148).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(149).SchDoc.Zip
Normal file
BIN
dev/analog/ETOTH-Amp_LM386/History/Amp_LM386.~(149).SchDoc.Zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,18 +1,18 @@
|
||||
ETOTH-Amp_LM386
|
||||
*SPICE Netlist generated by Advanced Sim server on 25.11.2025 22:45:08
|
||||
*SPICE Netlist generated by Advanced Sim server on 28.11.2025 11:11:11
|
||||
.options MixedSimGenerated
|
||||
|
||||
*Schematic Netlist:
|
||||
CCblock NetCblock_1 OUT 220uF
|
||||
CCblock1 NetCblock1_1 NetCblock1_2 10nF
|
||||
XIC1A NetIC1_1 0 NetCblock1_2 0 NetCblock_1 VAP NetIC1_7 NetIC1_8 lm386
|
||||
XIC1B NetIC1_1 0 NetCblock1_2 0 NetCblock_1 VAP NetIC1_7 NetIC1_8 lm386
|
||||
CC_DCBLOCK_IN IN NetC_DCBLOCK_IN_2 10uF
|
||||
CC_DCBLOCK_OUT NetC_DCBLOCK_OUT_1 OUT 220uF
|
||||
XIC1A NetIC1_1 0 NetIC1_3 0 NetC_DCBLOCK_OUT_1 VAP NetIC1_7 NetIC1_8 lm386
|
||||
XIC1B NetIC1_1 0 NetIC1_3 0 NetC_DCBLOCK_OUT_1 VAP NetIC1_7 NetIC1_8 lm386
|
||||
LL_Speaker 0 NetL_Speaker_2 0.1mH
|
||||
RR_POTA 0 NetR_POT_2 {10k * {POS}}
|
||||
RR_POTB NetR_POT_2 IN {10k - (10k * {POS})}
|
||||
RR_POTB NetR_POT_2 NetC_DCBLOCK_IN_2 {10k - (10k * {POS})}
|
||||
RR_Speaker NetL_Speaker_2 OUT 8R
|
||||
RR_static1 NetCblock1_1 NetR_POT_2 100k
|
||||
RR_static2 0 NetCblock1_1 10k
|
||||
RR_static1 NetIC1_3 NetR_POT_2 100k
|
||||
RR_static2 0 NetIC1_3 10k
|
||||
VU_q VAP 0 10V
|
||||
VUin IN 0 DC 0 SIN(5 2 220 0 0 0) AC 1 0
|
||||
|
||||
|
||||
@@ -7,4 +7,4 @@ From : Project [ETOTH-Amp_LM386.PrjPcb]
|
||||
Files Generated : 1
|
||||
Documents Printed : 0
|
||||
|
||||
Finished Output Generation At 22:41:52 On 25.11.2025
|
||||
Finished Output Generation At 11:00:20 On 28.11.2025
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -7,4 +7,4 @@ From : Project [TRI-SQR-VCO_OTA_SS.PrjPcb]
|
||||
Files Generated : 1
|
||||
Documents Printed : 0
|
||||
|
||||
Finished Output Generation At 21:27:47 On 23.10.2025
|
||||
Finished Output Generation At 12:23:27 On 28.11.2025
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
TRI-SQR-VCO_OTA_SS
|
||||
*SPICE Netlist generated by Advanced Sim server on 18.11.2025 14:07:43
|
||||
*SPICE Netlist generated by Advanced Sim server on 28.11.2025 12:29:53
|
||||
.options MixedSimGenerated
|
||||
|
||||
*Schematic Netlist:
|
||||
@@ -29,6 +29,8 @@ RR_A 0 U_SQR_OTA 3.63k
|
||||
RR_CV NetR_CV_1 NetIC2_9 59.941k
|
||||
RR_E NetC_an_2 NetR_E_2 10k
|
||||
RR_lambda_T NetIC2_9 U_C 1.1k
|
||||
RR_offset_1 NetR_CV_1 GND 10k
|
||||
RR_offset_2 VAP NetR_CV_1 10k
|
||||
RR_PWM_a GND NetIC3_6 15k
|
||||
RR_PWM_b NetIC3_6 VAP 10k
|
||||
RR_PWM_c U_PWM NetIC3_7 1k
|
||||
@@ -55,15 +57,17 @@ VU_var NetR_CV_1 0 1
|
||||
.PLOT TRAN {v(U_TRI)} =PLOT(2) =AXIS(1) =NAME(U_TRI) =UNITS(V)
|
||||
.PLOT TRAN {v(U_SAW)} =PLOT(3) =AXIS(1) =NAME(U_SAW) =UNITS(V)
|
||||
.PLOT TRAN {v(U_PWM)} =PLOT(4) =AXIS(1) =NAME(U_PWM) =UNITS(V)
|
||||
.PLOT TRAN {i(U_mess)} =PLOT(5) =AXIS(1) =NAME(I_GND) =UNITS(A)
|
||||
.PLOT TRAN {v(U_in)} =PLOT(2) =AXIS(1) =NAME(U_in) =UNITS(V)
|
||||
.PLOT TRAN {v(U_C)} =PLOT(5) =AXIS(1) =NAME(U_C) =UNITS(V)
|
||||
|
||||
.OPTIONS ABSTOL=1e-10 RELTOL=1e-2 VNTOL=1e-4 METHOD=GEAR MAXORD=2
|
||||
*Selected Circuit Analyses:
|
||||
.TRAN 25u 20m 5m 25u UIC
|
||||
.CONTROL
|
||||
SWEEP R_offset_2 LIST 10k 20k 30k
|
||||
.ENDC
|
||||
|
||||
*Global Parameters:
|
||||
.PARAM POS=0
|
||||
.PARAM POS={0}
|
||||
|
||||
*Models and Subcircuits:
|
||||
* A dual opamp ngspice model
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -84,6 +84,18 @@ GenerateClassCluster=0
|
||||
DocumentUniqueId=OHRGASOY
|
||||
|
||||
[GeneratedDocument1]
|
||||
DocumentPath=DA_LIB.cmp
|
||||
DItemRevisionGUID=
|
||||
|
||||
[GeneratedDocument2]
|
||||
DocumentPath=DA_LIB.csv
|
||||
DItemRevisionGUID=
|
||||
|
||||
[GeneratedDocument3]
|
||||
DocumentPath=DA_LIB.rep
|
||||
DItemRevisionGUID=
|
||||
|
||||
[GeneratedDocument4]
|
||||
DocumentPath=DA_LIB_V1-0.cmp
|
||||
DItemRevisionGUID=
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
14
dev/da_altium_lib/DA_LIB/DA_LIB.cmp
Normal file
14
dev/da_altium_lib/DA_LIB/DA_LIB.cmp
Normal file
@@ -0,0 +1,14 @@
|
||||
Component Name : C CL05A105KA5NQNC
|
||||
|
||||
Part Count : 2
|
||||
|
||||
Part : C?
|
||||
Pins - (Normal) : 0
|
||||
Hidden Pins :
|
||||
|
||||
Part : C?
|
||||
Pins - (Normal) : 2
|
||||
1 1 Passive
|
||||
2 2 Passive
|
||||
Hidden Pins :
|
||||
|
||||
49
dev/da_altium_lib/DA_LIB/DA_LIB.csv
Normal file
49
dev/da_altium_lib/DA_LIB/DA_LIB.csv
Normal file
@@ -0,0 +1,49 @@
|
||||
"LIBRARYREFERENCE","FOOTPRINT1","FOOTPRINT2","CAUTHOR","COMMENT","COMPONENTLINK1DESCBC","COMPONENTLINK1DESCRIPTION","COMPONENTLINK1URL","COMPONENTLINK2DESCA4","COMPONENTLINK2DESCRIPTION","COMPONENTLINK2URL","COMPONENTLINK3DESCAC","COMPONENTLINK3URL","LATESTREV","LCSC PART #","PUBLISHED","VALUE","SHEETPART","DESIGNATOR","DESCRIPTION"
|
||||
"C CL05A105KA5NQNC","C0402","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-09-27","C52923","2025-09-27","1uF","*","C?","25V 1uF X5R <20>10% 0402 Ceramic Capacitors ROHS"
|
||||
"C CL05A474KA5NNNC","C0402","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-10-23","C92361","2025-10-23","470nF","*","C?","25V 470nF X5R <20>10% 0402 Ceramic Capacitors ROHS"
|
||||
"C CL05B103KB5NNNC","C0402","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-09-27","C15195","2025-09-27","10nF","*","C?","50V 10nF X7R <20>10% 0402 Ceramic Capacitors ROHS"
|
||||
"C CL05C220JB5NNNC","C0402","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-09-28","C70464","2025-09-28","22pF","*","C?","50V 22pF C0G <20>5% 0402 Ceramic Capacitors ROHS"
|
||||
"C CL10A106KP8NNNC","C0603","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-10-14","C19702","2025-10-14","10uF","*","C?","10V 10uF X5R <20>10% 0603 Ceramic Capacitors ROHS"
|
||||
"C CL10A474KB8NNNC","C0603","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-10-23","C170149","2025-10-23","470nF","*","C?","50V 470nF X5R <20>10% 0603 Ceramic Capacitors ROHS"
|
||||
"C CL10B104KB8NNNC","C0603","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-10-25","C1591","2025-10-25","100nF","*","C?","50V 100nF X7R <20>10% 0603 Ceramic Capacitors ROHS"
|
||||
"C CL10B104KB8NNNC_1","C0603","","Erik T<>th","=VALUE","","Datasheet","https://www.samsungsem.com/resources/file/global/support/product_catalog/MLCC.pdf","","","","","","2025-10-14","C1591","2025-09-22","0.1uF","*","C?","0.1<EFBFBD>F <20>10% 50V Ceramic Capacitor X7R 0603 (1608 Metric)"
|
||||
"C TAJA106K016RNJ","TAJA_AVX","","Erik T<>th","=VALUE","","Datasheet","https://datasheet.octopart.com/TAJA106K016RNJ-AVX---Kyocera-datasheet-50868559.pdf","","","","","","2025-09-22","C7171","2025-09-22","10uF","*","C?","10uF 16V 3O@100kHz <20>10% CASE-A-3216-18(mm) Tantalum Capacitors ROHS"
|
||||
"C TAJC226K025RNJ","CASE-C-6032-28","","Erik T<>th","=VALUE","","Datasheet","https://datasheets.kyocera-avx.com/TAJ.pdf","","","","","","2025-10-14","C7214","2025-10-14","22uF","*","C?","22uF 25V 1.4O@100kHz <20>10% CASE-C-6032-28(mm) Tantalum Capacitors ROHS"
|
||||
"D 1N4148WS","CR_WS-G3-08_VIS","","Erik T<>th","","","Datasheet","https://www.lcsc.com/datasheet/C2128.pdf","","","","","","2025-09-25","C2128","2025-09-25","","*","D?","2A 4ns 100V Independent 1.25V@150mA 150mA SOD-323 Single Diodes ROHS"
|
||||
"D DF2S16FS,L3M","SODFL1006X45N","","Erik T<>th","*","","Datasheet","https://www.arrow.com/en/products/df2s16fsl3m/toshiba","","","","","","2025-09-23","C1972990","2025-09-23","","*","D?","TVS Diode (Uni-directional)"
|
||||
"D ESD5Z6.0T1G","SOD-523_0P9X1P3_ONS","","Erik T<>th","ESD5Z6.0T1G","","Datasheet","https://www.onsemi.com/download/data-sheet/pdf/esd5z2.5t1-d.pdf","","","","","","2025-09-23","C82323","2025-09-23","","*","D?","TVS Diode (Uni-directional)"
|
||||
"D PESD2USB3UV-TR","SOT95P230X110-3N","","Erik T<>th","PESD2USB3UV-TR","","Datasheet","https://assets.nexperia.com/documents/data-sheet/PESD2USB3UV-T.pdf","","","","","","2025-09-23","C3704436","2025-09-23","","*","D?","2 Channel TVS Diode (Uni-directional)"
|
||||
"D SESD0402Q2UG-0020-090","SESD0402Q2UG0020090","","Erik T<>th","*","","Datasheet","https://www.littelfuse.com/~/media/electronics/datasheets/tvs_diode_arrays/littelfuse_tvs_diode_array_sesd_ultra_low_capacitance_diode_arrays_datasheet.pdf.pdf","","","","","","2025-09-23","C1975947","2025-09-23","","*","D?","2 Channel TVS Diode (Uni-directional)"
|
||||
"IC CH224K","ESSOP10","","Erik T<>th","CH224K","","Datasheet","https://item.szlcsc.com/datasheet/CH224K/1060460.html","","","","","","2025-09-20","C970725","2025-09-20","","","IC?","USBPD and Multiple Fast Charging Protocol Receiving Chip"
|
||||
"IC ESP32-S3R8","QFN40P700X700X90-57N-D","","Erik T<>th","ESP32-S3R8","","Datasheet","https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf","","","","","","2025-09-27","C2913194","2025-09-27","","*","IC?","150Mbps 2.4GHz -74.2dBm 2.412GHz~2.484GHz QFN-56(7x7) RF Transceiver ICs ROHS"
|
||||
"IC HUSB237-AA001-DN06R","DFN-6L-EP","","Erik T<>th","HUSB237","","Datasheet","https://www.lcsc.com/datasheet/C22373734.pdf","","","","","","2025-09-19","C22373734","2025-09-19","","*","IC?","USB Type-C Power Delivery Sink Controller"
|
||||
"IC LM13700","SOIC-16","PDIP-16","Erik T<>th","LM13700","","JLCPCB Part URL","https://jlcpcb.com/partdetail/TexasInstruments-LM13700MXNOPB/C174050","","Datasheet URL","https://www.ti.com/lit/ds/symlink/lm13700.pdf","","","2025-08-08","C174050","2025-06-22","","*","IC?","Dual Operational Transconductance Amplifiers With Linearizing Diodes and Buffers"
|
||||
"IC LM321DTR(XBLW)","SOT95P280X125-5N","","Erik T<>th","LM321","LM321Datasheet","Datasheet","https://www.lcsc.com/datasheet/C18723612.pdf","LM321WebPage","","http//wwwnationalcom/pf/LM/LM321html","MF05APackageWebPage","http//wwwnationalcom/packaging/folders/mf05ahtml","2025-10-23","C18723612","2025-10-23","","*","IC?","3V~32V 2mV 1MHz 45nA 400V/ms 1 90dB SOT-23-5 Amplifiers ROHS"
|
||||
"IC LM321MFX/NOPB","SOT95P280X125-5N","","Erik T<>th","TI LM321","LM321Datasheet","Datasheet","https://www.ti.com/lit/ds/symlink/lm321.pdf","LM321WebPage","","http//wwwnationalcom/pf/LM/LM321html","MF05APackageWebPage","http//wwwnationalcom/packaging/folders/mf05ahtml","2025-10-24","C9405","2025-10-24","","*","IC?","7mV 500nA 400V/ms 85dB 3V~30V 1MHz 1 SOT-23-5 Amplifiers ROHS"
|
||||
"IC LM386MX-1/NOPB","M08A_TEX","","Erik T<>th","LM386MX-1/NOPB","","Datasheet","https://www.ti.com/lit/ds/symlink/lm386.pdf","","","","","","2025-11-25","C23573","2025-11-25","","*","IC?","700mW, mono, 5- to 18-V, analog input Class-AB audio amplifier 8-SOIC 0 to 70"
|
||||
"IC MCP4728-E_UN","MSOP-10","","Erik T<>th","MCP4728","","Datasheet","http://ww1.microchip.com/downloads/en/DeviceDoc/22187E.pdf","","","","","","2025-09-22","C478093","2025-09-22","","*","IC?","Quad, 12-bit NV DAC with I2C interface"
|
||||
"IC STUSB4500QTR","QFN24EP_4X4_STM","","Erik T<>th","STUSB4500","","Datasheet","https://www.st.com/resource/en/datasheet/stusb4500.pdf","","","","","","2025-09-20","C2678061","2025-09-20","","*","IC?","Standalone USB PD controller for power sinking devices"
|
||||
"IC TL074IDR","SOIC-14","","Erik T<>th","TL074","","Datasheet","http://www.ti.com/lit/ds/symlink/tl074.pdf","","","","","","2025-10-13","C6964","2025-10-13","","*","IC?","3mV 65pA 13V/us 70dB -15V~15V 3MHz 4 SOIC-14 Amplifiers ROHS"
|
||||
"IC W25Q128JVSIQ","SOIC127P790X216-8N","","Erik T<>th","W25Q128JVSIQ","","Datasheet","https://www.winbond.com/hq/search-resource-file.jsp?partNo=W25Q128JVSIQ&type=datasheet","","","","","","2025-09-27","C97521","2025-09-27","","*","IC?","128M-bit Serial Flash Memory with uniform 4KB sectors and Dual/Quad SPI"
|
||||
"J TYPE-C-16PIN-2MD","CONN-Type-C-16POS-SMD","","Erik T<>th","*","","Datasheet","https://www.lcsc.com/datasheet/C2765186.pdf","","","","","","2025-09-26","C2765186","2025-09-17","","*","J?","1 16P -25?~+85? Type-C SMD USB, DVI, HDMI Connector Assemblies ROHS"
|
||||
"L LQG15HS2N0S02D","IND_LQG15_MUR","","Erik T<>th","=VALUE","","Datasheet","https://pim.murata.com/asset/pim4/inductor/JELF243B-0010_PDF_INDUCTOR?lastModifiedDatetime=20250708072108","","","","","","2025-09-27","C18216","2025-09-27","2nH","*","L?","900mA 2nH 90mO 0402 Fixed Inductors ROHS"
|
||||
"R 0402WGF0000TCE","R0402","","Erik T<>th","=VALUE","","Datasheet","https://www.lcsc.com/datasheet/C25744.pdf","","","","","","2025-09-27","C17168","2025-09-27","0R","*","R?","0O 62.5mW 50V <20>800ppm/? Thick Film Resistor <20>1% 0402 Chip Resistor - Surface Mount ROHS"
|
||||
"R 0402WGF1002TCE","R0402","","Erik T<>th","=VALUE","","Datasheet","https://www.lcsc.com/datasheet/C25744.pdf","","","","","","2025-09-27","C25744","2025-09-27","10k","*","R?","10kO 62.5mW 50V <20>100ppm/? Thick Film Resistor <20>1% 0402 Chip Resistor - Surface Mount ROHS"
|
||||
"R 0603WAF1004T5E","R0603","","Erik T<>th","=VALUE","","Datasheet","https://www.lcsc.com/datasheet/C22935.pdf","","","","","","2025-10-24","C22935","2025-10-24","1Meg","*","R?","100mW 1MO 75V <20>100ppm/? Thick Film Resistor <20>1% 0603 Chip Resistor - Surface Mount ROHS"
|
||||
"R RC0402FR-075KL","R0402","","Erik T<>th","=VALUE","","Datasheet","https://www.lcsc.com/datasheet/C477765.pdf","","","","","","2025-10-11","C477765","2025-10-11","5k","*","R?","5kO 62.5mW 50V <20>100ppm/? Thick Film Resistor <20>1% 0402 Chip Resistor - Surface Mount ROHS"
|
||||
"R_POT PTV09A-4020F-B103","PTV09A-4","","Erik T<>th","=VALUE","","Datasheet URL","https://www.bourns.com/docs/product-datasheets/PTV09.pdf","","","","","","2025-09-13","C5848782","2025-09-13","10k","*","R_POT?",""
|
||||
"R_POT PTV09A-4020F-B104","PTV09A-4","","Erik T<>th","=VALUE","","Datasheet URL","https://www.bourns.com/docs/product-datasheets/PTV09.pdf","","","","","","2025-09-13","C5154557","2025-09-13","100k","*","R_POT?",""
|
||||
"R_POT PTV09A-4020F-B105","PTV09A-4","","Erik T<>th","=VALUE","","Datasheet URL","https://www.bourns.com/docs/product-datasheets/PTV09.pdf","","","","","","2025-09-13","C6738612","2025-09-13","1Meg","*","R_POT?",""
|
||||
"R_POT PTV09A-4020F-B203","PTV09A-4","","Erik T<>th","=VALUE","","Datasheet URL","https://www.bourns.com/docs/product-datasheets/PTV09.pdf","","","","","","2025-09-13","C6738614","2025-09-13","20k","*","R_POT?",""
|
||||
"R_POT PTV09A-4020F-B503","PTV09A-4","","Erik T<>th","=VALUE","","Datasheet URL","https://www.bourns.com/docs/product-datasheets/PTV09.pdf","","","","","","2025-09-13","C5848785","2025-09-13","50k","*","R_POT?",""
|
||||
"R_POT PTV09A-4020F-B504","PTV09A-4","","Erik T<>th","=VALUE","","Datasheet URL","https://www.bourns.com/docs/product-datasheets/PTV09.pdf","","","","","","2025-09-13","C5154140","2025-09-13","500k","*","R_POT?",""
|
||||
"R_POT RK09D113000F","RK09D113F","","Erik T<>th","=VALUE","","Datasheet URL","https://www.alldatasheet.com/datasheet-pdf/view/328831/ALPS/RK09D113000F.html","","","","","","2025-09-12","C470317","2025-09-12","10k","*","R_POT?",""
|
||||
"R_POT RK09D1130A1L","RK09D113F","","Erik T<>th","=VALUE","","Datasheet URL","https://www.alldatasheet.com/datasheet-pdf/view/328831/ALPS/RK09D113000F.html","","","","","","2025-09-13","C470305","2025-09-13","*","*","R_POT?",""
|
||||
"S A12405RNCQ","A124XXRNCX","","Erik T<>th","","","Datasheet URL","https://www.ckswitches.com/media/1349/arotary.pdf","","","","","","2025-09-20","C2800106","2025-09-11","","*","S?","1 Pole 4 Stage Rotary Switch"
|
||||
"S TS02-66-50-BK-100-SCR-D","TS026650BK100SCRD","","Erik T<>th","TS02-66-50-BK-100-SCR-D","","Datasheet","https://www.sameskydevices.com/product/resource/ts02.pdf","","","","","","2025-09-25","","2025-09-25","","*","S?","6 x 6 mm, 5 mm Actuator Height, 100 gf, Black, Short Crimped, Through Hole, SPST, Tactile Switch"
|
||||
"U AMS1117-3.3","SOT_AMS1117-2.5_AMS","","Erik T<>th","AMS1117","","Datasheet","http://www.advanced-monolithic.com/pdf/ds1117.pdf","","","","","","2025-10-14","C6186","2025-09-19","","*","U?","1A LOW DROPOUT VOLTAGE REGULATOR"
|
||||
"U LD1117S33CTR","SOT223","","Erik T<>th","LD1117","","Datasheet","https://www.st.com/resource/en/datasheet/ld1117.pdf","","","","","","2025-09-20","C35879","2025-09-19","","*","U?","Linear Voltage Regulator IC Positive Fixed 1 Output 800mA SOT-223"
|
||||
"U LM2940IMP-10/NOPB","SOT-223-4","","Erik T<>th","LM2940","","Datasheet","https://www.ti.com/lit/ds/symlink/lm2940c.pdf","","","","","","2025-10-22","C2866078","2025-10-22","","*","U?","54dB@(120Hz) Positive Fixed 10V SOT-223-4 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHS"
|
||||
"U RS3K-XX15D_H3","RS3K-Z","","Erik T<>th","RS3K-Z Series","","Datasheet","https://recom-power.com/pdf/Econoline/RS3K(-Z).pdf","","","","","","2025-09-20","","2025-09-20","","*","U?","3W DC/DC-Converter"
|
||||
"U SFT03XXXD15","SFT03","","Erik T<>th","SFT03C/T series","","Datasheet","https://www.xppower.com/storage/portals/0/pdfs/SF_SFT03.pdf","","","","","","2025-09-20","","2025-09-20","","*","U?","3W DC/DC-Converter"
|
||||
"Y X322540MPB4SI","Y_XTAL_3225","","Erik T<>th","=Value","","Datasheet","https://www.yxc.hk/uploadfiles/2021/11/YSX321SL.pdf","","","","","","2025-09-27","C9010","2025-09-27","40MHz","*","Y?","CRYSTAL 40MHz 15pF SMD"
|
||||
|
55
dev/da_altium_lib/DA_LIB/DA_LIB.rep
Normal file
55
dev/da_altium_lib/DA_LIB/DA_LIB.rep
Normal file
@@ -0,0 +1,55 @@
|
||||
CSV text has been written to file : DA_LIB.csv
|
||||
|
||||
Library Component Count : 48
|
||||
|
||||
Name Description
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
C CL05A105KA5NQNC 25V 1uF X5R <20>10% 0402 Ceramic Capacitors ROHS
|
||||
C CL05A474KA5NNNC 25V 470nF X5R <20>10% 0402 Ceramic Capacitors ROHS
|
||||
C CL05B103KB5NNNC 50V 10nF X7R <20>10% 0402 Ceramic Capacitors ROHS
|
||||
C CL05C220JB5NNNC 50V 22pF C0G <20>5% 0402 Ceramic Capacitors ROHS
|
||||
C CL10A106KP8NNNC 10V 10uF X5R <20>10% 0603 Ceramic Capacitors ROHS
|
||||
C CL10A474KB8NNNC 50V 470nF X5R <20>10% 0603 Ceramic Capacitors ROHS
|
||||
C CL10B104KB8NNNC 50V 100nF X7R <20>10% 0603 Ceramic Capacitors ROHS
|
||||
C CL10B104KB8NNNC_1 0.1<EFBFBD>F <20>10% 50V Ceramic Capacitor X7R 0603 (1608 Metric)
|
||||
C TAJA106K016RNJ 10uF 16V 3O@100kHz <20>10% CASE-A-3216-18(mm) Tantalum Capacitors ROHS
|
||||
C TAJC226K025RNJ 22uF 25V 1.4O@100kHz <20>10% CASE-C-6032-28(mm) Tantalum Capacitors ROHS
|
||||
D 1N4148WS 2A 4ns 100V Independent 1.25V@150mA 150mA SOD-323 Single Diodes ROHS
|
||||
D DF2S16FS,L3M TVS Diode (Uni-directional)
|
||||
D ESD5Z6.0T1G TVS Diode (Uni-directional)
|
||||
D PESD2USB3UV-TR 2 Channel TVS Diode (Uni-directional)
|
||||
D SESD0402Q2UG-0020-0902 Channel TVS Diode (Uni-directional)
|
||||
IC CH224K USBPD and Multiple Fast Charging Protocol Receiving Chip
|
||||
IC ESP32-S3R8 150Mbps 2.4GHz -74.2dBm 2.412GHz~2.484GHz QFN-56(7x7) RF Transceiver ICs ROHS
|
||||
IC HUSB237-AA001-DN06RUSB Type-C Power Delivery Sink Controller
|
||||
IC LM13700 Dual Operational Transconductance Amplifiers With Linearizing Diodes and Buffers
|
||||
IC LM321DTR(XBLW) 3V~32V 2mV 1MHz 45nA 400V/ms 1 90dB SOT-23-5 Amplifiers ROHS
|
||||
IC LM321MFX/NOPB 7mV 500nA 400V/ms 85dB 3V~30V 1MHz 1 SOT-23-5 Amplifiers ROHS
|
||||
IC LM386MX-1/NOPB 700mW, mono, 5- to 18-V, analog input Class-AB audio amplifier 8-SOIC 0 to 70
|
||||
IC MCP4728-E_UN Quad, 12-bit NV DAC with I2C interface
|
||||
IC STUSB4500QTR Standalone USB PD controller for power sinking devices
|
||||
IC TL074IDR 3mV 65pA 13V/us 70dB -15V~15V 3MHz 4 SOIC-14 Amplifiers ROHS
|
||||
IC W25Q128JVSIQ 128M-bit Serial Flash Memory with uniform 4KB sectors and Dual/Quad SPI
|
||||
J TYPE-C-16PIN-2MD 1 16P -25?~+85? Type-C SMD USB, DVI, HDMI Connector Assemblies ROHS
|
||||
L LQG15HS2N0S02D 900mA 2nH 90mO 0402 Fixed Inductors ROHS
|
||||
R 0402WGF0000TCE 0O 62.5mW 50V <20>800ppm/? Thick Film Resistor <20>1% 0402 Chip Resistor - Surface Mount ROHS
|
||||
R 0402WGF1002TCE 10kO 62.5mW 50V <20>100ppm/? Thick Film Resistor <20>1% 0402 Chip Resistor - Surface Mount ROHS
|
||||
R 0603WAF1004T5E 100mW 1MO 75V <20>100ppm/? Thick Film Resistor <20>1% 0603 Chip Resistor - Surface Mount ROHS
|
||||
R RC0402FR-075KL 5kO 62.5mW 50V <20>100ppm/? Thick Film Resistor <20>1% 0402 Chip Resistor - Surface Mount ROHS
|
||||
R_POT PTV09A-4020F-B103
|
||||
R_POT PTV09A-4020F-B104
|
||||
R_POT PTV09A-4020F-B105
|
||||
R_POT PTV09A-4020F-B203
|
||||
R_POT PTV09A-4020F-B503
|
||||
R_POT PTV09A-4020F-B504
|
||||
R_POT RK09D113000F
|
||||
R_POT RK09D1130A1L
|
||||
S A12405RNCQ 1 Pole 4 Stage Rotary Switch
|
||||
S TS02-66-50-BK-100-SCR-D6 x 6 mm, 5 mm Actuator Height, 100 gf, Black, Short Crimped, Through Hole, SPST, Tactile Switch
|
||||
U AMS1117-3.3 1A LOW DROPOUT VOLTAGE REGULATOR
|
||||
U LD1117S33CTR Linear Voltage Regulator IC Positive Fixed 1 Output 800mA SOT-223
|
||||
U LM2940IMP-10/NOPB 54dB@(120Hz) Positive Fixed 10V SOT-223-4 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHS
|
||||
U RS3K-XX15D_H3 3W DC/DC-Converter
|
||||
U SFT03XXXD15 3W DC/DC-Converter
|
||||
Y X322540MPB4SI CRYSTAL 40MHz 15pF SMD
|
||||
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(135).SchLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(135).SchLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(136).SchLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(136).SchLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(137).SchLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(137).SchLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(138).SchLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(138).SchLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(139).SchLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(139).SchLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(3).LibPkg.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(3).LibPkg.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(65).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(65).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(66).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(66).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(67).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(67).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(68).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(68).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(69).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(69).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(70).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(70).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(71).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(71).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(72).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(72).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(73).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(73).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(74).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(74).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(75).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(75).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(76).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(76).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(77).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(77).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(78).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(78).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(79).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(79).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(80).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(80).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(81).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(81).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(82).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(82).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(83).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(83).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(84).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(84).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(85).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(85).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(86).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(86).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(87).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(87).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(88).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(88).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(89).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(89).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(90).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(90).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(91).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(91).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(92).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(92).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(93).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(93).PcbLib.Zip
Normal file
Binary file not shown.
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(94).PcbLib.Zip
Normal file
BIN
dev/da_altium_lib/DA_LIB/History/DA_LIB.~(94).PcbLib.Zip
Normal file
Binary file not shown.
Binary file not shown.
1
dev/digital/ESP32-S3/ESP32-S3.Harness
Normal file
1
dev/digital/ESP32-S3/ESP32-S3.Harness
Normal file
@@ -0,0 +1 @@
|
||||
SB=SB1.R,SB1.P,SB2.R,SB2.P
|
||||
@@ -66,6 +66,23 @@ DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
DocumentUniqueId=QMXNWCKL
|
||||
|
||||
[Document2]
|
||||
DocumentPath=ESP32-S3.Harness
|
||||
AnnotationEnabled=1
|
||||
AnnotateStartValue=1
|
||||
AnnotationIndexControlEnabled=0
|
||||
AnnotateSuffix=
|
||||
AnnotateScope=All
|
||||
AnnotateOrder=-1
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
DocumentUniqueId=
|
||||
|
||||
[Parameter1]
|
||||
Name=ProjectTitle
|
||||
Value=ESP32-S3
|
||||
|
||||
Binary file not shown.
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(20).SchDoc.Zip
Normal file
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(20).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(21).SchDoc.Zip
Normal file
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(21).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(22).SchDoc.Zip
Normal file
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(22).SchDoc.Zip
Normal file
Binary file not shown.
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(3).PrjPcb.Zip
Normal file
BIN
dev/digital/ESP32-S3/History/ESP32-S3.~(3).PrjPcb.Zip
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
456
dev/digital/Firmware_TEST/README.md
Normal file
456
dev/digital/Firmware_TEST/README.md
Normal file
@@ -0,0 +1,456 @@
|
||||
# Firmware
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
|
||||
1. [Projektübersicht](#projektübersicht)
|
||||
2. [Systemarchitektur](#systemarchitektur)
|
||||
3. [Komponenten](#komponenten)
|
||||
4. [Speicheranalyse](#speicheranalyse)
|
||||
5. [Installation](#installation)
|
||||
6. [Verwendung](#verwendung)
|
||||
7. [Hauptablauf](#hauptablauf)
|
||||
|
||||
---
|
||||
|
||||
## Projektübersicht
|
||||
|
||||
### Features
|
||||
|
||||
- ✅ **Dual-Channel CV-Sequencer** - 2 unabhängige Control Voltage Ausgänge
|
||||
- ✅ **4×3 Tastaturmatrix** - Echtzeit-Tasten-Eingabe mit Entprellung
|
||||
- ✅ **Recording & Playback** - Speichere Sequenzen bis 30 Sekunden
|
||||
- ✅ **Loop-Funktion** - Endlose Wiederholung oder Einmaledition
|
||||
- ✅ **Live-Modus** - Direkte Tastatur-zu-CV Ausgabe
|
||||
- ✅ **Multi-Key Support** - Bis zu 10 gleichzeitig aktive Tasten
|
||||
|
||||
### Hardware
|
||||
|
||||
| Komponente | Modell | Funktion |
|
||||
|-----------|--------|---------|
|
||||
| Microcontroller | ESP32 | Hauptprozessor |
|
||||
| DAC | MCP4728 | 4-Kanal 12-Bit DAC |
|
||||
| I2C Bus | - | Kommunikation MCU ↔ DAC |
|
||||
| Tastatur | 4×3 Matrix | Benutzereingabe |
|
||||
| Buttons | 4× Push-Buttons | Record/Play Steuerung |
|
||||
|
||||
---
|
||||
|
||||
## Systemarchitektur
|
||||
|
||||
### 3-Schicht-Modell
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ INPUT LAYER (📥) │
|
||||
├──────────────────────┬──────────────────────────────┤
|
||||
│ Keyboard Matrix │ Sequencer Buttons │
|
||||
│ (4×3 Tasten) │ (Record/Play × 2) │
|
||||
└──────────────┬───────┴──────────────┬───────────────┘
|
||||
│ │
|
||||
┌──────────────▼─────────────────────▼───────────────┐
|
||||
│ PROCESSING LAYER (⚙️) │
|
||||
├──────────────────────┬──────────────────────────────┤
|
||||
│ Keyboard Klasse │ SequencerBlock (2×) │
|
||||
│ (Queue-Management) │ (Recording & Playback) │
|
||||
└──────────────┬───────┴──────────────┬───────────────┘
|
||||
│ │
|
||||
┌──────────────▼─────────────────────▼───────────────┐
|
||||
│ OUTPUT LAYER (📤) │
|
||||
├──────────────────────┬──────────────────────────────┤
|
||||
│ CV Klasse (DAC) │ CV Ausgänge │
|
||||
│ MCP4728 I2C │ (A=Ch1, B=Ch2) │
|
||||
└──────────────┬───────┴──────────────┬───────────────┘
|
||||
│ │
|
||||
└──────────────┬───────┘
|
||||
▼
|
||||
Externe Synthesizer / Module
|
||||
```
|
||||
|
||||
### Datenfluss
|
||||
|
||||
```
|
||||
TASTATUR → KEYBOARD → SEQUENCER/LIVE → DAC → CV AUSGÄNGE
|
||||
↑
|
||||
BUTTONS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Komponenten
|
||||
|
||||
### 1. Keyboard Klasse
|
||||
|
||||
**Funktion:** Verwaltet die 4×3 Matrix-Tastatur mit Entprellung
|
||||
|
||||
```cpp
|
||||
class Keyboard {
|
||||
public:
|
||||
Keyboard(uint8_t nRows, uint8_t nCols, uint8_t *pinsRow, uint8_t *pinsCol);
|
||||
void begin();
|
||||
void update();
|
||||
int getQueueLength();
|
||||
Key getQueue(uint8_t index);
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
**Merkmale:**
|
||||
- Debounce-Zeit: 20ms
|
||||
- Max. 10 gleichzeitig aktive Tasten
|
||||
- FIFO-Queue für Tastenreihenfolge
|
||||
- Rückmeldung als `Key(row, col)` Struktur
|
||||
|
||||
### 2. CV Klasse
|
||||
|
||||
**Funktion:** Verwaltet DAC-Ausgänge über I2C (MCP4728)
|
||||
|
||||
```cpp
|
||||
class CV {
|
||||
public:
|
||||
CV(Adafruit_MCP4728 *dac, TwoWire *wire, uint8_t nCV,
|
||||
MCP4728_channel_t *cvChannelMap, uint16_t *keyToVoltage,
|
||||
uint8_t row, uint8_t col);
|
||||
bool begin(uint8_t pinSDA, uint8_t pinSCL);
|
||||
void setVoltage(uint8_t cvIndex, Key k);
|
||||
void setVoltage(uint8_t cvIndex, uint16_t mV);
|
||||
void clearAll();
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
**Merkmale:**
|
||||
- 2 CV-Kanäle (A, B)
|
||||
- I2C-Kommunikation (Pins 15, 16)
|
||||
- Voltage-Mapping von Tasten
|
||||
- Range: 0-4096mV (12-Bit)
|
||||
|
||||
### 3. SequencerBlock Klasse
|
||||
|
||||
**Funktion:** Speichert und spielt Sequenzen auf 2 Kanälen
|
||||
|
||||
```cpp
|
||||
class SequencerBlock {
|
||||
public:
|
||||
SequencerBlock(uint16_t maxDurationMS, uint16_t minStepDurationMS);
|
||||
|
||||
// Recording
|
||||
void startRecord();
|
||||
void stopRecord();
|
||||
void addStep(uint16_t voltage_ch1, uint16_t voltage_ch2);
|
||||
|
||||
// Playback
|
||||
void startPlay();
|
||||
void stopPlay();
|
||||
void update(); // Must be called regularly
|
||||
void setLoop(bool loop);
|
||||
|
||||
// Status
|
||||
uint8_t getStepCount();
|
||||
uint16_t getCurrentVoltageCh1();
|
||||
uint16_t getCurrentVoltageCh2();
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
**Merkmale:**
|
||||
- Max. 128 Steps pro Sequenz
|
||||
- Max. 30 Sekunden Aufnahmetime
|
||||
- Dual-Channel Recording
|
||||
- Loop-Funktion
|
||||
- Automatisches Time-Limit
|
||||
|
||||
### 4. Button-Verarbeitung
|
||||
|
||||
**3-Mode Play-Button-System:**
|
||||
|
||||
| Click | Aktion | Zustand |
|
||||
|-------|--------|---------|
|
||||
| 1x | Play (keine Loop) | Spielt einmalig ab |
|
||||
| 2x | Loop aktivieren | Endlosschleife |
|
||||
| 3x | Stop | Stoppt Wiedergabe |
|
||||
|
||||
**Record-Button:** Toggle zwischen Recording starten/stoppen
|
||||
|
||||
---
|
||||
|
||||
## Speicheranalyse
|
||||
```bash
|
||||
RAM: [= ] 6.5% (used 21176 bytes from 327680 bytes)
|
||||
Flash: [= ] 8.5% (used 283165 bytes from 3342336 bytes)
|
||||
```
|
||||
### RAM-Verbrauch
|
||||
|
||||
| Komponente | Größe | Menge | Gesamt | Notizen |
|
||||
|-----------|-------|-------|--------|---------|
|
||||
| SequencerBlock #1 | ~550 B | 1x | 550 B | 128 Steps × 6 Bytes + Variablen |
|
||||
| SequencerBlock #2 | ~550 B | 1x | 550 B | 128 Steps × 6 Bytes + Variablen |
|
||||
| Keyboard Objekt | ~130 B | 1x | 130 B | 8×8 Bool Arrays + Pointer |
|
||||
| CV Objekt | ~50 B | 1x | 50 B | DAC-Pointer + Config |
|
||||
| keyToVoltage Array | 24 B | 1x | 24 B | 12 Keys × uint16_t |
|
||||
| Button States | ~50 B | 1x | 50 B | 4 Buttons × ~12 Bytes |
|
||||
| Lokale Variablen | ~100 B | 1x | 100 B | Loop-Variablen |
|
||||
| **GESAMT (Schätzung)** | - | - | **~1.5 KB** | - |
|
||||
|
||||
### Flash-Verbrauch
|
||||
|
||||
| Komponente | Größe |
|
||||
|-----------|-------|
|
||||
| Arduino/Wire Libraries | ~150 KB |
|
||||
| Adafruit_MCP4728 | ~20 KB |
|
||||
| Firmware Code | ~80 KB |
|
||||
| Bootloader | ~60 KB |
|
||||
| **GESAMT (Schätzung)** | **~310 KB** |
|
||||
|
||||
|
||||
### Sequenzen-Speicher Detail
|
||||
|
||||
```cpp
|
||||
struct DualVoltageDurationPair {
|
||||
uint16_t voltage_ch1; // 2 Bytes
|
||||
uint16_t voltage_ch2; // 2 Bytes
|
||||
uint16_t duration; // 2 Bytes
|
||||
}; // = 6 Bytes pro Step
|
||||
|
||||
// Berechnung:
|
||||
// - N_MAX_SEQUENCE_STEPS = 128
|
||||
// - 128 Steps × 6 Bytes = 768 Bytes pro Sequenz
|
||||
// - 2 Sequenzer = 1536 Bytes (1.5 KB)
|
||||
```
|
||||
|
||||
### Optimierungspotential
|
||||
|
||||
| Feature | Größenänderung | Status |
|
||||
|---------|-----------------|--------|
|
||||
| 256 Steps statt 128 | +768 B | ✅ Problemlos möglich |
|
||||
| 60s statt 30s Limit | 0 B | ✅ Kostenloses Upgrade |
|
||||
| 4 Sequenzer statt 2 | +3.3 KB | ✅ Problemlos möglich |
|
||||
| 8×8 Tastatur statt 4×3 | ~ +30 B | ✅ Kaum Mehraufwand |
|
||||
|
||||
---
|
||||
|
||||
## Verwendung
|
||||
|
||||
### Grundlegende Konfiguration
|
||||
|
||||
`include/FIRMWARE_DEF.h`:
|
||||
|
||||
```cpp
|
||||
#define N_KEYBOARD_ROW 4 // Keyboard Reihen
|
||||
#define N_KEYBOARD_COL 3 // Keyboard Spalten
|
||||
#define N_CV_GATES 2 // CV-Ausgänge
|
||||
#define N_SB 2 // Sequencer
|
||||
|
||||
// I2C Pins
|
||||
#define PIN_SDA 15
|
||||
#define PIN_SCL 16
|
||||
|
||||
// Keyboard Pins (Reihen)
|
||||
#define PIN_K_R0 7
|
||||
#define PIN_K_R1 8
|
||||
#define PIN_K_R2 9
|
||||
#define PIN_K_R3 10
|
||||
|
||||
// Keyboard Pins (Spalten)
|
||||
#define PIN_K_C0 1
|
||||
#define PIN_K_C1 2
|
||||
#define PIN_K_C2 4
|
||||
```
|
||||
|
||||
### Spannung-Mapping
|
||||
|
||||
`src/main.cpp`:
|
||||
|
||||
```cpp
|
||||
// Voltage für jede Tastaturposition (in 1/12V = 83mV Schritten = 1 Halbtonschritt)
|
||||
uint16_t keyToVoltage[N_KEYBOARD_ROW*N_KEYBOARD_COL] = {
|
||||
1*83, 5*83, 9*83, // Row 0: C, E, G
|
||||
2*83, 6*83, 10*83, // Row 1: D, F, A
|
||||
3*83, 7*83, 11*83, // Row 2: E, G, B
|
||||
4*83, 8*83, 12*83 // Row 3: F, A, C (Oktave)
|
||||
};
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Hauptablauf
|
||||
|
||||
### Main Loop Flowchart
|
||||
|
||||
```
|
||||
START
|
||||
↓
|
||||
SETUP (Initialisierung)
|
||||
↓
|
||||
┌─── MAIN LOOP ───────────────────────┐
|
||||
│ │
|
||||
├─ Keyboard Update │
|
||||
│ (Tasten auslesen) │
|
||||
│ │
|
||||
├─ Button Handler │
|
||||
│ (Record/Play Buttons) │
|
||||
│ │
|
||||
├─ Sequencer Update │
|
||||
│ (sb1 & sb2 Playback) │
|
||||
│ │
|
||||
├─ Spannungen bestimmen │
|
||||
│ voltage_ch1 = Queue[0] │
|
||||
│ voltage_ch2 = Queue[1] │
|
||||
│ │
|
||||
├─ Recording Check │
|
||||
│ IF Recording: addStep() │
|
||||
│ │
|
||||
├─ Output Priority │
|
||||
│ IF sb1.playing() → Output SEQ1 │
|
||||
│ ELSE IF sb2.playing() → Output SEQ2│
|
||||
│ ELSE → Output Live │
|
||||
│ │
|
||||
├─ Time-Limit Check │
|
||||
│ IF Limit reached: Stop Record │
|
||||
│ │
|
||||
├─ Delay 10ms │
|
||||
│ │
|
||||
└─────────────────────────────────────┘
|
||||
↓
|
||||
[Loop zurück]
|
||||
```
|
||||
|
||||
### State Machine
|
||||
|
||||
| State | Beschreibung | Aktion |
|
||||
|-------|-------------|--------|
|
||||
| **IDLE** | Leerlauf | Liest Tasten, gibt Live-Spannungen aus |
|
||||
| **REC** | Recording aktiv | Speichert Sequenzen, überwacht Zeit-Limits |
|
||||
| **PLAY** | Playback aktiv | Gibt Sequenzen aus, verwaltet Step-Übergänge |
|
||||
| **LOOP** | Endlosschleife | Wiederholt Sequenz nahtlos |
|
||||
|
||||
### Ausgabe-Prioritätssystem
|
||||
|
||||
```
|
||||
1. Sequencer 1 Playing?
|
||||
├─ JA → Gebe SEQ1 Voltages aus (höchste Priorität)
|
||||
└─ NEIN ↓
|
||||
|
||||
2. Sequencer 2 Playing?
|
||||
├─ JA → Gebe SEQ2 Voltages aus (zweite Priorität)
|
||||
└─ NEIN ↓
|
||||
|
||||
3. Live Input
|
||||
└─ Gebe Tasten-Voltages aus (Standard)
|
||||
```
|
||||
|
||||
Dies ermöglicht nahtlose Übergänge und verhindert Konflikte.
|
||||
|
||||
---
|
||||
|
||||
## Code-Beispiele
|
||||
|
||||
### Beispiel 1: Live-Modus (main.cpp.1)
|
||||
|
||||
Direkte Tastatur-zu-CV Verbindung ohne Sequencer:
|
||||
|
||||
```cpp
|
||||
void loop() {
|
||||
keyboard.update();
|
||||
|
||||
int n = keyboard.getQueueLength();
|
||||
|
||||
if(n > 0) {
|
||||
for(int i = 0; (i < N_CV_GATES) && (i < n); i++) {
|
||||
Key k = keyboard.getQueue(i);
|
||||
cv.setVoltage(i, k); // Taste direkt auf CV ausgeben
|
||||
}
|
||||
} else {
|
||||
cv.clearAll(); // Keine Taste → 0V
|
||||
}
|
||||
|
||||
delay(50);
|
||||
}
|
||||
```
|
||||
|
||||
### Beispiel 2: Dual-Channel Sequencer (main.cpp)
|
||||
|
||||
Vollständiger Sequencer mit 2 unabhängigen Kanälen:
|
||||
|
||||
```cpp
|
||||
void loop() {
|
||||
keyboard.update();
|
||||
handleSequencerButtons();
|
||||
|
||||
sb1.update();
|
||||
sb2.update();
|
||||
|
||||
// ... Voltage determination ...
|
||||
|
||||
// Recording
|
||||
if(sb1.isRecording()) {
|
||||
sb1.addStep(voltage_ch1, voltage_ch2);
|
||||
}
|
||||
if(sb2.isRecording()) {
|
||||
sb2.addStep(voltage_ch1, voltage_ch2);
|
||||
}
|
||||
|
||||
// Output mit Priorität
|
||||
if(sb1.isPlaying()) {
|
||||
cv.setVoltage(0, sb1.getCurrentVoltageCh1());
|
||||
cv.setVoltage(1, sb1.getCurrentVoltageCh2());
|
||||
}
|
||||
else if(sb2.isPlaying()) {
|
||||
cv.setVoltage(0, sb2.getCurrentVoltageCh1());
|
||||
cv.setVoltage(1, sb2.getCurrentVoltageCh2());
|
||||
}
|
||||
else {
|
||||
cv.setVoltage(0, voltage_ch1);
|
||||
cv.setVoltage(1, voltage_ch2);
|
||||
}
|
||||
|
||||
delay(10);
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dateistruktur
|
||||
|
||||
```
|
||||
project/
|
||||
├── include/
|
||||
│ ├── FIRMWARE.h # Klassen-Definitionen
|
||||
│ └── FIRMWARE_DEF.h # Konstanten & Pin-Definitionen
|
||||
│
|
||||
└── src/
|
||||
├── main.cpp # Dual-Channel Sequencer Beispiel
|
||||
├── main.cpp.1 # Live-Modus Beispiel
|
||||
├── main.cpp.2 # Dual-Channel ohne Sequencer
|
||||
└── FIRMWARE.cpp # Implementierungen
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Technische Spezifikationen
|
||||
|
||||
### Timings
|
||||
|
||||
| Parameter | Wert | Funktion |
|
||||
|-----------|------|----------|
|
||||
| Keyboard Debounce | 20ms | Anti-Prellen Verzögerung |
|
||||
| Button Debounce | 50ms | Button Anti-Prellen |
|
||||
| Main Loop Delay | 10ms | Update-Rate |
|
||||
| Max Recording | 30s | Zeit-Limit pro Sequenz |
|
||||
| Min Step Duration | 50ms | Minimale Step-Länge |
|
||||
|
||||
### Voltage-Mapping
|
||||
|
||||
Verwendet gleichmäßige 83mV Schritte (1/12 Oktave):
|
||||
|
||||
```
|
||||
Key (1,0) = 1 × 83mV = 83mV (C)
|
||||
Key (1,1) = 5 × 83mV = 415mV (E)
|
||||
Key (1,2) = 9 × 83mV = 747mV (G)
|
||||
... etc
|
||||
Key (4,2) = 12 × 83mV = 996mV (C')
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Zuletzt aktualisiert:** 2025-11-30
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user