Home Forums Game Frame General Discussion Arduino code and pinout

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #4697
    Jacek
    Participant

    Hello!

    First of all, greetings from Poland and many thanks to Jeremy for this project. I watched almost all YouTube videos and read a lot of forum posts here. But I’m still lost, so please be patient and help me pass 🙂

    Like many readers, I built my own matrox 16×16 LED based on WS2812B. I never thought that Game Frame is available as a product and can have so many functions! I’m really jealous 😉 but I’d like to finish my job and make it on Arduino (Nano would be the best).

    I’ve found the GFv1 arduino code on Github which I’d like to work on but:

    – does it have to be compiled on 1.0.1 Arduino software version? (current version is 1.8.13)
    – what is the pinout for the hardware useed for the GFv1 code?
    – can I use with this code files from “Game Frame SD files” pack (I’d like to buy it)?
    – what is the structure of 00system file? – I cannot found
    – does GFv1 works with ini files and play with subfolders 0-1-…-n as descibed on website?

    Does anyone here have working DIY game frame with Jeremy software made on Arduino board? Let me know please!

    Regards, Jacek

    #4698
    Jeremy Williams
    Keymaster

    I would encourage you to use the V2 code paired with a Teensy 3.2. That way you can use up to date versions of the IDE and libraries without compile or Flash storage issues. The Arduino code barely fit into the ATMEGA chip at the time.

    Google “ATMEGA328p pinout” for the pinout.

    The SD files are configured for the V2 version. /00system has a bunch of system files and a couple subfolders with additional files.

    V1 does work with INI files, as I recall.

    #4699
    Jacek
    Participant

    Thank you Jeremy for fast reply. Using Teensy would be a easiest way but at the moment I’d like to play with the Arduino. I hope I can do sth creative based on yours and other people projects.

    To analyze FGv1 code I’m looking for the hardware specifications. I found topic from 2014 in Firmware modding section you wrote:

    I have no plans to release the whole board spec, but maybe in the future.

    but if the project is closed maybe you can share now more details about connections, modules and other hardware stuff you used. It would be useful.

    Regards, Jacek

    #4700
    Jacek
    Participant

    Jeremy, is it possible you could share initial files for GFv1 project (00system and bitmaps – eg. game.bmp; firework, logo) ?

    #4701
    Jeremy Williams
    Keymaster
    #4702
    Jacek
    Participant

    I was not sure if these files works with GFv1 – that was one of my questions I asked 😉 You wrote:

    The SD files are configured for the V2 version.

    Please clarify – does they suits to GFv1, too?

    BR, Jacek

    #4703
    Jeremy Williams
    Keymaster

    Well, yes. I only changed one or two filenames though, as I recall. Nothing you won’t be able to figure out.

    Out of curiosity, why do you want to go Arduino so badly?

    #4704
    Jacek
    Participant

    First of all I have few Arduino boards at home (Nano, Uno, Leonardo) and I feel more comfortable with it 🙂 I’ve found in the internet several projects with 16×16 led matrix and I’d like to try make my own. So it’s not just “to have” one but “to make” one 😉 Regadrs, Jacek

    #4705
    Jeremy Williams
    Keymaster

    You should absolutely make your own! I’m just suggesting Teensy 3.2 if you want to base your build on Game Frame code. Teensy is Arduino-compatible and uses the Arduino IDE, but is much faster and has lots more RAM/Flash.

    That said, I understand if you want to use the microcontrollers you have on hand. Just please understand you’re on your own as far as making the code work. I haven’t compiled the V1 branch in over 5 years.

    #4708
    Jacek
    Participant

    Hello there!

    I just want to share I have compiled GFv1 with the latest Arduino IDE (1.8.13) using Leonardo board (clone). For now only “game” version is working. “Clock” firmware is to large for now (104% of memory) and has a RTC module issue to solve (I don’t have 1307 but 3231 only).

    I’m sure I’ll write more details about my project (as you see on picture is still on breadboard) so now just for the record:

    #1: I made my LED matrix based to Brainy Bits project (https://www.brainy-bits.com/) but leds strips are soldered from left to right (each row)

    #2: GFv1 code pinouts are: 3 – status led; 4 – next button; 5 – setup button; 6 – LED strip; 9 – SD-CS. I’ve also use DS3231 RTC module (SCL, SDA pins)

    #3: to make the code running with the latest SDFat Library you’ll need fix two lines:

    from

    myFile.getFilename(folder);

    to

    myFile.getName(folder, 13);

    I’ve also changed buttons definition for programable pull-up:

      pinMode(buttonNextPin, INPUT_PULLUP); 
      pinMode(buttonSetupPin, INPUT_PULLUP); 

    instead of using external 10K rezistors for it.

    #4: <<Game Frame SD FIles>> pack is neccesary to setup; you can guess what file names should it be and re-create most of it but don’t waste your time – just buy it from Jeremy store (BTW: it’s great set for the beginning)

    #5: I have had to compile the code several times due the memory limit error. Just don’t ask why – I don’t know 🙂

    #6: There are some issues to solve (eg. with setup mode) – be sure I’ll write another post here 😉

    Best regards!
    Jacek

    Attachments:
    You must be logged in to view attached files.
    #4710
    Jeremy Williams
    Keymaster

    Awesome! Congrats!

    #4711
    Jacek
    Participant

    Hi,

    There are two more comments:

    #5 (update): to get the GFv1 code working debug mode has to be set as true:

    const boolean debugMode = true;

    – then the code fit to 94% of memory of Arduino

    #7 if you use ledstrip soldered as a rows (end of the row is soldered with the begining of the next row) you’ll need to change getIndex functions as follows:

    byte getIndex(byte x, byte y)
    {
      byte index;
      if (y == 0)
      {
        index = x;
      }
      else if (y % 2 != 0)
      {
        index = y * 16 + x;
      }
      else
      {
        index = (y * 16 ) + x;
      }
      return index;
    }

    Regards!
    Jacek

Viewing 12 posts - 1 through 12 (of 12 total)
  • You must be logged in to reply to this topic.