Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOcontroll-CodeBase

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

Define Target
GOCONTROLL_LINUX Moduline L4 / Moduline M1 (IMX8 ARM64)
GOCONTROLL_IOT Moduline 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