<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>On the Line</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/</link><description>A design challenge centred on adding intelligence to production lines, with projects that monitor processes, test products, and improve uptime through automation and data-driven control.  Participants build and share practical industrial solutions, showing</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Forum Post: 4 Communication rocks!!!</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57033/4-communication-rocks</link><pubDate>Tue, 16 Jun 2026 01:58:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:01b5934b-0359-4352-810f-6a440b09c850</guid><dc:creator>pandoramc</dc:creator><description>A computer system is not able to process an analog signal. Despite this fact, a digital system, such as a processor, can process an enormous amount of data to make decisions about physical variables. How is a physical phenomenon described by the data stored in a memory section? The answer is simple but quite difficult to implement. An analog-to-digital converter is required to take an analog signal and convert it to digital data. This process involves a time-based sampling to observe the phenomenon, quantify the observed value and assign a digital code that is representative for the digital system. Figure 1 Analog-to-Digital convertion representation One of the most important components in signal processing, whether analog or digital, is the signal conditioner. A signal conditioner is part of the sensing system since it converts a phenomenon into a voltage response. There are many types of temperature transducers that detect changes in the environment such as RTDs and NTCs. This time, thanks to the On the Line Design Challenge, there are K-type thermocouples. In my last blog I wrote about the probe mounting for harsh environments and fluid isolation. However, a question arose: How can I connect the probe to store data in the processor memory when the sensing stage provides some mV/&amp;#176;C and the dynamic range of the ADCs is huge compared with the thermocouple response? An example considered is for a 1V1 ADC_REF (silicon gap) for a 10-bit resolution ADC. In this case, the minimum detectable value is around 1.07 mV, but the ADC_REF must be small to detect small changes in temperature. This is not feasible for the measurement system using the default references on the board for each channel required. Methodology After exploring multiple options for creating an interface between the thermocouple and the data storage, I decided to use a commercial option to acquire temperature data. The first option I considered was using the DeviceNet protocol with an Allen Bradley PLC. Although the 1769-32E CPU is not recommended for new designs, it can perform interesting tasks. At least four thermocouples can be connected using the 1769 Thermocouple module, but the connection of Cold Junction Compensation (CJC) is required for the correct measurement of the environment. On the other hand, special thermoblocks and wire extensions are required for the connection with the module since a small wiring variation can induce offset and/or non-linearities in the measurement. Another option is to use temperature transmitters or analog front ends (AFE). While these elements have the same inconvenience of the thermocouple module for wiring, most of the AFE found has a temperature range above 0 &amp;#176;C. For test purposes are useful, but in the future the system requires measurement below this magnitude. The last option is the UT325F of UNI-T thermometer system. This equipment has up to 4 channels in multiple kinds of probes; it is possible to adjust the temperature offset since the CJC is internal and it has a Windows/Android application to capture data. {gallery}Interfaces Figure 2 Data acquisition assembly options for thermocouple connection As you wonder, I asked myself a question, is it possible to get data in the Arduino UNO Q Linux system? The answer, YES!!! I did a lot of tests capturing the data and recognizing patterns in the received frame. The procedure consisted of the connecting and disconnecting the probes in each channel of the thermometer. I recognized some number patterns heating the probe with my hand, but I was not able to understand it at all. Aided by an AI tool I recognized two important patterns the data is transmitted in little endian while the CRC is transmitted in big endian. The data is repetitive, but I am not sure why at the moment to write this blog. And the third pattern recognized completely by me is to inform if a probe is connected to a specific channel. This task was in a PC since the equipment has a CH340 USB-to-UART variant which Arduino UNO Q Linux image has not a driver to handle communication. This was solved compiling and installing a driver available here: https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/linux And the results were incredible Figure 3 Project transfer from the Arduino UNO Q to the PC by ssh copy Figure 4 Serial port frame capture with data decoding import serial import struct import time from datetime import datetime SERIAL_PORT = &amp;#39;/dev/ttyCH341USB0&amp;#39; BAUD_RATE = 115200 TIMEOUT = 1 FRAME_LEN = 56 def compute_checksum(data): &amp;quot;&amp;quot;&amp;quot;Calculate big-endian 16-bit checksum&amp;quot;&amp;quot;&amp;quot; total = sum(data) &amp;amp; 0xFFFF # 16-bits CRC return total.to_bytes(2, &amp;#39;big&amp;#39;) def parse_temperature(frame): &amp;quot;&amp;quot;&amp;quot; Extract 4 Float numbers in little endian format Initial index is equal to 5 &amp;quot;&amp;quot;&amp;quot; start = 5 floats = [] for i in range(4): b = frame[start + i*4 : start + i*4 + 4] if len(b) == 4: val = struct.unpack(&amp;#39; = 2 and buffer[-2] == 0xAA and buffer[-1] == 0x55: while len(buffer) = FRAME_LEN: frame = buffer[-FRAME_LEN:] data_part = frame[:-2] recv_checksum = frame[-2:] calc_checksum = compute_checksum(data_part) if recv_checksum == calc_checksum: return frame else: print(&amp;quot;Wrong checksum&amp;quot;) buffer.pop(0) else: buffer.clear() else: if len(buffer) &amp;gt; FRAME_LEN * 2: buffer = buffer[-FRAME_LEN:] def main(): try: ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=TIMEOUT) dFile = open(&amp;quot;data.csv&amp;quot;, &amp;quot;w&amp;quot;) dFile.write(&amp;quot;t,T1,T2,T3,T4\n&amp;quot;) while True: ser.reset_input_buffer() frame = read_and_validate(ser) if frame: print(&amp;quot;Received Frame [hex]:&amp;quot;, &amp;#39; &amp;#39;.join(f&amp;#39;{b:02x}&amp;#39; for b in frame)) print(&amp;quot;╔═════════════════════════╗&amp;quot;) temps = parse_temperature(frame) valid = parse_connected(frame) dFile.write(f&amp;quot;{datetime.now().strftime(&amp;#39;%Y-%m-%d %H:%M:%S&amp;#39;)},&amp;quot;) for i in range(0, len(temps)): if(valid[i] == True): print(f&amp;quot;║ Temperature {i + 1}: {temps[i]: 5.1f} &amp;#176;C ║&amp;quot;) dFile.write(f&amp;quot;{temps[i]},&amp;quot;) else: print(f&amp;quot;║ Temperature {i + 1}: NaN &amp;#176;C ║&amp;quot;) dFile.write(f&amp;quot;NaN,&amp;quot;) print(&amp;quot;╚═════════════════════════╝&amp;quot;, end=&amp;quot;\033[F\033[F\033[F\033[F\033[F\033[F&amp;quot;) dFile.write(&amp;quot;\b\n&amp;quot;); time.sleep(1) except serial.SerialException as e: print(f&amp;quot;Serial por error: {e}&amp;quot;) except KeyboardInterrupt: print(&amp;quot;\nExecution stopped by the user&amp;quot;) finally: if &amp;#39;ser&amp;#39; in locals() and ser.is_open: ser.close() if &amp;#39;dFile&amp;#39; in locals() and not dFile.closed: dFile.close() if __name__ == &amp;quot;__main__&amp;quot;: main() The future Now, it is time to integrate the RCP interface for the usage of the microcontroller to activate the compressor. Actually, the implemented script can receive data, process and write a CSV file to be stored in memory for future consult and analysis, but it is not able still to make decisions. The last test will consist of data sharing between the processor and microcontroller to test the system threshold and hysteresis for a full-operation test. {gallery}achievements Figure 5 Actual temperature data storing achievement</description><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/python">python</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/On%2bthe%2bline%2bdesign%2bchallenge">On the line design challenge</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/On%2bThe%2bLine">On The Line</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/thermometer">thermometer</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/arduino%2buno%2bq">arduino uno q</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/thermocouples">thermocouples</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/UT325F">UT325F</category></item><item><title>Forum Post: RE: project planing and more Arduino Uno Q struggle.</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/56932/project-planing-and-more-arduino-uno-q-struggle/236122</link><pubDate>Sun, 14 Jun 2026 12:55:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:12fb8126-d177-4207-aed4-1f0d42c07f72</guid><dc:creator>arvindsa</dc:creator><description>Hey there, /dev/ttyHS1 is actually managed by the arduino-router service in linux and it is the way ArduinoQ talks to the STM32 via RPC. You can read more about it in my Forum post - SolarSense - Part 2 - Can Arduino CAN? I hope this will help you solve.</description></item><item><title>Forum Post: RE: SolarSense - Part 5 - Making an Live Dashboard using Lab View</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57030/solarsense---part-5---making-an-live-dashboard-using-lab-view/236121</link><pubDate>Sun, 14 Jun 2026 06:07:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:3a9786fc-96b7-45e5-a929-3acb3c2e767c</guid><dc:creator>arvindsa</dc:creator><description>Thank you</description></item><item><title>Forum Post: RE: Smart Ventilation Motor Monitoring System #5 Getting Started with CAN Protocol on XMC4200 Platform2GO in Arduino</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57029/smart-ventilation-motor-monitoring-system-5-getting-started-with-can-protocol-on-xmc4200-platform2go-in-arduino/236120</link><pubDate>Sat, 13 Jun 2026 20:01:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:5b827e53-1d6d-4171-ab0d-441fcfa05a3f</guid><dc:creator>DAB</dc:creator><description>Nice update.</description></item><item><title>Forum Post: RE: SolarSense - Part 5 - Making an Live Dashboard using Lab View</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57030/solarsense---part-5---making-an-live-dashboard-using-lab-view/236119</link><pubDate>Sat, 13 Jun 2026 19:59:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:21a893a0-69d9-462b-b9df-0ca829c16af7</guid><dc:creator>DAB</dc:creator><description>Nice update.</description></item><item><title>Forum Post: RE: Forum#4: Adapting the Sentinel Vision Model for Industrial Defect Detection (ILS)</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57022/forum-4-adapting-the-sentinel-vision-model-for-industrial-defect-detection-ils/236107</link><pubDate>Sat, 13 Jun 2026 11:22:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:027b2446-c741-425d-9f03-c6c83cf8b795</guid><dc:creator>arvindsa</dc:creator><description>Eventhough it may not be in the scope of this challenger, you can think of a hybrid mechanism where the PIR will trigger the Camera, the camera can further filter the results, this would provide a low power system without the issue of false positives but at the cost of complexity .</description></item><item><title>File: LabVIEW_DxuZ83tJQ9</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/m/managed-videos/151432</link><pubDate>Sat, 13 Jun 2026 08:59:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:463ea0b0-501d-4f76-a599-2e36e30ceb06</guid><dc:creator>element14 Community</dc:creator><description /></item><item><title>File: how to json unflatten</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/m/managed-videos/151431</link><pubDate>Sat, 13 Jun 2026 08:58:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:aab1325e-aa95-4d51-b7a7-3cd1e763dc32</guid><dc:creator>arvindsa</dc:creator><description /></item><item><title>File: LabVIEW | Sending Sensors Data over TCP protocol | Client and Server VI</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/m/managed-videos/151430</link><pubDate>Sat, 13 Jun 2026 08:58:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:80403f83-9905-4ed7-9c77-7152e240cfad</guid><dc:creator>arvindsa</dc:creator><description>#TCPprotocol #LabVIEW #RemoteServer Sending any data from one VI to other by setting remote server. In this video tutorial I have used a thermometer control as a sensor and created a client VI. Then by setting correct bytes to read I got the data ...</description><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/sending%2bsensors%2bdata%2bover%2btcp%2bprotocol%2bin%2blabview">sending sensors data over tcp protocol in labview</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/tcp%2bclient%2band%2bserver%2bprogram%2bin%2blabview">tcp client and server program in labview</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/labview%2btutorial">labview tutorial</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/tcp%2bbytes%2bread%2blabview">tcp bytes read labview</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/remote%2bport%2bsetup%2bin%2blabview">remote port setup in labview</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/TCP%2bprotocol%2bin%2blabview">TCP protocol in labview</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/tcp_2F00_ip%2bprotocol">tcp/ip protocol</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/labview">labview</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/labview%2bexercises">labview exercises</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/client%2band%2bserver%2bVI">client and server VI</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/tcp%2bclient%2band%2bserver">tcp client and server</category></item><item><title>Forum Post: SolarSense - Part 5 - Making an Live Dashboard using Lab View</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57030/solarsense---part-5---making-an-live-dashboard-using-lab-view</link><pubDate>Sat, 13 Jun 2026 08:57:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:960beefa-68bb-4139-a93a-3216ac8df38e</guid><dc:creator>arvindsa</dc:creator><description>Recap: I&amp;#39;m building a smart solar monitoring system that uses three panels with a clean reference to eliminate weather effects and directly measure dust-induced losses in real time. One panel stays pristine as a baseline, and comparing the two under identical sky conditions gives a performance ratio that reveals soiling immediately. The goal is to use environmental sensors and edge AI to predict exactly when cleaning is needed, before efficiency drops enough to impact revenue. This beats fixed-schedule cleaning or waiting for output to degrade.Also this is complementary to my Master&amp;#39;s thesis of a minute Shape memory Alloy based solar panel cleaning robot Previous posts: SolarSense - Part 1 - Introduction, The POC Built and The Plan SolarSense - Part 2 - Can Arduino CAN? SolarSense - Part 3 - PCB Schematics Walkthrough SolarSense - Part 4 - CAN Protocol Deep Dive and Implementation Hello Lab View, Haven&amp;#39;t seen you since my Undergrad The last time I used Lab View was during my Undergraduate academics in Control Lab, I never was a fan of high level graphical style programming plus all of my work never required Lab View, so I was happy until this challenge came up. On the bright side, I am happy to say that there is Community version available. I don&amp;#39;t remember seeing the community when I used it. Without any research of what is the difference between Community vs Professional was, I went to the community version. Obviously to activate the Community version, I had to create an account. It was No mess, No Fuss Installation. In this post, the aim will be to create a dashboard to show values published by the Arduino Q via TCP packets. These will include, the Solar panel outputs, The Environmental parameters such as UV, AQI, Humidity and then the system parameters such as battery, Error flags etc. Getting A Gauge up and Running The Python Code I made a quick code to keep sending values 4 times a second. Apologies for no comments. import math import socket import threading import time HOST = &amp;quot;0.0.0.0&amp;quot; PORT = 9000 UPDATE_INTERVAL = 0.25 def read_value(t: float) -&amp;gt; float: return round(50 + 45 * math.sin(t / 3.0), 2) def handle_client(conn: socket.socket, addr) -&amp;gt; None: print(f&amp;quot;[+] client connected: {addr}&amp;quot;) start = time.monotonic() try: while True: value = read_value(time.monotonic() - start) conn.sendall(f&amp;quot;{value}\r\n&amp;quot;.encode(&amp;quot;ascii&amp;quot;)) time.sleep(UPDATE_INTERVAL) except (ConnectionResetError, BrokenPipeError, OSError): pass finally: conn.close() print(f&amp;quot;[-] client disconnected: {addr}&amp;quot;) def main() -&amp;gt; None: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server: server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind((HOST, PORT)) server.listen() print(f&amp;quot;Gauge TCP server listening on {HOST}:{PORT} (Ctrl+C to stop)&amp;quot;) try: while True: conn, addr = server.accept() threading.Thread( target=handle_client, args=(conn, addr), daemon=True ).start() except KeyboardInterrupt: print(&amp;quot;\nShutting down.&amp;quot;) if __name__ == &amp;quot;__main__&amp;quot;: main() The Front Panel of Lab View A Plain Gauge with range 0-100 and a Stop button Block Diagram When Creating a VI, it opens two window, one is the UI Editor and the other is the Block Diagram Editor. The Block diagram is where is the logic is executed. I Referred to the YouTube video https://www.youtube.com/watch?v=LMtdLqmRnVU to make the TCP Communication logic. One thing to note is that for all Inputs and Outputs to work in a loop, it has to be in the loop, else only the value of input at the start of first iteration of the Loop will be used. Any changes or presses to the Buttons will not be considered. The Result 10mins into Lab View, I have a live dashboard. Building the Actual Panel To get a full picture of the situation I need to have the following data Variable Type Unit Range panel_efficiency[0] DBL % 0–100 panel_efficiency[1] DBL % 0–100 panel_efficiency[2] DBL % 0–100 soiling_ratio DBL % 5.0–29.0 battery DBL % 0–100 tank_level DBL % 0–100 humidity DBL % 10–70 temperature DBL &amp;#176;C 13–37 uv DBL Index 2.0–8.0 aqi INT &amp;#181;g/m&amp;#179; 20–80 status_ok INT — 0 or 1 error INT — 0 or 1 These data will be sent as a JSON over TCP. For testing, i will be randomizing the values such that they oscillate between minimum and maximum. { &amp;quot;panel_efficiency&amp;quot;: [25.5, 24.8, 22.3], &amp;quot;soiling_ratio&amp;quot;: 15.2, &amp;quot;humidity&amp;quot;: 65.0, &amp;quot;temperature&amp;quot;: 28.5, &amp;quot;uv&amp;quot;: 6.2, &amp;quot;aqi&amp;quot;: 55, &amp;quot;battery&amp;quot;: 78.4, &amp;quot;status_ok&amp;quot;: 1, &amp;quot;error&amp;quot;: 0, &amp;quot;tank_level&amp;quot;: 78.4 } The Front Panel The Block Diagram www.youtube.com/watch This is where I started running into trouble. I initially thought the Unflatten from JSON block would simply split the JSON into key–value pairs, but it wasn’t that straightforward. I had to declare the structure of the expected JSON format using a cluster definition—the long vertical box to the left of the while loop. I was able to get this working by referring to a YouTube video https://www.youtube.com/watch?v=kx1E5QnnLy0 . However, I ran into another issue when declaring a Boolean. For some reason, I couldn’t find the Boolean type. To save time, I modified the Python code to send the status flags as 0/1 integers instead of Booleans. I assumed I could use an integer-to-Boolean conversion block while reading the JSON from the server, but I couldn’t find such a block either. As a workaround, I ended up using the “If Not Equal” comparison block instead. I also noticed that the UI started being slow. Not sure why. community.element14.com/.../LabVIEW_5F00_DxuZ83tJQ9.mp4 The Final Working I have not been able to get the XY Graph to work yet, But to me, It&amp;#39;s a stretch goal which i added impromptu Hopefully I should get it working by the deadline. Final Notes. I had some time reminiscing my college days using Lab View, fighting with my classmates to claim the limited number of floating license of Lab VIew, Coordinating with my friends so that They will claim the license the second I surrender mine back into the common pool, Getting the dashboard to work was probably the easiest part, but I still had fun. The PCB for the data collection has completed fabrication and is on the way, it should be with me in a day or two, I am still using the old POC to keep the data collection alive till then.</description><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/design%2bchallenge">design challenge</category><category domain="https://community.element14.com/challenges-projects/design-challenges/on-the-line/tags/labview">labview</category></item><item><title>Forum Post: RE: Forum#4: Adapting the Sentinel Vision Model for Industrial Defect Detection (ILS)</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57022/forum-4-adapting-the-sentinel-vision-model-for-industrial-defect-detection-ils/236104</link><pubDate>Sat, 13 Jun 2026 05:38:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8ba947c6-7bbc-4e71-b557-f654db209f60</guid><dc:creator>skruglewicz</dc:creator><description>Hi embeddedguy, thanks for the feedback and the great questions! Regarding the motion sensor , a PIR is definitely a solid, low-resource option. However, I opted for camera-based motion detection for two main reasons: Hardware Simplicity (BOM): Since the USB camera is already required for the MobileNet-SSD vision model, leveraging OpenCV for motion detection means one less sensor to wire, mount, and integrate into the system. Region of Interest (ROI): Camera-based motion gives me the flexibility to define specific pixel boundaries (like the designated &amp;quot;Red Zone&amp;quot;). A PIR sensor would trigger on any heat movement within its broader physical field of view, which could lead to false triggers outside the target area. For the power and USB management , you are correct that the UNO Q relies on the USB-C interface. To handle both simultaneously, I am using a standard USB-C hub with Power Delivery (PD) pass-through. This setup allows the UNO Q board to receive the necessary power while successfully maintaining the data connection with the UVC webcam. Hope that clears things up!</description></item><item><title>Forum Post: RE: 3 The newest system setup</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57023/3-the-newest-system-setup/236103</link><pubDate>Sat, 13 Jun 2026 02:34:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:d5a7317a-5700-410e-896a-809d0c3a7f19</guid><dc:creator>pandoramc</dc:creator><description>Thanks, I hope you like the next blog</description></item><item><title>Forum Post: RE: 3 The newest system setup</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57023/3-the-newest-system-setup/236102</link><pubDate>Sat, 13 Jun 2026 02:29:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4a7397ed-3007-4a29-9b46-3c197763193d</guid><dc:creator>pandoramc</dc:creator><description>Hi saramic thanks for your greetings,have been working continuously and I hope that it meets your expectations. The probes with the thermowell take a bit more time to stablish the temperature measurement but it creates isolation in the harsh environments. I used another kind of reader configuration than the proposed initially, but it is functional and it has an interesting behavior reported in the next blog. Have a better luck in your way.</description></item><item><title>Forum Post: Smart Ventilation Motor Monitoring System #5 Getting Started with CAN Protocol on XMC4200 Platform2GO in Arduino</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57029/smart-ventilation-motor-monitoring-system-5-getting-started-with-can-protocol-on-xmc4200-platform2go-in-arduino</link><pubDate>Fri, 12 Jun 2026 03:21:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9273805b-0056-45ca-908d-7d2202079e38</guid><dc:creator>fyaocn</dc:creator><description>1 Getting start with CAN For test CAN in the other end, XMC4200 platform2go is used CAN (Controller Area Network) is for industrial and automotive embedded communication. It’s a robust, multi-master serial protocol designed for reliable real-time data exchange between microcontrollers, sensors, and actuators—even in electrically noisy environments. Infineon XMC4200 Platform2GO with the Arduino IDE can give a quick glance. 2 CAN in a glance CAN was developed by Bosch in the 1980s for automotive applications, but it’s now used widely in industrial automation, robotics, and aerospace. Key features, No single “master” device; any node can send data when the bus is free. Error resilience : Built-in error checking, arbitration, and retransmission to ensure data integrity. Two message formats: Standard CAN (11-bit ID) : Shorter, faster identifiers for simple systems and Extended CAN (29-bit ID) : Longer identifiers for complex networks with many nodes. Flexible data length : Classic CAN supports up to 8 bytes of data per packet; newer CAN FD extends this to 64 bytes. For the XMC4200, the on-chip CAN peripheral is fully supported by Infineon’s Arduino core, making it easy to prototype CAN applications without low-level register programming. CANH and CANL are two wires for communication on 12V or 24V bus. 3 USING ARDUINO IDE Using Arduino is quick start for can #include void setup() { Serial.begin(9600); while (!Serial); Serial.println(&amp;quot;CAN Sender&amp;quot;); // start the CAN bus at 500 kbps if (!CAN.begin(500E3)) { Serial.println(&amp;quot;Starting CAN failed!&amp;quot;); while (1); } } void loop() { // send packet: id is 11 bits, packet can contain up to 8 bytes of data Serial.print(&amp;quot;Sending packet ... &amp;quot;); CAN.beginPacket(0x12); CAN.write(&amp;#39;h&amp;#39;); CAN.write(&amp;#39;e&amp;#39;); CAN.write(&amp;#39;l&amp;#39;); CAN.write(&amp;#39;l&amp;#39;); CAN.write(&amp;#39;o&amp;#39;); CAN.endPacket(); Serial.println(&amp;quot;done&amp;quot;); delay(1000); CAN.beginExtendedPacket(0xFFF); CAN.write(&amp;#39;w&amp;#39;); CAN.write(&amp;#39;o&amp;#39;); CAN.write(&amp;#39;r&amp;#39;); CAN.write(&amp;#39;l&amp;#39;); CAN.write(&amp;#39;d&amp;#39;); CAN.endPacket(); Serial.println(&amp;quot;done&amp;quot;); delay(1000); } The code is simple , put loop code in the the CAN bus serial.begin(9600) : Initializes the UART serial port at 9600 baud for debug messages. CAN.begin(500E3) : Initializes the CAN bus at 500 kbps , one of the most common baud rates for automotive and industrial applications. If initialization fails (e.g., hardware issue), the code prints an error and stops. Then in loop CAN.beginPacket(0x12) : Starts a new standard CAN packet with the 11-bit identifier 0x12 . CAN.write() : Adds data bytes to the packet. Here, we’re sending the ASCII characters &amp;#39;h&amp;#39; , &amp;#39;e&amp;#39; , &amp;#39;l&amp;#39; , &amp;#39;l&amp;#39; , &amp;#39;o&amp;#39; (5 bytes total, well within the 8-byte limit). CAN.endPacket() : Finalizes and sends the packet over the CAN bus. Then in extend CAN.beginExtendedPacket(0xFFFFF) : Starts an extended CAN packet with the 29-bit identifier 0xFFFFF . This is useful when you need more unique IDs for a large network of devices. The rest works the same way: we send the characters &amp;#39;w&amp;#39; , &amp;#39;o&amp;#39; , &amp;#39;r&amp;#39; , &amp;#39;l&amp;#39; , &amp;#39;d&amp;#39; as data bytes. 4 Test for CAN on XMC4200 Baud Rate Matching: All devices on the CAN bus must use the same baud rate. 500 kbps is standard for automotive, 125 kbps is common for industrial applications. Termination Resistors: Always add 120Ω resistors at the two ends of the CAN bus to eliminate signal reflections. This resistor is soldered in this board. Common Ground: All devices on the bus must share a common ground reference for reliable communication. Although only two line is enough for communication. The test result is output in serial terminal Now it is ready for the CAN bus run as expected.</description></item><item><title>Forum Post: RE: SolarSense - Part 4 - CAN Protocol Deep Dive and Implementation</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57025/solarsense---part-4---can-protocol-deep-dive-and-implementation/236084</link><pubDate>Fri, 12 Jun 2026 03:09:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ce424e8-92ce-4764-9e7e-58a604ce5ba0</guid><dc:creator>arvindsa</dc:creator><description>Thank you so much.</description></item><item><title>Forum Post: RE: SolarSense - Part 4 - CAN Protocol Deep Dive and Implementation</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57025/solarsense---part-4---can-protocol-deep-dive-and-implementation/236083</link><pubDate>Thu, 11 Jun 2026 19:16:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:ad19867d-1bc9-4e4f-b1e6-8cefc04600e6</guid><dc:creator>DAB</dc:creator><description>Nice detailed update.</description></item><item><title>Forum Post: RE: SolarSense - Part 4 - CAN Protocol Deep Dive and Implementation</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57025/solarsense---part-4---can-protocol-deep-dive-and-implementation/236079</link><pubDate>Thu, 11 Jun 2026 08:11:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a299a0fb-9278-4737-ba03-f3c395bd5118</guid><dc:creator>arvindsa</dc:creator><description>Thank you so much. Indeed CAN is extremely robust against noise. Next post should be live tomorrow</description></item><item><title>Forum Post: RE: SolarSense - Part 4 - CAN Protocol Deep Dive and Implementation</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57025/solarsense---part-4---can-protocol-deep-dive-and-implementation/236077</link><pubDate>Thu, 11 Jun 2026 07:54:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:3db6b0f2-0afc-4a8d-9915-225fa1ff7bed</guid><dc:creator>Dipeshkachhi</dc:creator><description>Great update on the SolarSense project! CAN bus is such a robust choice for a solar monitoring system, especially when dealing with the electrical noise often found near inverters and high-current lines. Your breakdown of the protocol makes a complex topic very approachable. I particularly liked how you explained the implementation phase—it’s one thing to understand the theory of arbitration and frames, but another thing entirely to get it running on hardware. Looking forward to seeing how the data looks once all the nodes are communicating!</description></item><item><title>Forum Post: RE: SolarSense - Part 3 - PCB Schematics Walkthrough</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57020/solarsense---part-3---pcb-schematics-walkthrough/236075</link><pubDate>Thu, 11 Jun 2026 03:52:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8a905b92-36ac-4b29-b5fe-53ea011c346a</guid><dc:creator>arvindsa</dc:creator><description>I too prefer perf boards when it comes to building something as a fun and one off project, In-fact i go through them like a bunch of them a month. But anything that has a long term use or needs extreme low power, i prefer to make it on a PCB. I graduated in mechatronics and was more into robotics, motor control etc. But when i ventured into embedded electronics, the resource i preferred was a youtube channel called phils lab - https://www.youtube.com/@PhilsLab it has lots of resources. He has both Kicad and Altium tutorial.I may be biased in recommending this because, he goes too technical. But that&amp;#39;s my cup of tea. In terms of manufacturer, i use a mix of JLCPCB, PCBWay and a local Indian Manufacturer called Lions circuit. and my decision is based on a factors such as Budget, Colour of Soldermask, timeline, routing density and Layers.</description></item><item><title>Forum Post: RE: SolarSense - Part 3 - PCB Schematics Walkthrough</title><link>https://community.element14.com/challenges-projects/design-challenges/on-the-line/f/forum/57020/solarsense---part-3---pcb-schematics-walkthrough/236073</link><pubDate>Wed, 10 Jun 2026 23:45:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:88cdd78c-da7a-4bbe-8bd5-3f59710cb486</guid><dc:creator>saramic</dc:creator><description>wow nice - I built my nodes with perf boards and using modules mostly but certainly need to get into PCB making on a project in the next 12 months - any good getting started resources out there? I presume PCB way would have most of what you need to get going?</description></item></channel></rss>