You are reading content from Scuttlebutt
@luandro %lIbjvwjLq4hBknipechzRpNLCS2YTGhiDaBHmGDRCVs=.sha256

Local Community On-Boarding Dev-Diary :airplane: :satellite:

Proposal: %BXHiadl...


@luandro %b/XJDdRiQkHFAkWG2dmoMVaavPgWr8O2qRi1rYBRNyA=.sha256


Today's my birthday :birthday: :balloon: :gift: and what a great gift I have received, to be funded to work on what I'm totally passionate about.

I'm currently in Punta del Diablo, Uruguay, slowly traveling towards Cordoba to learn about real world #communitynetworks with #altermundi in order to better execute what I have proposed in this grant.

I'm also working on ssb-mobile, that also has lots to do with this, and although I may move slowly on both, I'll dedicate the next 4/5 months on working for SSB community. Thank you all for being who you are and doing what you do.

User has not chosen to be hosted publicly
@SoapDog %kdrDYebxpckFoC9TfYwaNBnkks9e0x1XZN/1XX2cIZc=.sha256

Feliz Aniversário @Luandro tudo de bom pra vc!!!!

I am quite amazed by all the cool stuff you've been building and posting. Can't wait to see what the future holds. Keep us posted about the community network experiences there in Cordoba.


User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %oYWK6J+BAbh46FhUH3TLzu+uKIEbL7RGHqumQm3EbMk=.sha256


Mesh Kit

@gmarcos87 was kind enough to come by late at night in order to teach me the workings of #libremesh by showing the internals of some nodes in #quintanalibre. And it's simply mind blowing. Many modules that come together and make an incredible experience for the end-user. They already have all the pieces I've been imagining for #moinho-mesh working in at least prototype level. After he left I was completely hyped, and my head hurt a lot from learning so much in such a short period of time (and in a different language).

My final goal is to have an as easy to follow as possible set of instructions for anyone who wants to build a mesh in their community, but I first need to learn it myself. These are some of the parts I'll need to get acquainted with:

  • lime-sdk: builds the firmware for Libre Mesh, it's good to set the configurations and build it yourself so you don't need to configure all the routers in the mesh manually

  • network-profiles: some examples of network profile that are used my existing meshes, should create your own in order to use with the sdk

  • lime-app: a PWA that shows the end user some important data about the health of the mesh and their node and hardware

  • pitbull: a system to manage vouchers for users to share and pay for broadband access

  • lime-packages-ui: the backend for the applications running on the routers such as lime-app and pitbull

I'll slowly start to dive in and hopefully even contribute to the Libre Mesh ecosystem. My week in Quintana has barely started but thanks to Marcos has been enlightening.

Inclusive SSB community portal

Manuel, who's the host Marcos has arranged for us, took us to some beautiful places with lots of nature. It was the perfect setting to imagine what would be some fundamental information that the portal should have, taking into account @masukomi's suggestion.

  • Why? Some good arguments made by @andrestaltz in his publications: 1, 2, 3, 4, with a few more arguments from #communalism / #anarchism (add some radical thought sugar).

  • What? A short and cohesive description of what SSB is and what our principles 1 2 are.

  • How? Get the ideas from @Zach's awesome video and create a short written story of how the gossip protocol works.

  • Clients A list of the existing clients, showing the languages it supports and what they are for (ex.: music, social, photographs, etc.), and have a getting started guide for each, similar to the existing one for Patchwork but with channels that correspond to other languages, like #gente-nova instead of new-people for Portuguese speakers.

  • Devs This should contain all the important links for developers: 1, 2, 3 and tutorials in various languages like the scuttlebutt-guide

  • Community This should have a map of all the local communities that are using SSB as backbone and contain the link for the Mesh Kit so anyone can get started in their own community

  • Videos and articles All the published stuff that exists for the users specific language (I don't know of anything in any other language for now, but we should start)

Application Hub

Based on recent on-going discussion I also took some time to imagine some features the Application Hub should have:

  • Profile / About

  • Messaging / E-mail (if the community has a VPN)

  • Add, vote, explore, install and uninstall applications

  • Web server and DNSMasq for serving web apps for desktop

  • Git: repositories and issues

  • Gossip / Network

I'll sketch a design to better express the ideas.

@luandro %/8oZzRvZy8wU2QtmK7Tc+TxBPJDtby5F5A5PyPxtCBA=.sha256



@Marcos took me to a rooftop in order to do some maintenance on a gateway node which is using a Libre Router prototype. It's an amazing peace of tech these guys are building, which will really facilitate creating mesh networks anywhere. Unfortunately it'll still take at least some 6 months for a non-prototype version to come out, so I won't be able to use it on Moinho when I get back. I'll probably start off with about 10 used WDR-3600 I can still find in Brazilian eBay.

I'm still a big noob on this, so I barely followed what was going on. But at least I learned some useful commands for aligning the antennas like watch "iw wlan2-adhoc station dump" | grep signal for watching the signal and netperf -D1 -H 10.x.x.x for testing the speed.

The parabolic antennas you see in the pictures are hand made, and Marco tells me they are as good as the commercial Ubiquiti ones :scream_cat:


@luandro %SxeHt6B2PNEZs05Py/nFDt9qiAZxCi099I0uEza7mgM=.sha256


Me and @Marcos got together to work on a Captive Portal so they can use in #quintanalibre and I can use in Moinho. @nicopace had been working on pitbull which is a voucher system to control bandwidth for neighbors to share the bills. Most of the hard work had been done, so we started from there, fixed a few things and decided that we would run in a single-board computer (Raspberry Pi) instead of in the Libre Mesh routers themselves.

So we started Libre Portal which contains pitbull code, and where the an example Captive Portal app will live and a fork of lime-packages-ui containing the ubus controller for the voucher system.

@luandro %4O7LFeNq/tWynstR84rpIa4+Akihs8CrAeVnWmL2ZU0=.sha256


Me and @Marcos got together again to work more on the bandwidth voucher system.

He helped me fix some problems with lime-voucher and thought me how the API and permission system works with ubus.

We're both new to lua so we struggled a bit, but we were able to built a cgi page that reads the devices ip and mac address and checks if it has a valid voucher in order to grant it access.

With that, the system is almost ready to be plugged to an application or captive portal. We also started working on getting alfred to replicate the voucher database with all routers in the mesh and succeeded. The next step is to do a diff so that all databases are kept in sync.

@luandro %/ukey8k5qhCBzLu8lx1dMy5NY4jHRW9sGZ1lUQo3rik=.sha256


Spent the day researching and setting up a basic stack for the Inclusive SSB community portal. This is the stack I came up with so far:

  • Next.js: for server-rendered React applications
  • I18next: internationalization-framework
  • next-offline: offline-first for Next.js applications
  • eslint-plugin-jsx-a11y: warns about potential accessibility issues with your React elements in real time with eslint

:point_right: Github repo

I've acquired the domain where the portal will live. Mainly cause it was really cheap, if I wasn't such a cheap-ass I would have gotten which is shorter, easier for non-english speakers and eco, ecosystem has more todo with what the portal will be about. But $70,00 for a domain is too much.

Now gotta start actually coming up with the content, and please, if anyone is reading this, do help me with feedback :pray:

@luandro %eS65gqzFqZECExCBN/22+HMD0WPy+aGtURGMfqCyHjw=.sha256


I joined @gmarcos87 and @nicoechaniz at 1am to update the firmware of all Libre Mesh nodes in #quintanalibre. Unfortunately I wasn't of any use to these guys, but I was able to learn a lot. Nico is a wizard and showed us some magic using clusterssh, parallel-ssh and parallel-scp in order to control all the nodes in the mesh at the same time.

Marcos cooked up a fresh updated Libre Mesh firmware and Nico did his magic for scping and sshing in all the nodes in parallel, all accompanied by lots of maté. Seems like it was really fast, but we were done at 6:30am cause we kept trying to do everything with a single script, which in the end we gave up.

Once again I upped about 10 levels in #mesh-networking just for being around these guys and listening to them talk.

@luandro %Ck27C7n+dWrYbRqY0OMq9Wuj0MypTRefugNTHVdZWw0=.sha256


Open App Ecosystem

Went for a lovely walk to Quintana's Molino dam, a wonderful body of water full of nice ducklings swimming around. It was a good opportunity to think about the #open-app-ecosystem modules.

So I decided to turn what once began as p2p-mobile-boilerplate and later became open-app-seed into app-hub-mobile and what I first named app-hub into client-seed-mobile. That's because we're now going to use nodejs-mobile and it requires less hacks to work, so it doesn't make sense to have a boilerplate for the server application, since one can just follow the simple hacks documented on ssb-nodejs-mobile.

This is to reflect the architecture we've discussed a bit around having multiple ssb-clients and how that could be implemented in react-native. I began working on those two modules and hope to have a proof-of-concept of the architecture soon.

Mesh Networking

After I got back the dam I stayed the whole day at @nicoechaniz's place. There Nico and his partner Jessica thought me about the final details about setting up the hardware for the mesh. I showed them a map of Moinho and they gave me some tips on where to put some nodes and how to connected them.

We talked a bunch about p2p protocols, and Nico better explained Retroshare to me, which seems to be SSB + Dat but written in C++. In some ways it has implemented many feature that ssb is still trying to figure out, but the community around it doesn't seem to be thriving like ours.

We also talked a bit about the idea of a #cultural-repository, which deserves to be a topic of it's own. It's something I've also thought a lot about, but Nico has it better thought out them me. The idea is to have something like a Pi acting as a repo for the community to push it's own cultural content too, giving it more visibility and making it easier to share with other communities.

Nico introduced me to Internet Society Community Networks SIG, basically a work group where people can better organize themselves and share resources, instead of keep reinventing the wheel every time. From the website:

The CNSIG serves as a vehicle through which Community Networks from around the world can develop, strengthen and promote the Community Network model, draft common strategies, share experiences and expertise, debate policy and regulatory issues and present their views.

Then Jesse showed me the documentation they've been working on, and it's amazingly detailed and well thought out. It's part of my proposal for this grant to write a tutorial on meshing, but they have already done it way better then I ever could, so I got into helping them translate. I was very delighted to learn that they also share the same ideals that I have of empowering self-governance and self-reliance thru #communitynetworks. They have documented not only how to setup software and hardware but also the most challenging part which is social, methods for organizing the community. Once the translations are done I'll share these inspiring texts with yall.

@Anders %zxYwR3E/XMS2QErRDM4PTI06YtBC5QOHvE5rXCLs1k0=.sha256

Thanks for sharing. I really enjoy reading these posts of yours. I'm very much looking forward to reading the documentation once the translation is done.

User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
@luandro %bPbgTbsELEWdJQdySLuvjUermd+RDPpmoN7/Y022dSE=.sha256

As I have thought the 10 days I've spent in Jose de la Quintana have been life changing thanks to @Marcos, @Ana, Libertad, @Nico and Jessica. Very wonderful people that have thought me a lot not just about all aspects of community and mesh networking, but also about all sorts of topics, and I'm sure they our friendship will carry on for a lifetime. I hope they can visit Moinho and I hope to visit them again many times more.

Thank you Scuttlebutt for making this possible :blush: And thank you all from #quintanalibre for such wonderful hospitality, great company, meals and drinks :beers: :stew: :cow:

@luandro %T+qjO635iJqQ2SilK/Yx3m90gxaWpcF/HTMtwoQQITk=.sha256

Hey @jolyon I've given up trying to create a plugin system for now, since we'll have only a few apps to start off I thought of hardcoding the necessary plugins at first.

Haven't tried implementing ssb-afterparty that you have suggested because it seems a little complicated to get it to work in the GraphQL server (maybe it isn't).

