Asked
Resolved Resolved by ptp!

Arcpi / Ezbpi On Raspberry Pi 3 Errors

Hello,

I am trying to run ARCPi and EZBPi on a Raspberry Pi 3. I have tried installing them on two different versions of Raspbian, the latest release and the 11/13/18 (stretch) version, which was released closer to "DJ's 9th Live Hack" (I have been following that YouTube tutorial). When I execute ARCPi, I get the following error before ARC launches:


pi@raspberrypi:~/EZ-BuilderPi $ mono ARC.exe
Unknown heap type: #GUlD

Unknown heap type: #Blop

Unknown heap type: #GUlD

Unknown heap type: #Blop

The help viewer could not load. Maybe you don't have chmsee installed or haven't set MONO_HELP_VIEWER. The specific error message was: ApplicationName='chmsee', CommandLine='"https://synthiam.com/Software"', CurrentDirectory='', Native error= Cannot find the specified file
X11 Error encountered: 
  Error: BadMatch (invalid parameter attributes)
  Request:     12 (0)
  Resource ID: 0x1C013B8
  Serial:      48245
  Hwnd:        Hwnd, Mapped:True ClientWindow:0x1C013B9, WholeWindow:0x1C013B8, Zombie=False, Parent:[Hwnd, Mapped:True ClientWindow:0x1C013B7, WholeWindow:0x1C013B6, Zombie=False, Parent:[]]
  Control:     System.Windows.Forms.Panel, BorderStyle: None  at System.Environment.get_StackTrace () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Windows.Forms.XplatUIX11.HandleError (System.IntPtr display, System.Windows.Forms.XErrorEvent& error_event) [0x00000] in :0 
  at System.Drawing.GDIPlus.GdipCreateFromXDrawable_linux (System.IntPtr , System.IntPtr , System.IntPtr& ) [0x00000] in <1917aa1c39d94b1a91807b8cd9f03350>:0 
  at System.Drawing.Graphics.FromXDrawable (System.IntPtr drawable, System.IntPtr display) [0x00000] in <1917aa1c39d94b1a91807b8cd9f03350>:0 
  at System.Drawing.Graphics.FromHwnd (System.IntPtr hwnd) [0x00000] in <1917aa1c39d94b1a91807b8cd9f03350>:0 
  at System.Windows.Forms.Control.CreateGraphics () [0x00000] in :0 
  at System.Windows.Forms.TextBoxBase.CreateGraphicsInternal () [0x00000] in :0 
  at System.Windows.Forms.Document.owner_VisibleChanged (System.Object sender, System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in :0 

Once ARC launches, if I try to open a previously saved project, a window pops up with a similar message:

Version: 2019.05.08.00

System.IO.DirectoryNotFoundException: Directory 'EZ-Builder/Examples' not found.
  at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) [0x00091] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, System.IO.FileAttributes mask, System.IO.FileAttributes attrs) [0x00023] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.Directory.GetDirectories (System.String path, System.String searchPattern) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.Directory.GetDirectories (System.String path) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at EZ_Builder.FormOpenEZB.XtZsj07xQ5 () [0x0000b] in <8a9b654daa5e46dc9cae530155c2d0ff>:0 
  at EZ_Builder.FormOpenEZB..ctor (System.String folder) [0x0002d] in <8a9b654daa5e46dc9cae530155c2d0ff>:0 
  at (wrapper remoting-invoke-with-check) EZ_Builder.FormOpenEZB:.ctor (string)
  at EZ_Builder.FormMain.MenuClick_Open (System.Object sender, System.EventArgs e) [0x00027] in <8a9b654daa5e46dc9cae530155c2d0ff>:0 
  at (wrapper delegate-invoke) :invoke_void_object_EventArgs (object,System.EventArgs)
  at System.Windows.Forms.RibbonItem.OnClick (System.EventArgs e) [0x00042] in <8137470ea8f14440974ce9168ccc636e>:0 
  at System.Windows.Forms.RibbonButton.OnClick (System.EventArgs e) [0x0003f] in <8137470ea8f14440974ce9168ccc636e>:0 
  at System.Windows.Forms.RibbonMouseSensor.Control_MouseClick (System.Object sender, System.Windows.Forms.MouseEventArgs e) [0x00041] in <8137470ea8f14440974ce9168ccc636e>:0 
  at System.Windows.Forms.Control.OnMouseClick (System.Windows.Forms.MouseEventArgs e) [0x0001c] in :0 
  at System.Windows.Forms.Control.HandleClick (System.Int32 clicks, System.Windows.Forms.MouseEventArgs me) [0x0005d] in :0 
  at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00071] in :0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x0016f] in :0 
  at System.Windows.Forms.Ribbon.WndProc (System.Windows.Forms.Message& m) [0x00191] in <8137470ea8f14440974ce9168ccc636e>:0 
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in :0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in :0 
  at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x0008e] in :0 

I searched Synthiam Community for a similar thread, so forgive me if this issue has been addressed in a previous post and I missed it. I am happy to answer any questions. Does anyone know what I could have done wrong during the installation?

Thanks Tim


Related Hardware Raspberry Pi

ARC Pro

Upgrade to ARC Pro

Subscribe to ARC Pro, and your robot will become a canvas for your imagination, limited only by your creativity.

PRO
Synthiam
#1  

Interesting - try creating that folder. It should have created itself....... but hey, open source mono shrug lol

#2  

Thanks DJ for the super fast response. Creating an "Examples" folder helped. Now I am able open a previously saved project; however, I am still getting this message after executing ARC.exe:

pi@raspberrypi:~/EZ-BuilderPi $ mono ARC.exe
Unknown heap type: #GUlD

Unknown heap type: #Blop

Unknown heap type: #GUlD

Unknown heap type: #Blop

X11 Error encountered: 
  Error: BadMatch (invalid parameter attributes)
  Request:     12 (0)
  Resource ID: 0x14013B8
  Serial:      45985
  Hwnd:        Hwnd, Mapped:True ClientWindow:0x14013B9, WholeWindow:0x14013B8, Zombie=False, Parent:[Hwnd, Mapped:True ClientWindow:0x14013B7, WholeWindow:0x14013B6, Zombie=False, Parent:[]]
  Control:     System.Windows.Forms.Panel, BorderStyle: None  at System.Environment.get_StackTrace () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Windows.Forms.XplatUIX11.HandleError (System.IntPtr display, System.Windows.Forms.XErrorEvent& error_event) [0x00000] in :0 
  at System.Drawing.GDIPlus.GdipCreateFromXDrawable_linux (System.IntPtr , System.IntPtr , System.IntPtr& ) [0x00000] in <1917aa1c39d94b1a91807b8cd9f03350>:0 
  at System.Drawing.Graphics.FromXDrawable (System.IntPtr drawable, System.IntPtr display) [0x00000] in <1917aa1c39d94b1a91807b8cd9f03350>:0 
  at System.Drawing.Graphics.FromHwnd (System.IntPtr hwnd) [0x00000] in <1917aa1c39d94b1a91807b8cd9f03350>:0 
  at System.Windows.Forms.Control.CreateGraphics () [0x00000] in :0 
  at System.Windows.Forms.TextBoxBase.CreateGraphicsInternal () [0x00000] in :0 
  at System.Windows.Forms.Document.owner_VisibleChanged (System.Object sender, System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Form.OnVisibleChanged (System.EventArgs e) [0x00000] in :0 
  at System.Windows.Forms.Control.SetVisibleCore (System.Boolean value) [0x00000] in :0 
  at System.Windows.Forms.Form.SetVisibleCore (System.Boolean value) [0x00000] in :0 
  at System.Windows.Forms.Control.set_Visible (System.Boolean value) [0x00000] in :0 
  at System.Windows.Forms.Application.RunLoop (System.Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x00000] in :0 
  at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00000] in :0 
  at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00000] in :0 
  at CP5sOKssv9sgrAFSym.wjan4BiotCwwPucADR.dOqb1YUKrZ () [0x00000] in <8a9b654daa5e46dc9cae530155c2d0ff>:0

I am also having issues when attempting to use the Pi Camera. After a few frames, the Pi freezes and eventually ARC closes. Here is what is shown in the Terminal:

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Aborted

Also, I was able to successfully install the Dynamixel Plugin, but this message was shown in the Terminal:

pi@raspberrypi:~/EZ-BuilderPi $ mono ./EZ-Builder\ Plugin\ Manager.exe ~/Downloads/5edbbb5d-d9ef-4440-9ecf-858ec24b8746.ezplugin
Unknown heap type: #GUlD

Unknown heap type: #Blop

Unknown heap type: #GUlD

Unknown heap type: #Blop

Unknown heap type: #GUlD

Unknown heap type: #Blop


I mention this because I noticed in your video, you do not get message when executing ARC, but this message is reoccuring for me. Please let me know what you think.  Thanks

#3  

Did you try to start with...

sudo mono ARC.exe

#4  

