Tuesday, April 12, 2022

IPNSIG and Blog updates

The past few weeks since my previous post have been very busy with no much time left to write, but great progress in several fronts.

You will notice that this post and further post are now on a dedicated website for Interplanetary Networking (IPN,) so I can separate personal posts from those related to IPN, Delay and Disruption Tolerant Networking technologies and Space Communications in general. This will be the last article posted on both Blogs.

First the Good News, the InterPlanetary Networking Special Interest Group or IPNSIG has received its classification as a tax-exempt, non-profit charitable organization from the US Internal Revenue Services. This is an important milestone since it helps to complete the transition of our group to an independent Chapter of the Internet Society.

Great things to come in the near future about this.

On March 22nd, our group participated in the IETF 113 Conference (Internet Engineering Task Force) at the Delay Tolerant Networking Working Group (DTN-WG,) Vint Cerf was in attendance and provided an update on the State of the Art of DTN and IPNSIG.

Click on the image to watch a video of the session. Vint's presentation is the first one.

IETF 113 DTN-WG Session

Also on April 1st we had another meeting of our IPNSIG Projects Working Group, were Vint was also in attendance, as well as group members from Europe, North and South America.

IPNSIG Projects Working Group - PWG

While today is a modest and small group we keep making progress and adding new members on the team. We keep very focused on developing tools and best practices to keep testing DTN and Bundle Protocols, figure how to scale to a large network and explore what type of applications will serve as a demonstration of these technologies with primary focus on interplanetary communications that will drive on the long term the development and implementation of a Solar System Internet.

On the personal front I continue to work in my low cost prototype lab for testing and education using off the shelf hardware and the NASA JPL Open Source implementation of DTN and Bundle Protocol called ION (Interplanetary Overlay Network.)

Right now the network has about 15 nodes running on various SBCs, VMs and dedicated servers, plus 10 nodes using ESP32 based SBCs for sensor data collection, telemetry, etc.

While the hardware has been stable, some particular nodes changed with the addition of more displays, like the one serving as Mission Control Functions emulation.


Soon I will start putting together a draft for a PCB layout for various of the nodes which will permit the lab to scale more with increased reliability.

Four of the nodes on my internal network are now in a full mesh configuration with external nodes part of the IPNSIG Test Network. For now testing with regular Bundle Protocol Pings or bping, but soon we will start testing other tools like Asynchronous Message Service, file transfers using CFDP (CCSDS File Delivery Protocol,) etc.

That's all for now, if you are interested to join our efforts feel free to contact me, also feel free to join the Facebook InterPlanetary Networking Group.

Cheers
Jorge

Tuesday, February 8, 2022

DTN-IPN New Node - Moon Rover

I was looking at my inventory of development boards and found that I had an extra Raspberry Pi 3B with the camera module. The camera is one of the early versions featuring the OV5647 image sensor.

I thought "I can use this setup to create another DTN node for the Lab prototype, what about a Moon Rover ?"

At first, I was thinking just to keep it in its original plastic case but then I realized that we have a bunch of Legos that our kids are not using anymore, so how about putting something together that looks like a lunar vehicle and can fit the Raspberry Pi, the camera and why not some lights and a battery.



I always had fun building stuff with Legos, I remember when I was a toddler in Argentina my Grandma use to take often to the “Rasti Club,” Rasti was another brand of building blocks available in Argentina at the time. I spent hours and hours building all sorts of gizmos.

Obviously, this model is just something I put together with what I had at hand, nothing that looks like a real rover or some of the Lunar vehicles under development like the JAXA/Toyota “Lunar Cruiser” for the Artemis mission.

Picture Courtesy of JAXA

I was thinking about using one of the Lego design tools, but that was an overkill for this project. This could be a good idea for putting a contest or challenge together for students to design a Lego Lunar Rover that can accommodate the Raspberry and the camera. 

A Raspberry Pi Zero W 2 would also work and will take less space, but they are currently in short supply.

Let’s get started, with the parts I was able to “recycle” I started building sort of the chassis for the rover, taking in account of the size of the Raspberry Pi and enough height to fit the camera.

I 3D printed a pair of blocks with the NASA worm logo, the model file for it is available here.

I had to figure how to wire the Neopixels for which I used two channels on the Raspberry Pi, one on GPIO10, and the other one on GPIO21. Since I didn’t want to overload the onboard 3.3V power supply on the Raspberry Pi, I added an LDO regulator (Microchip TC1262) to get the 3.3V for the Neopixels directly from the 5V power supply.
I used wirewrap wire, and two small pieces of prototype pcb.


Quick test to confirm everything was working and putting the Raspberry Pi in place, connecting the camera flat cable and closing up.


Here is how the complete model looks from the left side


Right side look



Front with the camera module visible behind a transparent Lego block


And the top, with a last-minute addition, a volt meter to measure input/battery voltage.


