DeAI README.md
This commit is contained in:
@@ -1,26 +1,8 @@
|
||||
# Octopus Flex PCB (SulaJalmari)
|
||||
|
||||
An nRF52840-based desk toy where art and engineering collide.
|
||||
An nRF52840-based flex PCB project with a shape of an octopus.
|
||||
<img src="pics/device_diagram.png" height=800>
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Introduction & The Point](#introduction--the-point)
|
||||
* [Hardware Specifications](#hardware-specifications)
|
||||
* [Fun Features & Known Flaws](#fun-features--known-flaws)
|
||||
* [Software](#software)
|
||||
* [Programming & Usage](#programming--usage)
|
||||
* [Open Source Resources](#open-source-resources)
|
||||
|
||||
---
|
||||
|
||||
## Introduction & The Point
|
||||
|
||||
The Octopus Flex PCB (SulaJalmari) is a desk toy intended to provide a hands-on learning experience with embedded systems, IoT technologies, and PCB design.
|
||||
|
||||
People often ask what the "point" of this project is, but there isn't a strictly functional one. It was created to see what happens when art meets engineering, to learn device development, and to be a challenge. The point was the journey and, of course, because an it looks cool.
|
||||
|
||||
---
|
||||
|
||||
## Hardware Specifications
|
||||
|
||||
@@ -39,7 +21,6 @@ This section covers the exact specifications of the third (and final) prototype:
|
||||
* **Debugging:** Base board debugging pins compatible with a standard ~$3 DAPLink debugger via pyOCD/OpenOCD.
|
||||
* **Aesthetics:** Silkscreen suction cups and mouth.
|
||||
|
||||
---
|
||||
|
||||
## Fun Features & Known Flaws
|
||||
|
||||
@@ -53,59 +34,26 @@ This section covers the exact specifications of the third (and final) prototype:
|
||||
* **Haptics:** The vibration motor was mostly unnoticeable, leading to its removal from the final assembly. (Pins to connect a motor still exist)
|
||||
* **Logistics:** Transporting an assembled device safely is tricky.
|
||||
|
||||
---
|
||||
|
||||
## Software
|
||||
|
||||
### Zephyr Framework
|
||||
Initially, Zephyr felt overwhelming due to deprecated documentation and a steep learning curve with devicetrees. However, to get the Bluetooth functionality we wanted, we gave it another shot. Eventually ended up enjoying having "one framework to rule them all", plus gaining embedded Linux/devicetree experience was highly valuable. The custom board files use the `nrf52840-dk` as a template. Zephyr relies on **MCUboot** as its bootloader.
|
||||
Checkout [chill](https://git.aintmina.org/aintgit/chill) project for building zephyr app with MCUboot.
|
||||
|
||||
---
|
||||
<img src="pics/smack.gif">
|
||||
|
||||
## Programming & Usage
|
||||
## History
|
||||
|
||||
### Idea
|
||||
|
||||
### Development Prerequisites
|
||||
If you want to build custom Zephyr firmware, you need the **nRF Connect SDK**, the [boards](Firmware/boards) folder from this repository. The easiest way to start is by installing the **nRF Connect for VS Code** extension. The current project is verified to work with SDK version **4.4.0**.
|
||||
<img src="pics/paper_model_v1.jpg">
|
||||
|
||||
See [README.md](Firmware/main_app/README.md) for more info on building the main_app.
|
||||
### First prototype
|
||||
|
||||
### Notes on building
|
||||
If you are creating your own code, ensure your `prj.conf` contains the following line so Zephyr generates the signed hex file required by the bootloader:
|
||||
<img src="pics/prototype1-3.jpg">
|
||||
|
||||
```text
|
||||
CONFIG_BOOTLOADER_MCUBOOT=y
|
||||
```
|
||||
### Second prototype
|
||||
|
||||
Optionally specify a signature key file:
|
||||
<img src="pics/Device1.jpg">
|
||||
|
||||
```text
|
||||
CONFIG_MCUBOOT_SIGNATURE_KEY_FILE="key.pem"
|
||||
```
|
||||
### Final version
|
||||
|
||||
Optionally to build MCUboot WITH you app you need to have `sysbuild` directory with `mcuboot.conf`. Look at [mcuboot.conf](Firmware/main_app/sysbuild/mcuboot.conf) for example. You also need `sysbuild.conf` in you project root. [sysbuild.conf](Firmware/main_app/sysbuild.conf) for example.
|
||||
|
||||
To build the project via CLI, see [BUILD.md](Firmware/main_app/BUILD.md).
|
||||
|
||||
### Flashing via USB
|
||||
1. Open **nRF Connect for Desktop** and launch the **Programmer** app.
|
||||
2. Click **SELECT DEVICE** in the top left and choose the **MCUBOOT** USB device.
|
||||
3. Drag and drop your `zephyr.signed.hex` file into the "File Memory Layout" section.
|
||||
4. Click **Write**.
|
||||
5. The device is successfully flashed when the memory field turns green.
|
||||
|
||||
---
|
||||
|
||||
## Open Source Resources
|
||||
|
||||
**Hardware Files:**
|
||||
* EasyEDA project & Schematics
|
||||
* Gerber files
|
||||
* Pick and Place files
|
||||
* Bill of Materials (BOM)
|
||||
|
||||
**Software Files:**
|
||||
* MCUboot configurations
|
||||
* Zephyr board files and custom examples
|
||||
|
||||
---
|
||||
<img src="pics/final_device.jpg">
|
||||
Reference in New Issue
Block a user