Good open source C projects?

Talking about SolydXK, another distribution or totally off-topic but within the Rules ? It's the right place!
User avatar
Arjen Balfoort
Site Admin
Posts: 9459
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Good open source C projects?

Postby Arjen Balfoort » 15 Apr 2020 14:34

Now that I have some (forced) time at home I decided to pick up a new skill and started to learn programming in C at EdX (I will list some links below).

Eventually I would like to code for embedded systems but I know I have a long way to go even though I have been developing since 1997 in various programming languages. So, I have ordered my BeagleBone Black Wireless and a book to get experimenting after I finish my EdX courses.

In the mean time I would like to get some experience in an open source project that uses C as a programming language. Ideally related to Debian as that has been my main focus for the past seven years.

Do you know of a project that could use some help?

EdX Courses:
https://www.edx.org/course/c-programmin ... ng-started
https://www.edx.org/course/c-programmin ... oundations
https://www.edx.org/course/c-programmin ... mory-manag
https://www.edx.org/course/c-programmin ... management
https://www.edx.org/course/c-programmin ... data-types
https://www.edx.org/course/c-programmin ... -libraries

BeagleBone Black Wireless and book:
https://beagleboard.org/black-wireless
https://www.amazon.com/Exploring-Beagle ... b_title_bk


SolydXK needs you!
Development | Testing | Translations

hxcdk
Posts: 2
Joined: 16 Apr 2020 14:02
Location: Denmark
Contact:

Re: Good open source C projects?

Postby hxcdk » 16 Apr 2020 17:13

Hi Arjen

That is funny. I also just started on the C-Programming courses on Edx :-), three weeks ago.

I think these courses are of a excellent quality. I hope you will post some of your experience with the BeagleBone Black, once you get to that.

Best Regards
Henrik

User avatar
ilu
Posts: 2677
Joined: 09 Oct 2013 12:45

Re: Good open source C projects?

Postby ilu » 21 Apr 2020 13:50

There are a lot of interesting projects using ESP32 or similar chips to help elderly, handicapped or ill people. Like this one https://forum.iot-usergroup.de/c/slo/projekte (which sadly only communicates in german). The ESP32 is well loved by the community because it has WLAN onboard. It's programmed in C like the Arduino.

These projects usually refrain from developing alarm buttons for fear of being sued but a button to signal your relative that you would like to have another cup of tea seems perfectly ok to me. I really like this idea but I haven't found a good project yet.

In any case I think programming Arduins/ESP or similar devices is a good starting point.

User avatar
Arjen Balfoort
Site Admin
Posts: 9459
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Good open source C projects?

Postby Arjen Balfoort » 22 Apr 2020 10:15

Nice, thank you!
I'll take a look at it.


SolydXK needs you!
Development | Testing | Translations

UncleSam
Posts: 57
Joined: 16 Apr 2016 20:03

Re: Good open source C projects?

Postby UncleSam » 26 Apr 2020 18:10

Hello Arjen,

ARM Cortex-A8 processor using superscalar architecture. Haven't used it. I am educated in pipelining, but not in this particular variant of pipelining. Does this CPU
run linux? Or will you using it as an "embedded system" by uploading programs to it from your linux box through an IDE, as one would do when programming the Arduino?

Data structures and Pointers you will learn in C. They are what made it possible to rewrite Bell Labs UNIX operating system in C. Soon you will know what a thread is. Source code, object code, libraries, and executable files. You will soon be manipulating them.

After you complete the EdX courses, I would recommend Faye William's C course. In it, you will learn make files, and how to manipulate object code and libraries to make the executable files computation runs on. It is a self-paced course. Since writing it, Faye has become a mom. So don't expect help from her. Email me instead. http://www.fayewilliams.com/ No, I don't know Faye. I just took her course.

The first open-source project that I can think of is the two-dimensional graphics program I use as an engineer, KiCAD. It is built on Debian Linux and git. It is specifically made to create artwork for printed circuit boards. Versions are also created for Apple and for MS Windows operating systems. However, there is a great deal of theoretical knowledge to digest in order to move from Faye Williams' course to creating KiCAD. Creating KiCAD from C source files is done with cmake. This is the point at which I find myself. I downloaded the KiCAD source code. However, I have not yet gotten to the point where I can use cmake productively. I tried, and failed. I have not yet decided whether or not I want to continue on this avenue of adventure. This avenue requires a large investment in time.