Thank you for your response. Yes, I think that is how I executed ARC the first few times (while following the pi setup tutorial) and eventually I just started entering mono ARC.exe. I can try adding the sudo in front of it again.

#5  

It this does not work, try to reinstall mono as outlined in this post...

https://askubuntu.com/questions/50735/mono-failing-to-open-executable

I had the same problem, and if I can recall it correctly, I was able to fix it this way!! :)

#6  

I tried adding sudo and I am still getting the same error. I will try to reinstall mono tomorrow. I'll let you all know how it works. Thank you again.

#7  

If it does not work, I will try to figure out, how I solved it...but I really think it was the mono install!! You can also try to

sudo apt update

sudo apt full-upgrade

But you should backup your SD card before doing this, depending on your environment, it could also break your system!!! Happened to me more than once!! :D

#8  

Or the short way of the above, only for mono would be...

sudo apt-get install --only-upgrade mono-complete

#9  

It took me sometime to test your suggestions because I damaged my Pi 3 B somehow. It now overheats minutes after it is powered on. I was a little over eager in assembling the robot and did not test all of the cables before connecting the Pi, Dynamixel servos, cooling fan, power supply, etc. Today I removed a Pi 3 B+ from a different robot and tried the steps suggested above. I still encountered the following errors:

pi@raspberrypi:~/EZ-BuilderPi $ sudo mono ARC.exe
Unknown heap type: #GUlD

Unknown heap type: #Blop

Unknown heap type: #GUlD

Unknown heap type: #Blop

libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
X11 Error encountered: 
  Error: BadMatch (invalid parameter attributes)
  Request:     12 (0)
  Resource ID: 0x140141D
  Serial:      47087
  Hwnd:        Hwnd, Mapped:True ClientWindow:0x140141E, WholeWindow:0x140141D, Zombie=False, Parent:[Hwnd, Mapped:True ClientWindow:0x140141C, WholeWindow:0x140141B, Zombie=False, Parent:[]]
  Control:     System.Windows.Forms.Panel, BorderStyle: None  at System.Environment.get_StackTrace () [0x00000] in :0 
  at System.Windows.Forms.XplatUIX11.HandleError (System.IntPtr display, System.Windows.Forms.XErrorEvent& error_event) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Drawing.GDIPlus.GdipCreateFromXDrawable_linux (System.IntPtr , System.IntPtr , System.IntPtr& ) [0x00000] in <0b937e1c0ddd4bf8a08584be511c9f4d>:0 
  at System.Drawing.Graphics.FromXDrawable (System.IntPtr drawable, System.IntPtr display) [0x00000] in <0b937e1c0ddd4bf8a08584be511c9f4d>:0 
  at System.Drawing.Graphics.FromHwnd (System.IntPtr hwnd) [0x00000] in <0b937e1c0ddd4bf8a08584be511c9f4d>:0 
  at System.Windows.Forms.Control.CreateGraphics () [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Document.owner_VisibleChanged (System.Object sender, System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Form.OnVisibleChanged (System.EventArgs e) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.SetVisibleCore (System.Boolean value) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Form.SetVisibleCore (System.Boolean value) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Control.set_Visible (System.Boolean value) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Application.RunLoop (System.Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00000] in <0e1823914d7643eeaf1207febb083a4a>:0 
  at CP5sOKssv9sgrAFSym.wjan4BiotCwwPucADR.dOqb1YUKrZ () [0x00000] in <8a9b654daa5e46dc9cae530155c2d0ff>:0 

libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: profile 'Photoshop ICC profile': 'GRAY': Gray color space not permitted on RGB PNG
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
Killed

I decided to start over with a fresh install of Raspbian Buster and I followed the install instructions for Raspbian 10 found here: https://www.mono-project.com/download/stable/#download-lin-raspbian

Unfortunately I am still having the same errors. Mono is also still not creating the "Examples" folder in /home/pi/EZ-BuilderPi/ARC when first running:

sudo mono ARC.exe

Lastly, when starting the camera, ARC still grinds to a halts after a few frames and eventually crashes. Please let me know if you can think of anything else that I maybe doing wrong. Thanks

#10  

Cool, what kind of Dynamixel driven robot are you building?

My experience is Raspian Stretch only, is Buster confirmed to be working with ARC? Did you check for issues concerning Mono and Buster?

You could also give it a try on Stretch, just to get started? Or keep running ARC on a Windows PC, because it will still be connecting to you EZBPi thru Wifi  anyways... That is something we could put on a wishlist. Connection of an emulated EZ-B and ARC using Wifi, while hosted in the same Raspberry Pi, is a bit strange!

Let me know about your progress, I will try to think of other things that could be related to your issue!! :)

#11   — Edited

Try if this fixes the libpng warning...

sudo apt-get install libpng-dev

And try this to fix System.Windows.Forms errors...

apt-get install libmono-system-windows-forms4.0-cil

#12  

More info about Mono installs here... https://www.mono-project.com/download/stable/#download-lin-raspbian

#13  

I am working on two robots. The first robot is an updated version of my MAKI series. This is a robot which I've made available for download in the past (STL files). I also sell this robot fully assembled, primarily to university research labs. I was hoping to incorporate ARC in this platform so that it can be more accessible (most people use ROS or create their own software). I have incorporated Google AIY v1 into this platform as well. I am still finalizing the design, but here is an image of the current prototype:

User-inserted image The second robot currently has an EZ-B board and camera; however, I really want an all-in-one (embedded PC) solution because it is mobile. Ideally, the final version of this platform will have a Raspberry Pi Zero or PI 3 A+. It also currently has an Adafruit Teensy, controlling the eyes:

User-inserted image

User-inserted image

User-inserted image

#14  

Thanks for the suggestion on using Stretch instead of Buster. Do you know what release of Stretch you are using? So far I have tried the versions released 2019-04-08 and 2018-11-13 and have still gotten the same errors.

Do you think I should just try installing mono-devel instead of mono-complete?

Here is where I notice problems when installing mono-complete (at the end of the install):

Setting up mono-roslyn (6.4.0.198-0xamarin3+raspbian9b1) ...
Mono precompiling /usr/lib/mono/4.5/csc.exe for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/vbc.exe for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/VBCSCompiler.exe for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/Microsoft.CodeAnalysis.CSharp.dll for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/Microsoft.CodeAnalysis.VisualBasic.dll for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/Microsoft.CodeAnalysis.dll for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/System.Collections.Immutable.dll for arm (LLVM disabled due to missing SSE4.1)...
Mono precompiling /usr/lib/mono/4.5/System.Reflection.Metadata.dll for arm (LLVM disabled due to missing SSE4.1)...
Setting up mono-complete (6.4.0.198-0xamarin3+raspbian9b1) ...
Processing triggers for libc-bin (2.24-11+deb9u4) ...

Here are some other things that I tried:

pi@raspberrypi:~/EZ-BuilderPi $ sudo apt-get install libpng-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libpng-dev is already the newest version (1.6.28-1+deb9u1).
libpng-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi:~/EZ-BuilderPi $ apt-get install libmono-system-windows-forms4.0-cil
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
pi@raspberrypi:~/EZ-BuilderPi $ sudo install ca-certificates-mono
install: missing destination file operand after 'ca-certificates-mono'
Try 'install --help' for more information.
pi@raspberrypi:~/EZ-BuilderPi $ sudo apt install ca-certificates-mono
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ca-certificates-mono is already the newest version (6.4.0.198-0xamarin3+raspbian9b1).
ca-certificates-mono set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Thank you again for your help and please let me know if you can think of anything else for me to try.

PRO
USA
#15   — Edited

I can confirm is working on my RPI 4B / buster. When I manually create the example directory the ARC is fine.

Camera: Not working, Error: Invalid IAsyncResult it seems related to this bug: https://github.com/mono/mono/issues/15364 mono version: 

Quote:

Mono JIT compiler version 6.5.0.93 (tarball Sat Jun 8 15:08:04 2019)
the solution (no solution):

Quote:

There are various problems, incompatibilities and other issues in the Socket class - especially the Begin/End code. Since this is only a mostly cosmetic issue and we're likely going to replace the entire class with the CoreFX version in near future, it doesn't make much sense to change anything in the old implementation.
my mono version is:

Quote:

Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:45:47 UTC 2019)
is an older version but it seems the issue is similar.

please run the following commands:

mono --version
uname -r
#16  

Man, honestly...both of your robots are looking GREAT!! You should create a robot showcase here at the forum, so more people get to see them!! So clean and well build!! Personally I like the look and color scheme of the second one a lot!! It really needs a name though!! :D

Your idea of installing mono-devel could work...I dont know what I did to get it working, its been a while! Make sure to check... https://www.mono-project.com/download/stable/#download-lin-raspbian For all the necessary steps!

You got any Github or Project pages for your robots? Supercool!!!

btw...I am also using AIY Vision and Voice in my robot! Since Dynamixel Servos raise the cost significantly, I decided to go with the cheaper LX16A LewanSoul servos, they are a bit slower and are having a bit less options within the protocol, but are working fine for me!!