Connecting via VNC. Only thing that I was required to do to make it work was to enable the Camera interface with raspi-config, after that took the very first picture using raspistill.


My plan is to write a script using Pyion to wait for a command to start taking pictures, store them in some spool directory and then wait for another command to start transferring them to a DTN relay with final destination, one of the nodes that have a TFT LCD display to show the images captured by the rover. All transfers using NASA’s JPL ION implementation of Bundle Protocols.

And of course, there is a video with a walk through and the blinking lights 😊

Once again if you are interested to learn more about this project, DTN and InterPlanetary Networking you can join the Facebook Group I created, and you can also join IPNSIG (ISOC InterPlanetary Networking Interest Group.)

 

Cheers
Jorge

Thursday, January 27, 2022

DTN-IPN R&D Lab Prototype Update

Happy New Year!!

Since my previous article on December 2021, I made some changes to the original design of the IPN-DTN Lab prototype that continues to be very much a work in progress project.


From the previous version I added two more nodes running on a Raspberry Pi Zero W 2, I expect in the future to add more as they become available, they are currently in short supply and are hard to procure.

There is a Raspberry Pi 3B+ with the sense hat also running Raspi OS and ION 4.1.1 that I use for testing code. And another two Raspberry Pi 3B+ running a complete different implementation of DTN called IBR-DTN from a University in Germany (more about it soon.)

I rearranged the nodes on the breadboards, and now the one implementing some of the functions of a Mission Control Center (MCC) has more displays, taking advantage of an eight channel I2C switch from Texas Instruments, the TCA9548A. With this switch it is possible to drive the seven 128x32 OLED displays that are associated with this node using a single I2C channel.

Also, on the MCC node I have now a 2” 320x240 IPS TFT LCD display, it uses the ST7789 TFT driver that can display full 18-bit color. The display module is connected to the SPI interface on the Raspberry Pi.



There is a new node implemented with a Raspberry Pi Zero W 2, I named it NASA-JPL, this node features also a 1.14” 240x135 TFT Color LCD mounted in portrait mode using the SPI interface of the Raspberry Pi.

The idea is that at some moment those displays will show images transferred over DTN using Bundle Protocol, like pictures taking by a rover on the surface of the Moon  (future node to be added using a Raspberry Pi with a camera), transmitted to a local relay node and from it through the Space Network to a ground station, and then through the Ground Network to a screen on JPL and/or MCC, all using Bundle Protocol.


On the previous version I was using independent power supplies for the Raspberry Pis, wiring was getting ugly and complicated. I replaced them all by single 5.1V 15A power supply, I had to put together some sort of power distribution adapter going to each of the breadboards where the Raspberry Pi are mounted.

If you have a good eye you will notice some LDO Voltage Regulators to step down from the 5V power supply to 3.3V required by some parts, particularly displays.

While on some nodes I can use the 3.3V generated by the Raspberry Pi Zero W2s, with the alphanumeric LED displays and too many OLED I was drawing too much power, then now some nodes have their own 3.3V LDO regulator.

I keep “the lab” running 24/7 monitoring power and some key signals, so far it has been reliable after I fixed the power distribution issues.

I took a Hack RF SDR I had in a box to check on the transmission signal levels of the LoRa modules, they are as expected centered on 915MHz, while they are low power modules, the signal can reach a hundred feet or more with a data rate of about 500bps, almost three times faster than Voyager 1, well the thing is 23+ Billion Kilometers away 😀😀😀.



On the software side I have a lot of work to do. Now I have all nodes running the same version of Raspi OS, they all have Circuit Python installed, NASA JPL ION 4.1.1 and all have Pyion 4.1 which is a Python programming interface for ION, so putting together a message to be sent over the DTN is simple as

import pyion 

proxy = pyion.get_bp_proxy(1)
proxy.bp_attach()

with proxy.bp_open('ipn:82.1') as eid:
    eid.bp_send('ipn:82.1', b'hello')


There is obviously and updated “Blinking Lights” video showing all the nodes running and some of the VNC screens from nodes, showing for example real time data from a GPS module, the message exchanges via LoRa, etc.


I started documenting the project, here is a diagram showing the current network topology configuration, this diagram does not represent the DTN communications topology.

I’m also drafting a paper and an introductory presentation about space communications evolution and DTN-IPN.


Now that I have a stable hardware and basic software platform running, I will be working in the actual DTN topology. This is very much a learning process for me as well, so I will be using a very interesting tool developed by the MITRE Corporation for an ION training course from NASA JPL.


I’m pretty sure that very soon I will be able to share some updates of what is happening at the InterPlanetary Networking Special Interest Group (IPNSIG), meanwhile if you want to learn more and join the conversation I have created a Facebook Group you can join.

Until the next inter planetary trip …

Cheers
Jorge