Skip to main content

Updates and Newsletters

The book: Wait is over! 🎁

A public draft copy of the "C-Ninja, in Pyajama!" book for Embedded Systems. The Book aims to lower the entry barrier to learning Embedded systems Software development.

Hello there,

First off, wish you a very happy new year. And here is your gift 💝. We decided to release the Public draft of "C-Ninja, in Pyjama!", and it is available here -

View the copy at- inpyjama.com/c-ninja

The book has been long in making and I’ve gotten tons of messages/emails asking when it will be available for purchase. Well, we are not there yet, but the public draft is available for everyone to look at and start learning from. It covers the following topics:

1. Mental models: 𝗦𝘆𝘀𝘁𝗲𝗺𝘀, 𝗖𝗣𝗨, 𝗠𝗲𝗺𝗼𝗿𝘆, 𝗮𝗻𝗱 𝗥𝗜𝗦𝗖-𝗩 𝗜𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗶𝗼𝗻 𝘀𝗲𝘁.

2. RISC-V Assembly: 𝗠𝗮𝗰𝗵𝗶𝗻𝗲 𝗰𝗼𝗱𝗲, 𝗮𝘀𝘀𝗲𝗺𝗯𝗹𝘆 𝗹𝗮𝗻𝗴𝘂𝗮𝗴𝗲, 𝗱𝗶𝗿𝗲𝗰𝘁𝗶𝘃𝗲𝘀 𝗮𝗻𝗱 𝗯𝘂𝗶𝗹𝗱 𝗽𝗿𝗼𝗰𝗲𝘀𝘀.

3. C Language: 𝗞𝗲𝘆𝘄𝗼𝗿𝗱𝘀, 𝗪𝗵𝗮𝘁 𝘁𝗵𝗲𝘆 𝗺𝗲𝗮𝗻, 𝗔𝗻𝗮𝘁𝗼𝗺𝘆 𝗼𝗳 𝗰𝗼𝗱𝗲, 𝗡𝗼𝘁 𝗸𝗲𝘆𝘄𝗼𝗿𝗱𝘀, 𝗣𝗼𝗶𝗻𝘁𝗲𝗿𝘀.

4. Programming Embedded Systems: 𝗠𝗶𝘅𝗶𝗻𝗴 𝗔𝘀𝘀𝗲𝗺𝗯𝗹𝘆 𝗮𝗻𝗱 𝗖, 𝗖𝗣𝗨 𝗯𝗼𝗼𝘁 𝗽𝗿𝗼𝗰𝗲𝘀𝘀, 𝗟𝗶𝗻𝗸𝗲𝗿 𝘀𝗰𝗿𝗶𝗽𝘁𝘀, 𝗮𝗻𝗱 𝗕𝗮𝗿𝗲𝗺𝗲𝘁𝗮𝗹 𝗨𝗔𝗥𝗧 𝗱𝗿𝗶𝘃𝗲𝗿.

Along the way, readers will also learn a lot about various utilities available as part of the compiler toolchain, like 𝗴𝗱𝗯, 𝗼𝗯𝗷𝗱𝘂𝗺𝗽, 𝗮𝘀, 𝗹𝗱 𝗲𝘁𝗰…

#3 and #4 need further improvements. And more drafts will be released in the future. Be sure to be on the inpyjama.com mailing list. You can help us improve the content and point out the flaws/issues. 𝗧𝗵𝗲 𝗯𝗼𝗼𝗸 𝗶𝘀 𝗽𝘂𝗿𝗲𝗹𝘆 𝗮𝗯𝗼𝘂𝘁 𝘂𝘀 𝘄𝗮𝗻𝘁𝗶𝗻𝗴 𝘁𝗼 𝗵𝗲𝗹𝗽 𝗹𝗼𝘄𝗲𝗿 𝘁𝗵𝗲 𝗲𝗻𝘁𝗿𝘆 𝗯𝗮𝗿𝗿𝗶𝗲𝗿 𝘁𝗼 𝗹𝗲𝗮𝗿𝗻𝗶𝗻𝗴 𝗘𝗺𝗯𝗲𝗱𝗱𝗲𝗱 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴.

If you haven't already, please consider joining our Discord community to explore more resource and connect with others interested in Embedded Systems Development.

Hello,

A quick update, we are on Discord now and everyone's helping everyone there :) You can join by clicking the button below -


Here are some screenshots of the server!

Hello,

It's been a long time since we updated you on how the book is going. Here is the current table of contents with annotations describing the remainder of the steps -

Hello there,

