CanWeeB banner

CanWeeB

17 devlogs
20h 13m 46s

This is a project to turn laptops and mini PCs into microcontroller-like devices.
It is also planned to support things like Raspberry Pi, and it is an app designed for robotics competitions where each device is treated as a single object, allow…

This is a project to turn laptops and mini PCs into microcontroller-like devices.
It is also planned to support things like Raspberry Pi, and it is an app designed for robotics competitions where each device is treated as a single object, allowing parent-child relationships to be established.

This project uses AI

I use Github Copilot and Windsurf to write code

Demo Repository

Loading README...

cskartikey

Tagged your project as well cooked!

🔥 cskartikey marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

Rintaりんた

Shipped this project!

Hours: 20.23
Cookies: 🍪 545
Multiplier: 26.93 cookies/hr

(I used 4.5 haiku for the translation. The English might be a little strange.)
I built CanWeeb, a Rust-based mesh communication system for robotics, plus demo apps that show it working with real hardware.

The main idea is simple: a PC, Raspberry Pi, and microcontrollers can talk over whatever TCP path is available, like wired LAN, Wi-Fi, or USB Ethernet. I also separated traffic by purpose, so reliable control messages do not get blocked by large sensor or stream data.

The hardest part was making the system feel reliable in real robot setups, where connections can change or drop. I worked through that by adding automatic peer discovery, transport priority control, failover, ACK/retry handling for control traffic, and live Web UI monitoring.

I’m especially proud that this is not just a protocol on paper. It already connects multiple devices, supports real hardware control, and includes demos like:

a parent-child control system for Raspberry Pi + STM32
a distributed Mario-style game controlled by face movement, an ultrasonic sensor, and a rotary encoder
I’m happy with how practical and extensible it turned out.

Rintaりんた

I tried hard to create an ISO image, but I couldn’t.

Instead, I focused on optimizing the documentation, connecting to Git, and testing whether it would work correctly on my microcontroller.

Attachment
0
Rintaりんた

I have created a website explaining the main unit.

Attachment
0
Rintaりんた
  • Added a macro to the Rust library that uses DTOverlay to read the rotary encoder value as reliably as possible.

  • Now you can play around with rotary encoders and ultrasonic sensors stably.

Next, I’ll use Yocto to package it.

0
Rintaりんた

Previously, I was using an STM32 to read the values ​​from a rotary encoder, but now I can read the values ​​from Cmdlib.

Attachment
0
Rintaりんた

I connected a rotary encoder and an ultrasonic sensor to two separate Raspberry Pis, sent both sets of data to a computer without packet loss, and created a demo game to play with them.

Attachment
Attachment
0
Rintaりんた

I have successfully connected to the some child raspi, and now we have a comprehensive view of family information, including queues, active tasks, and status.

Attachment
0
Rintaりんた

Programs using CmdLib (a library that allows easy control of Raspberry Pi’s GPIO pins in Rust) can now be registered, executed, and managed by a single Linux daemon.
This enables more flexible embedded system development.

Attachment
0
Rintaりんた

Now you can expand your HDMI output with plug-and-play by simply connecting a LAN cable!

This means, theoretically, it can also be done via Wi-Fi!

Now you don’t have to worry about wireless displays or insufficient HDMI ports!

Attachment
0
Rintaりんた

I made the webUI logs more detailed.

Attachment
0
Rintaりんた

I haven’t been able to capture a screen yet, but I was able to get video output using the PC-LAN-Raspberry Pi-HDMI-monitor setup.

Attachment
0
Rintaりんた

I’m currently developing a system that allows you to configure settings and output video simply by connecting a LAN cable.

Attachment
0
Rintaりんた

Remote communication is now possible.

Attachment
0
Rintaりんた

I created a Rust library that allows you to control the GPIO pins of a Raspberry Pi using a syntax somewhat similar to that of ESP32/Arduino.

Attachment
0
Rintaりんた

Child information can now be viewed from the web UI.

Attachment
0
Rintaりんた

Simple communication is now possible via LAN and Wi-Fi.

Attachment
0
Rintaりんた

I tried trial and error with Arch and Debian, but the real-time performance became an issue and I gave up for a while🥲
Next time I will try using Ubuntu (PREEMPT_RT).

Attachment
0