PRO
Synthiam
#17  

What does aiy vision do that cognitive services doesn’t?

#18  

It basically does the same thing, but offline...

#19  

Also try to install  sudo apt-get install libmono-system-windows-forms4.0-cil

#20  

Hello ptp,

Thanks for the confirmation on the Raspberry Pi 4. I was planning to grab one this weekend to do some testing on.

I will check which version of Mono I have installed. Right now I am working with a few different SD cards with different versions of Raspbian installed while I try to find a stable solution. So far, Raspbian Stretch with Mono-devel seems to run the best, but I am still experiencing errors.

#21  

Thank you Mickey666Maus,

I am still thinking of a name for it. Right now it is just saved as "Monkey" in the design files - lol.

I will continue to try different versions of Raspbian Stretch with the Mono installation instructions from the link you provided.

My website is hello-robo.com; however, I have not been great at updating it. My Instagram (instagram.com/hellorobotics) is a bit more up to date, but again, none of my recent work has been posted. I am currently working on an updated website with detailed assembly instructions for the latest version of MAKI. I just wanted to finish the software component before encouraging people to build their own. People will sometimes request the STL files for the most recent MAKI and I am happy to share. I am printing another copy of the MAKI robot (from the picture above) and will document the assembly process sometime next week. Hopefully I will have the software figured out around the same time and then I can publish the STL's and assembly instructions on my updated site (fingers crossed).

I would love to know more about how you integrated Google AIY voice and vision into your robot. I have already integrated the hardware for the AIY Voice kit v1 into the latest MAKI robot, but I am not sure about the software. The AIY hat has RX and TX pins, so I figured controlling the servos should not be a problem.

I agree that the Dynamixels are expensive and I actually purchased Lewansoul LX16 servos to build a platform around. I decided not to after contacting them to inquire about bulk pricing and not getting a response for a long time. I was still interested in making it work, but then there website was down for a week or two. This is a issue for me because if I spend the time to design a robot, I need to know that the servos will be available in the future. Also, a lot of clients request Dynamixel servos.

The "Monkey" robot actually uses cheap standard servos: https://www.amazon.com/gp/product/B01MTW06IU/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

I am still debating whether to continue to use those servos or move to a different (more expensive/robust) servo... Maybe I will revisit LewanSoul's servos...

#22  

"Also try to install sudo apt-get install libmono-system-windows-forms4.0-cil"

Thank you, I will give that a try.

PRO
Synthiam
#23  

Hellorobo - we’ll get a plugin created to use the hardware of the google aiy. That dev hardware needs ARC because I looked at its dev kit and wow, that’s a lot of coding to make it do anything!!

just need to create some sort of aiy tcp server that ARC can connect to. Then the server can be anywhere

#24  

Wow DJ, that would be amazing! Thank you!

#25   — Edited

Regarding servo choices, I can totally understand your point... If you would like to have your build in the limelight, it is always good to have a strong brand connected to it! Also your concern of the LewanSoul servos being inconsistent or even diminishing at some point is a very valid argument.

Things that made me choose them anyways is of course the price, with my robot having 14DOF now, which is 196 Euros using LewanSoul servos, vs 700 Euros using Dynamixel AX-12A servos...

But also I can run the LewanSoul on 5v (recommended specs for full torque are 7.4V, but I did not run into any issues using them on 5V). So I can use a single 20Amps power supply to power the servos and all peripherals...

And last of all, I had trouble to drive the Dynamixel with the hardware they supplied! You will always have to use a shield or microcontroller board to get them to work, while using the LewanSoul servos, you can use their simple BusLinker to drive the servos with python directly from your Raspian or Windows OS without having to code another peripheral!

Good to hear you are using the AIY Voice kit v1, the later version is build on to of a Pi Zero, which is not having enough horsepower to drive custom hotword detection... And very good to hear that AIY Voice will be available in ARC soon!!!

I love your website...hope you will be able to sort out installing issues so we can go on and build some awesome robots!!

#26  

I forgot to mention, but I guess you already figured it out yourself... ARC fully supports Dynamixel and LewanSoul LX16A servos!! :)

#27  

That's a great point, having the option to operate the servos at 5v would make powering the robot simpler. The AX-12's worked with little trouble, but we have had issues with the XL430's and XL-320's. I found that the Expansion board was necessary to ID/setup the XL430's even with the OpenCM9. They are great servos, but definitely a bit finicky (and expensive).

Thank you, I looking forward to helping anyone interested in building a MAKI or "Monkey" robot. :D

Yeah, I have installed the Dynamixel plugin, but have not tested it yet. I wanted to make sure that I could install ARC without errors first.

#28  

Hello everyone,

I have not been able to run:

sudo mono ARC.exe

without errors:

Unknown heap type: #GUlD

Unknown heap type: #Blop

Unknown heap type: #GUlD

Unknown heap type: #Blop

so I have decided to just run the EZBPi server on the Raspberry Pi and run ARC on my Windows Laptop until I can figure out what I am doing wrong. I am able to connect to the Pi and the camera is streaming great; however, when I "stop" the camera, EZBPi Server also disconnects and aborts on the Raspberry Pi:

pi@raspberrypi:~/EZBPi $ sudo mono EZBPi.exe
Raspberry EZBPi Version: 2019.8.27.1
Verbose logging is: False
Serial port is: /dev/serial0
EZB: TCP Started on port 23
EZ-B Server started on TCP Port: 23
Camera: TCP Started on port 24
Camera Server started on TCP Port: 24
Press ESC to quit
Camera: TCP Connection from: 10.0.0.5

=================================================================
   Native Crash Reporting
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================
/proc/self/maps:
00010000-00412000 r-xp 00000000 b3:02 262718     /usr/bin/mono-sgen
00422000-00426000 r--p 00402000 b3:02 262718     /usr/bin/mono-sgen
00426000-0042b000 rw-p 00406000 b3:02 262718     /usr/bin/mono-sgen
0042b000-00439000 rw-p 00000000 00:00 0 
00a97000-01170000 rw-p 00000000 00:00 0          [heap]
6b000000-6b0ff000 rw-p 00000000 00:00 0 
6b0ff000-6b100000 ---p 00000000 00:00 0 
6b100000-6b194000 rw-p 00000000 00:00 0 
6b194000-6b200000 ---p 00000000 00:00 0 
6b200000-6b2ff000 rw-p 00000000 00:00 0 
6b2ff000-6b300000 ---p 00000000 00:00 0 
6b300000-6b3ff000 rw-p 00000000 00:00 0 
6b3ff000-6b400000 ---p 00000000 00:00 0 
6b400000-6b4ff000 rw-p 00000000 00:00 0 
6b4ff000-6b500000 ---p 00000000 00:00 0 
6b500000-6b5ff000 rw-p 00000000 00:00 0 
6b5ff000-6b600000 ---p 00000000 00:00 0 
6b600000-6b6ff000 rw-p 00000000 00:00 0 
6b6ff000-6b700000 ---p 00000000 00:00 0 
6b700000-6b7ff000 rw-p 00000000 00:00 0 
6b7ff000-6b800000 ---p 00000000 00:00 0 
6b800000-6b900000 rw-p 00000000 00:00 0 
6ba00000-6baff000 rw-p 00000000 00:00 0 
6baff000-6bb00000 ---p 00000000 00:00 0 
6bb00000-6bbff000 rw-p 00000000 00:00 0 

=================================================================
   Native stacktrace:
=================================================================
    (No frames) 


=================================================================
   Telemetry Dumper:
=================================================================
Pkilling 0x76fc1b00 from 0x70fff430
Pkilling 0x730ff430 from 0x70fff430
Pkilling 0x739ff430 from 0x70fff430
Pkilling 0x72dff430 from 0x70fff430
Pkilling 0x736ff430 from 0x70fff430
Pkilling 0x76667430 from 0x70fff430
Pkilling 0x6cff8430 from 0x70fff430
Pkilling 0x72aff430 from 0x70fff430
Pkilling 0x733ff430 from 0x70fff430
Pkilling 0x70ba2430 from 0x70fff430
Entering thread summarizer pause from 0x70fff430
Finished thread summarizer pause from 0x70fff430.
domain required for stack walk
Waiting for dumping threads to resume

=================================================================
   External Debugger Dump:
=================================================================
[New LWP 4192]
[New LWP 4193]
[New LWP 4194]
[New LWP 4195]
[New LWP 4196]
[New LWP 4210]
[New LWP 4211]
[New LWP 6661]
[New LWP 6842]
[New LWP 6843]
[New LWP 6844]
[New LWP 6845]
[New LWP 6846]
[New LWP 6847]
[New LWP 6848]
[New LWP 6861]
[New LWP 6862]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
__libc_read (nbytes=1024, buf=0x7607af20, fd=0) at ../sysdeps/unix/sysv/linux/read.c:26
26   ../sysdeps/unix/sysv/linux/read.c: No such file or directory.
  Id   Target Id                                      Frame 
