Osvaldo is aimed to make ethreal messages physical, from the meshiverse:
It all stems from a thought I had a year ago: how to save and somehow record these ephemeral-ethereal messages in our absence?
Attach a printer to a meshtastic radio and see the messages coming one after another, a real physical representation of the conversations.
This project was an excuse to see how far a meshtastic radio could be integrated into a more distributed and complex system.
A number of things can be built from here, including - in addition to the printer from which we start - a small bot capable of field operations, or even a very simple BBS (Bulletin board system) based on microntrollers.
The idea of the printer is itself an hommage to the Little Printer from Berg Youtube Video
As for the Meshbot, this project updates several ideas and limits and scenarios in a new way. We are not making "printer of the internet", you could easily do that in many other ways- Osvaldo is not even connected to the internet (and for this reason, I guess it doesn't event know the time and date). Osvaldo is connected to the Mesh.
He receives messages and prints them. I could possibly add many features to this, which is an ongoing project. One is the Battery, maybe even solar powered. Another is exposing a Captive Portal that allows you to control Osvaldo via the phone (wifi): eyes (colours), texts, QR code of the Meshtastic Channel Osvaldo is listening to.
The future holds many challenges in front of us, lets see.
- Osvaldo is a node in the Mesh
- Prints the received messages and make some funny LED patterns
- a meshtastic radio (I am using a XIAO ESP32S3 & Wio-SX1262 Kit for Meshtastic & LoRa
- a second radio from which to send data (paired with a cell phone)
- a microcontroller (Xiao ESP32S3)
- a voltage converter
- 2 switches (I want to be able to turn off the printer and possibly turn off the Xiao ESP32S3 managing the LEDS & printer behaviours)
- a strip of WS2812 LEDs
- 2 kikcback diodes (or Schottky diodes) because we will need to access both boards (the xiao-radio and tha xiao that manages the printer) without powering up the rest / interfere with the circuits.
- two Xiao Grove Shields (for purely educational purposes - I'm getting old. You can skip them if you want to make you project tynier and save money.
- meshtastic web flasher
- meshtastic console
- Arduino IDE with ESP32 core
- Meshtastic's Protobuf library for Arduino
- Adafruit Thermal Printer Library
Visit meshtastic web flasher and follow the instructions.
While you can go on from here using the Android or iOS app, I'll stick with the meshtastic console. We are going to define its Serial pins (based on Xiao's pin mapping) and enable protobuf communication.
Since I'm using the Xiao Grove Shields I'm also sharing this useful image of the pin mapping.
Let's connect the two boards in this way. Important TX is going to RX, and viceversa. Do not connect 3V3 for now.
In order to have a cable for the serial communication I changed a grove connector making it usable changing TX to RX and vice versa.
After installed the library, we can run this code in order to read whichever is passing via the serial and read all the nodes received in the serial port. Don't worry: we are going to fine tune this code in order to do less.
Hook up the printer following these instructions
I have used some trasparent PLA to create the eyes. Inside I've put the LEDs. Nice. You can find the stl files of this version in the folder. You should print "eye-cover.stl" in transparent PLA. All the rest is up to you for color or material.
You have to solder the LEDs in order to make them stay in the eye.
Before connecting Osvaldo to the Mesh we have to test if it's printing and the LEDs are working:
- Check the LEDs
- check connections (passive listener)
- Test the final printer!