Worklog Super NOTendo

Joined
Jun 2, 2020
Messages
30
Likes
23
This is such a cool project! I know that the SNES board is fried and that there isn't much use for it otherwise, but wouldn't it be possible to just use a cartridge connecter with a mounting bracket? Or does keeping the SNES motherboard make mounting exterior ports easier?
 

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
Gonna hit you with a big shrug there, mate. Mounting a cart slot while yeeting the mobo would certainly provide a lot more internal space, but really all I need is room for the arduino (which there is plenty of space) plus routing wires (again, no challenge). The way I look at it, this way everything is already nicely lined up and I can just use all the original parts; power switch, eject lever, etc.
 

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
For a hardware project, I ended up doing way more software troubleshooting than I expected. But I'm not a programmer, so I should have expected more. For a rundown of my foibles, read on. If that kind of stuff doesn't interest you, skip down to the pictures.

I had to rework cheese's code because he had written it to light up an LED when a button is pressed, as opposed to trigger a button press. Buttons, as I'm sure most of you are aware, work by bridging two points, typically a high point to ground. This meant that instead of taking a pin that defaults to LOW and temporarily writing HIGH, I had to do the reverse. Even after flipping the logic, the pins seemed to be writing low pretty much constantly (which I figured by testing continuity to ground with my meter). I may have fixed this by switching every pin's mode to input when not writing low, then switching back to output if that button is being pressed on the controller. I also found out after way too much testing that the data line on my controller 1 port was loose, so the whole input/output switching might not be necessary.


This cartridge is complete! The board in question is the blue Intellivision PNP that is shown briefly in the gif in my first post. I never realized before that the Intellivision has some real bangers. After getting the code fixed, I sat down and played a little bit of Astrosmash and Night Stalker.


When I was working out the kinks with the arduino code, I had Astrosmash running for a few minutes and over time, the screen started flickering then grew glitchy to the point where there was nothing but fuzz on the screen. I was worried that something like this might happen when playing a game off of 5v when the hardware takes 6v from AA batteries. Then again, it may have been a side effect of unworking code. I'll have to plug it back in and play for even longer.

To do:
  • Wire up the power switch to the console. Right now it powers on when I plug in the AC adapter.
  • Finish the arduino code to account for a second controller. I had commented out all of my P2 code while I focused on narrowing down the issues I had with one controller.
  • Reinsert the eject lever into the console and close it up.
  • Build more game cartridges!
Edit: I'm still working out a few kinks with the controls. While Astrosmash and Night Stalker work fine, there are some games that I can't get past the title screen and the game Shark Shark (for real, that's what it's called) keeps pausing/unpausing on its own. It's kind of a nice slo-mo effect, but not desirable. I'm hoping the problem is on the PNP's board because if it's an issue with the controller code, I'm about at my wit's end.
 
Last edited:

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
Great news! I figured out the control issues mentioned in the edit of my previous post. Turns out I wired Start and Select to pins 24 and 25 of the cartridge, when my notes say to connect them to 11 and 12. :facepalm: I have no idea how I made this mistake because 24 and 25 are reserved for controller 2 inputs. And not even the same buttons! After correcting this mistake I played a bit more Intellivision and ALL games are now working correctly.


With that, I thought it time to start rebuilding the console. I found the eject lever and the metal arm that gives it rigidity, but the tension spring was nowhere to be found. My guess is some idiot (now who could that be?) probably threw it away. So rather than digging through all of my parts bins for a small spring that may at this point be in a landfill, I opted to make one out of a clothespin spring. FYI, those springs are not easy to bend. I got the shape "good enough" and put everything in place. The action on the eject lever feels pretty good.


The eject lever is in place, the power switch is wired up, and the Intellivision cartridge is DONE (pending a new pretty label). I still need to complete the arduino code, but this is probably the last picture inside the console before I close it up. Then it's on to making more cartridges.

Edit: I updated the code to account for player 2 and tested. Intellivision still works perfectly, so I need to build a cartridge out of a 2-player PNP to fully test. For now, I'm closing up the console.
 
Last edited:

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
Man, I hate being dumb. I spent days trying to figure out what I was pretty sure was a programming error. Then it turned out that the clock pin on the second controller port had a loose connection, causing all buttons to be pressed at once. On the plus side, the arduino code is just a little bit cleaner. I'm glad I powered through before asking for help. "PLEASE LOOK AT MY CODE!!! Durr, loose wire, my bad."



Feeling pretty good about this project now. Console is 100% done (barring any unforeseen issues) and 3 cartridges are complete, sans bright shiny new labels. Once I have completed an arbitrary number of cartridges to really show off this project, I'll post in the completed projects section. Also, that sheet of paper keeps showing up in my pictures because without it I'd be screwed. It maps out all of my arduino pins being used as well as the cartridge pinout for A/V and controller buttons. Without it, I'd have to crack open one of the finished cartridges and back trace my work.

