Skip to content

Latest commit

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

GOcontroll-CodeBase

C library for programming GOcontroll Moduline controllers. Two build flavours share the same public API:

DefineTarget
GOCONTROLL_LINUXModuline L4 / Moduline M1 (IMX8 ARM64)
GOCONTROLL_IOTModuline S1 (STM32H5 + FreeRTOS)

The S1 platform is selected by the legacy GOCONTROLL_IOT define and lives under code/iot/. Source identifiers are kept for compatibility with the previous product naming.

Repo layout

code/ Public C library — board, communication, modules, XCP, S1 subtree
examples/ One per topic — Linux main()s, plus S1 subsystems in *_s1/ directories
make/ Generic Moduline S1 build layer (include from a thin application Makefile)
AGENTS.md Index for AI coding tools (hard rules + conventions)

Quick start

make led_blink # build the smallest example
sudo build/app # run on target

For a working module program, see examples/input_module_10ch/input_module_10ch.c or examples/input_module_6ch/input_module_6ch.c (the latter has the most thorough inline documentation, including the required initialisation order).

On a Moduline S1, start from examples/output_module_6ch_s1/output_module_6ch_s1.md before writing module-output code. It is the canonical bring-up procedure — including the timings, how to verify that a configuration actually reached the module, and the diagnosis table for a module that communicates perfectly but drives nothing.

Hardware

GOcontroll controllers expose pluggable modules in physical slots. Supported module types:

  • Input modules — 6-channel, 10-channel, and 4–20 mA variants.
  • Output modules — 6-channel and 10-channel high-side drivers.
  • Bridge modules — 2-channel half-bridge drivers. The two channels can be wired together as an H-bridge; that is a wiring arrangement, not a selectable mode.
  • Load cell modules — 4-channel strain gauge interface with configurable ADC gain, data rate, and mV/V sensitivity scaling.

Module communication runs at 10 ms cycle minimum; output modules trip a fail-safe watchdog if no frame arrives within 400 ms.

Documentation

  • AGENTS.md — index for AI coding tools: hard rules, pitfalls, and conventions.
  • examples/examples.md — one-line description per example.
  • File-level doc-blocks at the top of each code/**/*.h header and each example .c file.

License

Library code: see header doc-blocks (MIT-style). Vendored libraries under code/iot/Drivers/ retain their original licenses.

About

C code base with GOcontroll Moduline controller functionalities

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages