First post, by jansakos
After a motivating reply to my idea from @digger I have decided to create a new topic for my little project.
What is it?
As the catchy name (thanks again @digger) suggests, it is a device built on top of Raspberry Pi Pico 2 capable of emulating not only Covox, but many more sound devices intended for the LPT port. As of now there is at least partial support for Covox, FTL sound adapter, Stereo-on-1, Disney Sound Source, OPL2LPT, CMSLPT and TNDLPT.
Why?
I know there are already many projects similar to this one, namely Covox and DSS for ESP32 by @mcgurk with mostly the same goals (but with a bit more limited ESP32 as compared to Pico), PicoGUS (designed for ISA slots) and many projects sold on Serdashop (OPL2LPT, CMSLPT, TNDLPT, CVX4 etc.). And I have great respect for all these projects and they were all great inspiration to me. Still I felt like I needed something a bit different, capable of running at least an AdLib simulation, for the LPT port (laptop without an ISA slot) and as cheap as possible (so preferably software-emulated, since original hardware tends to cost a bit more). You might be wondering why I need such a device. The answer is simple: I would prefer my Toshiba T1910 to have some sort of sound. And since I believe I may not be the only one in need of such a project, I have decided to help develop such a device as my Bachelor's thesis and share my project with the world.
How can I get one?
As of now, there are not any official stores where you can buy the Picovox, since the design is not finalized yet. Everything, including the source codes, DOS switching program, PCB design, schematics and maybe even a 3D printable enclosure will be available here:
https://github.com/picovox
How can I help?
As of now, the project is still in its early stages. I would really appreciate some tips and tricks for hardware design and further improvements to the software.
Why does the code look the way it does?
As this is my first bigger project managed solely by myself, I know that many parts of the code could have been written better. At the same time, I believe that the codebase is not really that incomprehensible and you can understand it with some basic knowledge of C and Pico C SDK commands. You might also ask why I did not use C++/MicroPython/InsertYourLanguageHere and why I have used pure C. Simple answer is that I love this language since it is relatively easy to learn. Nothing more, just my personal taste. Please, if you want to contribute to the source code, try to keep the codebase as C as possible (yes, I know that C++ offers many benefits, but I will not feel like it's a project suitable for my thesis since my relationship with C++ is, to put it simply, complicated). The code may not be as readable as possible and may contain several wrongdoings, but as long as it's not a huge issue, I would like to expand on top of it.
Are there any further improvements?
Since this device is basically Pico 2 connected to the LPT port, we may add support for more features. Support for DS311 and DS301, MP3 playback by sending raw data over the LPT port, and even some non-audio features such as printer emulation with saving PDFs or some WiFi card. I believe that the possibilities are endless and as long as the device remains enjoyable to use and it does not become significantly more complicated (and therefore more expensive) I am all for it. Also, it might be possible to create different versions (the cheap one with only the sound capabilities, and the advanced one with an SD card reader etc.). But the main goal is still to support the sound devices listed above.
Thank you all for reading. I hope that my thesis will help more enthusiasts than just myself and that it won't just end up collecting dust. Also, I would like to apologize for my awful English skills, as you might have guessed, it is not my primary language.