| Ranked Score: | 13,162,614,448 | |
| Play Count: | 98,186 | |
| Play Time: | 1,673h | |
| Max Combo: | 2,872x | |
| Total Hits: | 26,424,534 | |
| Hits x Play: | 269 | |
| Replays Watched: | 39 |
SS+
1
SS
308
S+
5
S
337
A
1,140
Working
Myself
To sleep
History
About
Diploma Project
I'm a electrical and electronics engineering student.
For my last year of school we all had to make a diploma project and everyone got to chose what they wanted to do as long as it wasn't too costly or unfeasible.
Initially I wanted to make a tablet, since I thought it would be a cool project and also because I saw btmc wanted to make a tablet for osu, although after a bit of time passed, I realized that it's not what I wanted to do for my diploma project for a few reasons.
I'm a electrical and electronics engineering student.
For my last year of school we all had to make a diploma project and everyone got to chose what they wanted to do as long as it wasn't too costly or unfeasible.
Initially I wanted to make a tablet, since I thought it would be a cool project and also because I saw btmc wanted to make a tablet for osu, although after a bit of time passed, I realized that it's not what I wanted to do for my diploma project for a few reasons.
Why I didn't make the tablet
The reasons why I didn't chose to make a tablet for my diploma project are mainly due to lack of complexity, since I wanted to learn more about electronics at a deeper level, this project would've been quite limited in it's complexity, why I believe it's limited in complexity is because it's more or less one or a couple of components replicated over the surface of the tablet, granted there is maybe some complexity if you really want to get into the weeds of magnetic fields and how the pen interacts with it but it's mostly a software project.
Which brings me to another reason I didn't chose this project for my diploma is simply because I wanted to make a hardware based project, since I was already very comfortable with programing microcontrollers and wanted to push my hardware design skills.
Which brings me to another reason I didn't chose this project for my diploma is simply because I wanted to make a hardware based project, since I was already very comfortable with programing microcontrollers and wanted to push my hardware design skills.
Why I'm writing this
I'm writing this because I want to help btmc design the hardware, firmware or both of the tablet, but never knew how to reach out since I can't message him on osu or discord and I don't know of any other way to reach him.
Why do I even care to help
I just like helping people in general wherever I can
.
Another reason is since electronics is only one of the fields I'm knowledgeable in, I realize how learning new things looks harder than it is (since I was there too), so if I can help with a project, teaching people things they didn't know about or improving their intuitive understanding of things, I'd do it in a heartbeat, especially since I realize a lot of difficulties with learning comes from not having things explained in a way that makes sense to them.
.Another reason is since electronics is only one of the fields I'm knowledgeable in, I realize how learning new things looks harder than it is (since I was there too), so if I can help with a project, teaching people things they didn't know about or improving their intuitive understanding of things, I'd do it in a heartbeat, especially since I realize a lot of difficulties with learning comes from not having things explained in a way that makes sense to them.
Why only now
A. I'm shy
B. Because I finished school
B. Because I finished school
About the project
So the project I ended up making isn't what was initially planned, but I am happy with what I got to learn making it and it worked first try too (without needing to botch wire something on it for it to work). 
Although extremely ambitious, I wanted to remake the electronics of the goxlr, since I had it laying around for years and it was just collecting dust (windows only software moment).

