<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>arduino | Giorgio Comai</title>
    <link>/tags/arduino/</link>
      <atom:link href="/tags/arduino/index.xml" rel="self" type="application/rss+xml" />
    <description>arduino</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><lastBuildDate>Sun, 13 Jul 2025 00:00:00 +0000</lastBuildDate>
    <image>
      <url>/images/icon_hu248e326f98e44b45e10be2f1a93e6dae_321612_512x512_fill_lanczos_center_2.png</url>
      <title>arduino</title>
      <link>/tags/arduino/</link>
    </image>
    
    <item>
      <title>Using Arduino Alvik on Fedora Linux</title>
      <link>/post/2025-07-arduino-alvik-notes/</link>
      <pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate>
      <guid>/post/2025-07-arduino-alvik-notes/</guid>
      <description>&lt;p&gt;[THIS IS A DRAFT DOCUMENT, POSTED FOR REFERENCE, IT MAY BE UPDATED]&lt;/p&gt;
&lt;p&gt;This is mostly a collection of scattered notes. I place them here, as I use the device only occasionally and from different laptops, hence I always end up wasting time troubleshooting issues. The most annoying - at least on Linux - are port permission issues, as IDEs and such just give generic errors and forums will send you through all sorts of unrelated side quests for resetting the device, etc. If you&amp;rsquo;re on Linux, before trying anything else, just check the &amp;ldquo;Fix port issues&amp;rdquo; section below.&lt;/p&gt;
&lt;h2 id=&#34;preliminary-issues&#34;&gt;Preliminary issues&lt;/h2&gt;
&lt;h3 id=&#34;battery&#34;&gt;Battery&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;check battery status:
&lt;ul&gt;
&lt;li&gt;green led means battery fully charged&lt;/li&gt;
&lt;li&gt;blinking red light means battery charging&lt;/li&gt;
&lt;li&gt;no lights on, and there&amp;rsquo;s a blinking orange light next to the QWIIC connector: faulty battery&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;connecting&#34;&gt;Connecting&lt;/h3&gt;
&lt;h4 id=&#34;fix-port-issues&#34;&gt;Fix port issues&lt;/h4&gt;
&lt;p&gt;On Fedora, at least, the default user will not have access to the needed ports.&lt;/p&gt;
&lt;p&gt;You can see by first checking which groups have access to the port:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls -l /dev/ttyACM*
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And then see which groups your user is a member of:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;groups
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You will likely see that your user is not part of &lt;code&gt;dialout&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So add yourself to &lt;code&gt;dialout&lt;/code&gt;, log out, and log back in.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo usermod -aG dialout $USER
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This should fix it even after reboot.&lt;/p&gt;
&lt;p&gt;Notice that you may still have issues if you rely on software installed via Flatpaks. See 
&lt;a href=&#34;https://discussion.fedoraproject.org/t/how-to-add-myself-to-the-dialout-group/24147?replies_to_post_number=7&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this post on the Fedora forums&lt;/a&gt; for reference.&lt;/p&gt;
&lt;p&gt;For a quick fix, consider just giving full access to that port, if you feel there are no other concerns &lt;code&gt;sudo chmod a+rw /dev/ttyACM0&lt;/code&gt;&lt;/p&gt;
&lt;h4 id=&#34;mlink&#34;&gt;Mlink&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://mblock.makeblock.com/en/download/mlink/&#34;&gt;https://mblock.makeblock.com/en/download/mlink/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;updating-the-firmware&#34;&gt;Updating the firmware&lt;/h3&gt;
&lt;p&gt;There are apparently two ways to go about it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;through the 
&lt;a href=&#34;https://alvikupdate.arduino.cc/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dedicated web page&lt;/a&gt; using a supported browser (e.g. Chrome, Firefox not supported)&lt;/li&gt;
&lt;li&gt;through the Arduino IDE web page&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;user-manuals-and-tutorials&#34;&gt;User manuals and tutorials&lt;/h2&gt;
&lt;h3 id=&#34;user-manual&#34;&gt;User manual&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.arduino.cc/tutorials/alvik/user-manual/&#34;&gt;https://docs.arduino.cc/tutorials/alvik/user-manual/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;getting-started&#34;&gt;Getting Started&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.arduino.cc/tutorials/alvik/getting-started/&#34;&gt;https://docs.arduino.cc/tutorials/alvik/getting-started/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;arduino-ide&#34;&gt;Arduino IDE&lt;/h2&gt;
&lt;h3 id=&#34;arduino-lab-for-micropython&#34;&gt;Arduino Lab for Micropython&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://labs.arduino.cc/en/labs/micropython&#34;&gt;https://labs.arduino.cc/en/labs/micropython&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are two main versions, one often found simply as Arduino IDE, the other as Arduino IDE V2. Both are available as Flatpaks via Flathub.&lt;/p&gt;
&lt;h3 id=&#34;arduino-ide-1&#34;&gt;Arduino IDE 1&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://support.arduino.cc/hc/en-us/articles/360019833020-Download-and-install-Arduino-IDE&#34;&gt;https://support.arduino.cc/hc/en-us/articles/360019833020-Download-and-install-Arduino-IDE&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;troubleshooting&#34;&gt;Troubleshooting&lt;/h2&gt;
&lt;h3 id=&#34;micropython-installer&#34;&gt;MicroPython installer&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.arduino.cc/micropython/first-steps/install-guide/&#34;&gt;https://docs.arduino.cc/micropython/first-steps/install-guide/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Available on the GitHub repo, compiled as a package for Debian, but not for Fedora; can be built from source:
&lt;a href=&#34;https://github.com/arduino/lab-micropython-installer&#34;&gt;https://github.com/arduino/lab-micropython-installer&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;utilities&#34;&gt;Utilities&lt;/h2&gt;
&lt;h3 id=&#34;check-battery-status&#34;&gt;Check battery status&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;from arduino_alvik import ArduinoAlvik
from time import sleep_ms
import sys

alvik = ArduinoAlvik()
alvik.begin()

alvik.print_status()

&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
  </channel>
</rss>