* 1    Thread 0x76fc1b00 (LWP 4191) "mono"            __libc_read (nbytes=1024, buf=0x7607af20, fd=0) at ../sysdeps/unix/sysv/linux/read.c:26
  2    Thread 0x75fff430 (LWP 4192) "SGen worker"     futex_wait_cancelable (private=0, expected=0, futex_word=0x437b28) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
  3    Thread 0x76667430 (LWP 4193) "Finalizer"       0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x42fe08) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  4    Thread 0x739ff430 (LWP 4194) "TCP Server for " 0x76efb3d0 in __libc_accept (fd=5, addr=..., len=0x0) at ../sysdeps/unix/sysv/linux/accept.c:26
  5    Thread 0x736ff430 (LWP 4195) "TCP Server for " 0x76efb3d0 in __libc_accept (fd=7, addr=..., len=0x0) at ../sysdeps/unix/sysv/linux/accept.c:26
  6    Thread 0x733ff430 (LWP 4196) "Timer-Scheduler" futex_reltimed_wait_cancelable (private=0, reltime=0x733fe258, expected=0, futex_word=0xa9cc38) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
  7    Thread 0x72dff430 (LWP 4210) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x72dfed7c, expected=1, futex_word=0x430348) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  8    Thread 0x72aff430 (LWP 4211) "Thread Pool Wor" futex_abstimed_wait_cancelable (private=0, abstime=0x72afed7c, expected=1, futex_word=0x430348) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  9    Thread 0x730ff430 (LWP 6661) "Timer-Scheduler" futex_reltimed_wait_cancelable (private=0, reltime=0x730fec50, expected=0, futex_word=0x438158) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
  10   Thread 0x70fff430 (LWP 6842) "TCP Server for " __waitpid (options=0, stat_loc=0x70ffdc40, pid=6890) at ../sysdeps/unix/sysv/linux/waitpid.c:30
  11   Thread 0x707ff430 (LWP 6843) "VCHIQ completio" 0x76c7551c in ioctl () at ../sysdeps/unix/syscall-template.S:78
  12   Thread 0x6fffe430 (LWP 6844) "HDispmanx Notif" 0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x7383d480 ) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  13   Thread 0x6f7fd430 (LWP 6845) "HTV Notify"      0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x7383c5f4 ) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  14   Thread 0x6effc430 (LWP 6846) "HCEC Notify"     0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x7383d384 ) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  15   Thread 0x6e7fb430 (LWP 6847) "vc.ril.camera"   0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0xed63d8) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  16   Thread 0x6dffa430 (LWP 6848) "vc.camera_info"  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0xed6208) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  17   Thread 0x6d7f9430 (LWP 6861) "vc.ril.video_sp" 0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x1038578) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  18   Thread 0x6cff8430 (LWP 6862) "vc.ril.image_en" 0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x1091768) at ../sysdeps/unix/sysv/linux/futex-internal.h:205

Thread 18 (Thread 0x6cff8430 (LWP 6862)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x1091768) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x1091768, abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0x1091768, abstime=0x0) at sem_waitcommon.c:282
#3  0x72c98968 in mmal_component_action_thread_func () from /opt/vc/lib/libmmal_core.so
#4  0x73517cb0 in vcos_thread_entry (arg=0x1091680) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6cff8430) at pthread_create.c:486
#6  0x76c7d578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 17 (Thread 0x6d7f9430 (LWP 6861)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x1038578) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x1038578, abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0x1038578, abstime=0x0) at sem_waitcommon.c:282
#3  0x72c98968 in mmal_component_action_thread_func () from /opt/vc/lib/libmmal_core.so
#4  0x73517cb0 in vcos_thread_entry (arg=0x1038490) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6d7f9430) at pthread_create.c:486
#6  0x76c7d578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 16 (Thread 0x6dffa430 (LWP 6848)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0xed6208) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0xed6208, abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0xed6208, abstime=0x0) at sem_waitcommon.c:282
#3  0x72c98968 in mmal_component_action_thread_func () from /opt/vc/lib/libmmal_core.so
#4  0x73517cb0 in vcos_thread_entry (arg=0xed6120) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6dffa430) at pthread_create.c:486
#6  0x76c7d578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 15 (Thread 0x6e7fb430 (LWP 6847)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0xed63d8) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0xed63d8, abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0xed63d8, abstime=0x0) at sem_waitcommon.c:282
#3  0x72c98968 in mmal_component_action_thread_func () from /opt/vc/lib/libmmal_core.so
#4  0x73517cb0 in vcos_thread_entry (arg=0xed62f0) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6e7fb430) at pthread_create.c:486
#6  0x76c7d578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 14 (Thread 0x6effc430 (LWP 6846)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x7383d384 ) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x7383d384 , abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0x7383d384 , abstime=0x0) at sem_waitcommon.c:282
#3  0x73823720 in cecservice_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x73517cb0 in vcos_thread_entry (arg=0x7383d398 ) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6effc430) at pthread_create.c:486
Backtrace stopped: Cannot access memory at address 0x65006a

Thread 13 (Thread 0x6f7fd430 (LWP 6845)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x7383c5f4 ) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x7383c5f4 , abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0x7383c5f4 , abstime=0x0) at sem_waitcommon.c:282
#3  0x738223b0 in tvservice_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x73517cb0 in vcos_thread_entry (arg=0x7383c608 ) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6f7fd430) at pthread_create.c:486
Backtrace stopped: Cannot access memory at address 0x65006a

Thread 12 (Thread 0x6fffe430 (LWP 6844)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x7383d480 ) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x7383d480 , abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0x7383d480 , abstime=0x0) at sem_waitcommon.c:282
#3  0x738264d4 in dispmanx_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x73517cb0 in vcos_thread_entry (arg=0x7383e1c0 ) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76ef0494 in start_thread (arg=0x6fffe430) at pthread_create.c:486
#6  0x76c7d578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 11 (Thread 0x707ff430 (LWP 6843)):
#0  0x76c7551c in ioctl () at ../sysdeps/unix/syscall-template.S:78
#1  0x73530010 in completion_thread () from /opt/vc/lib/libvchiq_arm.so
#2  0x73517cb0 in vcos_thread_entry (arg=0x73543318 ) at /home/dom/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#3  0x76ef0494 in start_thread (arg=0x707ff430) at pthread_create.c:486
#4  0x76c7d578 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 10 (Thread 0x70fff430 (LWP 6842)):
#0  __waitpid (options=0, stat_loc=0x70ffdc40, pid=6890) at ../sysdeps/unix/sysv/linux/waitpid.c:30
#1  __waitpid (pid=6890, stat_loc=0x70ffdc40, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:25
#2  0x000a24e4 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 9 (Thread 0x730ff430 (LWP 6661)):
#0  futex_reltimed_wait_cancelable (private=0, reltime=0x730fec50, expected=0, futex_word=0x438158) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x730feccc, mutex=0x2, cond=0x438130) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x438130, mutex=0x2, abstime=0x730feccc) at pthread_cond_wait.c:667
#3  0x0032ee34 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 8 (Thread 0x72aff430 (LWP 4211)):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x72afed7c, expected=1, futex_word=0x430348) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x430348, abstime=abstime@entry=0x72afed7c) at sem_waitcommon.c:115
#2  0x76efa5c4 in __new_sem_wait_slow (sem=0x430348, abstime=0x72afed7c) at sem_waitcommon.c:282
#3  0x002cde6c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 7 (Thread 0x72dff430 (LWP 4210)):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x72dfed7c, expected=1, futex_word=0x430348) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x430348, abstime=abstime@entry=0x72dfed7c) at sem_waitcommon.c:115
#2  0x76efa5c4 in __new_sem_wait_slow (sem=0x430348, abstime=0x72dfed7c) at sem_waitcommon.c:282
#3  0x002cde6c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 6 (Thread 0x733ff430 (LWP 4196)):
#0  futex_reltimed_wait_cancelable (private=0, reltime=0x733fe258, expected=0, futex_word=0xa9cc38) at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x733fe2d4, mutex=0x2, cond=0xa9cc10) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0xa9cc10, mutex=0x2, abstime=0x733fe2d4) at pthread_cond_wait.c:667
#3  0x0032ee34 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 5 (Thread 0x736ff430 (LWP 4195)):
#0  0x76efb3d0 in __libc_accept (fd=7, addr=..., len=0x0) at ../sysdeps/unix/sysv/linux/accept.c:26
#1  0x002c9c20 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (Thread 0x739ff430 (LWP 4194)):
#0  0x76efb3d0 in __libc_accept (fd=5, addr=..., len=0x0) at ../sysdeps/unix/sysv/linux/accept.c:26
#1  0x002c9c20 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x76667430 (LWP 4193)):
#0  0x76efa088 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=1, futex_word=0x42fe08) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x42fe08, abstime=0x0) at sem_waitcommon.c:115
#2  0x76efa1f4 in __new_sem_wait_slow (sem=0x42fe08, abstime=0x0) at sem_waitcommon.c:282
#3  0x002b53f0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0x75fff430 (LWP 4192)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x437b28) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x0, cond=0x437b00) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x437b00, mutex=0x0) at pthread_cond_wait.c:655
#3  0x0031de68 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76fc1b00 (LWP 4191)):
#0  __libc_read (nbytes=1024, buf=0x7607af20, fd=0) at ../sysdeps/unix/sysv/linux/read.c:26
#1  __libc_read (fd=0, buf=0x7607af20, nbytes=1024) at ../sysdeps/unix/sysv/linux/read.c:24
#2  0x0017e86c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
[Inferior 1 (process 4191) detached]

=================================================================
   Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x76c19854):0x76c19844  10 40 2d e9 00 40 a0 e1 08 d0 4d e2 2a 00 00 0a  .@-..@....M.*...
0x76c19854  04 20 10 e5 08 10 40 e2 02 00 12 e3 0f 00 00 1a  . ....@.........
0x76c19864  08 31 9f e5 a0 90 fe eb 03 30 9f e7 03 00 80 e0  .1.......0......
0x76c19874  04 30 90 e5 00 00 53 e3 32 00 00 0a 04 00 12 e3  .0....S.2.......

=================================================================
   Managed Stacktrace:
=================================================================
     at  <0xffffffff>
     at MMALSharp.Native.MMALUtil:mmal_port_pool_destroy <0x0003b>
     at MMALSharp.Ports.PortBase:DestroyPortPool <0x0006b>
     at MMALSharp.MMALComponentBase:CleanPortPools <0x00227>
     at MMALSharp.MMALConnectionImpl:Destroy <0x00043>
     at MMALSharp.MMALConnectionImpl:Dispose <0x00037>
     at MMALSharp.Components.MMALDownstreamComponent:ClosePipelineConnections <0x0017f>
     at MMALSharp.Components.MMALDownstreamComponent:Dispose <0x00037>
     at EZBPi.EZBProgram:_CAMServer_OnConnection <0x008cb>
     at EZBPi.TCPServer:handleClientScriptCommand <0x000e7>
     at System.Threading.ThreadHelper:ThreadStart_Context <0x0013f>
     at System.Threading.ExecutionContext:RunInternal <0x0020f>
     at System.Threading.ExecutionContext:Run <0x0002b>
     at System.Threading.ExecutionContext:Run <0x00057>
     at System.Threading.ThreadHelper:ThreadStart <0x0007b>
     at :runtime_invoke_void__this___object <0x000ef>
=================================================================
Aborted

*The main issue that I am trying to work through is getting the Dynamixel XL430-W250-T servos to work. Here is a screenshot of my settings:

User-inserted image

I followed DJ's 9th Live Hack and I have triple checked the connection (I even soldered another connector). I have checked and rechecked the servo ID's (before and after). I have also tried different baud rates. Currently I have it set 57600, but I have also tried 9600 and 1000000. The signal pin of the servo is connected to the TX and RX pins of the Raspberry Pi:

User-inserted image

I have also tested an AX-12 servo (with the baud rate set to 1000000), but I am not able to get either model servo to move. Is there anything else that I can try, or maybe a step that I am missing? Any help is much appreciated!

PRO
Belgium
#29  

in this topic for using AX12A servo's says use baud 115200.

AX12A 

PRO
Synthiam
#30  

Also I believe the correct uart port is 0, not 1

#31   — Edited

Thanks Nomad 6R, I tried 115200, but the AX-12A servo is still not working.

Thanks DJ, I selected UART Port #0, but the XL430 servos are still not responding.

User-inserted image

Do you have any other suggestions? Also, do you have any thoughts about the camera issue?

PRO
Synthiam
#32   — Edited

Verify this checklist...

  • Ensure your servo is TTL.
  • Ensure the RX and TX are connected correctly.
  • Ensure the raspberry pi and servo are both sharing the same ground.
  • Verify the baud rate matches the servo.
  • Ensure the ID selected in the plugin is matching the servo.
  • Ensure the servo is receiving correct required power.

Create a checklist of those items and ensure each one is correct

PRO
Belgium
#33  

here is a link about the AX12A baud rate settings.maybe it helps.

AX12A baud

#34   — Edited

Thanks for your response.

Checklist

  1. Ensure your servo is TTL and connected according to the tutorial.
  • I believe that the XL430-W250 servo is a TTL-base Dynamixel. It has a 3P connector and from what I understand, only their servos with 4P connectors are RS485-based Dynamixels: http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/device_setup/

2. Ensure the RX and TX are connected correctly. Ensure the raspberry pi and servo are both sharing the same ground.

  • Here is an image of the connector that I made: User-inserted image

Please let me know if something looks out of place. I also made a second cable just in case I soldered something incorrectly the first time.

  1. Verify the baud rate matches the servo. Ensure the ID is matching the servo.
  • The baud rate for the XL430 is listed as 9600 here: http://emanual.robotis.com/docs/en/dxl/x/xl430-w250/ However, when I connect to the servos using an OpenCM9.04, OpenCM 485 and Dynamixel Wizard; I use a baud rate of 57600. Regardless, I have tried different combinations, including both baud rates (9600 and 57600), with unsuccessful results.

4. Ensure the ID is matching the servo. Ensure the servo is receiving correct required power.

  • When using the OpenCM9.04 and OpenCM 485, I am able to operate and configure (ID, set angle limits, etc.) XL430-W250 servos with both Dynamixel Wizard 2.0 and R+ Manager. I am able to operate/configure AX-12A servos with just Dynamixel Wizard (for some reason Robotis does not support the AX, MX or RX series in R+ Manager). I am able to do all of this with the same 12v 10a power supply mentioned above (in the image).

Please let me know if I misunderstand something, if I overlooked anything or if there is another area to troubleshoot. Thank you for your help.

#35   — Edited

Thanks for the additional information on the AX-12A servo. While I am currently not able to operate the AX-12A servo (via the Pi), I really need to get the XL430-W-250-T servos working, as those are the servos which I am using for this project.

PRO
Synthiam
#36  
  1. The baud has to correct. The reason the opencm allows 57600 is because it's usb serial and won't matter what baud the connection is. You will have to know the baud of the servos. If there's a configuration interface, check the value in the servo for the specified baud value. The BAUD is how fast the servos expect the communication. If it's off even by 1, they won't work.

  2. The ID of the servo is relevant. If you select ID #5 in ARC, the ID of the servo must also be configured for 5. If you select ID #2 in ARC, the ID for the servo must be ID 2.... etc...... Also, ID #5 in ARC is V5. ID #2 in ARC is V2... etc

#37   — Edited

Hey, its been a while since I was trying to accomplish all this and decided to move on... But as far as I remember I had a bit of trouble connecting directly to the Raspberry Pi. It might be dangerous to expose the Raspberry Pi pins to the Dynamixel buss which is 5V, while the RPi pins are all 3.3V max.... So actually the OpenCM board might be the best solution for your project, just to be safe!!

https://synthiam.com/Community/Questions/Dynamixel-with-EZBPi-Server-17808/comments#comments-list

No offense if I am wrong here...maybe sending positions is fine, I am by no means an expert on this topic!

#39   — Edited

Also, you do have to remember that the high speed serial is reserved for Bluetooth on the Raspberry Pi by default... If you want to communicate with your AX-12A Servos on the Raspberry Pi, you will have to change this to make it possible! :)

You can use this to make your high speed serial port available to use with your Dynamixel servos...

https://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3-4/

But I guess the OpenCM might be the better option, since it is more safe regarding the concerns mentioned earlier!! :D

#40   — Edited

DJ, thanks, that makes sense. As Nomad 6R added, the servos have a listed baud rate of 9600 (thanks Nomad 6R), so I will try that going forward, but I think I remember you using a baud rate of 57600 in one of your videos (testing different Dynamixel servos). I’m at dinner, so I’ll double check and add the link later. *Edit Here is a video where you set the baud rate to 57600 for a XL430 servo: https://youtu.be/NPPd0Ru4mb4?t=6390 Sorry, also I double checked to make sure that the servo's IDs matched.

Mickey666Maus, thanks for adding a link to your previous thread. It was informative. My initial Pi 3 B was damaged and perhaps this was the cause (it overheats now shortly after being powered on)? I will add a couple of resistors. Do you have any suggestions as to which kind I should use?

Also, how do I change the high speed communication which is reserved for Bluetooth to work with XL430 servos?

#41  

Mickey666Maus, I just ordered this Logic Level Converter for communication between the Pi and Dynamixels:

https://www.amazon.com/gp/product/B07F7W91LC/ref=crt_ewc_title_srh_1?ie=UTF8&psc=1&smid=A30QSGOJR8LMXA

I should receive it Sunday.

PRO
USA
#42   — Edited

@hellorobot: I noticed you are powering the Raspberry PI through one of the USB HUB's port correct ? Where did you got that idea or how do you know it's ok to do that ?

ASFAIK the RPI foundation only provides reduced schematics i.e. does not include for example the USB hub chip and connections schematic, i'm really curious how did you know is ok to back-powered via the USB port ?

#43  

ptp, sorry for the confusion. I am powering the Pi via it’s micro USB port. The connector that I soldered has a 5v step down regulator with a USB output. I have a male USB to male micro USB cable plugged into that, which is plugged into the Pi’s micro USB port.

PRO
USA
#44  

ha ok good to hear !

#45  

Interesting idea to use a Logic Level Converter, I've never seen this aproach before...let me know how it worked out!! To make the high speed connection available, just use the link I posted above...its the same for all servos, it basically just makes high Baudrate available!!  :)

But anyways, I would strongly recommend using the OpenCM board, I am having a few Dynamixel servos and the board on my shelf, I will try to set it up and see how it works...so I can check for any issues on the way!!

#46  

Thanks Mickey666Maus, I will follow the instructions in the link once I receive the logic level converter tomorrow.

How would you incorporate the OpenCM9.04 board? Perhaps run EZBPi on the OpenCM9.04 and ARC on the Raspberry Pi? Would you connect them via USB?

DJ, have you considered developing an EZ-B Raspberry Pi hat? You already have an impressive catalog of products which allow builders to easily create projects controlled with a remote PC. Adding a Pi hat would enable builders to incorporate a low-cost all-in-one solution (untethered) into their projects. I like the Pi because they are low-cost, maintain the same form factor across different generations and are available from multiple manufacturers (consistent availability). Personally, the latter point is important for me. Recently, I considered shifting to the Lattepanda, but when I went to their website, they were "out of stock" of most of their boards, which makes me nervous when considering a future supplier... Anyway, I know that it's a big investment, both time and capital, just something to consider.

#47  

Quote:

How would you incorporate the OpenCM9.04 board? Perhaps run EZBPi on the OpenCM9.04 and ARC on the Raspberry Pi? Would you connect them via USB?
It connects via USB serial...so you can just plug it into your Windows PC or your Raspberry Pis USB socket!!

It does not matter if you are using a hat or the the OpenCM board, the functionality will be the same. DJs Firmware is turning the OpenCM into an EZ-B, if you would want to see it that way!! So dont worry, especially if you are using a Pi 4, you will be having more than enough horsepower to run your robot!!

To me the only drawback to this solution is that I am not running my robot on Synthiam software only. And I want to address my robots servos, directly using Python! So if I would use the OpenCM, I would need to upload new custom Firmware anytime I am switching software! This is why I decided to use those LX16A servos, they do have a good python wrapper, and are also easy to use with ARC! :)

#48  

You will find detailed instructions on how to hook your servos up using the OpenCM and ARC over here...

https://synthiam.com/Community/Tutorials/Robotis-OpemCM-9-04-Guide-18600

#49   — Edited

Ideally, I would like to have ARC and EZBPi run on the Raspberry Pi, but I would also be happy to have just ARC run on the Pi and convert the OpenCM9.04 into an EZ-B connected via USB. That would solve my Dynamixel issue; however, I am still getting errors using the Pi camera with ARC. ptp mentioned in post #15 that there may not be a solution for getting the camera to work with this method (if I understand correctly). Has anyone been able to get the Pi camera working with ARC? If so, please chime in. I am also still having issues installing ARC on the Pi. I have watched DJ's 9th Live Hack a dozen times and I cannot help but notice that when DJ runs:

mono ARC.exe

For the first time, he is not receiving the same errors which I am encountering. In addition, it appears that he does not have to manually create the "Examples" folder. In that tutorial, Mono, ARC and EZBpi were already installed (the folders containing ARC and EZBPi are removed at the start of the tutorial) and I wonder if there is a configuration step (or something else) that I am missing. I primarily work with hardware design and have very limited experience with code, so perhaps I am missing something that would be an obvious step for someone with even basic knowledge.

As for your ZOE platform (I saw your Youtube video from a few days ago), it's really awesome (also great work on the video)! I would love to incorporate Unity into future platforms. I have thoughts on AI, self-localization, etc. which would benefit from using a game engine, but that is a conversation for another time. I also have a Quest, it's a really nice upgrade from the Go.

#50  

You can run ARC on the Pi, plus and EZB Pi on your Raspberry Pi...and you could also add your OpenCM with EZB Firmware, an EZB v4, and some Arduino with EZB Firmware! There are lots of different hardware scenarios, just choose the one that suits your project!

I did not experience your issues with the Pis camera when using a Pi 3, but cannot connect when using my Pi Zero...

Good to hear you got an Oculus Quest, its a great way to drive your robot...so much fun!!

I am very positive that future revisions of the EZB Pi will sort out connectivity issues, the Synthiam team is constantly improving the software... :)

#51   — Edited

I just looked at the settings for the XL430 servos using Dynamixel Wizard 2.0 and found that the default baud rate is set at 1Mbps.

User-inserted image

When I tried to change the baud rate I received a message indicating that there were multiple servos with the same ID. I tried connecting just one servo and changing it's ID (from 2 to 12), but when I attempted to change the baud rate from 1 Mbps to 57600 bps, I received the same message.

User-inserted image

I will send Robotis Support an email on Monday, but for now, should I set the baud rate in the Dynamixel plugin (in ARC) to 1000000?

#52  

Why do you want to change the servos baud rate?

#53  

If 1000000 works, then I’m happy to leave the baud rate as is; however, I am curious as to why the baud rate is different from what is listed in it’s specs and also why that message appears when attempting to change it...

#54  

Ah OK, that is really strange...I never used the Dynamixel Wizard, I am curious what customer service will reply!! :)

PRO
USA
#55  

@hello robo: If you have a U2D2 https://www.trossenrobotics.com/dynamixel-u2d2.aspx you can use it with EZB server. The specs mentions a HIGH performance FTDI Usb/Serial device, the raspberry pi sees a serial device, and you can specify the serial device with EZB PI server.

It's the recommended solution by Dynamixel and is clean no hacks/modifications needed .

#56  

Thanks ptp, I will order one to evaluate. It looks like a promising solution for my issue controlling Dynamixel servos.

PRO
USA
#57  

You don't have one ? What kind of controller do you use to configure (Dynamixel Wizard 2.0) the servos ?

#58  

I use an OpenCM9.04 board plugged into an OpenCM 485 Expansion Board.

#59  

Does the the EZ-B IoTiny support Dynamixel servos? It says that it does here, but when I try to add/use the Dynamixel plugin in ARC (while connected to the EZ-B IoTiny), I receive the following error: User-inserted image I am still not able to operate Dynamixel servos using the TX/RX pins on the Raspberry Pi, so I decided to try using an EZ-B IoTiny to test the Dynamixel servos. That way, I would know that I have the correct baud rate, servo ID's, etc. before further troubleshooting the direct Raspberry Pi/EZ-BuilderPi route.

PRO
Belgium
#60  

hi robo

did you take the wright one?the one in pic give no error.

User-inserted image

#61  

Yes, I believe so. Thank you for taking the time to test the Dynamixel plugin. Was ARC connected to an EZ-B IoTiny while adding the Dynamixel plugin? That is when I receive the error. When not connected, I am able to add the plugin without an error.

PRO
Belgium
#62  

i used the io tiny.i have no dynamixels .it opened without an error.

#63  

Thank you, I will try reinstalling ARC and the Dynamixel plugin.

#64  

I tried reinstalling ARC, the Dynamixel plugin and I updated the firmware for the EZ-B IoTiny board, but I am still not able to use the Dynamixel plugin while connected to the EZ-B IoTiny. I received the same error (from the screenshot attached to post #59).

So I disconnected the EZ-B IoTiny from ARC and once again tried adding the Dynamixel plugin. This time, I did not receive an error from adding the Dynamixel plugin (with the EZ-B IoTiny disconnected). I then tried connecting to the EZ-B IoTiny, but was not able to (I received an error message). I added Debug so that you could see what is causing the error:

User-inserted image

Just to confirm the source of my connection issue, I removed the Dynamixel plugin, and was then able to connect to the EZ-B IoTiny:

User-inserted image

Any thoughts?

PRO
USA
#65   — Edited

@HelloRobo:

Quote:

Does the the EZ-B IoTiny support Dynamixel servos?
Yes but only write operations (TX). IoTiny controller does not support hardware UART ports (RX/TX) instead provides Software Serial (Only TX) on digital ports (D0-D8) and limited baud rate max. 115200 bps This allows you to send/transmit positions but does not allow you to read data.

User-inserted image

Regarding the error (window) It seems is a minor bug, basically when you add the dynamixel plugin to your project the plugin tries to initialize and uses the default settings UART Port 0, If you have an existent connection the request is validated based on the controller capabilities as consequence if the controller does not handles UARTs an exception is raised.

Solution: Disconnect from the IoTiny, add the plugin change the configuration (assign a Port D0-D8) to be used with the Software Serial, change the Baud Rate to a valid value: 57600 and press save button and then save the project.

Then you can press connect.

BTW do not forget to set your dynamixel servo baud rate to the same value e.g. 57600.

PRO
Belgium
#66  

the io tiny connect without the plugging.and disconnect with the plugging cause baud rate is not supported. i gess the baud chould be set  in the window same as specify for your dynamixel.ithink it was 9600. and the window says 100000

User-inserted image

User-inserted image

#67  

Thanks ptp, I selected "Digital Port (serial tx)" and I no longer receive that error. The only issue now is that my XL430 servos seem to be locked at a 1mbps baud rate. Robotis support suggested that I update the firmware on the servos. I did, but unfortunately I am still unable to change the baud rate. I will wait to see what Robotis support will suggest next.

Thanks for the suggestion Nomad 6R, I tried changing the baud rate of the connected XL430 servo, using the "Utilities" tab in the Dynamixel plugin; however, I received this message:

User-inserted image

Do you think I selected the wrong option/enter the wrong value somewhere?

PRO
USA
#68  

I had the idea the XL430 default baudrate is 57600, what is the default ?

PRO
Belgium
#69  

i cant see any tutorial about those dynamixel servos you have. do you know the baud rate off your servo's?what is actually on the servo's firmwire.

#70  

It appears that the default baud rate is 1 Mbps. Currently I am not able to change it, but I am corresponding with Robotis support to find a solution for changing it.

PRO
Belgium
#71  

are these the xl460-w250-t  you have ?

PRO
Belgium
#73  

then the Mbps is 4.5

Item Specifications MCU ARM CORTEX-M3 (72 [MHz], 32Bit) Position Sensor Contactless absolute encoder (12Bit, 360 []) Maker : ams(www.ams.com), Part No : AS5601 Motor Cored Baud Rate 9,600 [bps] ~ 4.5 [Mbps] Control Algorithm PID control Resolution 4096 [pulse/rev] Operating Modes Velcoity Control Mode Position Control Mode (0 ~ 360 []) Extended Position Control Mode (Multi-turn) PWM Control Mode (Voltage Control Mode) Weight 57.2 [g] Dimensions (W x H x D) 28.5 x 46.5 x 34 [mm] Gear Ratio 258.5 : 1 Stall Torque 1.0 [N.m] (at 9.0 [V], 1.0 [A]) 1.4 [Nm] (at 11.1 [V], 1.3 [A]) 1.5 [Nm] (at 12.0 [V], 1.4 [A]) No Load Speed 47 [rev/min] (at 9.0 [V]) 57 [rev/min] (at 11.1 [V]) 61 [rev/min] (at 12.0 [V]) Operating Temperature -5 ~ +72 [C] Input Voltage 6.5 ~ 12.0 [V] (Recommended : 11.1 [V]) Command Signal Digital Packet Protocol Type TTL Half Duplex Asynchronous Serial Communication (8bit, 1stop, No Parity) Physical Connection TTL Multidrop Bus ID 253 ID (0 ~ 252) Feedback Position, Velocity, Load, Realtime tick, Trajectory, Temperature, Input Voltage, etc Part Material Engineering Plastic Standby Current 52 [mA]

#74  

Here is the initial response that I received from Robotis:

Hello Tim, Sorry to hear you're having trouble with the DYNAMIXEL XL430-W250. In the e-Manual the specification table is listing the possible range for baud rate as between 9600~4.5M. You can find the default values for the control table here and the values for the baud rate here.

A few questions for you: 1)How are you connecting the DYNAMIXEL to the computer? ( the connection maybe affected by the hardware used).

2)Do you have any other device connected to the computer?

3)Have you tried doing a firmware recovery?

PRO
Belgium
#75  

wel its baud 9600 and 4.5 M.and you cant change it.means other servo's or ?

#76  

According to the documentation sent by Robotis support (see the "here" links in post #74), the baud rate should be set to value 1 (57,600 bps); however, if I connect to an XL430 servo using Dynamixel Wizard 2.0 or R+ Manager, the value is set to 3 (1 Mbps). I included a screenshot of Dynamixel Wizard in post #51.

PRO
Belgium
#77  

indeed you are correct.

Value Baud Rate Margin of Error 7 4.5M 0.000% 6 4M 0.000% 5 3M 0.000% 4 2M 0.000% 3 1M 0.000% 2 115,200 0.000% 1(Default) 57,600 0.000% 0 9,600 0.000%

PRO
Belgium
#78   — Edited

wow this is confusing.

PRO
Belgium
#79  

in you pic from the wizard.right below says value 3 .chould that not be 1? can you click on that to change? you see value hex and Mbps why is there twice Mbps setting? 3 is also 1 M.

value 1  hex 0x03 real 1 Mbps   could this be possible?

#80  

Yes, it is all a bit confusing. In Dynamixel Wizard 2.0 the baud rate value is set to 3 (1 Mbps) for connected XL430 servos. I cannot change it. If for example, I select a value of 1 (57,600 bps), I receive the message from the attached image in post #51. I am emailing back and forth with Robotis Support in efforts to figure out why I cannot change the baud rate.

PRO
Belgium
#81  

ok but you can click on nr1 .thats good.i think your almost there.love to see the outcome.

PRO
Belgium
#82  

so one servo at the time.maybe first recovery then set ID then change the baud and save. maybe you need to close the wizard and open again to start frech.

#83  

Yeah, that’s what I was thinking as well, but I’m still not able to change the baud rate :(

PRO
Belgium
#84  

good morning robo

i was thinking also this.the page from robotis says  your servo's are discontinued.

maybe thats the problem you cant change the baud.

User-inserted image

#85   — Edited

Are you able to drive your servos, using the examples provided by Robotis for the OpenCM board?

It seems like rocket science at times to get those servos to work, that is also why I switched to LX16A servos...driving them is easy as cake!!

But I am currently testing my OpenCM with my AX-12A servos, just to see if I can find out something helpfull!!

Are you also having AX-12A servos? Then we would have a common ground for testing! :)

#86  

Nomad 6R, that is a great observation, but those servos are essentially the same. Robotis just changed the servo horn and mounting points.

At the time Robotis changed the XL430 servo design, it was a bit annoying because I had already designed a robot around the old XL430 design. I had to build eight robots, so I ordered around 90 servos (each robot used 12 XL430’s). Robotis sent me approximately 80 of the old model and 10 of the new servo design. So I had to redesign the parts of the robot which attached to the servo horn (of the updated XL430’s).

The single servo that I am testing is an old XL430 design, but the six servos inside the MAKI robot (pictured in the beginning of this thread) are all the updated XL430 design. Unfortunately, I am not able to change the baud rate on any of them.

#87  

Mickey666Maus, so far I have only been able to operate the XL430 servos using Dynamixel Wizard or R+ Manager.

It does make me feel a little better that someone proficient with code also thinks these servos are complex to operate :)

Thank you for testing an AX-12A with an OpenCM.

Yes, I have an AX-12A servo as well.

PRO
Belgium
#88  

you ordered 90 servo's:p wow talking about comitment.haha lol. so solution lies with robotis then.

PRO
USA
#89   — Edited

I've read up briefly up the thread. Why can you not set the Dynamixel plugin in ARC to 1m bits for baud rate? Is there a reason you want to change the baud rate to something other than 1M? I set all my dynamixels at 1M.

I have many different versions of the Dynamixels and some work and some don't with ARC. I have two servos worth $600 that refuse to work. I've had best results with the MX series. Dj found the night of that hack, that they have different protocols for different series of servos (MX, XM,XL, etc)...which is a really bad idea from a company standpoint. ARC supports 3 protocols.....but its obvious there are more needed to cover their entire line of servos. Many servos are now discontinued and will be gone with stock including the AX-12. New series of servos are now in preorder.

So what will the new servos have as far as protocol?! Only testing will tell.

EDIT: OK I see you are using the IOTINY. so you have to change the baud rate.

Check to see that your port number matches the port on the iotiny when programming the servos id and baud using the plug in configuration.

#90  

I totally agree, those servos are great but they are super annoying to deal with... :D

So far I had the best luck using the Robotis OpenCM IDE, because on Arduino IDE the Examples also need tweaking to some extend, while the Robotis Software works pretty straightforward...

But one thing that is to be taken into account, you will always have to have some sort of a microcontroller for sending and receiving data from those servos.. eg an EZB, OpenCM or something similar!  The Raspberry Pi and its GPIOs are not made for this! :)

#91  

Hello fxrtst,

Thank you for your input. I agree with your statements about the different protocols. Robotis makes excellent servos, but I find them challenging to work with... I can say that their support is responsive... I am using the IoTiny because my other EZ-B v4 boards are in other robots. I may order another board or "borrow" one from a different robot.

Also, I will go back and double check the port number.

#92   — Edited

Hey Mickey666Maus, Yes, it's increasingly beginning to look that way. In post #55, ptp suggested that I use a U2D2, found here:

https://www.trossenrobotics.com/dynamixel-u2d2.aspx

I ordered one and should have it by Thursday or Friday. It would even be great if I could get the EZ-B IoTiny to work. It is small enough to be mounted inside of the MAKI robot (the EZ-B v4 is a bit too large), but I still want to use the Google AIY voice kit for speech...

Also, here is the latest response from Robotis (spoiler, they also suggest the U2D2):

Hi Tim, Thanks for providing the additional information. Based on what you shared here's what we believe is causing this:

1)The first thing that stands out is that the OpenCM9.04 isn't fully supported on the DYNAMIXEL Wizard 2.0.
A) Normally other ROBOTIS software allows users to interact with the OpenCM9.04, However because the software is unable to see the OpenCM9.04 you are unable to make necessary changes to a firmware in the OpenCM9.04.

B) In the OpenCM9.04 firmware Address 12 sets the DXL Baud Rate which determines what baud rate the OpenCM9.04 uses to look for DYNAMIXELs. Because you are unable to change the baud rate in the OpenCM9.04 firmware the software is unable to change the baud rate DYNAMIXELs.

C) The U2D2 is ROBOTIS' recommend Interface device for the DYNAMIXEL Wizard 2.0

2)Using  R+ Manager 2.0 will allow you to make these changes using the OpenCM9.04.

#93  

Hey there, I never checked the price tag on those servos! Did you say you ordered 90 OF THOSE???

Well, if so...or even if you are just using a few of them, I can totally understand that you need to get them to work!! :D

I would suggest we are going step by step, with the hardware at hand!!

So could you confirm, that your servos are working with the example code provided by Robotis for the OpenCM board! Please use the Robotis software to upload, the code will not work with the Arduino IDE...

So we can confirm, that you are able to drive those servos, the way that Robotis wants us to drive them!! :)

#94  

/* Dynamixel Basic Position Control Example

Turns left the dynamixel , then turn right for one second, repeatedly.

               Compatibility

CM900 O OpenCM9.04 O

              Dynamixel Compatibility
           AX    MX      RX    XL-320    Pro

CM900 O O O O X OpenCM9.04 O O O O X **** OpenCM 485 EXP board is needed to use 4 pin Dynamixel and Pro Series ****

created 16 Nov 2012 by ROBOTIS CO,.LTD. / / Serial device defines for dxl bus / #define DXL_BUS_SERIAL1 1 //Dynamixel on Serial1(USART1) <-OpenCM9.04 #define DXL_BUS_SERIAL2 2 //Dynamixel on Serial2(USART2) <-LN101,BT210 #define DXL_BUS_SERIAL3 3 //Dynamixel on Serial3(USART3) <-OpenCM 485EXP / Dynamixel ID defines / #define ID_NUM 1 / Control table defines */ #define GOAL_POSITION 30

Dynamixel Dxl(DXL_BUS_SERIAL1);

void setup() {

// Dynamixel 2.0 Baudrate -> 0: 9600, 1: 57600, 2: 115200, 3: 1Mbps Dxl.begin(3); Dxl.jointMode(ID_NUM); //jointMode() is to use position mode }

void loop() {
//Turn dynamixel ID 1 to position 0
Dxl.writeWord(ID_NUM, GOAL_POSITION, 0); //Compatible with all dynamixel serise // Wait for 1 second (1000 milliseconds) delay(1000);
//Turn dynamixel ID 1 to position 300 Dxl.writeWord(ID_NUM, GOAL_POSITION, 300); // Wait for 1 second (1000 milliseconds) delay(1000);
}

#95  

Hey Mickey666Maus,

Yes, I am invested in getting these servos to workxD  Also, here is an image of those robots assembled:

User-inserted image

I forget my power supply at my shop yesterday, but I grabbed it this morning. I will test the example code after lunch. I also received the U2D2 yesterday, so I will test that as well. Lastly, if I have time today I would like to install EZBPi server onto an OpenCM9.04 and test that.

Thanks again for everyone's help.

PRO
Belgium
#96  

hi that looks awesome.are there more pics of front and back from the robots you make.

#97  

Thank you Nomad 6R, here are some additional photos: User-inserted image User-inserted image User-inserted image User-inserted image

PRO
Belgium
#98  

o wow that looks awesome.great colors to.i cant wait to see them in action.

#99  

Sweet, you own your private little robot army now!! :)

And yes the EZBPi server on the OpenCM would be the best option if you want a smooth ARC integration...I am sure that @DjSures will also update the plugin code, if you are having trouble to get those servos working!!

Let us know, how things are evolving!! :)

#100  

Btw, whats that power supply that you are using...and I am curious about that screen too!! :D

#101   — Edited

I wish that I could have kept my little army of MAKI’s (or even just one), but they were all built to order. The robots currently have ROS installed; however, I would love to help them run ARC on the Pi’s instead.

Here is a link for the power supply (Coolmax I-400): http://www.coolmaxusa.com/productDetailsPower.asp?item=I-400&details=overview&subcategory=80mm&category=single Here is a link for the touchscreen display: https://www.waveshare.com/7inch-hdmi-lcd-c.htm

#102  

Oh, but that's cool too right? :)

Seems like there are already a lot of people interested in your robot!! ARC has a nice, and easy to use GUI...so it should get a lot easier for anyone to get started with MAKI!!

I experienced that ARC is a bit slow when running on the Raspberry Pi, but I also only tried it on the 3B... The new Pi should have more than enough juice to run the software I guess! :)

#103  

Thanks to everyone who commented on this thread, your input was very useful. Special thanks to ptp who helped me offline solve this issue. I can now run EZBPi on my Raspberry Pi 3 B+ as well as control Dynamixel servos (XL430's) using the Dynamixel plugin (ARC is running on my Windows laptop). This is thanks to ptp's version of EZBPi server, EZB Server (BlueBerry Server).

In addition to the Raspberry Pi 3 B+, I am also using an OpenCM9.04 connected to the Pi via USB. The XL430 servos have a default baud rate of 1 Mbps, so I made sure that the DXL baud rate was also set to 1 Mbps on the OpenCM9.04. I am powering the OpenCM9.04 board directly from a 12v power supply. If you are using an OpenCM 485 Expansion Board, be sure to change the channel to 1, otherwise leave it set to the default which is 0.

To install EZB Server (BlueBerry Server), follow ptp's setup instructions; in addition, you will also have to follow these instructions (also provided by ptp) if you are using an OpenCM9.04:

  1. Install opencm usb port settings : source: http://emanual.robotis.com/docs/en/parts/controller/opencm904/ point: 8.3.1.1

run those 4 lines:

wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCM9.04/master/99-opencm-cdc.rules
sudo cp ./99-opencm-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

after connecting the opencm you can confirm is available:

ls /dev/ttyA*

you should see the serial device: /dev/ttyACM0

  1. Update your Blueberry repository
cd ~/BlueberryServer (or whatever location)
git pull 

the last command updates your local repository

  1. Start the BlueberryServer:

4.1 help with the options:

python3 Main.py --help

4.2 use opencm as serial ARC uart0 :

python3 Main.py --uart0=/dev/ttyACM0

*or

4.3. use opencm and picamera

python3 Main.py --uart0=/dev/ttyACM0  --camtype=picamera

*Other notes:

When using XL430 servos, in the Dynamixel plugin settings, set the baud rate to 1000000 (unless you have changed the default setting) and use UART Port #0. When moving the servos to different positions, the movement was very "jerky" until I increased the number of Steps.

This is a great first step and I am happy that I am able to run EZBPi server on a Raspberry Pi, but ultimately I would like to run ARC on the Pi as well. I will update this post once I am able to run ARC on the Pi with this version of EZB Server. Once I get "most" of the bugs worked out, I will also let you know when the STL files will be available for download (if you are interested in building your own MAKI):) I need to solve the interpolation issue which I am experiencing. Right now I am not able to slow the movements of the servos. I will try playing with the Delay/Step settings more, as well as changing the Global Max servo Positions from 180 to 4095...

*Please let me know if anyone has any input on this issue.

There is also just a bit of delay in the RPI camera feed. I am hoping that once I am able to run both EZB Server and ARC on the same Pi, that delay will be reduced.

Thanks again everyone :D

#104  

Nice update...good to see you are making progress on setting up your robot!! :)

PRO
Synthiam
#105  

I’m watching this. Haven’t come across any trouble with ARC I’m the pi yet to reproduce...

As for smoothness of servos, you don’t have to use 4095, it can be 1024 or even 512, which increase the resolution significantly

the servo speed, steps and delay will help quite a bit. Once you experiment with the values and their affect, it’ll make a lot of sense

#106   — Edited

@DJSures are there any legal issues with making an image of Raspian or another Linux distro with ARC, which is ready to use, available for download? Or is it just to early to do so because there are still a lot of changes at this time of development?

PRO
Synthiam
#107  

I’d have to research that answer. Let me know if you come across something.

the only time I’ve had someone reach out directly with a raspberry pi ARC issue was because they were trying to load ARC from text mode. They forgot to load the xwindows GUI first.