Developer kit dead? usb-c [solved]

Hi Arduists!
I exhumed a developer kit from the Kickstarter era, it seem’s dead-ish:

  • The card was working correctly, there was a simple breakout on it.
  • I plug it into my mac (USB-C -> micro-adapter).
  • The game starts, weird: the buzzer emits a fixed tone.
  • I upload the helloworld example. The screen does nothing.

I’ve tried a few examples from arduboy and arduboy2: on upload, the leds blinks, then the IDE shows “done uploading” but there’s nothing on the screen.

Do you have any advice on how to investigate this?
Could I be missing a firmware update?
Could I have burned the screen, the buzzer or the card?

Board Info:

BN: Arduino Leonardo
VID: 2341
PID: 8036
SN: (null)

The IDE config, maybe “Programmer AVRISP mkll” is wrong?

1 Like

Try putting #define AB_DEVKIT at the top of your code, above any includes.

The developer kit had different pin assignments to the production arduboy so the Arduboy2 library needs to know you’re using a devkit.

Also have you tried installing the ‘Arduboy’ and ‘Arduboy DevKit’ board types and using the ‘Arduboy DevKit’ board?
I think using the devkit board as a target might implicitly define AB_DEVKIT so you don’t have to.

3 Likes

Using Arduboy DevKit worked,
thanks for sharing your advice Pharap!

3 Likes

No problem, glad to hear it was an easy fix.

That’s the proper way to do it.

Putting #define AB_DEVKIT at the start of the sketch won’t work. #defines in sketches aren’t passed to any libraries since the libraries are compiled separately from sketch code.

1 Like

Are you sure about that?

Doing #define FIXED_POINTS_USE_NAMESPACE before #include <FixedPoints.h> seems to work as intended for FixedPoints.

I tried it with Arduboy2 as well and it also appears to work, but only if you also #undef ARDUBOY_10 (which makes sense when you consider that the actual source code of the library favours the arduboy):

#define AB_DEVKIT
#undef ARDUBOY_10
#include <Arduboy2.h>

static_assert(PIN_CS == 12, "Device is DevKit");
static_assert(PIN_CS != 12, "Device is Arduboy");
1 Like

Yes.

It works for the FixedPoints library because it consists of templates. A template doesn’t get “compiled” until it’s declared in the sketch because it has to know what data type(s) to create code for. At this point any #defines previously declared are available.

For your Arduboy2 example, when you #include <Arduboy2.h> in the sketch it will pick up any #defines preceding it but only for the sketch itself. You’ll find that the Arduboy2 library has found ARDUBOY_10 to be defined and will have defined the pin numbers in the library code accordingly.

2 Likes

Quality responses from quality developers thanks @Pharap and @MLXXXp!

3 Likes