An open API service indexing awesome lists of open source software.

https://github.com/noorientationprogramming/code-orb

Realtime Debugging for Microcontrollers – with Logging, Task View, and Command Execution.
https://github.com/noorientationprogramming/code-orb

arduino codeorb debugger embedded esp32 microcontroller raspberrypi stm32

Last synced: 22 days ago
JSON representation

Realtime Debugging for Microcontrollers – with Logging, Task View, and Command Execution.

Awesome Lists containing this project

README

          

[![GitHub](https://img.shields.io/github/license/NoOrientationProgramming/code-orb?style=plastic&color=orange)](https://en.wikipedia.org/wiki/GNU_General_Public_License#Version_3)
[![GitHub Release](https://img.shields.io/github/v/release/NoOrientationProgramming/code-orb?color=orange&style=plastic)](https://github.com/NoOrientationProgramming/code-orb/releases)

![Windows](https://img.shields.io/github/actions/workflow/status/NoOrientationProgramming/code-orb/windows.yml?style=plastic&logo=github&label=Windows)
![Linux](https://img.shields.io/github/actions/workflow/status/NoOrientationProgramming/code-orb/linux.yml?style=plastic&logo=linux&logoColor=white&label=Linux)
![macOS](https://img.shields.io/github/actions/workflow/status/NoOrientationProgramming/code-orb/macos.yml?style=plastic&logo=apple&label=macOS)
![FreeBSD](https://img.shields.io/github/actions/workflow/status/NoOrientationProgramming/code-orb/freebsd.yml?style=plastic&logo=freebsd&label=FreeBSD)
![ARM, RISC-V & MinGW](https://img.shields.io/github/actions/workflow/status/NoOrientationProgramming/code-orb/cross.yml?style=plastic&logo=gnu&label=ARM%2C%20RISC-V%20%26%20MinGW)

[![Discord](https://img.shields.io/discord/960639692213190719?style=plastic&color=purple&logo=discord)](https://discord.gg/FBVKJTaY)
[![Twitch Status](https://img.shields.io/twitch/status/Naegolus?label=twitch.tv%2FNaegolus&logo=Twitch&logoColor=%2300ff00&style=plastic&color=purple)](https://twitch.tv/Naegolus)





## The Microcontroller Debugger

When working with small targets, simple log outputs are often the only feedback available.
With [CodeOrb](https://github.com/NoOrientationProgramming/code-orb#codeorb-start) on the PC and the
[SystemCore](https://github.com/NoOrientationProgramming/SystemCore#processing-start) on the target,
we have two additional channels: a task viewer and a command interface.
The task viewer provides a detailed insight into the entire system, whereas the command interface gives full control over the microcontroller.

CodeOrb is essentially a multiplexer service running on the PC that transmits and receives these three channels of information via UART from and to the microcontroller.
The channels can then be viewed on the PC or over the network using a Telnet client such as PuTTY.

## Features

- Full control over target
- Crystal-clear insight into the system
- Through three dedicated channels
- Process Tree
- Log
- Command Interface
- Interactive
- Automatic

## How To Use

### Topology

This repository provides `CodeOrb` the microcontroller debugger highlighted in orange. Check out the [example for STM32](https://github.com/NoOrientationProgramming/hello-world-stm32) as well!





### Integrate the SystemCore into the target

TODO: Separate README file

Meanwhile: Check out the [example for STM32](https://github.com/NoOrientationProgramming/hello-world-stm32)

### Start CodeOrb on the PC

On Windows
```
.\CodeOrb.exe -d COM1
```

On UNIX systems
```
./codeorb -d /dev/ttyACM0
```

The output should look like this





### User Interface

As soon as the multiplexing service CodeOrb has been started you can connect to the channels via Telnet. You can use IPv4 or IPv6

For the **Process Tree**
```
telnet :: 3000
```

For the **Log**
```
telnet :: 3002
```

For the **Interactive Command Interface**
```
telnet :: 3004
```

For the **Automatic Command Interface**
```
echo "toggle" | nc :: 3006
external Twitch jobs enabled
```





## How To Build

### Requirements

You will need [meson](https://mesonbuild.com/) and [ninja](https://ninja-build.org/) for the build.
Check the instructions for your OS on how to install these tools.

### Steps

Clone repo
```
git clone https://github.com/NoOrientationProgramming/code-orb.git --recursive
```

Enter the directory
```
cd code-orb
```

Setup build directory
```
meson setup build-native
```

Build the application
```
ninja -C build-native
```