Skip to content
View N3b3x's full-sized avatar
:atom:
Let’s get it
:atom:
Let’s get it

Block or report N3b3x

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
N3b3x/README.md
Nebiyu Tadesse. Embedded systems, motor control and robotics.

I build robots and the embedded systems inside them. I hold two bachelor's degrees from the University of Colorado Boulder, in mechanical engineering and in electrical and computer engineering, and a master's degree from Johns Hopkins University in robotics and autonomous systems. That mix lets me work across the whole machine: the mechanism, the electronics, the firmware, and the simulation that proves it before anything is built.

I like systems that are portable, testable and documented well enough that someone else can pick them up.

HardFOC · Robots and simulation · Embedded Linux · Toolbox

Three tracks of work: HardFOC hardware and firmware, robots and simulation, and embedded Linux.

HardFOC

HardFOC is the open-source organization I maintain for a hardware-based FOC (field-oriented control) motor driver board and the software around it. It has 40+ public repositories, more than twenty of them drivers, and most have their own documentation site.

HardFOC software stack: board firmware on top of hf-core, on top of a board layer and portable libraries, on top of more than twenty hardware-agnostic drivers. Shared CI and ESP-IDF tooling applies to every layer.
Start here What it is
hf-core · docs The shared platform layer: handlers, RTOS utilities, driver integration and CANopen, in C++20.
hardfoc-vortex-v1 Firmware for the Vortex v1 controller board.
hf-tmc9660-driver · docs Hardware-agnostic driver for the TMC9660 motor controller. A good example of the driver pattern.
hf-tmc5160-driver · docs Hardware-agnostic driver for the TMC5160 stepper driver.
hf-internal-interface-wrap · docs The ESP-IDF wrappers that keep drivers free of platform code.
hf-general-ci-tools · docs Shared CI for the whole ecosystem.
hf-espidf-ci-tools · docs CI for ESP-IDF projects with one or many applications, driven by a YAML file.

All repositories are on the HardFOC organization page. Issues and discussions are welcome there.

Robots and simulation

I design robots to perform the eskista, an Ethiopian shoulder dance, and I build the tools that take them from CAD to a trained policy. This work is in development and the repositories are private, so this section shows how it fits together rather than the code.

ESKISTA robots: EB1, an upper-body humanoid with 15 degrees of freedom, and EB2, an arm with a four-bar shoulder and a serial elbow. Robot pipeline: CAD in SOLIDWORKS, sw2sim exports a joint graph, robot assets are versioned, SimPrep Studio makes them simulation-ready, ESKISTA Studio trains and deploys.
Project Status What it does
sw2sim private, in development A SOLIDWORKS add-in that keeps one canonical graph of links, frames and joints, and exports MuJoCo, URDF and USD without silently dropping parallel closures.
SimPrep Studio private, in development A browser tool, run locally, that makes a robot simulation-ready: carves bearing clearances, generates collision meshes, sets motors and joint limits, and runs training.
ESKISTA Studio private, in development A cross-platform desktop app that brings together robot visualization, motion capture, policy training and hardware control.
Robot assets private Versioned robot packages (EB1, EB2) that studios pin as a submodule, so a robot never changes under a consumer.

Two problems drove the design of the first two tools:

Two problems that break simulation: a tree that drops a hinge of a four-bar, and a collision mesh that fills a bearing bore.

Embedded Linux

embedded-linux-primer builds the whole software stack of an embedded Linux board from source, one small board directory at a time, from the boot ROM to the root filesystem. It is public and aimed at anyone who wants to understand what a distribution build tool does for them.

Also public

Repository What it is
openballbot-rl Fork of salehiac/OpenBallBot-RL: a MuJoCo ballbot simulator with reinforcement-learning tools for uneven terrain.
EyeTrackerEmbed Fork of JEOresearch/EyeTracker: a lightweight Python eye tracker.

Toolbox

Languages: C and C++ (up to C++20), Python and Shell. Embedded: ESP-IDF and RTOS portability layers, CANopen, peripheral drivers, and embedded Linux built from source. Robotics: SOLIDWORKS, URDF and MJCF, MuJoCo, reinforcement-learning training, motion capture. Engineering practice: GitHub Actions with reusable workflows, static analysis and linting in CI, generated documentation sites, and design notes kept next to the code.

Most of my work lives in private repositories, so the public profile is a small slice of it.

Pinned Loading

  1. hardfoc/hardfoc-vortex-v1 hardfoc/hardfoc-vortex-v1 Public

    HardFOC Vortex V1 motor controller application firmware (ESP32 / ESP-IDF).

    C++

  2. hardfoc/hf-hal-vortex-v1 hardfoc/hf-hal-vortex-v1 Public

    HardFOC hardware abstraction layer for the Vortex V1 motor controller board (ESP32 / ESP-IDF), built on hf-core.

    C++

  3. hardfoc/hf-core-drivers hardfoc/hf-core-drivers Public

    HardFOC core drivers: collection of internal (ESP-IDF interface, pin config) and external hardware-agnostic device drivers as submodules.

    Python

  4. hardfoc/hf-core-utils hardfoc/hf-core-utils Public

    HardFOC core utilities: general utilities, RTOS wrapper and CANopen helpers as submodules.

  5. hardfoc/hf-tmc9660-driver hardfoc/hf-tmc9660-driver Public

    Hardware-agnostic C++20 driver for the Trinamic TMC9660 BLDC/FOC motor controller (SPI/UART, TMCL). Part of the HardFOC ecosystem.

    C++

  6. hardfoc/hf-bno08x-driver hardfoc/hf-bno08x-driver Public

    Hardware-agnostic C++ driver for the CEVA (Hillcrest) BNO080/BNO085/BNO086 9-axis IMU and sensor-fusion hub (SH-2 over I2C/SPI/UART). Part of the HardFOC ecosystem.

    C++