Posts for: #Embedded System

RP2040 Randomness and Ring Oscillator

RP2040 Randomness and Ring Oscillator

Randomness

Having real randomness on a deterministic machine is a pretty interesting topic, while one can easily achieve pseudo-randomness by creating a complex algorithm with unpredictable outputs(such as a chaotic system). However, for a microcontroller with the same code whenever it boots up, the above solution will give you the same number every time. So it would be nice to introduce some external chaotic sources, the most commonly used one might be heat noises, which require some kind of temperature sensor. I also heard Lava Lamps are being used as a chaotic source in some real applications - Cloudflare uses 100 such lamps for their random generator - how bizarre!

Read more →

CMake vs. Make

What was the Problem? :()

When playing with my RP2040, following the official SDK instructions, I wonder why I have to type cmake then do make, why does it take two steps to build my project?

Well, long story short: Cmake is a cross-platform Makefiles generator, while make “reads the makefile and invokes a compiler, linker, and possibly other programs to make an executable file.(Microsoft)

CMake

Instead of thinking of CMake as a “C/C++ program maker,” I tend to say it as a “Cross-platform maker.” As its design principle says: “CMake is designed to be used in conjunction with the native build environment.”(Cmake.org); thus, it is independent of the Operating System it is working on(thus, the compilers), Which means as long as we configure the CMakeLists.txt correctly, CMake should “generate standard build files (e.g., makefiles on Unix and projects/workspaces in Windows MSVC).” on all the supported OS(Cmake.org)

Read more →

Bare Metal WebServer On Pi PicoW

Bare Metal WebServer On Pi PicoW

Intro

picoW

I’ve been pretty into the Raspberry Pi Pico family lately—it looks nice, and it’s new, there is a fast-growing community there, and it would be cool to play together. Pico W is the newer member with the…well, you guess…the Wireless capability. I thought it would be nice to set up some code to allow me to send data from the terminal to the Pico through wifi.

Arduino-Pico

This is an Arduino Core for the Pico, which based on the official Raspberry Pi Pico SDK but with more add-ons. That basically allows you to use Arduino libraries. You can find their Github link here and the latest documentation here. This project is very active.

Read more →

Budget Gesture-Sensing Glove

Budget Gesture-Sensing Glove

So one day, I was casually browsing the Adafruit Wbsite, and one thing just popped in front of me…

sensor
Hmm, a sensor that gives you the amount it flexes… I felt it would be a good idea to use it to sense the flex of fingers, and make a glove along with an MPU6050 to make a gesture-sensing glove, and probably create a digital replica in Unity, so like a VR glove.

Read more →

The Technical Report of Self-Stabilized TVC Rocket

The Technical Report of Self-Stabilized TVC Rocket
    / [pdf]
Read more →