Although extremely ambitious, I wanted to remake the electronics of the goxlr, since I had it laying around for years and it was just collecting dust (windows only software moment).
Why does it not look like the goxlr
As you might've seen, it doesn't look like the goxlr and there's many reasons for that (mainly time), since the goal wasn't as much remaking the electronics, as it was to design an analog audio interface, that maybe could interface with the goxlr's case, the project naturally looks different from the product.
Although given a bit more time, I could've done a lot more since I had 4 other boards mostly designed that are necessary for interfacing with the case of the goxlr, it's just that the time of producing and testing it all would've exceeded the time left.
It's also simpler to explain by saying: remaking the electronics from scratch. Although that was ideally what it would look like, I wasn't going to lose sleep over it not fitting into the case or something like that, since main the goal of the project was for me to learn more about analog electronics and that's the hard part of the project, so aesthetics didn't really matter here.
Although given a bit more time, I could've done a lot more since I had 4 other boards mostly designed that are necessary for interfacing with the case of the goxlr, it's just that the time of producing and testing it all would've exceeded the time left.
It's also simpler to explain by saying: remaking the electronics from scratch. Although that was ideally what it would look like, I wasn't going to lose sleep over it not fitting into the case or something like that, since main the goal of the project was for me to learn more about analog electronics and that's the hard part of the project, so aesthetics didn't really matter here.
More info about the project
Audio Board
The audio board I could talk for hours about it but I'll try to keep it short.
Since I wanted to make the electronics as independent of the software as possible, I had to define a clear boundary between hardware, software and how it all interfaces.
Since the goal is to avoid undefined states, to not only make the programing easier, but also more maintainable, the approach I took is having the hardware be the one controlling and exposing pins to the software part, everywhere that could be useful to control, meaning the code isn't controlling the board directly, it's just sending commands and the board does the rest, which I find to be a more elegant way of doing things (especially for a project like this).
That's why I designed it with as much modularity in mind as possible, (also because it was still the prototype XD) that's why the way it's controlled is via some dip switches, this was also done as a sort of safe guard if I didn't have enough time, the switches would provide a simpleish way to interact with it, but if I did have time to program it, the function calls would be extremely simple and well defined since there's no unknown states to worry about.
Below is an image of the rear side of the board, with only a couple of components on it, it really shows how small some of the traces really are, and I'm not gonna even start talking about all the holes to connect one side of the board to the other and the issues I had with electroplating the board
Since I wanted to make the electronics as independent of the software as possible, I had to define a clear boundary between hardware, software and how it all interfaces.
Since the goal is to avoid undefined states, to not only make the programing easier, but also more maintainable, the approach I took is having the hardware be the one controlling and exposing pins to the software part, everywhere that could be useful to control, meaning the code isn't controlling the board directly, it's just sending commands and the board does the rest, which I find to be a more elegant way of doing things (especially for a project like this).
Small rant
People tend to fix a lot of stuff in software that could be done in hardware, which I find to be a bit disappointing, since doing it in hardware isn't that hard or expensive and is very rewarding to do since you can be more proud of the hardware that you produced, just being better overall, but also it trickles down to the code in a good way, as by the nature of delegating software tasks to hardware, it makes the code more maintainable and less cluttered, as well as guarantee the task is being done more reliably and efficiently since it's not waiting for it's line of code to be executed (tldr: doing things in hardware over software is better for latency and keeping code more maintainable
)
)That's why I designed it with as much modularity in mind as possible, (also because it was still the prototype XD) that's why the way it's controlled is via some dip switches, this was also done as a sort of safe guard if I didn't have enough time, the switches would provide a simpleish way to interact with it, but if I did have time to program it, the function calls would be extremely simple and well defined since there's no unknown states to worry about.
Below is an image of the rear side of the board, with only a couple of components on it, it really shows how small some of the traces really are, and I'm not gonna even start talking about all the holes to connect one side of the board to the other and the issues I had with electroplating the board

Filter Board
Thankfully there's not much to say about this board, expect that I purposefully made it as small and dense as possible because of the "trauma" of the first board. (I say traumatized kind of as a joke, for maybe a week I was, when the board wasn't finished and I had to connect all the grounds together, which ended up being a never ending chase to connect them all up, but now I find making dense boards fun)
The reason this board wasn't integrated into the first board was just to avoid over complicating it since it was already a lot.
The reason I made that board was because, I originally wanted to add effects to any audio channel (2 effects done in hardware and 2 in software), but I didn't have enough time to do it, so I made this little board that does 4 different effects at set frequencies, since my teachers didn't want me to use the more fancy controllable frequency integrated circuit filter (because I haven't used it before), so to avoid not being able to finish in time I just made a basic filter with an audio operational amplifier, the circuit has a input and an output pin with the filtered output, the dip switch is to select either low pass, high pass, band pass or cut band filtering options as a way to show that I'm capable of doing it, since the people evaluating the project don't necessarily know me, or what I'm capable of, and come from very different places in the country (so I knew a few from cern but that's only 2 out of 15, so the majority didn't know me and for the two that did that was from 3-4years back so it's been a while).
For size reference yes that '=' button is a calculator button. (casio fx-991ES 2nd edition)
The reason this board wasn't integrated into the first board was just to avoid over complicating it since it was already a lot.
Lil rant #2
A couple of teachers always looked at it and said "it's never gonna work" (understandably so), due to how much is going on on that board and there being no prior tests, but I was confident in my research and what I knew and if I wasn't, I would've tested something out to validate it first, but I didn't feel a need to and was right 
(they also told me that they never saw a circuit this complicated working first try without any necessary modifications, so understandable why they didn't believe in it XD)

(they also told me that they never saw a circuit this complicated working first try without any necessary modifications, so understandable why they didn't believe in it XD)
The reason I made that board was because, I originally wanted to add effects to any audio channel (2 effects done in hardware and 2 in software), but I didn't have enough time to do it, so I made this little board that does 4 different effects at set frequencies, since my teachers didn't want me to use the more fancy controllable frequency integrated circuit filter (because I haven't used it before), so to avoid not being able to finish in time I just made a basic filter with an audio operational amplifier, the circuit has a input and an output pin with the filtered output, the dip switch is to select either low pass, high pass, band pass or cut band filtering options as a way to show that I'm capable of doing it, since the people evaluating the project don't necessarily know me, or what I'm capable of, and come from very different places in the country (so I knew a few from cern but that's only 2 out of 15, so the majority didn't know me and for the two that did that was from 3-4years back so it's been a while).
For size reference yes that '=' button is a calculator button. (casio fx-991ES 2nd edition)
Post Diploma
So a couple of months after finishing my diploma project, I found it a bit cumbersome to show my project since I have banana plugs on the end of the cables that I have to connect to a lab bench power supply, due to it requiring at least +5v, -5v and ground so it's a bit of a pain to power, so eventually I came back to geneva for a week or two and decided to make a circuit that I could power my project a little more easily.
What I've ended up landing on was powering it via usb type c, since usb c has the ability to do power delivery that would mean I'm not limited to only 5v, but I could get something like 12v or even higher, but 12v was more than enough for what I wanted to do so I went with that, unfortunately not all power supplies that do power delivery support 12v usb c pd, (pd stands for power delivery) since 12v is an optional voltage in the usb c pd spec, I had to make sure I had a usb c pd brick that could do 12v and half an amp, which any brick could provide half an amp so I wasn't worried about that.
How does 12v help to power a dual rail project (dual rail just means needs positive and negative voltage
), well the 12v directly doesn't help, but what I could do is convert the 12v into + and - 6v with a ground point tied to the center, meaning I could power this board by usb c pd and have the project be powered by it.
I initially was planning on implementing the usb protocol myself and talking to the charger to deliver the required power, but in two weeks it wasn't feasible so I just used a usb c pd trigger board instead.
Before I left I also 3d printed a case for it with some slots for plexy (short for plexiglass) on the top and bottom, because it's cool to be able to see it and so I printed a custom clip together case with plexy to see inside, sadly I don't have a picture on hand so all the pictures here are just what I had on hand whilst I'm still setting up my computer since I moved
What I've ended up landing on was powering it via usb type c, since usb c has the ability to do power delivery that would mean I'm not limited to only 5v, but I could get something like 12v or even higher, but 12v was more than enough for what I wanted to do so I went with that, unfortunately not all power supplies that do power delivery support 12v usb c pd, (pd stands for power delivery) since 12v is an optional voltage in the usb c pd spec, I had to make sure I had a usb c pd brick that could do 12v and half an amp, which any brick could provide half an amp so I wasn't worried about that.
How does 12v help to power a dual rail project (dual rail just means needs positive and negative voltage
), well the 12v directly doesn't help, but what I could do is convert the 12v into + and - 6v with a ground point tied to the center, meaning I could power this board by usb c pd and have the project be powered by it.More detailed explanation
The 12v is still 12v at the output but voltage is relative so it depends from where it's measured, so measuring from both extremities it's always going to be 12v, but since what I'm doing is I'm tying a midpoint from the 12v to the gnd (gnd stands for ground), I get a 6v in the middle (so if you consider the 6v as your ground then the 12v becomes 6v and ground becomes -6v
), it's easy to do with a simple voltage divider, but that wouldn't be stable since any load on one resistor is gonna move the ground point, which isn't good especially for audio (aka +6v and -6v ==> +8.4v and -3.6v) and since we want to keep that point at 6v no matter how unevenly power is being pulled, we can put an opamp (opamp stands for operational amplifier) which will adjust any variation to make it 6v (kinda), since the opamp can only deliver a small output current, it wouldn't be able to give enough power to the circuit, since the power you can deliver is now bottle necked by the opamp, it's better to add (ideally) a complimentary set of transistors, so that the power limit is set by the transistors and not the opamp
), it's easy to do with a simple voltage divider, but that wouldn't be stable since any load on one resistor is gonna move the ground point, which isn't good especially for audio (aka +6v and -6v ==> +8.4v and -3.6v) and since we want to keep that point at 6v no matter how unevenly power is being pulled, we can put an opamp (opamp stands for operational amplifier) which will adjust any variation to make it 6v (kinda), since the opamp can only deliver a small output current, it wouldn't be able to give enough power to the circuit, since the power you can deliver is now bottle necked by the opamp, it's better to add (ideally) a complimentary set of transistors, so that the power limit is set by the transistors and not the opampI initially was planning on implementing the usb protocol myself and talking to the charger to deliver the required power, but in two weeks it wasn't feasible so I just used a usb c pd trigger board instead.
Before I left I also 3d printed a case for it with some slots for plexy (short for plexiglass) on the top and bottom, because it's cool to be able to see it and so I printed a custom clip together case with plexy to see inside, sadly I don't have a picture on hand so all the pictures here are just what I had on hand whilst I'm still setting up my computer since I moved

Boo
If I had to remake the project now, I feel like I could've completed everything I was imagining from the start in the given time frame, but that's also because I already have an idea of how everything works so I don't think it's really fair to look at it like that, since it does shows that the project was useful in teaching me a lot of new things 





























































































































































































































































































































































