Motivation#
I wanted to get into embedded systems in a serious way for a long time now. I have dabbled a bit in books and online tutorials, but I never felt like I was making real progress. So, I decided I will just take up a project and learn as I go along. Plus, the theory was getting a bit boring after a while.
Rough objective#
Create a low-cost embedded web server from scratch using as many components I have lying around my house as possible. The web server should be able to serve static web pages(maybe also dynamic pages) to the internet.
The Plan#
NOTE: This is a rough plan and is subject to change as I go along.
- Use as many components I have lying around my house as possible.
- Keep the cost as low as possible.
- Start with the nRF52840 microcontroller and, see how I can use this MCU to implement a pretty good webserver which can at least serve static web pages.
- Not use a lot of bloated libraries or frameworks. Write as much code from scratch as possible - This is needed as the MCU has very limited resources.
- Use C/C++/Rust or any other language that is required to get the job done.
- Document the entire process in a series of articles on this website.
- Finally, create a custom PCB and 3D printed enclosure to house the final product.
- This is a challenge for me(as I am a beginner in embedded systems) - so it can take a while to complete. But I am excited to get started!
Hardware components#
These are the main hardware components I plan to use:
| Component | Description | Cost | Notes |
|---|---|---|---|
| nRF52840 MCU | Low-power Bluetooth + ARM Cortex-M4 microcontroller | ~$9 | Already have |
| 2000 mAh Rechargeable Battery | Lithium-ion/Li-Po cells | ~$6 | Already have |
| W5500 Ethernet Module | Hardware TCP/IP offload chip | ~$5 | |
| 32GB microSD + Reader Module | Storage for logs / static files | ~$7 | |
| USB for Charging/Data | USB A to micro USB cable | ~$2 | Already have |
| Breadboard + Jumper Wires | For prototyping connections | ~$5 | Already have |
| Passive Components | Resistors, capacitors, etc. | ~$5 | Already have |
| Custom PCB (later stage) | To make the design compact and robust | (later) | |
| 3D printed Enclosure (later stage) | To house the final product | (later) |
Total estimated cost: ~$39(excluding custom PCB and enclosure)
NOTE: Prices are as of November 2025 in India.
Will try to keep this under $50 if possible.
Few pointers#
- I will try to make this as cost-effective as possible.
- I will try to make the nRF52840 MCUs work (which I am not sure about yet). If not, I might have to switch to a different MCU.
- I will try to avoid using any external libraries or frameworks as much as possible, to keep the code lightweight. But for the initial stages, I might have to use some libraries to get things working.
- I will document the entire process in a series of articles on this website. I will also mention all the challenges, failures, resources I used, and everything in between. So, these will be very detailed articles.
- Hopefully, I will create a lot of value by writing these articles for beginners like me who want to get into embedded systems but don’t know where to start.
- If you have any suggestions or resources that might help me in this journey, please feel free to reach out. I would love to hear from you!
- I have not done many embedded projects before, just a few basic Arduino projects. So, this will be a learning experience for me as well. I will try to explain things in simple terms as much as possible.
- Adding a newsletter soon - for now, you can send me an email with subject “Embedded Web Server Series” to get notified about new articles in this series.