Long time, no see :) Long time since I updated you! There has been a lot going on in the meantime. Let's dive in -

The book

  • We are three chapters from opening the book for internal review with peers and friends. We need to do fact-checking and proofreading of the chapters in the book.
  • At the moment, there are 103 images/illustrations/screenshots (The video was recorded a week back and the count was less then) and about 23 chapters spanning ~150 pages. This will only grow!

Git Repo

  • All the examples from the book will be available as a git repository for you to refer to and experiment with. At the moment, the repository only has instructions on how to set the lab environment. You can try it out if you'd like -

Hello there,

Here's a free chapter from the book on the power of struct in C. This one uses the example of bmp file format to guide the conversation. There is something tangible achieved at the end of the chapter. You can try this out on your local machine and let us know via comments if you liked it.

Update #4

tl;dr - We are splitting the book into Volumes. The first one focuses on Assembly and C and will be out soon. We are calling it - "C Ninja, in Pyjama!" 🥷


In the previous updates regarding this topic, I mentioned that we have successfully completed and are currently reviewing the first 20 chapters. However, due to our busy work schedule, we have been unable to make significant progress beyond that point.

I have received numerous emails and LinkedIn messages requesting an update on the expected release date of the book. While we still do not have a specific date, it is important to note that the original book is far from being completed, and we do not wish to rush its development. To best serve the community, we have decided to release the book in parts as volumes within the "Embedded Systems Secret, in Pyjama!" series. This approach will provide the community with a reliable resource to refresh their knowledge or learn from.

The first volume is almost ready! And we've titled it (at least for now) - "C Ninja, in Pyjama!".

Update #3

Hello,

We've been away for a while now. The work is consuming us; again, there is little to no progress on the book 😓. This is specifically true concerning the "writing" part of the progress.

Rust

A week back, we met to brainstorm how to make progress, and then the discussion drifted toward - We should add chapters on Rust (the programming language)! It seems to be on every embedded engineer's mind and from the looks of it there is nothing out there that can draw a parallel between C and Rust.

Rust, while it may be great for systems programming does hide the hardware which makes it an unobvious language for lower-level embedded development. How does the compiler consume the code, how can we change the code layout, how can we enable the standard library, memory management, startup sequence, etc for a fresh embedded target without using the "crates" in Rust? The team is learning Rust and is intending to come up with a "Rust for Embedded Engineers" kind of series or a mini e-Book. The effort intends to cut through all the hype and crap and, get to the point straight.

Qemu, CPU internals, and Baremetal boot

Qemu is an open-source emulation software that emulates embedded systems. For example, it has an implementation for the Raspberry-pi boards. What this means is, you can launch QEMU with Raspberry-pi as the machine of choice and load the kernel image on it. Qemu will then run it as if Raspberry Pi was executing the code. This makes QEMU a great enabler in learning CPU internals. The bottom line is that you can learn to do Embedded Development without the actual device (for the most part).

Update #2

Yet another update on the book and a sneak peek!

It has been a while since I wrote to you. Hope you are doing well!

I thought I'll keep you posted on how the book is coming up. The short version is - The progress is slow! The primary reason is - work is keeping us super busy.

Any time we get is invested into brainstorming on how best to present the information. A lot of discussions and a lot of scratching off of ideas. We want the chapters to be short, and clear, and leave you in awe! Getting that right is hard and the writing part is not moving as much.

I am positive we'll start writing new chapters soon. I'll keep you posted on the progress.

Have a good day ahead and here is something for you in passing :)


Random Mockup image of the book ❤️

Guess what is happening

One of the chapters in the book explains a mental model of how one can think about an instruction getting fetched, decoded, and executed by the CPU.

Update #1

Hello there :)

I wanted to update you on how the book is going. If you do not know the background, let me bring you up to speed.

I and a few of my friends are writing a book titled - "Embedded Systems Secrets, in Pyjama". This is supposed to enable embedded engineers to become more helpful when working on a team!

You can read more about it here: inpyjama.com/book


Status ✅

  1. As of today, we have 20 chapters completed. And research for another 7 complete. A few of our friends have offered to proofread these chapters.
  2. We met Subrata Banik (who has authored books on Firmware development - one and two) and discussed how to go about publishing the book.
  3. We are leaning towards self-publishing at the moment. The value added by a publisher seems very little at the moment.

Draft Copy - Sneak peek!

I flip through the draft print of the completed chapters in the video below :)

For you ❤️

Here's a chapter that introduces the idea of pointers in C. Later chapters build on top to explain how pointers are to be used when pointing to data and code.