speccery Posted May 9 Author Share Posted May 9 Off-topic, but hey it's my thread and I will probably also create a cartridge case for the StrangeCart. Here are a couple 3D printed "base boards" I've been lately working on. The pictures are not great, I didn't care to setup my proper light. As you can see in these examples there are mounting screw posts for the circuit boards, some wiring holes and places for Cherry MX mechanical switches. These designs keep evolving, but at least so far they're in my opinion pretty great for noodling around. This bigger design below has two "base boards" and some supporting rods connecting the two below the display. The display is an Adafruit 3.5" 480x320px display. Then there is the CPU board, MIDI interface board and the audio DAC board. I'm still working on the software, but the display works (actually both of them work simultaneously), and the DAC board outputs a stereo saw wave at 48kHz sample rate. It uses double buffered DMA for audio output and interrupt based audio generation. The buttons don't yet do anything, I am actually just now printing another button mount to support more buttons. I'm going to use this setup to build a software synthesiser, which is something I've thinking about a long time. 2 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted May 9 Share Posted May 9 I been reading thru this thread @speccery and I was wondering if you have any strangecart boards available, and if possible would you be willing to ship one to Canada and for what cost, I love to see how it works in person, and possibly use it for some of my own cartridge software projects I been working on. Thanks. 1 Quote Link to comment Share on other sites More sharing options...
speccery Posted May 10 Author Share Posted May 10 12 hours ago, Gary from OPA said: I been reading thru this thread @speccery and I was wondering if you have any strangecart boards available, and if possible would you be willing to ship one to Canada and for what cost, I love to see how it works in person, and possibly use it for some of my own cartridge software projects I been working on. Thanks. Thanks for the interest - and looking at the thread, it is a very long one by now... I'd be happy to deliver you a board, I should have a few immediately available and if not I can put together a couple over the weekend. The price is 50 EUR + shipping. Please note that all boards are hand assembled by me so should be treated as prototypes. Having said that, I take all boards I've sent through an extensive test list and my understanding is that they all have worked fine. You have probably seen the wiki at GitHub , it should give you a pretty good idea what to expect. Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted May 10 Share Posted May 10 3 minutes ago, speccery said: Thanks for the interest - and looking at the thread, it is a very long one by now... I'd be happy to deliver you a board, I should have a few immediately available and if not I can put together a couple over the weekend. The price is 50 EUR + shipping. Please note that all boards are hand assembled by me so should be treated as prototypes. Having said that, I take all boards I've sent through an extensive test list and my understanding is that they all have worked fine. You have probably seen the wiki at GitHub , it should give you a pretty good idea what to expect. Thanks I will send you a private message with my address and info tomorrow so we can figure out shipping costs and go from there. 1 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted May 10 Share Posted May 10 7 hours ago, speccery said: Thanks for the interest - and looking at the thread, it is a very long one by now... I'd be happy to deliver you a board, I should have a few immediately available and if not I can put together a couple over the weekend. The price is 50 EUR + shipping. Please note that all boards are hand assembled by me so should be treated as prototypes. Having said that, I take all boards I've sent through an extensive test list and my understanding is that they all have worked fine. You have probably seen the wiki at GitHub , it should give you a pretty good idea what to expect. Hi, if you are building additional ones. Would you consider selling me one as well? I’m located in Germany. 1 Quote Link to comment Share on other sites More sharing options...
speccery Posted May 10 Author Share Posted May 10 2 hours ago, retroclouds said: Hi, if you are building additional ones. Would you consider selling me one as well? I’m located in Germany. Yes of course! I'd be happy to. 1 Quote Link to comment Share on other sites More sharing options...
speccery Posted May 19 Author Share Posted May 19 (edited) A quick update. I have been testing the boards for shipment. I still need to do a little more testing - the boards have worked fine but I updated my testing procedure a little and found a couple more boards. While I was at this, I also started to work on the StrangeCart firmware some more. I needed to review how I test the boards, which lead to reading the source code, which lead to working on the software... I have added a couple of features, the more interesting of which I will discuss later when I am a bit further, but I think it is pretty interesting - well for me at least. The smaller and less interesting new feature is a helper: during testing I couldn't immediately locate my serial to USB FTDI dongles. On searching I did find a few (I am sure I have more), but they were all connected to various projects and I didn't want to detach them. I was thinking I should not have this problem, since I literally have dozens of microcontroller boards, many of which I have designed and support both USB and serial interfaces. I got hit by the not invented here syndrome, so I added USB to serial conversion capability into the StrangeCart firmware. For background information, I use the virtual serial port over USB connection to the StrangeCart all the time. For example, when I am testing the boards, I download BASIC programs to the flash memory of the StrangeCart using XMODEM over the USB serial port: dl_fs DIM.BAS xmodem receive to SPIFFS CCCCCCCCC xmodem return code: 128 The dl_fs command expects a filename and then XMODEM transmission, and the StrangeCart writes the received data to the flash chip. That enables me to see that things work properly with the flash chip. [In this case it was a very small BASIC program which can then either be loaded from TI Basic using "OLD SCD1.DIM.BAS" or directly loaded to the StrangeCart's own BASIC interpreter with "old DIM.BAS" on the StrangeCart serial console. Save SCD1.DIM.BAS also works for saving if there is another method of getting the BASIC program into the TI.] I now added a new command usb2serial: usb2serial Entering USB to serial converter mode. Exit pressing S2 or S3. After this, the StrangeCart will pipe data from the virtual USB port to a physical UART (there is a pin header on board, the serial port is a 3.3V port but I think it's 5V tolerant) and vice versa. Currently the settings are fixed to 115200, 8N1. The buttons S2 and S3 are buttons used to change cartridge images normally, but in this case pushing one of them will terminate the USB to serial conversion mode. This is a small feature, but now I only need two StrangeCarts to test the UART pins on the boards Edited May 19 by speccery 7 Quote Link to comment Share on other sites More sharing options...
paulreis Posted June 1 Share Posted June 1 Hi, Can I buy 2 strangeCart from you. Quote Link to comment Share on other sites More sharing options...
speccery Posted June 3 Author Share Posted June 3 On 6/1/2024 at 2:15 PM, paulreis said: Hi, Can I buy 2 strangeCart from you. Hi @paulreis, thanks for asking, sure. I will need to assemble a few more boards, but this should not take long. 2 Quote Link to comment Share on other sites More sharing options...
speccery Posted June 12 Author Share Posted June 12 A short update: I have been glad to see that multiple people have had interest in the StrangeCart project, and I've been on the past several evenings building boards. Also testing a new method for these boards - I bought a bigger hot plate for board assembly. However I couldn't find the stencil for the boards, so I applied solder paste manually, and quite expectedly there was way too much paste and quite a lot cleaning work to be done as a result. I also have been testing a new flux - which works great but is super easy to over apply. I also learned that it was not a good idea to put the USB connectors and 32768Hz clock crystals in at this phase. I had to remove them from all the boards, clean all the flux and reflow them with a hot air. My TI-99/4A has also been a bit temperamental, so I will need to continue testing with that. On the positive side my test and assembly processes have been improved. At some point I will make a revision of the board to make them a little easier to build. For instance right now there are a few components on the underside, mainly bypass capacitors. I want to bring all the components to the top and I will also order a new stencil at that point, that will greatly increase the assembly speed in the future. I was planning to send out boards this week, but that is not going to happen as I have business trip starting on Saturday and not enough time get these tested before that. But hopefully next week I will be able to ship some boards. StrangeCart barbecue on-going. 10 2 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted June 12 Share Posted June 12 1 hour ago, speccery said: StrangeCart barbecue on-going. PCboard BBQ looking good. I am sure you figure out everything. Enjoy your business trip and looking forward to seeing one in person soon once you have ironed out the issues and shipped them out later on this month. 1 Quote Link to comment Share on other sites More sharing options...
speccery Posted June 13 Author Share Posted June 13 Thanks @Gary from OPA. Yes I am not concerned about getting them working; two of the boards I tested already earlier completely and they are were working. My test TI-99/4A is just not a happy camper right now. Even so some of the carts do work on it already. I need to take it apart and clean the connectors. I have done that in the past and I have several other consoles as well. 3 Quote Link to comment Share on other sites More sharing options...
speccery Posted June 19 Author Share Posted June 19 A short update. I’ve been consumed by work, now a stretch of 10 days without pauses, worked through the weekend, and long days. Anyway today after work i took a bit of time to checkout where I was with the strangecarts I was working on before, and I now have 3 which pass all tests. Ready to ship. I think the remaining I built will likely also work after potential minor tweaks. It’s a bit odd what kind of issues I had, my automatic test routines scan for shorts and check each pin - that meant that the dominant problem was lack of connection, on one board address line A5 was not connected even if with good magnification I was sure it was ok. On another board D6 and D7 were “in the air”, a bit of solder fixed those. 6 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted July 17 Share Posted July 17 My strangecart board arrived yesterday, looking forward to putting it to usage later on this week. Very impressive board, great to see it up close finally in my hands. 8 1 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted July 18 Share Posted July 18 (edited) So far I was able to quickly test out the TI99 console GROM override and load in my O.P.A. Micro-Manager originally from my S.O.B. device and since the cartridge can also act as GRAM it will allow me to now improve my upgraded O.S. for new devices like TIPI & SAMS and add in many new cool features as well, since I can use the extra 2k of GROM 2 which I didn't have before with my S.O.B. device, plus of course the next release will work on the grommy2 as well once I figure it out more, need to read that thread tomorrow. Edited July 18 by Gary from OPA as usual after a few days, atariage deleted my video, so added my youtube version instead. 6 Quote Link to comment Share on other sites More sharing options...
speccery Posted July 18 Author Share Posted July 18 On 7/17/2024 at 8:08 AM, Gary from OPA said: My strangecart board arrived yesterday, looking forward to putting it to usage later on this week. Very impressive board, great to see it up close finally in my hands. Great to see @Gary from OPA that the boards arrived safe and sound! Very happy to see that you can use them with your O.P.A. Micro-manager. It sounds you're a GPL wizard as well. There are so many cool TI projects I have never discovered so far, this is definitely one of them. 1 Quote Link to comment Share on other sites More sharing options...
speccery Posted July 18 Author Share Posted July 18 @Gary from OPA asked me a bunch of good questions, I'll share them here with his permission as I think these may be of interest to others here as well. I did edit the discussion a bit in an effort to make the questions and answers easier to read. Q: So far I tested out the call gram(263) and then used my universal memory image loader to load the 3 groms from sob into the gram. The only thing I noticed is if I power off the console it disappears totally, so I guess I have to put the image into the flash using the flash creator program. A: Yes, currently the contents are not saved anywhere. As I recall putting the contents to flash does not change the situation. What would be the behaviour useful for you? I could try to add something like CALL GRAM("DEFAULTG.BIN") to save contents of GRAM to the onboard filesystem and have it look for such file on boot up and automatically enable system GROM override with the contents of that file. Q: What do I need to compile the flash creator program for windows or Linux? A: The flash creator source code is available at github https://github.com/Speccery/StrangeCart-Doc/tree/main/src. The flash creator is a simple command line app, using only standard APIs. I have compiled it both on macOS and Linux. On linux, compiling it should be as simple as: g++ -o flash_creator flash_creator.cpp And that should create the flash_creator binary for you. I haven't compiled it on windows but it should be very similar, I guess using the "cl" command line compiler. Q: Second what is the limit for flash image total size? And each one can have 5 groms and at least 4 ROMs right? Or more? A: The MCU has 192K of RAM. The maximum cartridge size is probably around 150K of ROM+GROM combined. The maximum size of the cartridge image file is 10 megs. Currently the 16 meg flash memory layout is such that cartridges start from address zero, and the file system is at 10 megs (address 0xA00000 to 0xBFFFFF). The top 4 megs are unused for now. In terms of how many images you can include, there should not be a real limit, the limit really comes from the UX how to select a cart image. The current cartridge loading mechanism with CALL CARTS is a bit clumsy with many cartridges. I have already created an alternative but that needs more work. On the default cartridge flash image there are a few large cartridges: Image 11) RXB2020D with 40K of GROM and 8K of ROM. Image 15) force command with 128K of ROM and 8K of GROM. This is the largest cartridge I have tested, i.e. 128K of ROM area. Image 16) Bad Apple demo with 4508K of ROM, i.e. 4.5 megs of ROM. This is a proof of concept and uses what I call "streaming mode". With these huge cartridge images the StrangeCart uses some heuristics to decide that streaming mode is required. It loads the first 128k of cartridge ROM data into RAM, and assumes a linear access pattern when paging in further 8K cartridge ROM pages. Basically it preloads the next 8K ROM page into RAM, and while that is accessed it preloads the next page. The cartridge port has no "wait" signal to stop the CPU while loading a new page in from the external flash chip, so things have to be preloaded (for GROMs there is the GREADY signal but unfortunately not the same signal for regular ROMs). While looking at that piece of code I can confirm to that the max ROM size is currently 128K. Q: If I put the system grom in the flash image, it is always there from power up, no matter what cartridge I select right? A: As I wrote above in point 1, that's not how it works, but I can modify this behaviour. To be honest I don't remember how it works with system GROM files. Let me check that. I think there is a missing piece of functionality here, but not hard to add. I think it would be simpler to have a feature to save and load the system GROM image to the filesystem instead of the cartridge image file. Q: Fourth, then when I use call gram, does it take the flash image and copy it to and make it writable? A: CALL GRAM(x): Call GRAM's parameter x is a bit mask: bit 0: when high GROM area 0000-1FFF is writable bit 1: when high GROM area 2000-3FFF is writable bit 2: when high GROM area 4000-5FFF is writable bit 8: when high the system GROM is copied to GRAM and the system GROM override mode is enabled. When call GRAM is called with a non-zero value, the system GROM mode is enabled. I think it remains on even if you call CALL GRAM(0) to write protect the GRAM. So the pattern is: CALL GRAM(263) - initialise GRAM with system GROM contents and make it writable use your software to write stuff to system GRAM area CALL GRAM(0) - write protect the system GROM area. So it seems once enabled, system GROM mode cannot be disabled (except by resetting the strangecart). I probably need to add a feature to completely turn off the system GROM override as well. Note that if the system GROM override is enabled, 24K of RAM is allocated for the system GROM and thus the max size of cartridge ROM will be reduced. I'm not sure if there is robust error checking for this. Q: Fifth and last question, how do I use the scd1 device, is that a certain size and limited and the files stay after power off right? --- one thing I run into with it the CALL DIR doesn't work as I have myarc disk controllers in both systems so it fails as they use the same name. Could it be changed to call scdir? A: The SCD1 drive uses internally the SPIFFS filesystem with a 2 megabyte storage area. Please find attached a new version of the firmware with this change, i.e. now CALL SCDIR works and DIR is not implemented by the StrangeCart. I recently have noticed that at least with macOS, before copying the new firmware, I have to delete firmware.bin from the mass storage volume which appears when the strangecart is in firmware update mode. So boot strangecart in firmware update mode (USB cable connected), delete firmware.bin, copy new firmware.bin, unmount the strangecart drive and reset the board. I think firmware file must be called firmware.bin when copying it over. Now as I write this, I again remember that I was thinking of a change to the code so that all GROM data, when in read-only state, could originate from the external flash chip. It would still be faster than access to regular GROM chips and RAM could be saved for more important stuff. 4 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted July 18 Share Posted July 18 (edited) sadly, i don't have a 3d printer, and my drill is too big, and my knife is crap, but i hacked together, an old original cartridge, to put the strangecart board in, as pushing on the buttons sometimes would cause lockups from it moving around. i know its not beautiful, but it works, and i not trying to win any custom art awards. Edited July 18 by Gary from OPA 4 1 Quote Link to comment Share on other sites More sharing options...
RickyDean Posted July 19 Share Posted July 19 2 hours ago, Gary from OPA said: sadly, i don't have a 3d printer, and my drill is too big, and my knife is crap, but i hacked together, an old original cartridge, to put the strangecart board in, as pushing on the buttons sometimes would cause lockups from it moving around. i know its not beautiful, but it works, and i not trying to win any custom art awards. A little JB weld goes a long way!! 1 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted July 19 Share Posted July 19 39 minutes ago, RickyDean said: A little JB weld goes a long way!! Nothing broken, so no need for glue. What I need is some fine sandpaper to make the holes all the same size and shape and smooth out the edges and then print a nice label for the front. 2 Quote Link to comment Share on other sites More sharing options...
Archimedes5000 Posted July 24 Share Posted July 24 The cutouts on the front could be adjusted by 0.5mm. That's enough for me. Is anyone interested? Regards Axel 2 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.