monome: community
news
events
applications
projects
hardware
arduinome
help
trade
ioflow
movie
open
not signed in (sign in / register)
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
-
- CommentAuthorkjyv
- CommentTimeMar 16th 2009
Hey everyone,
I recently kind of finished my arduinome(thanks to everyone who documented their efforts!) and started to play around with it.
It works all fine with mac os or windows but I want to mainly use it with linux.
So I guess the options I have is serial-pyio or monomic for processing. I tried both and had to change one or two lines for the arduinome to be detected. However, serial-pyio doesn't seem to correctly do anything after that while monomic at least correctly decodes the button presses. Lights once worked too but most times weird patterns occur or all lights are switched on.
I had a look at what monomeserial does and it sends the same bytes. I wonder if the serial libraries that are used are behaving weird. Probably testing with a very simple python program could give some insight.
So, does anyone have a better experience or used/uses other means to connect?
Cheers,
Stefan -
-
CommentAuthorbar|none
- CommentTimeMar 16th 2009 edited
[edit] "Ben Southall made some major improvements to the firmware (addressing the Arduino Ports directly), and began working on “ArduinomeSerial”. It’s a MonomeSerial hack, if you will, which is optimized for the Arduinome. Ben realized that the USB serial chip on the Arduino differed from the one on the Monome, requiring changes to the original MonomeSerial in order to keep the serial connection happy"
Quoted from
http://createdigitalmusic.com/2008/08/20/arduinome-an-arduino-based-monome-clone-behind-the-scenes/
Actually, I'm not really sure the serial protocol compatibility between monome and arduinome. Maybe someone else knows more. I do know that the OSC protocol is a much better bet for developing an app against. Leave the serial details to the protocol router.
Does serial-pyio support arduinomes?
Can you run arduinomeserial on Linux. That would be ideal as then you would do the following.
Monomic(MonomeOSC.java interface) -> OSC messages -> arduinomeserial -> Serial protocol -> Arduinome.
If serial-pyio can supports arduinomes, then you could do this as well
Monomic(MonomeOSC.java interface) -> OSC messages -> serialpyio -> Serial protocol -> Arduinome.
Don't use the Monomic's MonomeSerial.java class because that tries to talk the native serial protocol directly which is hardcoded for the 40h only. -
-
- CommentAuthortekym
- CommentTimeMar 16th 2009
Try running ArdinomeSerial in Wine? Not exactly the most direct route, and no guarantees it'll work perfectly, but it's worth a shot at least. -
-
CommentAuthorvisinin
- CommentTimeMar 17th 2009
if the arduinome is serial-compatible with either the monome 40h or series protocol, you could give my fledgling libmonome project a try.
http://github.com/visinin/libmonome/tree/master
click the little "download" button just above the description if you don't have git.
then you'll want to edit the main Makefile and change the end of line 8 from -DPROTO=\"series\" to -DPROTO=\"40h\" (eventually this will be switchable on runtime).
you'll need liblo installed (liblo-dev on ubuntu), but that's the only dependency. just "make" and "sudo make install", then run "monomeserial" from the console in the form "monomeserial <osc prefix> <device>".
sorry it's in such an unpolished state (i'm slowly moving toward another release), but hopefully it'll be of some use. -
-
- CommentAuthorucacjbs
- CommentTimeMar 17th 2009
Arduinome uses the same serial protocol as the 40h (although ADC is not implemented in the release firmware, but there's a thread here with a how-to on that).
The difference between the Arduinome and Monome is in the serial port settings. For arduinome you have to set 8 data bits, No parity with 1 stop bit (i.e. the standard '8N1' serial port settings), and a baud rate of 57600.
If you don't do that, odd stuff will happen, so take a quick peek into monomic and serial-pyio and see if they set the serial port properties as above.
best of luck - I'm sure that it's possible to get arduinome working under linux.
ben -
-
CommentAuthorjul
- CommentTimeMar 17th 2009
Ok,
It should be really easy to add arduinome support in serial-pyio. If some wants to do it. I can drive him. I cannot do that soon. -
-
- CommentAuthorunsped
- CommentTimeMar 18th 2009
check out the router for the octinct on my octinct page, i doubt you would even need to modify it to work on the arduinome. -
- CommentAuthorucacjbs
- CommentTimeMar 18th 2009
we base the arduinome's handling of serial port data on the octinct firmware, so certainly the octinct router will set up the serial port in the way that arduinome requires.
iwhat I don't know is whether the octinct router handles the 40h protocol, since I think octinct used the series protocol -
- CommentAuthorkjyv
- CommentTimeMar 18th 2009 edited
Thanks a lot for all you comments!
Running windows software with wine doesn't really help since arduinomeserial uses some special dlls to access the ftdi chip. I guess it's better anyway to have native software working. I'll have a look again at the serial-pyio serial code to check for 8N1 (does the monome use something different?) - I had the baud rate at 57600 already. Oh, and visinin's libmonome looks interesting too, I wasn't aware of it!
Seems like the tinct router code simply does
ser = serial.Serial('/dev/ttyUSB0',57600), so probably serial-pyio is doing something else as well. TincTest seems to open the device fine (scrolling bar), but the rest is either series or rgb specific.
I'll report back when I found out more.
Thanks everyone,
Stefan -
- CommentAuthorunsped
- CommentTimeMar 18th 2009 edited
well the scrolling is part of the arduinome firmware so it would show up if it was working or not.
yes the octinct router is designed to handle the series firmware however i think the 40h protocol is just a subset of the series protocol for the most part, so as long as your application was only sending 40h compatible commands it probably wouldn't care. you may have to modify the python router but it should be pretty straight forward. -
- CommentAuthorkjyv
- CommentTimeMar 19th 2009
Hey,
I played a bit with serial-pyio. It seems I had set the baud rate at the wrong spot. Now it's all working nicely. So, here's a patch against svn rev 199 that adds arduinome compatiblity (should be detected) and some fixes for the osc proxy to work with the most recent simpleosc library. Great, arduinome using linux!
Good night for now (hm, sun is shining already...)
Stefan
Hm, I can't attach a diff file... Get it here: http://lanpartei.de/~stefan/serial-pyio-arduinome.patch -
-
CommentAuthorjul
- CommentTimeMar 19th 2009
Thx a lot. I'll merge it as soon as I can. -
-
- CommentAuthorucacjbs
- CommentTimeMar 19th 2009
Great stuff! Glad you figured it out.
ben -
-
CommentAuthorjul
- CommentTimeApr 7th 2009
Hello,
I merged your patch and added a couple of things. Can you test the current trunk and tell me if it works.
I did not merge your code relate to OSC message. This does not seem to be correct. The osc message must be int and not unicode for button coordinates. Give me more details for that.
Jul -
-
- CommentAuthormarcman220
- CommentTimeJun 7th 2009 edited
I have almost 20 hours into coding a linux ("cross platform") version of monome serial). I'm hoping to finish the UI tomorrow, and some strenuous debugging and its basically done. So far the only thing it supports is the Arduinome.
I even have cable orientation working!
Its written in python...and is somehow extremely resilient. -
-
CommentAuthorjul
- CommentTimeJun 7th 2009
I would suggest looking at serial-pyio. It's stable, supports all devices, including the arduinome (SVN version). It has a gui. Gui code is separated from the device handling code. It supports multiple applications at the same time and so on...
Serial-pyio is coded in python.
Maybe you can help us.
Julien -
-
-
CommentAuthorrooker
- CommentTimeJun 8th 2009
@kjyv:
I really have to check out your updates using simpleosc. That was on my TODO-list actually. :) Thanks!
@marcman220:
As Jul suggested, I'd also ask you to rather add your skills to serial-pyio's development instead of reinventing the wheel. We could benefit much more from each other's expertise instead of splitting up our resources. If there's any reason for you not to do so, please let us know so we could improve that.
^Rooker -
-
-
CommentAuthorjul
- CommentTimeJun 8th 2009
Rooker,
I merged into the trunk the patch from kjyv. I read somewhere on the forum that someone successfully used serial-pyio with his arduinome.
Jul -
-
- CommentAuthorBRIANLIGHT
- CommentTimeJun 8th 2009
ummmm maybe that was me.. I tried the svn for serial-pyio under my Ubuntu 9.04 with my arduinome and tried most of the applications & they all seemed to work fine.. but if I python setup.sh --prefix=/usr/ install the appllication spits out an error after it's been installed I'll have to post it when I'm back at that machine.. & it no longer runs from the svn directory I checked it out in.. -
- CommentAuthorBRIANLIGHT
- CommentTimeJun 8th 2009
Ok I've checked out the latest svn & I'm now getting the following errors
brian@Lightfoots-Linux-Desktop:~/serial-pyio/main$ ./serial-pyio.py
INFO, 2009-06-08 12:03:02,473 MainThread: Starting Serial-PyIO
INFO, 2009-06-08 12:03:02,477 MainThread: Using /home/brian/.serial-pyio/logging.conf log configuration file.
INFO, 2009-06-08 12:03:02,478 MainThread: Using /home/brian/.serial-pyio/config.xml configuration file.
WARNING, 2009-06-08 12:03:02,752 MainThread: Skipping proxy 'proxy.midiproxy', because of problems:
Traceback (most recent call last):
File "/home/brian/serial-pyio/main/src/router.py", line 461, in findProxyClasses
module = __import__(moduleName, fromlist=moduleName)
File "/home/brian/serial-pyio/main/src/proxy/midiproxy.py", line 33, in <module>
import pypm
ImportError: No module named pypm
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "/home/brian/serial-pyio/main/src/router.py", line 658, in addArduinomeDialog
gui.dialog.devicedialog.AddSerialDeviceDialog(self, False, 57600)
File "/home/brian/serial-pyio/main/src/gui/dialog/devicedialog.py", line 67, in __init__
self.routerGui = routerGui # the routerGui instance that created this dialog.
NameError: global name 'routerGui' is not defined -
-
CommentAuthorrooker
- CommentTimeJun 9th 2009
@Brianlight:
The warnings about pypm and midiProxy are "normal", because you don't have pyPortMidi installed. This is handled properly by the proxy engine.
serial-pyio is currently undergoing some major rewrites under the hood, in order to cleanly separate monome code, GUI and proxy engine from each other. I'll try to reproduce that problem on my system.
Thanks for the info! -
-
-
CommentAuthorrooker
- CommentTimeJun 9th 2009
@Brianlight:
Seem Julien was faster than me. :)
The current SVN code does not contain the above mentioned error anymore. -
-
- CommentAuthorBRIANLIGHT
- CommentTimeJun 9th 2009 edited
I've checked out a fresh copy from svn again thinking maybe somehow there was latency & I had and older copy & still get an error not the same as posted above. This error happens right after I select my device...
File "/home/brian/Desktop/trunk/trunk/main/src/router.py", line 658, in addArduinomeDialog
gui.dialog.devicedialog.AddSerialDeviceDialog(self, False, 57600)
File "/home/brian/Desktop/trunk/trunk/main/src/gui/dialog/devicedialog.py", line 81, in __init__
gui.dialog.dialogbase.Dialog.__init__(self,routerGui.root)
File "/home/brian/Desktop/trunk/trunk/main/src/gui/dialog/dialogbase.py", line 16, in __init__
self.initial_focus = self.body(body)
File "/home/brian/Desktop/trunk/trunk/main/src/gui/dialog/devicedialog.py", line 105, in body
for port in self.routerGui.deviceDetector.getPossiblePorts():
AttributeError: 'RouterGui' object has no attribute 'deviceDetector' -
-
CommentAuthorrooker
- CommentTimeJun 10th 2009
Confirmed.
As I've said, SVN version is undergoing major changes. Will see what I can do. -
-
-
CommentAuthorjul
- CommentTimeJun 10th 2009
Brian, it should be fixed. You can make an " svn update " in your directory to get it. No need to check out each time a new version. Can you tell me if your aduinome works correctly ?
Normally your arduinome should be autodetected on startup or when you plug it.
Thx,
Julien -
-
- CommentAuthorBRIANLIGHT
- CommentTimeJun 10th 2009
Now my arduinome is detected at startup & everything seems to be working.... :D -
-
CommentAuthorjul
- CommentTimeJun 10th 2009 edited
Thx !
Enjoy,
Jul -
-
- CommentAuthormarcman220
- CommentTimeJun 24th 2009
Here is my very rough draft of my personal python serial router program thingy. It's the first part of a greater attempt to create a true cross platform serial program.
So far it only supports the Arduino, I have written the code to theoretically support almost any device (I did have it running using the caps, scroll, and num lock on my keyboard (: )
Right now it has flawlessly tied two Arduinomes together.
At this moment there is no GUI, you can't type commands every setting needs to be hardcoded in, so have fun.
I left my 128 (2xarduino setup on) everything you may need to modify should be inconveniently placed in monomeosc.py or something like that.
If you have any suggestions, bugs, or complaints you can email me at psgenfan@gmail.com
http://files.getdropbox.com/u/121366/monome.tar.gz -
-
CommentAuthorrooker
- CommentTimeJul 27th 2009
@marcman220:
Sorry for my late post, but maybe you'd like to consider joining the development team of the already existing "Python serial router program thingy", called "serial-pyio"? :)
serial-pyio already supports Arduinomes and I'd be really happy if we could join our development resources instead of reinventing the wheel in parallel.
What do you think?
Yours,
^Rooker -
-
- CommentAuthoraggaz
- CommentTimeSep 22nd 2009 edited
Hello, I tried to use Serialpyio with my Arch64 box.
I installed today's svn, I can run it only with arduinome unplugged but it's recognized when plugged.
I can see led's scroll, but it's the only led's light, all applications doesn't work.
Led's are alwais off.
I have a pypm error too.
What can I do? -
- CommentAuthorGetTheLEDOut
- CommentTimeSep 23rd 2009
aggaz, I believe I'm having the same problems with you and have posted about it in the serial-pyio thread... julz is workign on it hopefully. -
-
CommentAuthorjul
- CommentTimeSep 23rd 2009
There must be something broken. Unfortunately, this will be a blind debugging session, since I do not have an arduinome... -
-
- CommentAuthoraggaz
- CommentTimeSep 23rd 2009
Hello, I readed the code today and incredibly I found the error!
There's a bit of confusion with the baud rate that is different between arduinomes and monomes.
Just change 9600 to 57600 in line 128 of file trunk/main/src/monome/serialdevice.py to see led's light!
Evviva!!! :°D -
-
CommentAuthorjul
- CommentTimeSep 23rd 2009
Thx a lot,
You're right there was a bug in baud handling. Can you checkout the last version and let me know if it works ? -