Very useful: https://github.com/yakimka/DiffLume
I found a git tui diff tool
Very interesting:
FreeIMU Calibration
Another nice article:
https://github.com/mjs513/FreeIMU-Updates/wiki/04.-FreeIMU-Calibration
Another interesting article for accelerometer:
https://chionophilous.wordpress.com/2011/08/26/accelerometer-calibration-iii-improving-accuracy-with-least-squares-and-the-gauss-newton-method/
Tutorial: How to calibrate a compass (and accelerometer) with Arduino
How to measure the noise density of an IMU?
Achieving cm Level GNSS Accuracy Via RTK
Nice article:
Embedded systems projects need real CI hardware test
Some years ago (whoa, just realized it was 10 years ago) I added an Audio Tone on NuttX:
https://github.com/apache/nuttx/commit/8b99dd4cdb014a90c0971027f8d6b12b89306aae
I cannot say that it was my own creation because I used the PX4 Audio Tone as base and converted to a NuttX driver, but the port was mainly a rewriting of the original project.
Then around 2024 someone commented that driver was not working and I confirmed that.
Then today I decided to take a look at that issue because Matteo (AKA linguini) ported Doom to NuttX and we want to have sound even on boards without an audio codec!
Then I started testing the old version…
I noticed that on NuttX 7.18 everything was working fine (although the sound as a little low because my original driver had a mistake: I was defining duty value was 50, but actually it should be b16HALF that is equal to 0x00008000).
Then moving to 7.26 I noticed that the audio disappeared completely. After some debugging with git bisect I discovered that guilt: https://github.com/apache/nuttx/commit/2fcf682316689efdb663d32a62f87459d7c6162d
Then reverting this commit, the audio returns, but it was very fast. So I test: 7.25, 7.24, 7.23. 7.22, 7.21, 7.20 and 7.19. All had the same issue.
So, someone broke the driver few weeks after I added it to mainline!
Then I moved NuttX 7.19 and started the git bisect and finally I found the guilt:
https://github.com/apache/nuttx/commit/2d7b1ccdda01fc4b3bf00dc59432f1feac8fd998
I can’t believe that I also was the guild of breaking my own driver. But the truth is: after I got the audio tone working I didn’t use it and since NuttX doesn’t have much uses like Android or Windows, nobody tested it (well, if you have some gadget from Xiaomi, Sony, Fitbit, etc, probably you are a NuttX user, but you don’t know).
This is a kind of issue that we only detect when we test it. But we need to find some way to let the CI to test it for us. Maybe we can use a RP2040 was a “logic analyzer”, so the wave form should match, otherwise it will raise an error.
Update: The Audio Tone was broke again on 2023 with after this modification: https://github.com/apache/nuttx-apps/pull/1559 Basically this PR changed the behavior of nsh output commands like echo. Before this PR the echo command attached a ‘\n’ at the end of the string and everything was sent with a single write. After that PR the ‘\n’ started to be send separated as a new write.
Now I tested these melodies and everything worked as expected:
nsh> echo "t120o1l16b9n0baan0bn0bn0baaan0b9n0baan0b" > /dev/tone0nsh> echo "L8eefggfedccdeL6eL16dL4d" > /dev/tone0nsh> echo "L16C>C<B>C<B>C<GB-A- L4F L16<G+>CF L4GL16CG+G L4E+" > /dev/tone0
Simple BLE client for Linux
Seems like a good starting point:
SLAM Introduction
Nice introduction to SLAM image recognition:
https://www.thinkautonomous.ai/blog/visual-slam
Using a Nonlinear Crystal KTP to create a SFG/SHG solution
I’m doing an experiment with KTP and two lasers (1052nm and 1550nm), this is the first time I try to create some more advanced optic project.
Initially I was thinking it was just shining the laser light in the KTP crystal and everything was fine.
Then I discovered that I need to use two mirrors before hitting the dichroic mirrors. This guy explains why it is needed (spoiler alert: because otherwise will be very difficult to align the two laser beams)
This experiment show KTP frequency doubling in action:
This video is a great walk though the SFG/SHG solution: