Folder structure for mMesh:
- src/spi # Serial Peripheral Interface (SPI)
- src/test # GTest
- src/test/mesh # GTest
- src/syscalls # Wrapper for calls like sleep and timers, differs between different platforms.
- src/netAlgorithm # Implementation for network algorithms for choosing parent, neighbour and routing for packets.
- src/mesh # Mesh implementation
- src/network # Network adapter and network drivers
- src/network/RF24 # RF24 driver ported from https://github.com/nRF24/RF24
- src/node # Is used for testing, a node simulates a radio with network functionality
- src/GPIO # General Purpose Input Output (GPIO)
- src/islands # Is used for testing, simulates physical boundaries, if two nodes reside in one island they are able to speak with each other.
Continue reading mMESH – Technical deep dive
I have created a mesh network algorithm for embedded systems. This implementation is released be released under MIT License.
Me and a friend have started an Internet Of Things project and we wanted to have a radio module to our microcontroller for communication. The radio module we choose was the NRF24L01+.
One question might arise: Why not use the NRF24Mesh solution that’s already been developed? I’ve looked at the design and noticed that it could be improved which are mentioned in the features, and I also wanted to create it by myself, because I can 🙂
In this post I will discuss about the architectural design of the Mesh Network.
Features of this implementation:
Address range: ~2^18 addresses (262144).
Decentralized network topology: a master is needed, all grouping and addressing will be decentralized, which means that the closest “parent” is responsible to address it’s children’s.
Mesh with multiple routes: All the nodes in the network has always a “default” route to master. Nodes can also pair to other nodes in the network that is physically close. If node A and node B needs to communicate with each other they don’t need to send the packet via the master node, if there is an opportunity to send the packet to a physically near node, and the number of hops is less than via the master, the packet will be sent to that neighbour, which will route it onwards.
Continue reading mMesh – Mesh Network
To update u-boot via tftp, install a tftp software and copy its binaries to the directory where tftp has its data. The text in bold is the text you type in. This is intended for armbian use. They require the latest u-boot version.
Continue reading Updating Espressobin U-boot via tftp.
Espressobin is my new toy which eventually be my new bridge to the internet while it hosts my connected home. Eventually it will be hosting Home Assistant, OpenVPN and be the WLAN Access Point.
The Espressobin has all the “horse power” i need, it is equipped with 1 gigabyte of ram and a dual core ARM Cortex A53 processor with a clock speed up to 1.2GHz. Which will be plenty enough for my setup. Technical details about the Espressobin is available on their homepage: http://espressobin.net/tech-spec/
Continue reading Espressobin – install nginx and php
I am currently working with a project regarding my LED-lightening in the kitchen. The system will be based on a STM32-circuit and the communication device is a mrf24j40 which supports the 802.15.4 protocol.
Continue reading Raspberry pi and stm32 communication with mrf24j40 over 802.15.4.
This is my first encounter with the new microcontroller and programmer I ordered from aliexpress. The microcontroller is an STM32F103C8T6 and the programmer is a ST-Link v2 clone.
Continue reading STM32F103C8T6 – ST-Link v2 – Blinky example
Har skrivit ned en dokumentation om flera projekt, programvaror och skript som jag utfört under studietiden, fritiden och på arbetet.
Dokumentet kan läsas här: http://exclude.se/KTH/projekt_js.pdf
Höjdens maximala yttermått var 57 cm varav lådan byggdes med den höjden. Fick rekommendation av hifikit att bredden skulle vara smal, varav frampanelen gjordes med en bredd på 24 cm.
Djupets storlek räknades ut enligt nedan:
Continue reading Steg 2: Bygga högtalarlåda
Dimensioner för lådan:
||7,5 ; 0,7 kant
||9,7 ; 1 kant
|Volymen: H[dm]*B[dm]*D[dm] = dm^3
||4,95*2,45*3,0 = 36.3825 liter. (yttermått räknat)
Continue reading Steg 1: Uppgradering av högtalarelement i befintlig låda.
I’ve created a program for handling data for IoT devices. It is php-based and uses mysql, ssh and rsync.