Jump to content

SENSBLUE ATLAS/Datasheet: Difference between revisions

Line 568: Line 568:




=== Pinouts ===
=== 21. Pinouts ===


==== Top View ====
==== Top View ====
[[File:Atlas topview.png|center|frameless|688x688px]]
[[File:Atlas topview.png|center|frameless|688x688px]]


=== 21. System Type ===
=== 22. System Type ===
'''Raspian'''
'''Raspian'''


Line 580: Line 580:
Debian 1 :6.12.47-1 +rpt1 (2025-09-16) aarch64 GNU/Linux.
Debian 1 :6.12.47-1 +rpt1 (2025-09-16) aarch64 GNU/Linux.


=== 22. Network Information ===
=== 23. Network Information ===
There is three ways to connect to the device. IP and state of the connection be checked on the LCD Network Interface.
There is three ways to connect to the device. IP and state of the connection be checked on the LCD Network Interface.


==== 22.1 Eth1 (ethO) ====
==== 23.1 Eth1 (ethO) ====
Client dynamic IP obtained by DHCP server.
Client dynamic IP obtained by DHCP server.


==== 22.2 Eth2 (eth1) ====
==== 23.2 Eth2 (eth1) ====
Static IP: '''93.48.86.253'''
Static IP: '''93.48.86.253'''


==== 22.3 Access Point (wlanO) ====
==== 23.3 Access Point (wlanO) ====
IP: '''192.168.30.1'''
IP: '''192.168.30.1'''


=== 23. Software Information ===
=== 24. Software Information ===
{| class="wikitable"
{| class="wikitable"
|
|
Line 625: Line 625:
|}
|}


=== 24. MQTT Broker ===
=== 25. MQTT Broker ===
port: 1883
port: 1883


Line 636: Line 636:
login <not needed>  
login <not needed>  


=== 25. Relay Outputs Actor ===
=== 26. Relay Outputs Actor ===


==== 25.1 App Interfacing ====
==== 26.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credentials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credentials.


===== 25.1.1 Set/reset digital output pin/pins state =====
===== 26.1.1 Set/reset digital output pin/pins state =====
Both relays '''default''' state is '''open'''.  
Both relays '''default''' state is '''open'''.  


Line 680: Line 680:
}</syntaxhighlight>
}</syntaxhighlight>


