Offline
Paris, France

Hi,
I just assembled my Arduinoboy that I bought from
Catskull electronics. (He states explicitly on his site that he doesn't support this product anymore so therefore I thought I'd ask the community)
Unfortunately after having uploaded/installed the Arduinoboy software to the Arduino Uno (Rev3) I get no signs of life, no blinking LEDs etc.

I tried plugging in my midi keyboard to the midi port of the Arduinoboy but still no flashing status light.

Photo of Arduinoboy PCB front
Photo of Arduinoboy PCB back
I appreciate all help!

Last edited by ScanianWolf (Nov 22, 2020 1:28 am)

Offline
Sea of Souls

How is it receiving power? Your LEDs may actually all be backwards. I think the LED flat-side usually goes to the square via.

Offline
Paris, France
Orgia Mode wrote:

How is it receiving power? Your LEDs may actually all be backwards. I think the LED flat-side usually goes to the square via.

Hi, thank you for your quick reply!
I put the longer leg of the LED through the square hole, which is supposed to be correct right?

Offline
Sea of Souls
ScanianWolf wrote:
Orgia Mode wrote:

How is it receiving power? Your LEDs may actually all be backwards. I think the LED flat-side usually goes to the square via.

Hi, thank you for your quick reply!
I put the longer leg of the LED through the square hole, which is supposed to be correct right?

I'm not so sure. I am almost positive the code calls for common-cathode LEDs. You can see that all of the square vias are connected together. Luckily, through-hole LEDs should be easy to heat up and flip.
Flip one and see if that helps.

Offline
Paris, France

So I used a tiny spare led I had laying around and I removed the status led and put the test led instead with the longer leg in the square marked hole but I got nothing.. I’m gonna try to flip all of them around!

Update:

So I got the LEDs to work now, seems like there's conflicting information online about which lead that goes with the square. I also noticed that one of the red LEDs I started to test with was broken, which made the troubleshooting even more confusing.
Anyhow I flipped the status LED and replaced the red mode-LEDs with smaller more brighter LEDs I had laying around and hurray they work.

Anyhow now I have the led cycling issue that was also discussed in this thread from 2012.

He claims that he didn't use the correct switch and that it could be the source of the problem, but I assume that since I bought this as an entire kit complete with all components that it shouldn't be that..
He also points out in the thread that he had some other problem with a broken optoisolator... But it doesn't seem to be related to the led cycling

When I hold down the mode button the cycling stops, but continues as soon as I let go. I also got the cycling to randomize by holding down the mode button.

Last edited by ScanianWolf (Nov 22, 2020 12:42 pm)

Offline
NUMBSKULL

Sorry, you need to use my fork of the code which changes the button from an input to an input_pullup: https://github.com/catskull/Arduinoboy

That used to be on the product page but got removed at some point. I've added it back now.

Last edited by catskull (Nov 23, 2020 10:49 pm)

Offline
Paris, France
catskull wrote:

Sorry, you need to use my fork of the code which changes the button from an input to an input_pullup: https://github.com/catskull/Arduinoboy

That used to be on the product page but got removed at some point. I've added it back now.

Thank you for clarifying this! I’m gonna try to install your custom fork tomorrow!
I just hope I haven’t fried the pcb or any of the components after all the soldering action I’ve been putting it through to troubleshoot each and every component. It’s not as neat lookin anymore unfortunately..

Well I have another question regarding the LEDs cause all of the red status leds from your kit are broken after a lot of soldering and swapping around..

I don’t know a lot about electronics but I know that some LEDs also doubles as resistors; can I use any standard of-the-shelf LEDs or do they have to be any leds with some specific resistance?
Cause I don’t wanna risk the functionality by not using properly specd LEDs.

Thanks in advance!

___________________

Update

So I get this warning that hinders me from writing your fork to the arduino uno rev3.

C:\Users\User\Documents\Arduino\Arduinoboy\Arduinoboy.ino:250:16: warning: ISO C++11 requires whitespace after the macro name
 #define USE_PS2;
                ^
