Advanced Development with NSC AppWizard & SDK for AVR-GCC

For embedded developers and integrators who need full control of the firmware stack

While MaticStudio provides a visual, no-code environment for designing NSC-based distributed systems, advanced developers can go further by using the NSC OS AppWizard and the accompanying NSC OS Software Development Kit (SDK).

This workflow enables project-wide firmware generation, fine-grained event control, and direct access to the NSC operating system source code — ideal for those who require full customization and performance optimization.

The NSC OS does not include the interpreter, otherwise included in the standard devices that can be programmed with MaticStudio. So the program is deeply integrated and natively compiled into the firmware, making it an ideal choice for embedded solutions with event-driven, distributed processes.


Screenshot of AppWizard
AppWizard easily prepares all the required files by selecting and entering the desired options.
You can re-run the application even after you added your code, which AppWizard preserves.

NSC AppWizard

The AppWizard is a powerful configuration tool that allows you to:

The AppWizard produces a complete folder structure with auto-generated code files for each device, prepared for editing and compilation.

Screenshot of DisplayMaker
Design pages and elements that go in a display device with DisplayMaker included in AppWizard

NSC SDK and OS Source

The NSC SDK includes:

Developers can directly implement custom behavior in C, access hardware at a low level, and tune performance-critical operations. The event tables and task handlers generated by AppWizard map directly to NSC's internal scheduler, giving you full transparency into execution flow.

__ EXAMPLE __ ///////////////////////////////////////////////////////////////// // EVENTS IMPLEMENTATION ///////////////////////////////////////////////////////////////// #ifdef EVENT_CLICK event click(unsigned int Clicked) { // Enter code for event input// (do not change this line)<%%/_EVT_INPUT/ // change outputs and set a timeout of 8 seconds if user clicked on input 4 if(TESTIO(Clicked, IN4)) { setOut(this, 2, ON1, OFF2); setTimer(makeTimerInterval(0 /*h*/, 0 /*m*/, 8 /*s*/, 0 /*t*/) TIMER0); } //%%> (do not change this line) } #endif ...(omitted code)... #ifdef EVENT_INPUT event input(unsigned int IN, unsigned int HIN, unsigned int LIN) { // Enter code for event input// (do not change this line)<%%/_EVT_INPUT/ // transmit input status to the unit named DisplayMonitor RPC(DisplayMonitor_newStatus_VECTOR, IN); //%%> (do not change this line) } #endif ...(omitted code)... #ifdef EVENT_TIMER0 event timer0(void) { // Enter code for event timer0// (do not change this line)<%%/_EVT_TIMER0/ // turn off output 1 when the time elapsed setOut(this, 1, OFF1); //%%> (do not change this line) } #endif

When to Use AppWizard + SDK

This workflow is ideal for:

Main Built-in Functions

ISP connections AVRISP to NSC ISP
Caution! Do NOT directly connect the AVRISP programmer to the NSC ISP socket!

Most NSC devices are designer around the ATmega32 microcontroller.

NSC Protocol

The NSC OS system uses the SFBP protocol for its core communication system. On top of it, the NSC protocol operates at the Application Level of the ISO-OSI model.
For more information read the NSC Protocol specifications (available only in Italian).

Integration with Visual Tools

The AppWizard-based workflow does not exclude the use of MaticStudio or SCADA design tools — the outputs of custom-developed firmware can still participate in a full NSC network and interoperate via RPCs.

Next Step

Download and install NSC OS SDK AppWizard for AVR-GCC.

Note: You also need the AVR-GCC toolchain. Go to the official Microchip website to download the toolchain and visit the Github page dedicated to programming AVR processors with AVR-GCC.