I'll refactor open-app-graphql-server to something simpler with the hardcoded plugins. I'll have to use some of my forks because of Leveldown compatibility. Please let me know if you have any suggestions, and thanks for the interest. Sorry for not having anything ready yet :cry:

User has chosen not to be hosted publicly
@luandro %P9ySHuqHqoSU4XgEPYzzPO+Eh/lcvQCM/l9v+XbaS+4=.sha256


This was my last in Quintana, and I spent it mostly at Marco's house chatting, eating and drinking. In the afternoon I went to Nico and Jessica's house so we could finish the first translation we had worked on the day before. After giving it some finals touches Jesse recorded Isabela reading the text to use it as voice-over for the Portuguese version of the upcoming video series they are working to be used to spread #communitynetworks around the globe.

We're now in Mendoza enjoying the cold, wine and good food. Jesse has sent me more documentation texts to work on translations, and I'm eager to help out and share with you all in the future.

These guys gave me a bunch of insulation boxes for the routers and even one of their DIY directional antennas so I can reproduce it when I get back to Brasil. It's gonna be a bit of a hassle to travel around with all of these in our backpacks, but it'll be worth it. Once again, thank you all from Quintana for the kindness and the hard work.

@luandro %7OKAPqsnmlrw2L7EjGs8xHpntrFe0y0CTXbGm+j0xwg=.sha256



In between my sessions of being slightly drunk from delicious and cheap wine :wine_glass:, and falling asleep :sleepy:, I worked for a few hours on translating to Portuguese two more texts for the upcoming #librerouter series of booklets. They still need a few re-reads to be good to go, but the hardest part is done. Once again, very informative and inspirational documents that really have a focus on the community aspects of #mesh-networking. Thank you Jesse for this.

Open App Ecosystem

Also started creating new mockups to better express what I've imagining for the Application Hub and to get some feedback from those who are interested in this. The idea is to have all the most basic functionality that one needs in this application which will be always running on the background, replicating both SSB and Dat. It will also serve as entry point to the whole ecosystem, acting as an installer for the other apps.

I've decided to add Git so that users can start feeling more comfortable with it, and slowly diminish the technical gap that exists between devs/non-devs.

Apps Page

App Hub - app.jpg

Profile Page

App Hub - profile.jpg

Messages Page

App Hub - messages.jpg

Git Page

App Hub - git.jpg

Network Page

App Hub - network.jpg

@luandro %YcsBgnl/wgUyN6Nz6iQ0MfM+R6oD5l1/pfmVlArt/SI=.sha256

Monthly Update

So it's been almost a month since I started with this diary, and it's probably gotten hard to follow and some of the Github repos have become the reverse of what they were initially meant to be.

I've been the whole time, since I've officially started, backpacking around a bit of South America with my partner @Nodari. The main purpose was to visit Jose de la Quintana to learn from experience what a community mesh network was like. And that was a huge and marvelous success thanks for the awesome people I met and the amazing things they thought me.

The second purpose was to rest a bit from Moinho, see new things, be inspired, experience the unseen. That has also been a success, and we're both now at the point that we already really miss Moinho, our home, our neighbors, animal-neighbors, plant-neighbors and river-neighbors.

We've just crossed the Argentina-Chile border yesterday, doing a bit of hitchhiking so we could have our own time experiencing the Andes and admiring the Aconcagua. We'll be traveling around the Santiago area until the 17th when we catch a flight back to Brasilia and finally get back home. So if anyone is from #chile or knows a cool place around the capital for us to visit, please let us know.

Finally, I'm sorry for doing little coding for this project, at least I could get some progress on #mobile-ssb-quests which was a pre-requisite for this to take off. Also, I had time to meditate on this as a whole and also as fined grained modules. So here goes what I think will be the modules that will in the end make making up thing project come to reality. I'll slowly work as I travel, but I plan getting into full speed :zap: (that ain't to fast anyways) once I'm back home.

Open App Ecosystem

  • app-hub-mobile: Entry application to the ecosystem with basic functionality: App Store, Profile, Messaging, Git and Network info.

    • open-app-graphql-server: Server running SSB and Dat over a GraphQL layer.

      • ssb-graphql-defaults: GraphQL schema for some basic Scuttlebot messages types.

      • dat-graphql: GraphQL schema for Dat.

  • client-seed-mobile: A seed project for all other ecosystem applications that connect to the hub thru GraphQL. The stack consists of:

Moinho Mesh

I've acquired 7 Libre Mesh capable routers, and am bringing 10 boxes to protect them and 1 directional antenna that will hopefully serve as a model for creating more DIY antennas. With that we can get started with the mesh in Moinho.


I'll try to follow as best as I can the methodologies #altermundi have come up with in their many years of experience.

  • Reach out to find which families in Moinho still don't have access to broadband, those who are interested in getting better access or those who are interested in our values of community self-governance/self-reliance.
  • Call the first community workshop to explain what is a free and decentralized community network and decide our first steps.
  • Find the spots and setup the first 7 mesh nodes.


These were made mainly by @gmarcos87 and me (although I was more learning then anything else).

  • libre-portal: Captive Portal to be used for community meshes.

  • lime-voucher: Backend to expose the voucher system thru ubus.


I've specified the stack here, now what is crucial is the content.

  • Main Page - Sections
    • Why?: Change starts with how we communicate; web is dead and need to decentralize; empower communities to be economically self-resilient and politically self-governed.
    • What?: Decentralized federated protocol, clients and links to each client's "getting started".
    • How?: explanation of how the protocol works in a fun way such as @Zach's video and link to dev page.
    • Mesh: Map of communities using the Open App Ecosystem and link to mesh kit.
    • Media: Collection of articles and videos that are available for each language about SSB.
  • Client Page: A guide to how to install and get started with various clients.
  • Mesh Kit: The awesome content Alter Mundi has made/is making on community mesh networks, organized/summarized in a page.
  • Devs: Page for developers with getting started, API, guides/tutorials and other important links
@luandro %4VE9veEpPnmUCiI/o8GaP7fC8EFxd0+gBnOpQ0pRBPQ=.sha256


Finally back working on the modules for Open App Ecosystem. I struggled a bit to get back to the GraphQL mindset, but was finally able to implement schema stitching so that types can be implemented in a modular way.

Refined a bit more the SSB types and published it to ssb-graphql-defaults and also to npm.

Started working on Dat types, and published the first draft to dat-graphql and npm.

Anyone who wants to test out there's an example in open-app-graphql-server.

@luandro %MBsxMOqSq8ivRV8frXcciPKI59UTAEEO3ODjvcm4Y5k=.sha256

Oops, should have been 10-05-2018. Going back on time :hourglass:

@luandro %XSP53WZXgVqMK9Mey+0ukL6wF3aNS3tjmLuItf26UI8=.sha256


I've been working for the past few days in re-writing the Application Hub to use nodejs-mobile and open-app-graphql-server. Also updated the GraphQL part to use some of the latest libs, and I've been installing the packages and preparing the project for some new features:

I'm working on the nodejs-mobile branch in case anyone wants to check it out. I'll merge into master once we get this issue with nodejs-mobile solved.

User has chosen not to be hosted publicly
@luandro %z0cIF/0ikkL4cwOv3PKzkn/6XqOfv9/DqSv+D8e1Uds=.sha256


(got the month right this time)


The concept has been proven :tada: :tada:

On the left is the Application Hub, running SSB over GraphQL, and in the left is the Client Seed fetching the public key over GraphQL.

I've merged nodejs-mobile branch to master, and updated the open-app-graphql-server to get it working perfectly.

Also worked on the client seed to test out the proof-of-concept for running an app ecosystem based on SSB on mobile. Another thing I'll be trying out is to get the stack working with react-native-web so that we get universal apps for both mobile and web with the same code.

@andrestaltz %W4nuXMbxHGgvYmGMzFcoIAQyYrOUWskUJQ6tqcoFuro=.sha256


@luandro %Yue4yL3p+mNH7eB2clLEKTIfa3GmT8VgYpPTVC5UPtI=.sha256


  • Icons
  • Push notification
  • New design
  • Tabs
  • Drawer
@mix %DDCqTkr9OrRx6gTtb2opiGMQscEbjE1G6pG22ZspNNw=.sha256

I look fwd to reading more about GraphQL.
Enjoyed reading this concise launcher file :

I don't think it's common that you would launch the sbot and the client in the same space. If you're doing that you can actually just use the sbot directly! (The sbot + client setup makes more sense when the sbot is running in the background and the client is running in your front end I think)

@luandro %e2UxRH79G9ZNXO9fVaGqAPRqCK3fVNnSal/XZp8HZsM=.sha256

Thanks @mix, you're right. Don't know why I thought we needed to run both.

Final Proof-of-Concept :tada:

Been busy for the past week on the applications and their modules. Try it out by downloading the release or installing with Dat installer:


Check out the code for the App Hub here and for the App Seed here. The hub has been built using the open-app-graphql-server with dat types, ssb types and apphub types.

User has not chosen to be hosted publicly
@luandro %oc/c4SfWTEYTJ2N8aHYtIuvf1zXgyoGJwU+10zJlh4w=.sha256

Hey @Nico Pace. I haven't dealt with it yet, but have considered a few things.

The way Briar deals with it is by asking permission to override power-saving mode, which makes the app go on standby. With power-saving I really haven't felt any power consumption issues, so for now I though on letting it go on standby and notifying the user. I would have to run tests with power-saving off to see how bad the battery issue really is.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %3GMMNLqegzqmdt2V70kVASbUjxH2La0aXMzoDZHHcWw=.sha256

Hey @benhylau, I'll be running Libre Mesh on WDR3500's and I'll simply connect one Rock64 thru ethernet to one node. I'll start experimenting from there.

My initial plans are to turn it into a SSB pub and a hub for Dat data, and overall cultural stuff such as music and movies. But I still plan on having every device running a Dat and SSB node, to test out what a "full p2p" network looks like.

@luandro %1RYKlp/nuXFiEjWj/wRvBjV9haSSY4gLAgq9/uw7ZC0=.sha256


I've been very quiet lately. But that's because I've been working a lot on the Application Hub to release a truly useful alpha version.

Here are some changes I've done so far:

  • automatic polling when there are no application messages
  • refetching on screen pull on applications tab
  • close application without throwing errors
  • fetching apk images
  • correct interactions for applications if not downloaded, downloading, downloaded
  • edit profile screen
  • remove ssb-client from open-app-graphql-server
  • some various changes in styling

I've also been busy testing Libre Mesh, creating the communities profile and gathering the list of final things that need to be bought to start setting up the first nodes. I also started testing out the Rock64 connected thru ethernet to a mesh node.

Besides the Android application the other challenge is to sync the work I started doing with @gmarcos87 on the network management system pitbull, with the official repo. Should try to get at least a beta version ready to be used here in Moinho with an app using the #open-app-ecosystem to manage everything. Hope @Nico Pace can help me out :sweat_smile:

Thanks @nicoechaniz for all the help in setting up the mesh nodes :smiley:

@Anders %8E3zB1V0Sr2p9Py7hjyI7SpnmQQ2GSe8LpM8fX+wWvA=.sha256

Great news, always nice to hear about your progress.

User has not chosen to be hosted publicly
@luandro %FxM1nMtslMT0p6lBCoJ4+4B7KJe7eDaeXuwvmxsC4L4=.sha256


I've just published ssb-helpers, which are the SSB calls that were used in ssb-graphql-defaults which I extracted to use elsewhere. Would be awesome if some ssb devs could give me some feedback on it, not sure if I'm doing it right and since I'm still #ssb-learning.

@dinosaur I've been trying to understand the links you sent me for understand progress bar. It seems the basic formula is here: (feeds - pending) / feeds; but I can't make sense of it. Are feeds and pending what sbot.replicate.changes returns? I couldn't make the math work.

@luandro %bFUUtK6FY3T44oghrOwmJFxBZPr31NUcWBslPKDb6qs=.sha256


Wow, it's been 10 days since my last entry. Sorry for that. I've been really busy working the last pieces of the puzzle to get the first experiment working.

Mesh Network

Internet sharing

Many neighbors are excited for the network, mainly because of the "better internet" possibility that pitbull could bring. So @Nico Pace and @nicoechaniz got me connected with some of the guys, mainly from around South America, that have been working with Alter Mundi on community mesh projects. There's a group dedicated to Pitbull, which adding with the work that me and @gmarcos87 did back in Quintana of fixing some smalls bugs, adding Ubus and Alfred support for Pitbull, we are getting close to getting a version which could be used here in Moinho for sharing satellite broadband.

Besides actually stitching all the loose scripts together, some things that had concerned me at first seem to have a solution:

  • We use iptables for redirecting all access to our captive-portal, except those listed by mac address (source-code). The problem is that any vpn can by pass this. @NicoPace suggested that it can always be blocked by using Wireshark to detect. I'd love the see that in action.

  • Another issue I found is that on Android, which is my target environment, the user isn't redirected to the captive portal page, it simply shows no connection. In the past I came by some instructions on how to setup captive portal for Android, but haven't been able to find them anymore, but @NicoPage has also confirmed that it's just a matter of filtering some specific port 80 requests with a specific code.

Once these two issues are solved, we'll be able to get Pitbull working so we can test out broadband sharing.


Even without Pitbull working I'll already setup a few starting nodes without broadband access. I'm just waiting for some antenna pigtails to arrive. Some neighbors already have some poles to be used to put the routers on, so next week we should be starting with some nodes :tada:

App Ecosystem

The non-internet space is exactly the space I'll want to explore, although it's been hard to explain to neighbors how that would work. They would need to see an application running on an off-grid network to understand it's value. That's why I've been dedicating most of my time for the past weeks in getting an Alpha version of the Application Hub for mobile.

Although I've been keeping an eye on GraphQL since it's first announcement by Facebook, I'm pretty new to it. I've played a bit with it in smaller projects I've started, but they never really grew in complexity to really learn it. Now I've diving deep into the Apollo ecosystem, and learning some best practices when it comes to GraphQL.

It's still not a goal for the alpha release, but I'm starting to see a stable API emerging for both SSB and Dat emerging out of ssb-graphql-defaults and dat-graphql.

I've fixed many bugs that were present on the proof-of-concept and have been learning more and more how subscriptions work to get realtime messages.

I'll be working on integrating fraql which gives us better way of working with fragments for sharing logic across components.

One big issue I've found is with blobs. So here's a #n00bquestions for yall:

If I run ssb-blobs on the "server" and it gives me a blob, it doesn't make sense to send the whole blob, stringified for example, as a http response, does it? The only way I found of opening a ssb blob on react-native has been by using react-native-fs to open the absoluate path of a blob /data/data/com.apphub/files/.ssb/blobs/sha256/1a/d18b22e7c39284c902199f41e4fdc72a73f4539a78257bcdb251739761d735 for example. Is there a way I can get this path from a blob? Or is there a better way of doing this?

@mikey %xiHDQR6VfxSI/ev7e2KMgYHOv6nIp0sbRiJzk+qZqAc=.sha256

Is there a way I can get this path from a blob?

@Luandro: %FBQ8azw... :information_source:

@luandro %/M8b27szLRINPyG+6ZgWlJw3YXBKgHhpbfgeAnioPw8=.sha256

Perfect @dinosaur. Thank you once again.

@luandro %teRBIQia9FTnXsAJwc2vGo9xMSNkXfi9VG/TY3Hpy20=.sha256


Heyall, I'm releasing a pre-alpha version of the Application Hub to get some early feedback on bugs or must-have features.

  • Github release
  • Dat installer: dat://4027ee867cd727374dbda83a68ca5cf95926a68da0f706bf2b0e1060db95b1dd


  • Keeps automatically fetching application type messages from SSB
  • Download application using Dat
  • Install applications
  • Shows SSB progress and gossip

Keep in mind this application in meant to run on a community mesh network, making use of SSB's and Dat's local network discovery. So in order for the applications to load on the phone you'll need another device connected on the same network replicating either me or another user who has posted an application type message.

GraphQL Server

This app runs the open-app-graphql-server. You can test it out by cloning it and running the example server. Just navigate to http://localhost:4000/playground to view the available API in the docs and play with it.

To distribute a new application you can use the applicationMessage mutation. First create a new dat following the dat installer convention and share it using any dat client.

mutation Mutation {
  applicationMessage(input: {
    name: "Application Name"
    description: "A short description about the app"
    repository: "%n92DiQh7ietE+R+X/I403LQoyf2DtR3WQfCkDKlheQU=.sha256"
    datHash: “4ee6faa65d8d331ff98e307b58739506eb8bd8386e2ebf4febafcead0f624c19"
    appUrl: "com.mmmmm"

Thank you @dinosaur for all the help and @andrestaltz for all the awesome applications that have inspired this.

I’ll rest a bit on this and start polishing the LibreMesh configurations and pitbull code as the last pieces of hardware should be arriving any day now so we can start setting up the first nodes.

I'll be counting on some early feedback from those who have shown some interest in the project and those who are in a mesh to test it out :wink:

cc.: @bobhaugen @Lynn Foster @alanz @skysurfer @arj @benhylau @nicoechaniz @gmarcos87 @Nico Pace


User has not chosen to be hosted publicly
@luandro %d2dJqZwk52zSV3z9oB5MlisgUlQGK8tFXEOn6fKf8sY=.sha256


I've been waiting for a while for the final cables to arrive, and finally this week we've started setting up the first nodes in Moinho.


This is Aridi a good friend and neighbor, who despite having absolutely zero knowledge has a huge interest in technology, and has been dreaming about the mesh network along with me for at least a few years now. He is also eager to have a service so we can all share a better internet (pitbull) and also excited for the possibilities of community applications.

His house is also in an strategic place in the village center, and so it's the first place we placed a node. For the second node we chose a friend's house, which is located in the highest hill nearby, which will enable bridging many many isolated neighbors later on (including myself).


We were done setting up the node when it was already dark, so we just taped the box to a piece of wood for now. No tests have been made yet because we're still looking for someone in a city nearby to replicate the antennas for us. I haven't even installed the Libre Mesh firmware's since the last ones I've cooked seemed to have "bricked" the routers I've tried it on. I wanted to have pitbull pre-installed, but haven't been able to get that working yet.

We've started off with a group of 4 really enthusiastic neighbors. We're now all searching for someone that can reproduce the antennas for us, and I'm working on getting the firmware right.

It's finally happening :satellite: :couple: :two_men_holding_hands: :two_women_holding_hands:

User has not chosen to be hosted publicly
@luandro %48/nGNXCMfsI/pm8WYdqvLv0pNCT2Mqb5nOqKJJQYvo=.sha256


It's been a while since we setup the nodes, but haven't got to connecting them as we needed some more directional antennas. Finally we were able to get a bad replication of the parabolic antenna the guys from Quintana gave me and we put it to the test today. And it worked perfectly for our 700 meters link :tada: :satellite: :tada:


As suggested by Alter Mundi guys and gals, we found a strategic point, about 50 meters higher then the village center, where we'll use to bridge many places, including my own house.

I'll start taking note of our inventory, but it won't include many smaller things such as cables, poles, etc.

Used inventory

  • 2 WDR 3500
  • 1 WDR 4300
  • 2 parabolic antennas
  • 4 pigtails
  • 3 enclosures

Remaining inventory

  • 3 WDR 3500
  • 1 WDR 3600
  • 6 pigtails
  • 7 enclosures

Inventory to be acquired

The plan

Fase 1.jpg

In orange are the nodes we've linked today.

In red are some key nodes that we should try to bridge next.

In blue are the paths that we could link by using ethernet cables, as there are houses which are less then 100 meters far.

This is a rough plan of what our next steps should be. @nicoechaniz suggested that links that are less then 100m apart should be made by using ethernet cables. I worry that :zap: strikes will cause a router holocaust, as we have much :zap: :cloud: during rainy seasons. Anyone has any experiences with this kind of setup? Another alternative would be to use non-node routers repeating one another, but I'm sure there are down sides to that...

User has not chosen to be hosted publicly
@luandro %xaV4logX6Vi3mCjsHVvQFP6CW26rucKfDvwr+Tx6w84=.sha256


Thanks @nicoechaniz, yes we managed to create a support for it, this specific antenna was setup by my neighbor Aridi who is also learning all the networking stuff with me, so he didn't know about it but I did tell him and we're waiting for the next maintenance to re-focus it.

We acquired 4 more of our replica antennas, so we continued with our plan. We first put one additional router at our hill-top base, and connected it thru ethernet with the other router. Then we put one extra antenna pointing at my house 1.33Km away.


At my house we put one mesh node and an antenna pointing at the hill top. The link was a huge success, 100% signal quality. And now we have two satellite broadband gateways (me and Aridi) giving connectivity for 4 different nodes.

Fase 2.jpg

With our progress many villagers have shown interesting and are excited about the project. But in order to scale we need a broadband control system such as pitbull so that we can have the captive-portal showing the village map, and for broadband to be controlled at the device level, thru mac addresses. That is out of the scope of this specific grant, and I'll be joining forces with @Nico Pace, @nicoechaniz, @gmarcos87 and others from #cnsig to polish these tools for #communitynetworks.

Grant recap

It's been 4 months since I've giving this grant full dedication, and it has been a dream come true, I can't thank this community enough for this opportunity and I hope I've been of some use to you guys. I've started this project with the below goals, but since I've started I learned quite a bit more, so they will have to change a bit.

1- We organize essential ssb docs, make them easily translatable, and start with Portuguese

I've learned that for now it's a futile goal to translate docs since all developers have to have some English knowledge. So I'll work on as a starting point for non-english speaking ssb-users, instead of devs.

2- We create Mesh Kits with scripts and instructions for meshing single-board-computers and Open-WRT compatible routers on at least layer 2, for running ssb applications freely

I've learned that single-board computers aren't the more efficient or cheapest devices for creating networks, so instead I'll aim at creating tutorials (Mesh Kits) using routers with LibreMesh software (which can also run on single-board computers).

3- We create app seed to run on Android phones with the goal of being friendly for new developers using GraphQL and React-Native.

open-app-graphql-server is evolving and it can already provide a scalable ecosystem of plugins for GraphQL types for different protocol APIs. client-seed-mobile has also been evolving nicely and I plan to release a proof-of-concept of the first client apps based on it later this month, hopefully also incorporating some #valueflows APIs.

4- We create an app hub application serving as entry point to the ecosystem of applications and their repositories, for as easy as possible contribution even from non-developers.

Although it has to be tested within our mesh, app-hub-mobile has the basics ready, providing a Play Store-like experience for discovering and distributing the community apps that will be built in the future.

5- We make a social experiment in Moinho implementing the above and document the whole process of setting up the network and trying to include more and more the native quilombola people in the process.

This has been the biggest success, although we'll be depending on software that is out of the scope of this grant (pitbull) in order to have everything working as planned. The whole village is aware of the project, although not everyone fully grasps what it's true goals are, thinking it's just a cheap way to get broadband.

I'll be traveling to visit some caves for the next 10 days, and when I return I plan on finishing the grant during this month of August so that I can start dedicating more time to CNSIG. Hope you've all enjoyed the ride for now. It's not done yet and won't be done after the grant is over :airplane: :satellite:

@Anders %4ij7sa4ZQMII+v9o6jb36ghJHL7sA2GrC3hYgx/boaE=.sha256

Amazing progress. Lovely pictures, really great seeing real solarpunk communities :sun_with_face:

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %oCarFV9zd8V7bBVDB3mje6FNBzbxlpobw7UWGiwzloE=.sha256



I've been working on design for the past few days. The idea with it is to have a multi-language and easily editable (thru Github) portal to help users get into the verse. This is the first sketch:


I tried using as much SSB art as I could find around while trying to keep the design simple yet cheerful. I'm guessing the drawings were made by @Angelica, is that it? I made SVGs out of them in case someone wants em.

The user flow is quite simple. User gets a very generic overview of what SSB is and who we are. He can then choose to learn more and dive deeper. And finally the :cherries: in the :cake:, the applications, divided in simple categories: mobile, desktop and terminal.

User chooses the application he wants to download, and once clicked he's directed to the application's Getting Started page:


In the app's page we should have tutorials similar to for the application.

What yall think?

Mesh Kit

I'm also working on the design for the Mesh Kit portal which will have the objective of curating methods and tech for #communitynetworks and #mesh-networking. I'm starting to gather many resources from Commotion Wireless, Altermundi, Libremesh and others. In the end I hope the portal can serve as a guide for:

  • Planning and organizing the network with the community :couple: :two_women_holding_hands:
  • Building, installing, configuring and upgrading the mesh software :computer:
  • Finding, building and mounting the network hardware :satellite:
  • Networking :signal_strength:
  • Getting started with Open App Ecosystem for the community :iphone:

Open App Seed

I've also been working on the seed project for making it easy to start creating applications for the Open App Ecosystem. From the 8 OAE principles I gathered, there are a few that can be enforced thru code:

  • Interconnected: Plays friendly with the other apps, clear APIs and integrations

As all applications will run as clients, making requests to the App Hub GraphQL server, all the APIs will be easily available to all.

  • Quality User interfaces and code we are proud to share with the world

By creating components the users can re-use, we can already start em off with quality UI; and by setting good linting rules we can expect readable code.

  • Skinnable Easy for people to rebrand and reassemble

Using styled-components makes theming a breeze and with react-native-rename we can easily rebrand the app.

  • Platform Agnostic Designed to support mobile and web interfaces

With React Native and react-native-dom we can easily build universal apps for mobile and web.

  • Accessibility Support translations from the start and provide access for people who experience disabilities

By using linting rules for a11y and have a translation framework we make it easy for apps to be accessible.

App Hub Desktop

I've started working on App Hub for desktop. The idea is that it'll stay in the tray doing the same as the mobile version: acting as a server, app store and displaying network information about Dat and SSB. My idea is to have the apps published using ssb-webify so that it can be easily opened thru the tray. I recently tried using it and I'm getting strange behavior: Published dynamic ssb-web site: undefined (undefined). Any ideas @noffle?

@Dominic %sd8e4xZjwKQWK9GB2u4iH5jVHzn/MdbrHk3LACpJvwc=.sha256

@Luandro wow so shiny!

User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog %k3qwz9cWloGw8XF1rgwqH/B2acfDhXk2BX8kHjafyp8=.sha256

@Luandro this is beautiful! <3 <3 <3 <3

@luandro %zjRrolcAv1tF8kf+qpDacZZru9fA9dMoWb6StYuhW6I=.sha256


We're finally approaching the vision for the first experiment here in Moinho.

We don't have pitbull at proper working state yet and we're depending on a voucher system in order to scale the network, so I started searching for other solutions. I found a video in Portuguese teaching to setup nodogsplash with Libremesh. I contacted Bruno from coolab and he confirmed that that's the system they have been using on their meshes around Brasil and even pointed me out to a nice little cli they made to administer the voucher system they created called vale, which code-wise seems to be the precursor to pitbull and also to a nice tutorial in Portuguese on how to setup the system.

After following the tutorial a few times and a lot of testing I finally got it working :tada:


I put all the resources together into a single project called libre-portal, which contains some code that will eventually go into pitbull and in the beta folder all the scripts I created for automating setting up the nodogsplash + vale system, my fork of the system admin for the vouchers and the code for the captive-portal itself.

The system is already operating on our nodes around the village. We made a rough calculation of about 25 devices per 1mb satellite connection, which seems like a lot of devices, but we expect that they'll rarely be using the network at the same time. With this we can charge R$12,00 per device (about 3 USD) per month. And we can also leave the network open, essential for creating the community applications, which are the end goal.

We can't put large files inside a router, so in order to distribute the open-app-hub and and the community map applications we'll have to host stuff somewhere else within the network. That's exactly why I got the Rock64 as suggested by @DarkDrgn2k many months ago when I was starting to learn about #mesh-networking. And so, voila:


This is The Super Node, a Libremesh router with a computer screwed to it :muscle: I've spent most of today experimenting on how to serve content over the mini-computer, which opens up a huge array of possibilities.

The next steps is to get scuttlebot and dat running on the mini-computer and thru it publish the messages and the applications for the App Hub to distribute them, which should be :cake: with the graphql-server. Since it'll always be online, as soon as people install the App Hub they'll sync with the Rock64 thru local-network discovery and get the content and applications via ssb and dat.

After that, the most fun part: actually building the apps. The first one will probably be for better organizing and controlling broadband sharing. I wanna de-centralize it from myself as much as possible as soon as possible. @bobhaugen and @Lynn Foster have been helping me on how to better understand valueflows and how to apply it with this broadband-sharing organization. It'll be essential as one of the main goals of this whole project is to strengthen economic-resilience for the community, and VF could really help us build and manage our economic circles.

Another app I wanna build is the most essential of all apps: the chat app. I plan on exposing cabal-node over GraphQL and learn from cabal-mobile code. I will automatically connect all users to a certain hash, and have pre-created channels. I chose dat over ssb for chatting because of privacy reasons. Not sure it was a smart choice.

We're getting closer and closer to having the SSB on-boarding process becoming a breeze for the local community here in Moinho. Can't wait to see the first tests of #open-app-ecosystem running in the mesh :grin: :pray:

User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@luandro %8BPA+SMuSlUHMIYLdvqeD448vD2+l85XFg2eSWzXLLs=.sha256

That's only for the first 15 or 20Gb right @Aran? It lasts about 2 or 3 days, so we don't even count with it. Still that's a lot better then what I'm getting here, R$270,00 for 10Mb for the first 15Gbs and 1Mb after that. Still it's the best we can get here.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %CKe/VhC5x49JIAljKbQqek9Miij924joQx6x8BBwX84=.sha256

So far so good @DarkDrgn2k, but haven't really started messing with it yet. Soon I hope...

@luandro %xxNZD6sKxOzS+9Tnf7GIMg2g0l/HFG1fcAWeqhKpHfA=.sha256



On the airport once again, this time an expected surprise. @nicoechaniz invited me last week for the Community Networks Summit happening on Buenos Aires tomorrow, and for a hackaton in #quintanalibre happening after the event. We'll be working on #librerouter related stuff, hopefully getting the pitbull broadband sharing system working. Much more then that, like my last trip to Quintana I expect that it'll be a life changing experience, and will make the development of our network in Moinho give some quantum leaps.


For the past few weeks, since my last update, I've been working on getting the application seed ready so we can actually start developing some applications for the ecosystem. I abandoned the last repo which used react-native-web and started a new one from scratch using react-native-dom which has been working beautifully for building universal applications. I've also started working on app-hub-desktop for the web apps to run from.

I'm really excited for the development happening around #scuttle-shell since it's really necessary for the ecosystem to work.

I've also started working on the GraphQL plugin for cabal-core so we can use it with the open-app-graphql-server and have an universal chat app, which is the ideal application to start off the ecosystem. Hope to get at least a working prototype in the next few days so we can test it out on the hackaton in Quintana.

Time to get onboard, cheers and love u all :purple_heart:

@luandro %h6kTxUIqNDvpKRNLzVpP+/THN1LBkCKnzhu/EMPDxGY=.sha256


After the Latin American Community Networks Summit @nicoechaniz invited me to join @gmarcos87 and Santiago (a guy working on building satellites) for a brief hackaton in Quintana. Our goals were to work on software that will be built-in to #librerouter as it's premiere gets closer.

San and Nico were able to compile new Libre Mesh firmwares directly from OpenWRT, which enabled us to build with it's latest versions, and become less dependent on the lime-sdk which has only one maintainer.

In the mean time, me and Marcos were working on the FirstBootWizard which is basically the easiest possible way to start a mesh with a fresh LibreMesh node. It scans around and tries to find other nodes, in case it finds em, the user can select which node in the mesh is wants the new node to copy configs from. In case no nodes are found it gives the user the ability to setup new configs directly from the Lime App, which is a user friendly application that comes bundled with LibreMesh.

After we got the basics of FirstBootWizard working, we worked for my last few hours in Quintana in the captive-portal software Pitbull, which is in the process of being rebranded to Piranha, as it enables a swarm of packet eating nodes. This was probably the most requested software from the community networks that were present at the summit, and as I've mentioned a few times before, it's a must for our mesh in Moinho to scale. It serves a few different purposes:

  • Shows a captive-portal to newly connected users, which is necessary for a community to promote local content, and in the case of Moinho, also to promote local cultural spots to visitors in a map
  • A voucher system so that neighbors can share cost of bandwidth
  • A Quality of Service system with traffic shaping to stop non-payers from sucking all broadband, but still letting those who can't pay have a bit of connectivity

We already had some parts of it working from the last time I was in Quintana. This time, although we did very little work on it, we were able to get a better idea of it's structure and what's missing for it to function as it should. Hopefully we can continue working on it remotely.

With these new softwares the Mesh Kit tutorial I proposed starts to become meaningless, as creating a mesh is becoming very intuitive thru FirstBootWizard and Lime App. So in a very near future starting a mesh will be as easy as downloading the LibreMesh firmware, connecting to your node and going thru a few easy steps to customize the network to your communities needs :smile:

Happy meshing everyone :satellite:

Next step is to lift the Open App Hub from prototype level. This includes getting SSB to work properly with the UI; updating GraphQL and GraphqQL web-socket transport; and building the first apps for the ecosystem: a cabal-chat made for communities and the simplest example of a #valueflows app to get us started with the power of economic apps.

For the past few days I've been observing thru WhatsApp the people in Moinho having serious discussions about the use of our watershed, and it's become a full mess with people taking some opinions as personal attacks. While in the round discussions in the summit, I came to the conclusion that UI's are also political forms of expression. So designing a simple chat app, with a UI/UX that permits proper discussions within a community might help enabling better organizing.

@luandro %nwjP7kUvaQF0QeOr957k2Bfiz/GtvYEYW9Raxf/LnFU=.sha256


Finally back online :globe_with_meridians: after dwelling with electricity :zap:

This weeks lesson was on how not to do things. The night I arrived back home I noticed the network was working. I hadn't payed the internet bill hoping I could negotiate it at a lower price, so I got cut off. But with the mesh I could start using my neighbors connection until I managed to pay my bill.

The next morning the network was offline and I was all pumped coming back from the summit and hanging out with all the hacky guys from Alter Mundi and meeting the really awesome guys from #coolab, @Troian and @Hiure (who is who went the Wapichan mesh gig @noffle posted about and I dreamed so much with). So I decided to go up the hill to check the network at the backbone nodes who connect me to the center of the village and also serves a access point to two families who live there. That's when things started going bad.

When I got to a first house, that hadn't visited before and was installed by my neighbor Aridi, I couldn't get any decent read from any AP, so I brought the node down. Next I went to the very top where the backbone nodes are, and I couldn't simply reset them or tell if they were turned on. And so it took me a while to unbox them and see we didn't have power. I took both the routers down, went to the house where power came from and it was badly plugged to the wall :unamused:

The sun was unusually hot, and it's a long and steep walk to the top. I'm not sure what happened when I got there that I decided to test my electrical skills, which had been just acquired by getting my home's solar setup working. So I chopped off the wires that connect the router's power directly to the house by a 70m cable. Went back down, updated the routers to a new OpenWRT v18 build we're testing, and back up...

:fire: :sunny: The sun was again hot and the walk steep and the routers at a terrible place to work. I rejoined the router's power supply to the cable with a hight fusion tape, and screamed so that they would connect the power to the wall, it seemed to work at first, so I put them back in the box and re-tied them to the wooden pole with wire, really badly as I couldn't take the heat anymore.

When I got back to the home they said it all went :boom: :zap: :dash:

Long story short, just last night I was able to finally go back up to the hill with Aridi and find the terrible short-circuit I had left when joining the wires. We fixed it and everything is back up.

It wasn't in vain. I learned better wire joining after short circuiting my solar setup a few times before getting it right with the help of a friend. And am now losing fear of electricity and starting to respect it.

@luandro %tgj1LNLoavjk5WWFmuwd6WwY9/UPYgvN1yYEZV/cXrM=.sha256


The mesh has been down for the past few weeks. Rainy season started way earlier then expected and our wooden pole setup wasn't handling the winds. So I finally got some iron poles that we cemented to the ground. A heavy rain started the moment we finished pouring the cement, and we never went back there, since my neighbor has been traveling since. I'm hoping that it didn't turn into a total mess and is now well held.

It's been raining a lot, which has held me back a bit, but I feel it's time to get back to the field and re-structure the mesh with the new equipment we got paid by some neighbors who want to get in. This is my new plan based on our resources and points of interest:


The only nodes in operation are Aridi's and Bete's, which are connected to each other, and have been even before the mesh started. I've introduced Aridi before, he's been my helping hand so far, but now he got a steady job outside of Moinho and won't be able to help me as regularly. Luckily Felix, who lives right below the hill back-bone, has been getting pumped about the network and has been helping me more, as he's connection will depend on it. He's the one traveling, but should be arriving any moment, and we'll get back to action.

I've been helping Susi to try and get internet for a while. She moved to a new home, and would very much get into our network and has even paid for her node already. It's a big challenge since she's a bit isolated from the rest of the nodes, but her house is in a point of great interest, because it's the entrance to the village. Leo, who is who introduced and welcomed me to Moinho and also has been helping me build my house, is going to start with a satellite plan. Now I just have to convince them to share with each other, and convince the Hostel to let me put a node to act as a bridge for them.

Eddy's bar seems to be the only home in that street that we see from up the hill. His brother who lives next door, and some of his other neighbors have also shown interest in joining the network. So it would be a perfect point to connect to.

I've been working a lot to get the captive-portal working in order to better manage the whole economics around broadband. But have been hitting on a few problems that I'm trying to figure out with the guys from #altermundi. After we get it working I'll focus back the #open-app-ecosystem as we'll have a point of entry for the ecosystem. I'm eager to get something working with #valueflows and at least a simple #cabal fork that has better UI for group discussions then Whatsapp, which has been a big problem for neighbors who are trying to organize themselves around a water issue in the village.

That's it for today, I hope next post will have pics of the actual nodes being setup and everyone getting connected!

Happy meshing :satellite:

User has not chosen to be hosted publicly
@luandro %7yJ0jpIDu3epRD06/R47jxnLwE/taRpevh2xc0PquAI=.sha256


:umbrella: :droplet: :zap: :umbrella: :sweat_drops: :zap: :sweat_drops:

This year has been by very very far the most rainy of all rainy seasons I've spent here in Moinho. That's great, since there has been a lot of rivers and springs drying out all around the Chapada dos Veadeiros region (I'd guess it's a world phenomenon).

But all this :sweat_drops: has proven to be a challenge for our network. We're still in the beginning of the rainy season, and we've already lost one router (WDR 3500) in my house because of lightning and three router power supplies around the village due to water on their circuits.

So to counter the power supply problem, my partner in networking and Moinho native, Aridi, created this high-tech gig:


Basically a bottle cut in half, with the power-supply inside, sealed with silicon where the wires go thru. It's been on use for some time and taken a lot of constant rain, and we haven't had a circuited power supply since.

A while ago we installed our retracting pole gig on the hill node, which serves as bridge to most of the village:


It's concreted about 50cm bellow the ground, and is about 3m high. It also shrinks to about 1.5m for maintenance. It's been up for about a month and has been a great success.

With a firm and stable backbone we were able to install one more node in one of the main streets of the village, where a lot of people have shown interest on joining.


With this new installation we have secured nodes in main points of the village, making expansion now easier. But for us to expand we now definitely need a captive-portal solution to control access, and provide a door for community interactions and content, otherwise there's no incentive to join our network for those who already have broadband.

We, from the #libremesh community, have been trying to build our own solution that's more adequate for mesh networks then nodogsplash, which was pitbull and just recently rebranded to piranha. @nicoechaniz and @Nico Pace started working on it, then me and @gmarcos87 tried finishing. We got to a point that it worked pretty good within a node, but didn't work on other nodes in the network. @Hiure who's also very excited to get this working, has been helping us a lot with testing. He went to Europe for the Internet Governance Forum and is now visiting communities such as #freifunk in Germany and Aurea Social in Barcelona. He got some experts to help us out, and found out that we have a problem with the layer 3 software we use in our stack: bmx. Quick solutions would be to discard layer 3 meshing or to use babel instead. But the Libremesh stack is pretty solidified and I believe such a change isn't so easy to make.

So we've decided to take a few steps back and go back to NoDogSplash in order to begin experimentations. I'll keep working on the same repo, but now on the nodogsplash folder, on scripts to easily setup and administrate the captive-portal and the voucher system. I had most of it working a few months ago, but my installation script has been crashing my network on my last tries. I'll investigate it further with the #coolab and #altermundi gangs and hopefully we'll have something decent working soon enough.

This has been going on for 7 months, and it still hasn't achieved the initial goals of enabling easier on-boarding for local communities. It's a big challenge since most people don't have any connectivity, so the first quest has been for a way of achieving that in a more decentralized/distributed manner, which got me to #mesh-networking and the beautiful work on #communitynetworks around the :earth_americas:.

Once people gain access to the internet, the next big challenge is for discovery, as people usually only stay on the Facebook/Google islands. The captive-portal will serve as a door for community content thru client applications running on #distributedtech such as SSB and distributed hash tables; with a single and meaningful purpose for the community as outlined in #open-app-ecosystem; and running on a mesh infrastructure making it resilient even if the internet itself goes down.

We've been trying to solve this last problem of discovery so we can move on to the next stage which is conceptualizing and building these meaningful community apps, and where the real on-boarding of locals from the community and the real fun starts.

The adventure continues... :rocket:

@kas %Q9LMpObokGvF+hw8RqV6znjv3hcANtP70olW7vYv4WE=.sha256

@luandro, I love reading about this project – it's very inspirational!

User has chosen not to be hosted publicly
User has not chosen to be hosted publicly
@Anders %06uZXpZtMbgc/woQByM+V3Yasq0yXMJDuYfxTNzLzOc=.sha256
Voted # 25-11-2018 ## :umbrella: :droplet: :zap: :umbrella: :sweat_drops: :zap:
@Anders %oso5a3k2YASfrDf3ducNMdwJDdZ6lHSud95tdqefxao=.sha256
Voted @luandro, I love reading about this project – it's very inspirational!
@luandro %evXjyMga8LpldkVGUfC5Hy6kyymm8JN+aftrQjkUuFk=.sha256

I remember well when you thought me the relation between gain and the pigtail size on the rooftop with the LibreRouter @gmarcos87, but thanks for the remimder :smiley:

Unfortunately we only have these 1m long pigtails for now. Hopefully we'll acquire the proper tools to make our own in the future.

@Jacob (desktop) %PwlJJk+/iT7YdI36F06sWURka87MNumIb2W+t8id4oA=.sha256
Voted # 05-08-2018 Thanks [@nicoechaniz](@N9GOa3OFLzBRhtzxynQWA1BQTAiky/xNTApzFF
@Jacob (desktop) %EMz/4ebvaKRo7/t1NyP1/1OGJX6SI9QBgkEZKCMHOfg=.sha256
Voted # 05-08-2018 Thanks [@nicoechaniz](@N9GOa3OFLzBRhtzxynQWA1BQTAiky/xNTApzFF
@Jacob (desktop) %D4W0yXlnAyekkT8CBrCGuPYByKA6091b1wNu/lOc6Ik=.sha256
Voted # 05-08-2018 Thanks [@nicoechaniz](@N9GOa3OFLzBRhtzxynQWA1BQTAiky/xNTApzFF
@luandro %aP/1pU6hNoD2KEbt/m1BBdQwdb4RaTtkwie/4m+DdtQ=.sha256


the mesh

The mesh had been on hold for about a month while I travelled. A few days ago things started happening out of a sudden.

First, without any help my neighbor Aridi was able to bring the network back alive. I was pretty surprised and very happy that things are starting to decentralize from my being.

Second, while I was walking back to Moinho I noticed that people were working on a tower that had been up for a while. It was the guys from a new provider that worked with a fiber connection, and they were putting up antennas directed at Moinho, with a clear vision to our backbone node.


They weren't very friendly, specially the boss. Answered a few questions, and didn't like it when I talked about sharing broadband. It's a great opportunity to get a better broadband service, but while talking online with the boss he warned that they would block the service if they found out it was being shared. He has been overall a big ass hole, and hasn't shown any sign of wanting to cooperate with our network.

I got in touch with the #communitynetworks organizations to figure out the situation. Guys from #coolab here in Brasil pointed me to a few legislations and said it's illegal for them to block service. @nicoechaniz also offered me some really good advice, and pointed out that the most sustainable solution would be for us to make our own link to town, and buy fiber directly.

Me and Aridi talked about the possibilities and decided to buy a 10mb residential plan and share it in our network to start off, despite the warning. We also decided to start investigating on what's needed to get our own infrastructure and how to finance it. I was surprised that Aridi suggested #micro-credit as a way, and I think it could work.

This is the current map of our nodes:


We currently have 6 nodes, serving 8 homes with two 1Mb satellite connections, which is terrible quality. With the new broadband service we have the possibility to expand to the whole village but we could have our service blocked for sharing. The legal road would be to buy a dedicated service, which is about 3x the price of the residential plan, and get a license. But I'm still investigating the legislation to understand it well.

economic network

I'm thinking on experimenting with some community methods for economic organization even without the proper tech, starting out on WhatsApp groups. That'll buy us time until we can get a proper captive-portal solution working on the mesh, to make the discovery of the applications possible; and to actually conceptualize, design and develop the applications as well.

The first method I'd like to test out is the one shared by @Modante here, on creating and managing a community #timebank with WhatsApp groups. Such experiments should serve to test out the methods, so that we can refine them into #community-first applications.

@luandro %cuYnT4efhOdweyh9JWAaYAGH++gS37YBhE8Pj/7fB+U=.sha256

:red_circle: correction

Looked into how to connect to fiber in town, and it seems such thing doesn't exist. Both providers we have bring broadband from about 200Km away thru radio. So our dreams of connecting Moinho to fiber with our own infrastructure aren't possible yet.

User has not chosen to be hosted publicly
@luandro %BLi08jmXU1RmhKtuWkeJ+M0eF42mMPXfA/VNKrAxy2c=.sha256

That's what we currently have @sam_uk, but doesn't scale at all.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@luandro %piULASGm3ZaUmANM9+TFQZipHR3G9SzPcBTfQ9ArpIU=.sha256

That's good to know @Nico Pace.

@sam_uk, I've got a Rock64 laying around exactly for things like that. On the last Community Networks Summit we got together and @gmarcos87 installed pi-hole on his Pi, haven't heard about it since.

Would doing QoS on the routers be a good idea so that the network doesn't get clogged by videos (Youtube, Nextflix)?

User has not chosen to be hosted publicly
@Christian Bundy %nTgbB+mvDQcYwPQqfbO0DOi0J42VnVYOUGOdOX4ziuQ=.sha256


Do you have any plans to put up your own tower? I've been talking to Florian from Growing Tower and he's been working on a building technique that lets you build strong towers without ladders or cranes. Maybe useful?

@luandro %4tqQr86+Rc823J4mUIUnD8pVVSRHum+rWEOPa3wx4hM=.sha256

We have definitely thought about it @Christian Bundy, although we're not so sure where we could get a connection from. I'll take a look, our small backbone tower desperately needs some upgrading for it to resist the rainy season.

@Christian Bundy %rrWdCUgTWXR2htGXtXJAkOIzMXs2bKVvAophI+BDpv0=.sha256
Voted We have definitely thought about it [@Christian Bundy](@+oaWWDs8g73EZFUMfW3
User has not chosen to be hosted publicly
@luandro %Ld7X8KGYY1ValDZsKYkDVGXg0cVZUkoZf7i2OeZqMNU=.sha256


Been a while I last did an update. The past weeks have been pretty exciting for us here in Moinho with the visit of @markitos. Moinho is now the test bed for some of the most awaited softwares in the #communitynetworks scene, that me and Marcos worked full time for over 2 weeks, while rain pored outside.


We've been working on FBW since my last visit to #quintanalibre for the Summit. I've talked a bit about it here, but it's basically the easiest way possible for anyone to get a mesh network started. Basically it scans nearby networks, lets the user choose which one is the network it wants the new router to join or creates a new one. The software then sucks the other routers configurations, and applies a custom name for the new router.

Marcos has taken it far from where I left off several months ago, and so we could put some finishing touches on it now. There are some advanced features we need to work on it, but the basics have been successfully tested.

We've built it as part of the #librerouter project, so it's going to be part of the firmware shipping with it. But it also works any router running #libremesh, as long as it has 5Ghz for now.



This has been my personal most awaited meshing software of all times. A captive-portal solution that works on the mesh has been long overdue, and it seems that my personal need has fueled the development and finally a beta software. Many were involved in building this including Marcos, Guido, Gio, @Nico Pace and @nicoechaniz. I've experimented with nodogsplash before, but it proved to be buggy within mesh networks.

While I last tackled last year, Marcos and Gio (core Retroshare and Libremesh dev) have been working on an amazing solution to share data amongst mesh nodes. With this new shared-state software, and the Pirania-hooks Marcos built for it, people can walk around the village and will have access with their vouchers anywhere where there's network.

A captive-portal has been such as big blocker for me because it seems like the best way to provide discoverability to the local apps I'd like to build using decentralized protocols and also to provide visitors with some relevant information about the village, as drawn in my year old vision for the mesh:


Internet provider

We contracted 3Mbs of bandwidth, which is 3x better then the current 1Mb we shared amongst almost 30 people in the mesh. My initial speed tests have showed 16Mbs download speed :scream: I don't expect that it'll stay that high, but it proves that they can deliver such speeds, which means we could provide internet for the whole village over our network.

Providing internet has never been my personal goal for this project, but it's what everyone in the village expects from it, as local content is still something unknown to them. So this is an important step for them, and also because it means the network can finally expand more, as we've been limited by the 1Mb satellite provided us with.

Community Server

I've had the Rock64 laying around for a long time now, but haven't really put it to use. It was thinking about a community server and the Kayapo project that really got be hyped about working with it again.


I've been starting a bunch of repos such as community-server, community-server-ui and many more for apps that will live in this #community-server-ecosystem.

Guido and Marcos helped me setup ZeroTier and to point a public IPv4 to my community server. With that, anyone who visits will be directed to my local server :tada: How cool is that? Another huge advantage with that, is that now the server has become a point of entry to my local network, so Marcos and other devs can ssh into any of my nodes to help out with maintenance and to check how the beta softwares are running.

I'll spend the next months working on this ecosystem of server/apps for both Moinho and the Kayapo project. So I'll probably write a detailed post later on going more in depth of how it should work and the reasons behind it.

@luandro %cx52pGBgEyN68ckXNxOALAvqx82/kyNtiHDgqOYUp6c=.sha256


First gathering :two_men_holding_hands: :two_women_holding_hands: :couple:

A few weeks ago we had the first gathering in the neighborhood playground. Was really small, with only 3 people representing each of their nodes, a representative of the Quilombola Association, which I invited, me and @Isabela, and one extra women which was interested in the idea.

The community network's governance is still very tied to me and Aridi, so the intention was to let everyone know that they can get involved as much as they would like, and that all decisions should be taken in meetings, that we'll try to have regularly.

Another topic I brought was that we were invited to collaborate on a project to seek funding with the Mocambos Network, whom @befree is a core contributor. While he was here for a couple of days visiting we drew a plan on how to connect Moinho and Vão do Moleque, a very very isolated Quilombola community that they've connected to the internet thru a series os epical links. Everyone here in Moinho was excited about the idea of strengthening their bonds with the other community thru digital communication. Some of the possibilities that came up during the discussion was on trading goods, since they also produce many organic goods; rescuing ancestrality as a few families here are decedents of these other more isolated communities; and building an Quilombola network infrastructure with multiple gateways, making for a more resilient design.

Politics :fist:

I'm personally completely disconnected from outside news, most specially national government dramas. I believe in community sovereignty, so local political dramas are what matter to me. Lately the Whatsapp neighborhood group, which was usually for people trying to get rides and helping each other with small favors, has been the stage for major political discussions regarding the village.

An USA expat whose been living here for many years, has suddenly decided to take action on his own for things which should be part of the commons, such as our watershed and security of the village. I personally know very little about him, as most of his relations are only with his employees. The only time I met him he tried to get me to work for him. That kind of people scares the shit outta me, wanting to control everyone with the idea of "helping" thru capital flows. One of his employees is known to be the mayor bootlicker, so he has direct contact with the local government.

Long story short, the whole thing is sort of a mess, as only outsiders are part of the discussions, which happens thru writing, and the natives won't take the time to read the long texts; and small favors are lost amid the long discussion streams. The good thing is that we started having local assemblies, which are still kinda segregated amongst small groups, but are slowly uniting into a try community assembly.

It's the perfect opportunity for presenting an alternative digital cipherspace for the discussions to happen. If I just changed the caps in both Patchwork and Manyverse, they could be a good alternative. The perfect solution, as for indigenous people, would be a sort of walkie-talkie, where verbal communication is the main medium. Imagine small bits of encrypted audio files being shared thru SSB :open_mouth:

Network :satellite:

I finally learned how to build the latest LibreRouter firmware, which comes bundled with Pirania and FirstBootWizard. Unfortunately shared-state which is responsible for gossiping pieces of data around the mesh nodes still has some bugs when working with Pirania, so the captive-portal has been set off for past weeks. I'll get around to debugging it together with @markitos soon.

The network has been acting very weird lately, and thru my tests I believe the wind may be the cause. So we've started putting up a cement pole to stabilize the hill backbone node. Waiting for a neighbor heal from a cold for us to finish it, pictures soon.

User has chosen not to be hosted publicly
User has chosen not to be hosted publicly
@luandro %6B2I+HeRQsepTaoLRsnOdwWQXF6zqUiDlXV2xA/TUHE=.sha256

Should actually be


Time flies too fast for me to keep up with it.

User has not chosen to be hosted publicly
@luandro %4dMx+cnLHtpqMH5olQ8GCSL12yAl0Y5bqep9CcpXhIA=.sha256



The concrete tower has been erected! :tada:

Had a problem with the node in the tower for the first two days, but everything was back to normal after a firmware re-install this morning. It's really windy now, and at seems the connections has stabilized, but I noticed that Aridi's node is unstable due to the wind. So that's one of the next challenges to tackle, but this operation has been an overall success and milestone for our project.

The connections still aren't the best, relying mostly on the 2.4Ghz radio for two important links, which is not ideal, and is slowing the bandwidth down. Ping on the gateway is at around 30ms while in the tower node it's at ~350ms, varying a lot.

But as long as the internet is stable enough, people will be happy. I'll update all the nodes with some latest updates to shared-state, and try our captive-portal voucher system once again. If the bugs start happening I'll have to take down the vouchers and put passwords on the routers, until we solve the issues.


We also had an interesting community meeting about our watershed. Such an assembly hasn't happened since the first year I was here, over 5 years ago, when the state wanted to build a sewage system and throw the waste at our river. We succeeded in stopping the project, but the meeting was really a shame, since the topic was forgotten and small personal issues took over the discussions.

I feel a revival in community union is happening, and information was talked about as key element. Although most are aware of the community-network project, they still haven't made the connection to how it could help with that. Let's give time some time.

User has chosen not to be hosted publicly
User has chosen not to be hosted publicly
@luandro %bA+H5lQ0SKbc0oXv1EKslJiiwwznzGD5Vl3VY4VIZVk=.sha256


Has been an intense week with the network, trying to get it to stabilize :signal_strength:


Even with the concrete pole, we noticed that the link between Aridi, who's the gateway to the internet, and the hill was unstable. We we put a thicker and much shorter pole at the highest point of Aridi's house, which is what we should have done from the start. With that the connection finally stabilized despite the wind :wind_blowing_face: :signal_strength:

The next problem we found was that the hill node was being turned off every now and then, so the problem wasn't one of signal quality alone. Went up the hill to find that the router was turning the wifi off by it self. LibreMesh is going thru major changes in architecture right now, substituting bmx6 with babel, and using shared-state, a sort of gossiping protocols for mesh nodes, so I though it could be a software problem, although none of the other nodes running the same version had this problem. Since we had a spare router, I decided that would be best to change the router itself, so me and Dura went up there to change the a WDR3500 for a WDR4300 :satellite_antenna:

Final challenge had to do with our energy. I had short-circuited the long wire from the house of Felix, a good friend and collaborator to the network, so we had to ask an untrustworthy old guy, who lives right next to our hill node, to use his electricity. The network had been going off everyday, so we found out he was leaving the house and turning the energy off. So Dura, another collaborator to the project, and Aridi went up there and put and isolator making our energy independent from his. So far so good. We've been thinking on a solar setup, but it's still very expensive here in Brasil, so Dura suggested we put a car battery and make it charge with grid-electricity. That way even if electricity goes down for a few hours, the node won't get turned off. Is there a controller for that? :electric_plug: :zap:

The network has finally stabilized, so I can to back to testing Pirania once again, since I had to turn if off because of a few bugs. With a more mature shared-state hopefully we can get our captive-portal and distributed voucher system to work!

User has chosen not to be hosted publicly
@Gordon %pg/XYXTku70tToBzYeQr1gg552k4g4oYa4lMrrzGi58=.sha256
Voted # 20-06-2019 Has been an intense week with the network, trying to get it t
@luandro %oiu+AQlfHToT0DfoQXzwEmHiWV2BRohJAooft2vBPrE=.sha256



Current status of the mesh right before the workshop. The mesh has been really unstable, so I'll go to Aridi's house to be directly connected to the gateway. @bobhaugen helped do some quick tests, and we think we can make this work.

User has not chosen to be hosted publicly
@luandro %9d/YBHAbzU8LQPRMFxm1QjgGeJNd6TmtfJjBONbzUOc=.sha256


Since the last update we've been enjoying a 10Mbs radio connection, but as the map indicated, most of our links were still very poorly made.

Alte Mundi guys had thought me that cable links are the best option if distance is under 107 meters.

Our friends @Luana Marcelle and Felix had bought a 300 meter reel, and we've been holding out on using it, mostly because I suck at crimping the cables. But as Thiago moved back to the village a few months ago, and he's amazing at crimping, we started thinking on how to use the cables to fix some of our links and expand the network.

We moved dino node to a taller house next to his, belonging to his brother Edi, where we have a great line of sight to the hill tower. Within a couple of days we rolled out 130 meters of cable, connecting the newly moved node dinoeedi, passing thru the houses of two new contributors to the network using normal, non-flashed routers, and finally connecting to jesse node, who previously had no decent route to a point-to-point connection.

I plugged the Ethernet cable on jesse node's wan port, and it took me some time to realize how that completely messed up the network, as the node starting broadcasting it was an exit to the internet. Every now and then I had to keep restarting the nodes so that they would eventually find the right exit thru delvaearidi. Bothered our weekly #ahau meeting a bit. But was an easy fix.

The next challenge was adding an extra DIY dish to amplify the signal from the hill to the dinoedi node, now responsible for providing it's whole street with a route to the gateway. Me and Dura went up to the hill, and tried adding an extra dish to the pole we already had in place, but it really didn't fit. Without an adequate plan we stacked them one on top of the other, resulting in lots of interference on one another. Links which had been previously tuned already were messed up again. Our Scuttle-camp 2 meeting suffered a bit from this mistake, @mixmix was very patient in letting me know when I got cut off the call, which was very frequently.


Today me, Aridi and Thiago took the time to go up the hill with a plan and the will to get everything fixed. Using an arm from a broken wheelbarrow that I had laying around, we were able to fix it to the tower and finally fit all the 3 dishes without interference. Thiago had the brilliant idea to disconnect all the antennas, and tune each one at a time, since there's no way to get readings for each individual antenna. With that we found out one of the antennas was damaged. Another easy fix, and this is how our hill node looks like now:


Pretty #solarpunk huh? 😆

It's a single tl-wdr4300 router, with each of it's antennas pointing to a specific node in each of the three parts of the village that we have our collaborators so far.

With these updates, this is how our network looks like now:


Mostly all green 🎉 📡 🎉

Captive portal

The next big challenge we're facing is with Pirania, our captive-portal solution, which is still a headache for most users. Based on the experiences we've had with it for the past few months I'm slowly working on bettering the whole system, and incorporating it's UI into Lime App, with some network governance indicators to give transparency to the network.


Next week the second edition of the Latin American #communitynetworks Summit is happening in Colombia. Time goes by so fast, and I'm pretty excited to meetup with some amazing people from movement again, as the first edition was incredible.

Hope to meet you once again soon @Nico Pace!

@mix %S/tEPIMxD2LA09JL2rFrEqFfw6jlCZy8wpXqu1s6AZY=.sha256
Voted # 15-09-2019 Since the last update we've been enjoying a 10Mbs radio conne
@Gordon %RlvJCttWlM4ZY/S/F+Mr/tJyF2tTONeyDLpugjb7pQE=.sha256
Voted # 15-09-2019 Since the last update we've been enjoying a 10Mbs radio conne
@Linas %pBhr5a1o2crXkO0xapEKsL5UVkcOfm8VSftzxU6hcfs=.sha256
Voted # 15-09-2019 Since the last update we've been enjoying a 10Mbs radio conne
@luandro %4pyb7h1Awfl5VgvO7tMqOHr6P9T8+dcMMTj6kYhT/8g=.sha256


With the last setup, using a wdr-4300 and a parabolic plate for each of it's antennas signal strength for every connection showed good measurements. But slowly we began to suffer connections problems. On this year's Latin American Community Networks Summit @ctrlTroian explained to me how a device with a single 5Ghz radio couldn't handle such task. I then realized the importance of MIMO that @markitos had explained to me long ago but I had forgotten.

Libre Router to the rescue

On the Summit #altermundi handed me the first of six Libre Routers that Moinho will get to test on and report. As soon as I got back home, me and Aridi went up the hill to setup the #librerouter and test how it would compare with the tri-plate setup.


The Libre Router comes with two 5Ghz radios and one 2.4Ghz radio. It ships with two external MIMO sector antennas for the 5Ghz radios and an internal sector antenna for the 2.4Ghz radio. All 4 pigtail connectors come with it, and they're a bit different from the ones we use with the TP-Links, so both me and Aridi thought they were all broken at our first try to hook them up.

The casing is weather-proof, and made from re-purposed casing from other commercial hardware, so it's not as good quality as an usual commercial weather-proof router such as a CPE 510, but good enough to keep it safe and makes it cheaper.

We can power it either over POE or regular power supply, accepting 12-36V. I used the 4300's power supply, and it worked perfectly.

Check the official website for full specs.

I wasn't used to dealing with multiples channels, as I've always had a single radio on each node. So it took me a while to get into the mindset of operating on different channels.

From our initial tests on the top of the hill it seemed one of the 5Ghz radios wasn't working properly. So we took it back down to analyze, and left a single antenna connected.

Amazingly that single sector antenna with it's 23dbi gain was able to connect three different parts of Moinho in a much more stable way then the 4300 and it's plates.



A friend donated four CPE 510 v3, that had just recently gained Libre Mesh support on my request and thanks to @SAn, @moacir and @Hiure. They each have a 5Ghz MIMO radio and weather-proof casing.

Along the year we've gotten many donations from collaborators from the community and also from external friends such as @benhylau, who donated a bunch of cool toys for us after #dweb-camp.

Here's a list of what we have available to play with, besides the nodes we already have in place:

Point-to-point 5Ghz

  • 4 tp-link CPE 510 (Libre Mesh compatible)
  • 1 Ubiquiti Airgrid M5 (not compatible with Libre Mesh)

Dual-band Libremesh compatible 2.4/5Ghz

  • 1 tp-link wdr 3600
  • 1 tp-link wdr 4300
  • 2 water proof enclosers

Acess Point 2.4Ghz not Libremesh compatible

  • 2 tp-link 840n
  • 1 tp-link 841nd
  • 1 generic router

Single-board computers

  • 1 Rock64 4Gb ram
  • 1 Raspberry Pi 3+
  • 1 Raspberry Pi Zero
  • 1 Espressobin v5


  • 1 linksys 8 port + 2 gigabit port switch
  • 1 tp-link wn722n usb wifi
  • 1 cable crimper
  • about 100m of networking cable
  • 1 class 10 16Gb micro sd
  • 1 class 10 32Gb micro sd
  • 2 class 10 64Gb micro sd
  • 5 100mb usb drives
  • 1 Terabyte usb hard drive
  • 2 500Gb usb hard drive

When we began this journey I had a lot of free time, no devices to play with and almost no knowledge. It seems tables have turned. We now have a bunch of toys and experience, but not enough time to play with it all!

@luandro %ohIZ12Z3DfLHyG4EmVyYM20lq42ZRlSAZICR6Uvvi5Y=.sha256


Libre Router

Let's start from where I last stopped. I had just put up the #librerouter, but it looked like one of the 5Ghz radios or antennas wasn't working properly. I was about to go to coolab camp at @Hiure's community. @SAn would be there, and he's the main engineer behind the hardware as well as the software. Having him close is like having a human LibreMesh/Libre Router documentation with the best query mechanism possible. He's also a really really nice guy. He helped me go over the hardware, and showed me how he tests them.

Basically we ran iw dev with each of the 5Ghz radios that outputs something like this for the Libre Router:

    Interface wlan2-mesh
        ifindex 38
        wdev 0x200000005
        addr a8:40:41:1c:84:2b
        type mesh point
        channel 48 (5240 MHz), width: 40 MHz, center1: 5230 MHz
        txpower 26.00 dBm
    Interface wlan1-mesh
        ifindex 42
        wdev 0x100000006
        addr a8:40:41:1c:84:1d
        type mesh point
        channel 157 (5785 MHz), width: 40 MHz, center1: 5795 MHz
        txpower 27.00 dBm
    Interface wlan0-apname
        ifindex 27
        wdev 0x4
        addr ae:40:41:1c:85:28
        type AP
        channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
        txpower 26.00 dBm
    Interface wlan0-ap
        ifindex 22
        wdev 0x3
        addr aa:40:41:1c:85:28
        type AP
        channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
        txpower 26.00 dBm
    Interface wlan0-mesh
        ifindex 21
        wdev 0x2
        addr a8:40:41:1c:85:28
        type mesh point
        channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
        txpower 26.00 dBm

The most important bit of that is the txpower to check if it's transmitting alright. The Libre Router has 3 phy interfaces, one for each radio, and different virtual interfaces for meshing and access points. Ideally we shouldn't have a radio meshing and being an access point at the same time, but at the hill it's basically not used at all as an AP, and I need it to mesh on 2.4Ghz, as there's a specific house that can only connect to it thru 2.4, and it does help bridge nodes that don't always have a stable 5Ghz mesh connection.

Then we connected each of the antennas and meshed with another device and checked for differences in signal strength with iw dev wlan-iterface station dump.

We concluded every thing was fine. It was probably me not knowing how to deal very well with different channels. I brought it back to Moinho and it's been running very well since at the top of the hill, connecting now 4 parts of the village to the mesh.

Captive Portal

With San's help I started an important update on #pirania (Mesh Captive Portal) which after much developing and debugging I'm finally testing here in Moinho before merging to the oficial lime-packages. It does all logic without using Javascript, which I had never done before, as I've started my programming when JS frameworks were already a thing. But it was a great lesson, and I upped a few levels on my #lua skills. This is important for low-end Android phones, common here, which open the captive portal with a default web browser that doesn't load Javascript.

Also added an idea I had discussed with @Nico Pace about adding an extra step with information and a timer for the user to get some intro into the community network information before navigating.

Next step is implementing the Pirania admin interface into Lime App. @markitos has been busy making the code cleaner and easier, thank you for that 🙏


@luandro %x3119aK1fA67zzay70fUiL2lbYF67R1//E8nUU4DPE4=.sha256


☔ 💧 ⚡ The Rain ☔ 💦 ⚡ 💦

Remember last year's rain? It's that time of year again... and again the first weeks were quite challenging to maintain the community network infrastructure.

While I was chatting with @mixmix on a #ahau meeting a tremendous lightning storm started. It burned many appliances around the village, I'm off-grid, but the infrastructure suffered.

The Libre Router is plugged into a surge protector, but for some reason it's charger burned, at least it was a cheap one, and it can handle an array of voltages, so getting another charger was easy.

We lost a TP Link 3500 router and charger, and something's weird with the network cables that were connected to it, still trying to debug that.

Two of our brand new CPE 510's started acting weird, and it seems they lost networking with Ethernet, which is quite crucial as it only has one 5Ghz radio, for meshing, and is usually connected thru cable to some low-end router. Also their POE chargers burned.

Not related to the lightning strikes, but also lost two CPE 510's version 1, which was acquired by the neighbors to connect a new part of the village... can't ssh into them anymore after installing LibreMesh firmware. There's probably a fix to them though.

Kinda funny, in one post I got a bunch of equipment, and the next a lose a bunch. That's life.


Spent last week working on this side-project on my spare time. lime-updater is a CLI tool built in NodeJS with oclif, easy install with npm i -g lime-updater.

Last year I wrote this post while still in Quitana learning the basics. Me, @markitos and @nicoechaniz spent from 1am until 6am updating their huge mesh. Libre Mesh development is an ongoing process, so it shouldn't have to be that hard to update the firmware in the mesh. So I gave myself a week to give a try at solving this problem.


It starts by checking the latest LibreMesh revision, which I found out to be based on the latest lime-packages commit. It ssh's into each node and gets some basic information about them, such as how many hops it is from the node you're running the program from, the ip, and model of the node and it's Libre Mesh revision.

Surprised me that starting ssh sessions in parallel didn't work, had to do some hacky for..of loops to get synchronous ssh one node at a time.


It then backs up the configs to your computer, selects the right firmware and upload's it to the node. After all that is done it starts updating from the most distant nodes.


This is the most tricky part... after installing the new version it ssh's into each node, scp's the backup tar.gz file and restores the old settings.

I was able to update my whole network using this software, but not in a single run as it's intended to work. Found out that there are many edge cases to this whole process depending how the mesh has been configured. Different channels, and virtual interfaces that not always enables the mesh to recover itself after installing the new firmware with no configuration.

But it was a great experiment, definitely learned a lot, and got some great feedback from Marcos and San. If it proves to be useful it'll start being polished thru the magic of #open-source collaboration. It also gave me many ideas for visualization tools for mesh, which are very useful.

Also started collaborating with @brunovianna on a project to run this on mobile and use some kind of gossiping protocol to share firmware among devices, for an offline-first approach.

User has chosen not to be hosted publicly
@luandro %5ZEBpa0IilDGqbS1YmeqAK4lM5F36rtdKKLgsXzgszg=.sha256


Libre Routers ♥️ 📡

Been a long while since I posted an update about the project.

A while ago I asked for helping getting some LibreRouters into Brazil, and thanks to @SAn, @Cusco and friends of neighbors from Moinho we finally got the first batch of four routers, without any costs, from Buenos Aires, to Porto Alegre and finally arriving at Moinho. Brazilian customs would have probably charged an immense amount of $$.


Three of them have been installed in Moinho, making the mesh infrastructure way more resilient. First and most important was the installation in Aridi's house, which is the where the internet gateway is (pictured above). Another was installed in another main street of Moinho, where a total of 3 routers have failed to maintain a decent connection, so we're hoping the LibreRouter will handle the job. The last was placed close to Aridi, to maintain a mesh at 2.4Ghz, as we haven't gotten the wires and antennas for it. When they arrive we'll find a better place to make use of it's full potential.

The last LibreRouter has come with me to Mato Grosso, where after the pandemic is over, I'm planning on visiting indigenous communities in the region and presenting them the #librerouter, #huiom, #manyverse, #mapeo and #ahau. I believe it will be of great value to them.

Community mapping 👩‍👩‍👧‍👦 🏡


The original vision for the project was to use the WiFi network open around the village so that visitors could see other points of interest of the village besides the waterfall, thus benefiting more people with the existing tourism influx.

Finally took some time to build the map, using @okdistribute's tile-downloader which @Kira helped me to figure out the details, to have offline maps.

I configured #pirania to open up the portal with the map as the captive-portal. There's an "Internet" tab where members of the network can authenticate. There's also a "Local applications" tab where in the future I plan to add some applications, many that use #dat, #ssb and others that @Nico Pace has been curating, mainly that will work on the mesh independent from internet connections.

Community takeover 👬 👭 ✊

Because of this project, I became known as "the internet guy", which is quite the irony, as I'm probably the one in the village who dislikes the internet the most (due to the colonizing effects of the corporate-web). It's been good to be able to help my neighbors with their connectivity problems, but more and more it started becoming a bit of a burden... doing something I don't truly believe in, and being held responsible for internet problems.

So me leaving now for a many months is an opportunity for the other collaborators from the community to maintain the network without me. Apparently it's becoming a bit of a mess as it coincided with the quarantine, which from I've been hearing Moinho is taking seriously, locking down the entrance to the village. But I'm confident they'll unite more, and become more self-reliant, which will be an amazing lesson for them and myself, who am personally interested in how to do #communitynetworks without depending on the figure of a techie person in the community.

Looking forward for how they'll collaborate with each other to maintain their network.

Join Scuttlebutt now