← Back to Explore

3.5mm_Audio

In design review card · advanced

Made by
Simon

About this project

A simple 3.5mm audio module for headphones.

MD0
1k
MD1
2k

Journals

Follow the progress behind this project.

30m

So i wanted to fix the firmware because it was really shit

At first i actually just deleted everything i had and started over, i used the PIO tutorial as a guide because i am kinda shit and wanted to learn a bit to fix this. Then i started with the basic driver and added the pio part, after that i needed to implement the I2S. I had found a I2S rust implementation and based it heavily off that. After i did that i started on some other things i did a small repo and added a bom. repo

1h 40m

Firmware

Firmware is my downfall, so at first i just went straight to the docs to see how to even set anything of this up, at first it looked like black magic but slowly but surely it started looking like something that i could start slowly understanding, with allot of help of @Koeg, i got my rust install working with all the dependencies, i also installed picotools and fixed some bugs i got when trying to follow the tutorial, most of them where pure dumbness but some i could get help from @Koeg. I used VScode as the code editor to make the project in and at the end my file tree looked like this. file_tree This was after some debugging and it is still far from working but i at least got the basics needed down, i used this as a source of information on how to even get a bit closer to get I2S working, this isn't a hardware protocol on the RP235x so it has to run on PIO which makes it a bit more difficult. I am at this moment still working hard on getting this firmware to build, but rust is still a language far from my brain-cells away so it takes allot of time for me to get this down. I hope i get this building soon so it will work. For now this was this journal!!!

1h 30m

Case

So this case will be made in onshape from scratch, i started by importing my pcb as a step file from kicad so it would be easy to model around. PCB After this i made a simple sketch i extruded that made a bit of an outer case for the board with the screw holes for the screws to screw into from the bottom. Start_case Then i started on making the hole for the audio plug, this was a bit difficult because i couldn't find a 3d model of the audio plug so i had to take a look in the datasheet and figure it out myself. This is the datasheet that i used to reference my design off. DATASHEET After this i also measured some normal 3.5mm plugs so i could make the holes the correct sizes and got this as a final result hole Then i made a top for the case with a simple extrude because its just a flat plane this was the final thing to do before the case was done, it is a pretty simple and basic case but i want it to not sit in the way so that is why it has the shape it has. final This was the case design, i will print this out myself. This was it for this journal!!

3h

PCB

So what happened first is that i needed to assign footprints to each symbol, i choose 0603 as the main size for caps and resistors, then i picked the rest accordingly, it isn't that big of a project so this was pretty easy to pick all the footprints, after i picked all the footprints i created a layout at first. layout After i created the layout it was time for the routing, this is a simple 2 layer board and was thus pretty easy to route, after around 2 hours i got everything as i wanted to spec, the power traces are thicker to accommodate the current the power traces need to handle. traces There is a gnd fill on the top and bottom for gnd distribution and stability. routing This was all pretty easy but mostly just time consuming, it isn't difficult but it just takes some time to get all the traces laid out nicely and in a way i like. There still needs to made a bom, 3d design and the code :skulk: For now that was it!!

2h

Start

So i wanted to create a module i could connect my headphones to to make audio on the console working for sound effects in games and ext. So i started by coping the normal module from the hackxpansion repo and started in there, at first i started looking for a audio module, after some advanced research(asking some specific intelligent beings) i came to thee conclusion that the PM5102A is the best choice, it has good enough audio quality, used on some of the shelf modules so easy to implement and cheap enough. So of course because this is such a used module its also in kicad's library so was very easy to add. ic So then it was time to do some datasheet diving. It is a TI chip so the datasheet was as always excellent. So after some quick searching i found the schematic example and did a quick copy of it in kicad. schematic So now it was time for the integration with the hackxpansion module, at first i needed to connect everything to the headers. more_schematic So now the only thing left was configuring the audio module correctly with some resistors. resistors Now that this was done i had the schematic done, this is it for this journal!!