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 tov4.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 tov4.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 usinguseLayoutEffect()
.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.
September 2023 Updates
A lot of work was done on NinjaTerm!
- Migrated from an Electron App to a PWA (Progressive Web App).
- The homepage needed some love, half the .gifs were broken and showed out-of-date content. I embraced the dark side and remade the homepage with a dark theme that matched the theme of the app. I also migrated it from using GitHub pages to being part of the app itself, meaning only 1 website to deploy, not two.
Added info on stuck (hung) I2C buses and how to recover from them.
Added info on I2C start conditions, address bytes, data bytes and stop conditions.
Added info on providing clearance on PCBs for screw heads.
Added more info to the Current Sensing page.
Added new page on hall effect sensors.
August 2023 Updates
Added more info on Voltage Supervisors.
Added info about USB Type-C connectors with dummy leads.
Added more QFN synonyms and a 3D render to the QFN Component Package page.
Added a component package size comparison chart.
Fixed error in the equation for a Difference Amplifier on the Op-Amps page.
Added a new page on the PG-SCT595 component package.
NinjaTerm has had a major version update to v3.0.0! The build issues have been fixed, and it is now using recently released versions of Electron, React and Material UI. With the new version of MUI comes the dark mode also.