January 2024 Updates

  • Added info on the Law of Cosines.

  • Added info on the Trigonometric Ratios.

  • Added the ability to do a site-wide search with the help of the pagefind library. At compile time, after hugo builds the site, pagefind is then run and creates a search dictionary that is downloaded to the client when they want to perform a search. All the searching happens client-side, no server is needed.

  • Added more info on Zephyr, including semaphores, the polling API, workqueues, watchdogs and commons errors.

  • Noticed that the inline equation text colour was different to standard text (thanks to a Bootstrap CSS file), so I added SCSS rules to style it correctly.

  • Added info on the non-standard use of MCU SPI peripherals to send data to WS8212 RGB LEDs.

  • Added a new page with info on real-time clock (RTC) ICs.

  • Added more info on various Zephyr peripheral APIs.

Happy New Year 2024

Statistics for 2023

2023 saw 436k (436,000) page views as reported by Google Analytics! This was up from 384k last year, an increase of 52k or 14%.

Graphs of page views and content up to the end of 2023.

Graphs of page views and content up to the end of 2023.

I discovered that many ad blockers also block Google Analytics, so this figure is likely less than the true value, given many people visiting this site will be software/electrical engineers who will use ad blockers. In an attempt to get a more realistic number, I paid for a month of Netlify’s analytics service which can’t be blocked in the same way as it’s working on the server side when requests are made (I use Netlify to host this blog). Netlify reported 729k visitors in just 1 month!?! Is this is to be believed that is approx. 8.7M visitors a year. This seems too high, so maybe it’s also recording a lot of bots? The true value might be someone between the two?

The number of page views are reported by Netlify in the period of 30 days. 729k visitors!?!

The number of page views are reported by Netlify in the period of 30 days. 729k visitors!?!

At the end of 2023 the site had 639k words, up from 604k words last year (an increase of 35k). These words were spread over 1221 pages, and included 4,518 images (an increase of 199 from 4,319 images last year).

The top 10 most popular pages, ranked by number of page views:

The top 10 most visited pages of 2023.

The top 10 most visited pages of 2023.

Programming related pages again took the top spots. I’m not sure what “(not set)” is, this wasn’t here last year!


As usual, most of the traffic was from organic search (e.g. Google search engine).

Top 5 sources of acquisition traffic in 2023.

Top 5 sources of acquisition traffic in 2023.


I received NZD$59 worth of donations through my Ko-Fi page from this blog, NinjaCalc and NinjaTerm this year. Some kind folk donated NZ$3 a month, and there were two one-off donations of $15 and $20.

Achievements in 2023

  • Asciidoc pages have been fully phased out.
  • NinjaTerm was fixed up and turned into a PWA.
  • Finally, the end of the year saw the blog get a dark mode!

Plans For The 2024 Year

  • More content, and improving existing content: As always!
  • Add the ability to do a site wide search: I’m thinking I’ll write a frontend along with using pagefind for this. I feel like this is a better approach than using Algolia, which is a paid for (although they do give out open-source licenses if you contact them) third party search service. Mostly because I will not depend on the 3rd party, the search index can be built at compile time and then the searching done by the client browser.

December 2023 Updates

  • blog.mbedded.ninja now has a dark mode. New CSS styling rules have been created to properly colour things when in dark mode, and a little JS script has been added to respond to the light/dark toggle button click and store the preference in the users local storage.

  • The page structure got modified. I wanted to improve the main left navigation menu. So I created a top navbar for the site logo, name and light/dark mode toggle. And then the left column is dedicated purely to the navigation menu. The on hover styling has been improved, with a clear indication you can click the chevron to expand/collapse a sub-menu. The chevrons are now all aligned on the right of the menu rather than on the left.

  • Updated the VMIN and VTIME information on Linux Serial Ports Using C/C++.

  • Added info on converting a version string into numbers to the C String Manipulation page. This page was also restructured to read better.

  • Added info on the Zephyr Hardware Info Interface (including reset causes).

  • Added more info on Benchtop PSUs to the Electronics Tools page.

  • Started a page on Triangles, and added information about the Law of Sines to it.

November 2023 Updates

  • Just like last month, this month I was (almost) solely focused on NinjaTerm development. We went from v4.7.0 through to v4.12.0 in the month of November. Updates to NinjaTerm are highlighted below.

  • Added glyphs to the Unicode PUA range of the NinjaTerm font to show control characters and hex codes.

  • Added logging functionality.

  • Last serial port details and connection state are remembered across App reloads, and NinjaTerm can automatically reconnect to previously used serial port.

  • Added ability for NinjaTerm to reopen serial port (when available) after unexpected closure.

  • Added ability to filter rows of terminal text.

  • Miscellaneous bug fixes.

  • One change with this blog is that I started playing around with the idea of adding ads. I personally don’t like ads but they might help pay for the upkeep of this site (domain registration, DNS, hosting, and software licenses for designing things like the diagrams). I have enabled Google AdSense. In it’s current form the ads are pretty horrible (e.g. disruptive pop-ups), so I’ll be tuning them and making sure they are not so invasive in the near future. If they don’t end up making much money, I might remove them altogether.

October 2023 Updates

  • This month I was solely focused on NinjaTerm development. We went from v4.3.0 through to v4.7.0 in the month of October. Updates to NinjaTerm are highlighted below.

  • Terminals are now focusable by the user, with the cursor changing appearance and a background glow shown when focused.

  • Tab key press gets handled and correct bytes sent correctly across the serial port.

  • Addition of a graphing feature which can extract data points from incoming data and graph them live.

  • Easter egg style “fake ports” to NinjaTerm for demo/testing purposes. Press “f” when the serial port config. settings are visible to show the fake port selection screen.

  • Ability to change terminal font size.

  • Added initial Playwright e2e (end-to-end) tests.

  • Fixed an annoying rendering glitch where I was using React’s useEffect() but should of been using useLayoutEffect().

  • Migrated from using react-starter/Webpack to build to using Vite, it’s much faster! Also migrated the unit tests from using Jest/RTL to using Vitest (which works really well with Vite).

  • Improved the version updating process – Now a snackbar pops up when a new version is available giving the user the choice to reload and update. This was easily added thanks to Vite’s PWA plugin.

  • Added settings to be able to configure behaviour on receipt of carriage return and line feed characters.