Please could someone suggest a library to write for practice?

Hi

I thought that this was the best place to ask this question.

I'd like to write a library for the arduino as a programming project. I've written a few c++ libraries but I'd like to do something with the arduino (which I really enjoy working with).

Please could someone suggest some ideas (doesn't matter whether its been done before). I'm not a beginner but I wouldn't say I'm an intermediate either!

Many thanks

Morse code is always a good one. Write an encoder class library and then work on a decoder class. Lots of good lessons about Arduino along the way. Lots of good (and bad) examples to go look at if you get stuck.

This is a very useful reference for the library folder structure and metadata files:

I would like a library for 4-20 mA sensors.

There are already far far to many libraries for the Ardunio and most of the are really pointless. A lib should make things simpler - so it must be easier to use the lib then writing code your self.

Most user promoted lib's fail this test.

Many (eg = the tokenizer libs) need more code to use then doing your self - well that is if you know how.

For most here (as beginners ) they need to learn the basics and not rely on libs to do it for them.

To many posters stop when they can't find a lib to do somthing for them

Mark

Monolithic code is the way to go. No more reliance on directory structures, linking, and the plethora or poorly written libraries that currently exist. While writing a library may be good practice for the individual, the more abstraction introduced, the further from the learning centre we drift. Arduino is supposed to be a platform aimed to understanding micro-controllers at the hardware/bare metal level, not an opportunity to disguise everything from the developer. Otherwise, get into big data and leave the hardware alone. (Personal opinion).

For practicing, a debounce library based on the debounce example can be something useful and reasonably easy. Modify it to use buttons wired to ground instead of Vcc and extend it to support multiple buttons.