THE ANNIN ROBOTICS FORUM HAS MOVED TO A NEW COMMUNITY. 👉
MacOS Software Comp...
 
Notifications
Clear all

MacOS Software Compatibility

8 Posts
4 Users
0 Reactions
74 Views
Alex Manusovich
(@alex-manusovich)
Active Member Customer
Joined: 2 months ago
Posts: 7
Topic starter  

Hello Chris and community! This is my first post here and let me say thank you for all your hard work what you did. I am truly impressed with amount of materials you put in place to share the knowledge as well as well established process with kits and hardware. Two weeks ago I placed my first orders for all components and now I have fully assembled arm. As about MacOS. Since you are using tkinter for client UI, I was able to run it but it is failing on serial port initialization. It is failing because you hardcoded COM as prefix for serial port which will work only for Windows. Linux based OS (and MacOS too) don't have serial port meta names like comX. Serial ports there will have path-like addresses. For example /dev/xxx. Client application works well if we will remove hardcoded "COM" string from ARCS.py inside setCom method. So instead of hardcoding it in the code, you can just let people enter full address in UI. For windows it is going to be COM3 and for MacOS it can be something like /dev/tty.usbmodem71008001



   
Quote
Chris Annin
(@chris-annin)
Member Admin
Joined: 2 months ago
Posts: 535
 

That's a great suggestions. I will definitely look at adding a text field for the entire com string on the next release. thank you for the input - much appreciated.



   
ReplyQuote
Avatar of Kstan Simit
(@kstan-simit)
Estimable Member
Joined: 2 months ago
Posts: 105
 

Hi Alex,

 

How you start the client application? I tried using ARCS source file 'ARCS.py' it give me blank screen as below

You have any ideal why it look like this?



   
ReplyQuote
Avatar of Kstan Simit
(@kstan-simit)
Estimable Member
Joined: 2 months ago
Posts: 105
 

Problem solved:

I use ARCS source file,

1. comment line ARCS.py line 67,

 
 
...
root.wm_title("ARCS - Annin Robotics Control Software Ver 1.0")
#root.iconbitmap(r'AR.ico') //Linux and Mac can't find this icon
root.resizable(width=True, height=True)
...

In 
 

2. install required package in python

 
pip3 install numpy serial //or use full path
 

2. Use arduino ide to identified both serial port of teensy and arduino, in my case:

/dev/tty.usbmodem79744201   # teensy
/dev/tty.usbserial-14330   # arduino

* u may get /dev/cu....., it is same

 

3. Copy both serial port into COM port column, press button 'Set Com'. You should able to connect it.

 

** I have ugly GUI, most probably retina display cause it and I cant solve it.

 


   
ReplyQuote
Alex Manusovich
(@alex-manusovich)
Active Member Customer
Joined: 2 months ago
Posts: 7
Topic starter  

Yeah. I have same "ugly" interface. There are couple of reasons. Tkinter renders fonts on Win and Mac differently so majority of labels are out of boundaries. Also transparency mode is different in mac so you can see white background for labels. There are also some differences around text box widths based on number of characters. Anyway it works and can control robot and that is the main thing 🙂



   
ReplyQuote
Avatar of Kstan Simit
(@kstan-simit)
Estimable Member
Joined: 2 months ago
Posts: 105
 

@alex-manusovich Ok, now the application work but my arm no work as expected. I think there might be error from wiring, or wire. Hope I have can Quickly finish fix the error and tidy up this for Mac environment



   
ReplyQuote
Avatar of Kstan Simit
(@kstan-simit)
Estimable Member
Joined: 2 months ago
Posts: 105
 

Eventhought ACSR.py is running fine, but it is annoying cause cannot see the label properly, I fixed the x position of label as below method.

 

I suggest Chris to detect OS and include different OS environment file, so it can tweak layout variable for labelxN.

 

Or, if you agree we can put ACSR.py code into github and I help to prepare Linux/Mac environment file and send Pull Request

 


   
ReplyQuote
Avatar of Adam Haile
(@adam-haile)
New Member
Joined: 2 months ago
Posts: 2
 

Looking at the latest v4.0 version of the control software and it still has "COM" hard coded in `setCom()` and `setCom2()`, preventing this from working on Linux I can certainly just change that myself, but any chance of getting it updated in the official code? Also, is there any reason the source isn't on github or similar?



   
ReplyQuote
Share:
Upload your Photo