Arduinoboy:249:1: error: 'PS2Keyboard' does not name a type
 PS2Keyboard keyboard;
 ^~~~~~~~~~~
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_LSDJ_Keyboard.ino: In function 'void modeLSDJKeyboardSetup()':
Mode_LSDJ_Keyboard:23:3: error: 'keyboard' was not declared in this scope
   keyboard.begin(PS2_DATA_PIN, PS2_CLOCK_PIN);
   ^~~~~~~~
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_LSDJ_Keyboard.ino:23:3: note: suggested alternative: 'keyboardDiff'
   keyboard.begin(PS2_DATA_PIN, PS2_CLOCK_PIN);
   ^~~~~~~~
   keyboardDiff
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_LSDJ_Keyboard.ino: In function 'void modeLSDJKeyboard()':
Mode_LSDJ_Keyboard:46:7: error: 'keyboard' was not declared in this scope
   if (keyboard.available()) {
       ^~~~~~~~
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_LSDJ_Keyboard.ino:46:7: note: suggested alternative: 'keyboardDiff'
   if (keyboard.available()) {
       ^~~~~~~~
       keyboardDiff
exit status 1
'PS2Keyboard' does not name a type

Last edited by ScanianWolf (Nov 24, 2020 9:02 am)

Offline

Did you install the PS2 library to arduino libs folder mentioned in github?

"Added dependency on this library to handle PS/2 communication. To install, download the library, and extract it into your Arduino Libraries folder (typically Documents/Arduino/libraries). Do not attempt to install a PS/2 library from the Arduino library manager as that version will not work with this code."

Installed that and could flash it on my arduino r3 board.

Offline
Paris, France
rebb wrote:

Did you install the PS2 library to arduino libs folder mentioned in github?

"Added dependency on this library to handle PS/2 communication. To install, download the library, and extract it into your Arduino Libraries folder (typically Documents/Arduino/libraries). Do not attempt to install a PS/2 library from the Arduino library manager as that version will not work with this code."

Installed that and could flash it on my arduino r3 board.

Hi and thanks for your reply,

Yes I did the following just to be on the safe side.

C:\Users\User\Documents\Arduino\libraries\PS2Keyboard.h
C:\Users\User\Documents\Arduino\libraries\PS2Keyboard\PS2Keyboard.h (with all the other files from the archive also inside)

Last edited by ScanianWolf (Nov 24, 2020 5:40 pm)

Offline

Can you verify that your board selected is UNO and you have #include <PS2Keyboard.h>
in UNO part of the code (Marked with * Arduino UNO/Ethernet/Nano (ATmega328)) followed with #else

Arduinoboy:249:1: error: 'PS2Keyboard' does not name a type
Error means that compiler does not see PS2Keyboard defined anywhere, so something is wrong with PS2Keyboard include.

Offline

Ah, just checked your screenshot. You are missing
#include <PS2Keyboard.h>
line after #else and before // values for the PS/2 Keyboard input
line.

Did you change the code or did you pull this recently? As last change is almost month old to repo.

Offline
Paris, France
rebb wrote:

Ah, just checked your screenshot. You are missing
#include <PS2Keyboard.h>
line after #else and before // values for the PS/2 Keyboard input
line.

Did you change the code or did you pull this recently? As last change is almost month old to repo.

I managed to install it to the arduino uno now and it reacts to button presses! Hurray!
I did not change the code, this time around I started out fresh with all the files and it seem to have worked.
Now I just need to test it out. I already noticed that the gameboy wouldn't turn on when connected to the arduinoboy.

Got these messages after the flashing:

C:\Users\User\Documents\Arduino\Arduinoboy\Arduinoboy.ino:250:16: warning: ISO C++11 requires whitespace after the macro name
 #define USE_PS2;
                ^
C:\Users\User\Documents\Arduino\Arduinoboy\UsbMidi.ino: In function 'printMemory()':
C:\Users\User\Documents\Arduino\Arduinoboy\Memory_Functions.ino:49:20: warning: iteration 75 invokes undefined behavior [-Waggressive-loop-optimizations]
     serial->println(memory[m],HEX);
     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
C:\Users\User\Documents\Arduino\Arduinoboy\Memory_Functions.ino:48:16: note: within this loop
   for(int m=0;m<=MEM_MAX;m++){
C:\Users\User\Documents\Arduino\Arduinoboy\UsbMidi.ino: In function 'initMemory(bool)':
C:\Users\User\Documents\Arduino\Arduinoboy\Memory_Functions.ino:29:37: warning: iteration 75 invokes undefined behavior [-Waggressive-loop-optimizations]
       memory[m] = defaultMemoryMap[m];
                   ~~~~~~~~~~~~~~~~~~^
C:\Users\User\Documents\Arduino\Arduinoboy\Memory_Functions.ino:28:18: note: within this loop
     for(int m=0;m<=MEM_MAX;m++){
C:\Users\User\Documents\Arduino\Arduinoboy\UsbMidi.ino: In function 'setProgrammerMemorySave()':
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_Programmer.ino:55:15: warning: iteration 71 invokes undefined behavior [-Waggressive-loop-optimizations]
     memory[m] = sysexData[offset];
     ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_Programmer.ino:54:17: note: within this loop
   for(byte m=4;m<=MEM_MAX;m++) {
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_Programmer.ino: In function 'checkForProgrammerSysex':
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_Programmer.ino:55:15: warning: iteration 71 invokes undefined behavior [-Waggressive-loop-optimizations]
     memory[m] = sysexData[offset];
               ^
C:\Users\User\Documents\Arduino\Arduinoboy\Mode_Programmer.ino:54:17: note: within this loop
   for(byte m=4;m<=MEM_MAX;m++) {
                 ^
Sketch uses 11808 bytes (36%) of program storage space. Maximum is 32256 bytes.
Global variables use 778 bytes (37%) of dynamic memory, leaving 1270 bytes for local variables. Maximum is 2048 bytes.

Can I ignore those messages?

Last edited by ScanianWolf (Nov 24, 2020 8:29 pm)

Offline

This problem seems to go down to this commit:
https://github.com/catskull/Arduinoboy/ … d560e23821
I cannot see this commit in official Arduinoboy repo.
Maybe catskull could shed some light in here, is this cherry picked from somewhere else or was it just removed from master?

Last edited by rebb (Nov 24, 2020 8:22 pm)

Offline
Paris, France

Thank you for helping out,
I must admit that I'm quite overwhelmed by it all, especially after my extensive troubleshooting.

Unfortunately it doesn't seem to receive midi notes via the midi in port cause the status led doesn't blink when in mGB mode. Tried sending notes to it with both my Arturia Keystep and my soundcard but I get complete silence from mGB hmm

Offline
Sea of Souls

Is your optocoupler IC in backwards?

EDIT: Yeah, it looks like it is. The stripe on the IC indicates the side with pin 1. Pull the IC out and rotate it 180 degrees.

Last edited by Orgia Mode (Nov 24, 2020 8:32 pm)

Offline

You can also test midi input with keyboard mode in LSDj (Using channel 16 and keyboard mode from arduinoboy) check the note values from arduinoboy repo.
If that fails I can upload you serial print gb rom that can print what gameboy receives (Unless you have GBDK installed and can build the rom yourself)

Last edited by rebb (Nov 24, 2020 8:38 pm)