Problem compiling mod-chip-arduboy

I’m trying to verify that the flash chip is connected to the arduboy.

The mod-chip-arduboy program by @mr.blinky does this just fine, but I cannot get it to compile

I get an error:

sketch\ArduboyFX.cpp: In static member function 'static uint8_t FX::writeByte(uint8_t)':
ArduboyFX.cpp:12:40: error: void value not ignored as it ought to be
   return Arduboy2Base::SPItransfer(data);

And I’ve never seen this error before and I tried changing the code to:

uint8_t FX::writeByte(uint8_t data)
{
 #ifdef USE_ARDUBOY2_SPITRANSFER
 Arduboy2Base::SPItransfer(data);
  return 1; 
 #else
  writeByteBeforeWait(data);
  return SPDR;
 #endif
}

This compiles, but it doesn’t work. I already asked the man himself, but I think he is sleeping and I’m trying to get this done so I can submit it for production.

Any ideas?

Change:
return Arduboy2Base::SPItransfer(data);
to:
return Arduboy2Base::SPItransferAndRead(data);

It will then compile. I can’t test if it will work.

(You’ll need to use the latest Arduboy2 library V5.3.0)

2 Likes

I’m guessing something changed? When?

@Mr.Blinky wanted me to modify function SPItransfer() to return the SPI byte that is clocked in. I didn’t want to change the existing function because it would change the API and also increase the program size of the function.

Instead, I added new function SPItransferAndRead() to serve the purpose. @Mr.Blinky had submitted a pull request with the changes to the old function and had modified his fork of the library to match. I assume he just hasn’t gotten around to modifying mod-chip-arduboy to use the new function, and matching his fork of the Arduboy2 library to the official release.

2 Likes

Ah ok, so he made his own mod to the library that was causing the hiccup. He went to bed right after I started digging into it, or else he probably would have mentioned it.

Thanks!

2 Likes

Sorry about that, fixed the issue now.

I did, had to :sleeping:

1 Like

No worries thank you!

1 Like