Or take another avenue -- programming the 8-bit Arduino UNO through the Arduino IDE running on linux. This avenue requires a modest investment in money to buy the CPU and the various hardware I want to hook up to the Arduino UNO and control.

I stand at the fork between these two avenues.

User avatar
ilu
Posts: 2677
Joined: 09 Oct 2013 12:45

Re: Good open source C projects?

Postby ilu » 26 Apr 2020 23:34

I think for starting out it's easier with the Arduino or ESP or similar. There's only a limited amount of memory you have to manage and you can see satisfying results with not a lot of code. No steep learning curve, no big investments needed - neither time nor money (just have a look at aliexpress.com). If you are at all interested in home automation, a tiny robot or some blinking LED stuff you'll enjoy it from the start. Family friendly, because children between 8 and 14 will love it too.

User avatar
Arjen Balfoort
Site Admin
Posts: 9459
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: Good open source C projects?

Postby Arjen Balfoort » 27 Apr 2020 10:39

UncleSam wrote:
26 Apr 2020 18:10
Hello Arjen,

ARM Cortex-A8 processor using superscalar architecture. Haven't used it. I am educated in pipelining, but not in this particular variant of pipelining. Does this CPU
run linux?
It comes with Debian installed on 16GB on-board eMMC. Usually, because of the nature of the Linux kernel it is not suited for real-time or predictable processing. However, the BeagleBone does have an on‐board solution that goes some way toward resolving this problem. Within the BeagleBone’s AM335x, there are two on‐board microcontrollers, called Programmable Real‐time Units (PRUs), which can be programmed for real‐time interfacing applications. The Beaglebone does not do HD graphics. If you need that, the Raspberry Pi is better suited.

UncleSam wrote:
26 Apr 2020 18:10
After you complete the EdX courses, I would recommend Faye William's C course. In it, you will learn make files, and how to manipulate object code and libraries to make the executable files computation runs on. It is a self-paced course. Since writing it, Faye has become a mom. So don't expect help from her. Email me instead. http://www.fayewilliams.com/ No, I don't know Faye. I just took her course.
Thanks. I will take a look at her site.
UncleSam wrote:
26 Apr 2020 18:10
The first open-source project that I can think of is the two-dimensional graphics program I use as an engineer, KiCAD. It is built on Debian Linux and git. It is specifically made to create artwork for printed circuit boards. Versions are also created for Apple and for MS Windows operating systems. However, there is a great deal of theoretical knowledge to digest in order to move from Faye Williams' course to creating KiCAD. Creating KiCAD from C source files is done with cmake. This is the point at which I find myself. I downloaded the KiCAD source code. However, I have not yet gotten to the point where I can use cmake productively. I tried, and failed. I have not yet decided whether or not I want to continue on this avenue of adventure. This avenue requires a large investment in time.
I agree, and there are lots of things I would like to learn as well (see below).
UncleSam wrote:
26 Apr 2020 18:10
Or take another avenue -- programming the 8-bit Arduino UNO through the Arduino IDE running on linux. This avenue requires a modest investment in money to buy the CPU and the various hardware I want to hook up to the Arduino UNO and control.
That is indeed fun. I did that last year with my son (12 years).
Now my focus is devided on these three topics:
  1. C programming: finished Edx and now starting with "Learn C the hard way", which seems to be a recommended book by C programmers.
  2. Learn about embedded Linux. I use the book "Exploring Beaglebone" by Derek Malloy.
  3. Build Linux from scratch at linufromscratch.org
After all that I want to learn about writing drivers for Linux.

It's a lot, but the kids don't need that much time anymore and I prefer to do something useful and fun with the time I have.


SolydXK needs you!
Development | Testing | Translations


Return to “Open Chat / General Discussion”

Who is online

Users browsing this forum: No registered users and 1 guest