I also changed the name of this project, seeing as how this looks and (kind of) acts like a SNES. I'm still reserving the name Toggle for a future project which will be slightly more Switch-related.
 

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625


Hello everyone! I'm reaching out asking for help on this project. The solution may be simple, but so far it eludes me.

So far in order to trigger a button press, the arduino outputs "low" on a pin, effectively bringing it to ground. It works great for most games. The problem I have is that I've encountered some PNPs where button presses are triggered by connecting the button to VCC. So if I'm getting this right, I would have to do the exact opposite of what I'm doing now (which would be to default to low and output "high" when the button is pressed). Does anyone know how I can accomplish this, either through software or a hardware solution?
 
Joined
Jun 2, 2020
Messages
30
Likes
23
Do these PNPs have any extra space in the cartridge shell? If there's enough room, passing all the controller inputs through NOT gates (or some other cart-side circuitry) might work
 

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
Thanks for the response, CorruptedBit. Yes, most of the cartridges have a bit of wiggle room inside the shell, so after reading your advice, I gave a real half-assed (I mean, let's not mince words here) attempt at making a NOT gate out of a transistor and a couple of resistors. Unfortunately, I don't know if my components were any good as 99% of my parts are salvaged from dead electronics and I doubt I was even making the gate correctly. So rather than continue stumbling around in the dark, I attempted a software solution.

As previously stated, these select few PNPs needed a HIGH signal to trigger a button press. Therefore, I made a quick revision of the arduino code to write high instead of low. Lo and behold, it worked! At least for the one button I had wired up at the time. I wired up the cardinal directions and... it still worked!

My final solution was to have a way to switch back and forth between button modes (mode 0 being writing low for button presses and mode 1 writing high). I figured the easiest way to do this was to use a variable to store the current mode (default to 0) and switch modes if it at any time detects a specific button combination. In order for the combo to not be pressed accidentally during gameplay, I chose the combination L+Select+Down for mode 1. I figured some 3DS softmodders might appreciate that. L+Sel+Up goes back to mode 0.

With that, the console is closed back up (I've considered installing a mini or micro USB port in the back for easy code updates) and for those curious, I have 12 cartridges fully completed.
 

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
Small update on the state of this project:
As of my previous update, the console was 100% built and I was working on building additional cartridges. I had 18 carts built and have been working on one final (at least for now) cartridge that comes with a few additional features. I'm excited to show this one off, but that will come soon enough.

Suffice it to say, while working on this final cart, I thought it was done, but I had a stray ground that shorted and caused the arduino board to wig out a bit. I'm almost absolutely certain I've fixed the problem in the cartridge, but the damage is done and the arduino is mildly jacked up; it's sending some unwanted button presses through the carts, which makes some games unplayable and keep others from booting at all.

The fix should be easy enough; I've ordered a new arduino clone and it should just be a matter of uploading the finished controller code and rewiring the connections. Once that's finished, I'll start work on a completion vid.

Edit: New arduino clone came in and I wired it up and programmed it... same issue. I pulled all the wires off of the board and the console and figured I'd start from square one, in terms of wiring. Started by connecting the controller port and confirming that the serial console was reporting the correct buttons were being pressed. That worked, so I moved on to wiring a few buttons to the cart slot, testing, adding a few more, etc.

Finally, everything is wired up correctly again, but something strange has happened: a few of the plug-n-plays relied on 6V (4x AA batteries), but they ran just fine on the 5V being supplied by the arduino before I screwed the pooch a few days ago. Now that doesn't seem to be the case. Some power on but video quickly shuts off, some have graphical glitches. I'm not sure why they're behaving any differently. It's as if the arduino previously fed out 5.5V and now it's a hardline 5. If I never figure this out, I guess I'll just have a few unplayable cartridges.
 
Last edited:

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
Reviving a pretty stagnant topic here, but I do actually have a couple of updates.

At this point in the game, I'm done making cartridges for the system. I started filming shots to edit into a cohesive video, which I hope to have complete in a couple of weeks. If you're interested in this project, keep an eye out for that.

Secondly, what I mentioned in the final paragraph of my prior post about some cartridges not working really bugged me. I started filming my completion video and just filmed some of the cartridges that worked and left the rest in the background or off-screen. Today I spent my lunch hour trying to figure out the problem. As it turns out, the Arduino only provides 40mA of current on the 5V out line. I wired up a USB power source for testing and the carts that were giving me issues all of a sudden worked perfectly. Since I didn't want to wire up a USB port inside the system (and ruin the original aesthetics), I instead rigged up a 7805 linear regulator. I figured this wasn't such a crazy idea since a lot of retro consoles used these anyway.

tl;dr - All carts working. System is DONE DONE. Completion video is on its way.
 

fibbef

Wizardry V Completer
.
Joined
Nov 10, 2016
Messages
606
Likes
1,625
This project is complete. Finished product can be seen here.
 
Top