project: write extra readme text
This commit is contained in:
		
							parent
							
								
									b82c15f025
								
							
						
					
					
						commit
						f8ff866d32
					
				
							
								
								
									
										34
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								README.md
									
									
									
									
									
								
							@ -1,27 +1,31 @@
 | 
				
			|||||||
## Wat
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
This pcb is an audio multiplexer, meaning it can switch three analog inputs into one analog output. 
 | 
					<iframe src="https://myhub.autodesk360.com/ue28af833/shares/public/SH56a43QTfd62c1cd96847154d5ed1f7a373?mode=embed" width="640" height="480" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"  frameborder="0"></iframe>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Why
 | 
					This project contains all design files for a **6:1 audio multiplexer** , meaning it can switch six analog inputs into one analog output. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sometimes you just need more inputs. And this is how you do it.
 | 
					It is based on the [BD3491](https://www.digikey.de/product-detail/de/rohm-semiconductor/BD3491FS-E2/BD3491FS-E2TR-ND/5720882) which does everthing related to the Audio signals.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## How
 | 
					On top of switching the inputs, it is also able to condition the signal. It can 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The BD3491 does all the audio switching. It combines one 6 input switch and an equalizer into a simple package. 
 | 
					- Apply Bass-Boosting and Treble-Boosting (essentially a crappy 3-Point Equalizer)
 | 
				
			||||||
The STM32 configures the BD3491 to switch to the specified inputs based on pressed buttons or software control.
 | 
					- Amplify the input signal by up to 20dB
 | 
				
			||||||
 | 
					- Add attenuation to the individual channels (aka. balance the left and right channel)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# serial control Syntax
 | 
					All of these feature of the chip can be activated with the on-board STM32, which can in turn be controlled 
 | 
				
			||||||
Upon connecting the stm32 to a PC using USB it will register itself as a new Serial Port. The following text commands can be issued via said Serial connection (the baudrate is irrelevant): 
 | 
					with either on-board buttons or via it's integrated USB port. One can either use the serial protocol directly 
 | 
				
			||||||
 | 
					or a [GUI written in python](gui/README.md)  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `C[number]\n` will change the input to the specified channel. The stm32 echo the command as it was understood. e.g: When Sending `C0\n` it will respond `C0\r\n` to acknowledge the channel switched to **Input 1**. When issuing a `C10` there will be no response, since 10 is out of range. *NOTE:* when using the buttons on the PCB to switch the input, the stm will also issue a `C[number]\r\n` over the serial port if it is connected to notify the PCB of the external input change. 
 | 
					The Board can be supplied over said USB port as well (if the primary use-case implies it beeing connected
 | 
				
			||||||
 | 
					to the PC constantly) or by applying power using a 2.1mm Barrel Jack.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `G[number]\n` will activate an input gain of [number] in dB. It will also respond with the closest gain it can do. e.g: `G10` will result in the stm responding `G12\r\n` which means it will add a 12db input boost, which was the closest matching _valid_ input gain value. You can check the datasheet of the BD3491 to find the possible gain values if this peaks your interest :) 
 | 
					For more details on the pcb, check the [PCB readme](kicad/README.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `L[number]\n` or `R[number]\n` will activate an attenuator in either the left or the right channel. [number] is once again in dB. It works much like the `G`-command. Setting [number] to 0 will deactivate the Attenuation.
 | 
					For details on the Serial command syntax and firmware flashing instructions, check the [firmware readme](firmware/README.md)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `B[number]\n` or `T[number]\n` adds **B**ass or **T**reble gain to the output
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `M[0/1]\n` will either mute or unmute the output
 | 
					# Why
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Because ? 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Sometimes you just need more inputs. This is how you do it. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `S[0/1]\n` will connect all inputs to the output 
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4397
									
								
								doc/audioMux-brd.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4397
									
								
								doc/audioMux-brd.svg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
		 After Width: | Height: | Size: 186 KiB  | 
							
								
								
									
										35
									
								
								firmware/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								firmware/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					# Building the Firmware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In order to build the firmware, [platformio](https://platformio.org/install/cli) must be installed. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To build the firmware, navigate to this folder using the terminal of your choice and type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					platformio run
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Flashing the firmware 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you happen to have an stlink compatible interface (e.g the [programmer attached the nucleo-boards](https://jeelabs.org/book/1547a/])), 
 | 
				
			||||||
 | 
					then (after connecting said interface to the PC and the PCB), 
 | 
				
			||||||
 | 
					the firmware can be flashed with 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					platformio run -t upload
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# serial control Syntax
 | 
				
			||||||
 | 
					Upon connecting the stm32 to a PC using USB it will register itself as a new Serial Port. The following text commands can be issued via said Serial connection (the baudrate is irrelevant): 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `C[number]\n` will change the input to the specified channel. The stm32 echo the command as it was understood. e.g: When Sending `C0\n` it will respond `C0\r\n` to acknowledge the channel switched to **Input 1**. When issuing a `C10` there will be no response, since 10 is out of range. *NOTE:* when using the buttons on the PCB to switch the input, the stm will also issue a `C[number]\r\n` over the serial port if it is connected to notify the PCB of the external input change. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `G[number]\n` will activate an input gain of [number] in dB. It will also respond with the closest gain it can do. e.g: `G10` will result in the stm responding `G12\r\n` which means it will add a 12db input boost, which was the closest matching _valid_ input gain value. You can check the datasheet of the BD3491 to find the possible gain values if this peaks your interest :) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `L[number]\n` or `R[number]\n` will activate an attenuator in either the left or the right channel. [number] is once again in dB. It works much like the `G`-command. Setting [number] to 0 will deactivate the Attenuation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `B[number]\n` or `T[number]\n` adds **B**ass or **T**reble gain to the output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `M[0/1]\n` will either mute or unmute the output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `S[0/1]\n` will connect all inputs to the output 
 | 
				
			||||||
							
								
								
									
										29
									
								
								kicad/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								kicad/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					(THE PCB)[!../doc/audioMux-brd.svg]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There are a total of six solderjumpers on the board:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# switching to the barrel jack as voltage supply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*JP3* and *JP4* set the source for the supply voltage. 
 | 
				
			||||||
 | 
					*JP4* connects the voltage input to the barrel jack, *JP4* connects it to the USB +5V rail.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Per Default JP4 is closed and JP3 is open, making the default way of supplying voltage the USB jack. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the Barrel Jack should be used, then **JP4 has to be opened first** by cutting the trace which shorts it by default, otherwise **the USB voltage will be shorted with the barrel jack, causing potential damage to the USB port**.
 | 
				
			||||||
 | 
					Afterwards, *JP3* can be closed with a small blob of solder. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# activating the equalizer on
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*JP1* and *JP2* connect the output of the Audio switching part of the Rohm chip. 
 | 
				
			||||||
 | 
					When left in the default setting, they will connect them to the output jack directly, bypassing the Equalisation part of the chip completely.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By selecting the other possible path, the equalisation circuit becomes usable. For this to work, 
 | 
				
			||||||
 | 
					*JP7* and *JP8* have to be closed with small solder blobs as well, since those connect the equalizers 
 | 
				
			||||||
 | 
					output to the output audio jack.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Assembling the rest 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For assembly of the board, check the (documentation folder)[../doc]. It contains the (interactive bill of materials)[../doc/interactive_placement.html],
 | 
				
			||||||
 | 
					which indicates what components go where.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Also take a look at the (BOM)[../doc/BOM.xlsx] for what components can be sourced where.
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user