Arduboy library documentation

Hello,
I just started out with my lovely new Arduboy but I think I’m doing alright.
However, I’d find it a lot easier if someone could point me in the direction of the documentation for the Arduboy library?
Please excuse me if it’s viewable from Git, I just couldn’t see it anywhere.
Thanks in advance.

Hey @radsutton all of the source code has been marked to work with doxygen. We used to have a doxyfile in the repo actually. I can build the doxy file and export it to a PDF if you aren’t sure how this works.

That will be a full API reference for you. After friday I may also use github to host the docs while we get the main domain using it.

All you have to do is install doxygen (easy for linux) then type doxygen at the command-line while your working directory is the Arduboy project dir.

http://www.stack.nl/~dimitri/doxygen/

Thanks for the advice. Unfortunately, I’ve actually never heard of doxygen and I’ve only got linux on a virtual computer to hand (which is running in a less than optimal state on my laptop :P).

I’d really appreciate it if you could find the time to publish to a PDF so I can get cracking at programming again. But I understand if that’s too much effort. I’m very thankful for the fast reply and help and I’ll have a look at doxygen when it’s not the middle of the night. :smiley:

2 Likes

Doxygen creates it’s documentation from functions and comments in the source files. Looking at files Arduboy.h, core/core.h and audio/audio.h can provide some information, especially comments starting with ///

2 Likes

Ok thanks for the info. Will do.

Hey, I just wanted to get back to you with a pretty quick draft of the API reference in pdf form.

Arduboy_API_Reference-v1.1-draft.pdf (240.9 KB)

4 Likes

Thanks a lot. That’s just what I needed.
I’ve downloaded doxygen but, unfortunately, I have to work on other things at the moment and haven’t had a chance to continue playing with my Arduboy. :frowning:
Look forward to actually developing something decent in a couple of weeks. :wink:

Great : )

I’m in the middle of working on the Puppet provisions for the document servers. Soon they should be online, but the PDF format is not bad at all! Let me know if they help in the end, the data structure definitions will be extremely helpful.

I’d like to throw my hat in the ring.

I know there’s attempts underway to try to get automated generation of the core docs through Doxygen, but after a friend reminded me that he had to hunt around to find how the native image format worked I figured it’d be nice to have something a bit more, like a getting started, tutorial, reference, and class docs all rolled into one.

The first thing that came into mind for this was the documentation for the Play framework, which I’ve used quite a bit for personal projects. To that end, I’ve copied the idea and filled out a very modest amount in a similar Arduboy-focused one:

https://asmcbain.net/projects/arduboy/docs/1.1/home
(I wrote the docs for 1.2 first and changed stuff to make 1.1’s. I think I got this all right, let me know if I goofed!)

Now I know 1.2 isn’t officially out or done yet, but I’ve documented it nonetheless. Feedback, criticism, and snarky remarks are welcome.

1 Like

The API is linked from the above docs, but I’ve put it below for convenience:
https://asmcbain.net/projects/arduboy/docs/1.1/api/index.html

(The class API section is not generated, but I also ended up adding things that didn’t exist in the code comments and removed functions I wanted to “hide” as I will be teaching an intro course and there’s a few functions I didn’t think they needed to bother with. :slight_smile: Basically bootLogo(), rawADC, anything protected/private, and deprecated functions. However I’m not opposed to putting back in the removed functions or switching to link to the official generated docs.)

If you want to get to any of the 1.2 documentation, just change it in the sidebar or edit the link in your browser’s URL bar.

Also, the repository for all this is at https://bitbucket.org/AMcBain/arduboy-comprehensive-documentation

2 Likes

I’ve placed a link to the live version in the README of the repository in case anyone links their instead of the live version. (There’s not currently a link in the live version back to the repo.)

I’ve also updated the API docs to flesh out print and println, as the Arduino docs don’t seem to document the Print class and so without looking for (or even knowing about) Print.h in the Arduino GitHub repo, many might only figure out those functions exist by chance. Generated documentation based on Arduboy.h (1.1) and AbPrinter (1.2) would only result in documenting write(uint8_t), giving the impression there’s no higher-level printing functions. So to that end I’ve “faked” a few things by pretending the relevant functions and #defines exist inside of the Arduboy and AbPrinter classes in my docs. (It might be better to document Print and list them as subclasses, but I’m not going to split that out just yet.)

I also updated the reference section to include more about println and printing numbers (with a format).


I’ve also noticed a bug in Chrome, so the function descriptions in tables will appear larger than they should be for the time being. Oh well. :unamused: