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.


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


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


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.


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