===== 25.1.2 Get all relays state =====
===== 26.1.2 Get all relays state =====
Req-Topic: relayOutputs/runtime/in<syntaxhighlight lang="json">
Req-Topic: relayOutputs/runtime/in<syntaxhighlight lang="json">
{
{
Line 708: Line 708:
</syntaxhighlight>
</syntaxhighlight>


===== 25.1.3 Set all relays state =====
===== 26.1.3 Set all relays state =====
Req-Topic: relayOutputs/runtime/in<syntaxhighlight lang="json">
Req-Topic: relayOutputs/runtime/in<syntaxhighlight lang="json">
{
{
Line 744: Line 744:
</syntaxhighlight>
</syntaxhighlight>


=== 26. RTC Actor ===
=== 27. RTC Actor ===


==== 26.1 App Interfacing ====
==== 27.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.


===== 26.1.1 Set timer/alarm interruption =====
===== 27.1.1 Set timer/alarm interruption =====
'''mode:''' Timer, alarm or none.
'''mode:''' Timer, alarm or none.


Line 787: Line 787:
</syntaxhighlight>
</syntaxhighlight>


===== 26.1.2 Toggle RTC sync logic (described below) =====
===== 27.1.2 Toggle RTC sync logic (described below) =====
'''tcState:''' State of the synchronization logic of the RTC, this value is '''non-persistent''' so every-time a reboot happens the value return to default (by default the value is '''ON''')
'''tcState:''' State of the synchronization logic of the RTC, this value is '''non-persistent''' so every-time a reboot happens the value return to default (by default the value is '''ON''')


Line 812: Line 812:
</syntaxhighlight>
</syntaxhighlight>


===== 26.1.3 Read clock configs =====
===== 27.1.3 Read clock configs =====
'''mode:''' Timer, alarm or none.
'''mode:''' Timer, alarm or none.


Line 849: Line 849:
</syntaxhighlight>
</syntaxhighlight>


===== 26.1.4 Read clock =====
===== 27.1.4 Read clock =====
Req-Topic: clock/runtime/in <syntaxhighlight lang="json">
Req-Topic: clock/runtime/in <syntaxhighlight lang="json">
{
{
Line 864: Line 864:
</syntaxhighlight>
</syntaxhighlight>


==== 26.2 Synchronization loop flowchart (every 30 seconds) ====
==== 27.2 Synchronization loop flowchart (every 30 seconds) ====




Line 870: Line 870:
[[File:RTCActor Overview.svg|center|frameless|774x774px]]
[[File:RTCActor Overview.svg|center|frameless|774x774px]]


=== 27. Core System Health Actor ===
=== 28. Core System Health Actor ===


==== 27.1 App Interfacing ====
==== 28.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker.
User App interface and functionalities exposed to the open part of the MQTT broker.


This interface allows any external App to receive system-level metrics such as CPU load, RAM usage, disk usage, temperature, core frequency, system throttle status and uptime. No credentials are required to subscribe to this topic. The System Health Actor does not receive commands. It is fully autonomous and publishes its metrics every 1 second.
This interface allows any external App to receive system-level metrics such as CPU load, RAM usage, disk usage, temperature, core frequency, system throttle status and uptime. No credentials are required to subscribe to this topic. The System Health Actor does not receive commands. It is fully autonomous and publishes its metrics every 1 second.


==== 27.2 Runtime Data ====
==== 28.2 Runtime Data ====
'''Topic: systemHea l th/runtime/ out'''
'''Topic: systemHea l th/runtime/ out'''


Publish rate: '''1 Hz''' (one message per second, clock-jump safe)
Publish rate: '''1 Hz''' (one message per second, clock-jump safe)


===== 27.2.1 Metrics Provided =====
===== 28.2.1 Metrics Provided =====
{| class="wikitable tech-table"
{| class="wikitable tech-table"
!'''Key'''
!'''Key'''
Line 950: Line 950:
</syntaxhighlight>
</syntaxhighlight>


==== 27.3 Peripherals health ====
==== 28.3 Peripherals health ====
  In order get the peripherals health we had to implement a SystemHealth actor in each bus manager (busi2c­O, busi2c-1, etc. ... ).
  In order get the peripherals health we had to implement a SystemHealth actor in each bus manager (busi2c­O, busi2c-1, etc. ... ).


Line 956: Line 956:
[[File:Peripherals health.svg|center|frameless|792x792px]]
[[File:Peripherals health.svg|center|frameless|792x792px]]


===== 27.3.1 Example =====
===== 28.3.1 Example =====
'''For busi2c-0:'''
'''For busi2c-0:'''


Line 1,163: Line 1,163:
</syntaxhighlight>
</syntaxhighlight>


=== 28. TempSensor Actor ===
=== 29. TempSensor Actor ===


==== 28.1 App Interfacing ====
==== 29.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.


===== 28.1.1 Set temperature sensor configurations =====
===== 29.1.1 Set temperature sensor configurations =====
Req-Topic: tempSensor/config/in
Req-Topic: tempSensor/config/in


Line 1,208: Line 1,208:
</syntaxhighlight>
</syntaxhighlight>


===== 28.1.2 Read temperature sensor configurations =====
===== 29.1.2 Read temperature sensor configurations =====
Req-Topic: tempSensor/config/in
Req-Topic: tempSensor/config/in


Line 1,246: Line 1,246:
</syntaxhighlight>
</syntaxhighlight>


===== 28.1.3 Read temperature and alert status =====
===== 29.1.3 Read temperature and alert status =====


* unit: Temperature unit of measure
* unit: Temperature unit of measure
Line 1,278: Line 1,278:
</syntaxhighlight>
</syntaxhighlight>


=== 29. TFT Actor ===
=== 30. TFT Actor ===


==== 29.1 App Interfacing ====
==== 30.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to control and interact with the TFT display, or frontal panel LCD screen. Connecting to the broker for this Area requires no credentials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to control and interact with the TFT display, or frontal panel LCD screen. Connecting to the broker for this Area requires no credentials.


==== 29.2 TFT Display Actor ====
==== 30.2 TFT Display Actor ====
  The TFT Actor is responsible for:
  The TFT Actor is responsible for:


Line 1,291: Line 1,291:
* Providing feedback to the application via MQTT
* Providing feedback to the application via MQTT


===== 29.2.1 Screen Carousel Concept =====
===== 30.2.1 Screen Carousel Concept =====
The TFT actor maintains an '''ordered list of screens''' (carousel).
The TFT actor maintains an '''ordered list of screens''' (carousel).


Line 1,306: Line 1,306:
- RIGHT on last screen --> first screen
- RIGHT on last screen --> first screen


===== 29.2.2 Screen Types =====
===== 30.2.2 Screen Types =====
The TFT actor supports the following screen types:
The TFT actor supports the following screen types:


Line 1,321: Line 1,321:
* No user interaction required
* No user interaction required


===== 29.2.3 Joystick Navigation Logic =====
===== 30.2.3 Joystick Navigation Logic =====
'''Carousel Navigation:'''
'''Carousel Navigation:'''
{| class="wikitable"
{| class="wikitable"
Line 1,337: Line 1,337:
|}
|}


===== 29.2.4 Boot Behavior =====
===== 30.2.4 Boot Behavior =====
At system boot:
At system boot:


Line 1,346: Line 1,346:
# Actor waits for runtime commands
# Actor waits for runtime commands


===== 29.2.5 Design Notes & Constraints =====
===== 30.2.5 Design Notes & Constraints =====


* TFT actor does not expose joystick state
* TFT actor does not expose joystick state
Line 1,355: Line 1,355:
* Confirmation screens always require explicit CENTER press
* Confirmation screens always require explicit CENTER press


==== 29.3 User interaction through MQTT ====
==== 30.3 User interaction through MQTT ====
Enabling interaction with the carousel using the topic tft/runtime/in . Actions available will be public to the user.
Enabling interaction with the carousel using the topic tft/runtime/in . Actions available will be public to the user.


Line 1,442: Line 1,442:
</syntaxhighlight>
</syntaxhighlight>


=== 30. Analoglnputs Actor ===
=== 31. Analoglnputs Actor ===


==== 30.1 App Interfacing ====
==== 31.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.


===== 30.1.1 Configurations =====
===== 31.1.1 Configurations =====
'''  Topic: analoglnputs/config/in - Set ADC channels configurations'''
'''  Topic: analoglnputs/config/in - Set ADC channels configurations'''


Line 1,509: Line 1,509:
</syntaxhighlight>
</syntaxhighlight>


===== 30.1.2 Runtime Data =====
===== 31.1.2 Runtime Data =====
'''Topic: analoglnputs/runtime/in.'''
'''Topic: analoglnputs/runtime/in.'''


Line 1,567: Line 1,567:
</syntaxhighlight>
</syntaxhighlight>


=== 31. Analog Outputs Actor ===
=== 32. Analog Outputs Actor ===


==== 31.1 App Interfacing ====
==== 32.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.


===== 31.1.1 Set analog outputs signal =====
===== 32.1.1 Set analog outputs signal =====
Req-Topic: analogOutputs/config/in
Req-Topic: analogOutputs/config/in


Line 1,615: Line 1,615:
</syntaxhighlight>
</syntaxhighlight>


===== 31.1.2 Set analog outputs =====
===== 32.1.2 Set analog outputs =====
Req-Topic: analogOutputs/runtime/in
Req-Topic: analogOutputs/runtime/in


Line 1,656: Line 1,656:
</syntaxhighlight>
</syntaxhighlight>


===== 31.1.3 Read analog outputs settings =====
===== 32.1.3 Read analog outputs settings =====
Req-Topic: analogOutputs/runtime/in
Req-Topic: analogOutputs/runtime/in


Line 1,695: Line 1,695:
</syntaxhighlight>
</syntaxhighlight>


=== 32. Digital lnputs Actor ===
=== 33. Digital lnputs Actor ===


==== 32.1 App Interfacing ====
==== 33.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credentials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credentials.


===== 32.1.1 Set digital input pin/pins speed fast/slow =====
===== 33.1.1 Set digital input pin/pins speed fast/slow =====
The '''fast''' speed setting supports edge detection speed up to 100 Hz and the '''slow''' speed settings supports up to 10 Hz.
The '''fast''' speed setting supports edge detection speed up to 100 Hz and the '''slow''' speed settings supports up to 10 Hz.


Line 1,753: Line 1,753:
</syntaxhighlight>
</syntaxhighlight>


===== 32.1.2 Get all digital input pins state =====
===== 33.1.2 Get all digital input pins state =====
Req-Topic: digitallnputs/runtime/in<syntaxhighlight lang="json">
Req-Topic: digitallnputs/runtime/in<syntaxhighlight lang="json">
{
{
Line 1,793: Line 1,793:
</syntaxhighlight>
</syntaxhighlight>


=== 33. Digital Outputs Actor ===
=== 34. Digital Outputs Actor ===


==== 33.1 App Interfacing ====
==== 34.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this area requires no credencials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this area requires no credencials.


===== 33.1.1 Get all digital output pins state =====
===== 34.1.1 Get all digital output pins state =====
Req-Topic: digitalOutputs/runtime/in<syntaxhighlight lang="json">
Req-Topic: digitalOutputs/runtime/in<syntaxhighlight lang="json">
{
{
Line 1,851: Line 1,851:
</syntaxhighlight>
</syntaxhighlight>


===== 33.1.2 Set all digital output pins state =====
===== 34.1.2 Set all digital output pins state =====
Req-Topic: digitalOutputs/runtime/in<syntaxhighlight lang="json">
Req-Topic: digitalOutputs/runtime/in<syntaxhighlight lang="json">
{
{
Line 1,937: Line 1,937:
</syntaxhighlight>
</syntaxhighlight>


==== 33.2 Notes ====
==== 34.2 Notes ====
If the busi2c-3 is not powered, we will get this:
If the busi2c-3 is not powered, we will get this:


Line 1,984: Line 1,984:
</syntaxhighlight>
</syntaxhighlight>


=== 34. Joystick Actor ===
=== 35. Joystick Actor ===


==== 34.1 App Interfacing ====
==== 35.1 App Interfacing ====
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.
User App interface and functionalities exposed to the open part of the MQTT broker. Simplified interface to configure and obtain peripherals data. Connecting to the broker for this Area requires no credencials.


===== 34.1.1 Get all joystick pins state =====
===== 35.1.1 Get all joystick pins state =====
Req-Topic: joystick/runtime/in<syntaxhighlight lang="json">
Req-Topic: joystick/runtime/in<syntaxhighlight lang="json">
{
{
Line 2,033: Line 2,033:
</syntaxhighlight>
</syntaxhighlight>


=== 35. Included Software Stack ===
=== 36. Included Software Stack ===




[[File:AtlasCode.svg|center|frameless|583x583px]]
[[File:AtlasCode.svg|center|frameless|583x583px]]


=== 36. Hardware Libraries ===
=== 37. Hardware Libraries ===
[IMAGE PLACEHOLDER]
[IMAGE PLACEHOLDER]


=== 37. Related Products ===
=== 38. Related Products ===
{| class="wikitable"
{| class="wikitable"
|'''PA'''
|'''PA'''
Line 2,072: Line 2,072:
|}
|}


=== 38. Accessories ===
=== 39. Accessories ===
{| class="wikitable"
{| class="wikitable"
|'''PA'''
|'''PA'''
Line 2,099: Line 2,099:
|}
|}


=== 39. Document History ===
=== 40. Document History ===
{| class="wikitable"
{| class="wikitable"
|'''Version'''
|'''Version'''
Line 2,118: Line 2,118:
|}
|}


=== 40. SENSBLUE ATLAS in-the-field ===
=== 41. SENSBLUE ATLAS in-the-field ===
[IMAGE PLACEHOLDER]
[IMAGE PLACEHOLDER]