Searduino needs a gui

Do you want to write a gui front-end to Searduino?

 

About Searduino:

Searduino is made to ease and speed up development for the Arduino boards. In short, with Searduino you get

  • C/C++ interface – use C/C++ to program your Arduino boards
  • Makefiles – easy to use Makefiles for inclusion in your project
  • Stand alone program – build your Arduino code to run on your local computer instead
  • Simulator – run your Arduino code in a simulator to test it
  • Simulation API – write your own test cases in C/C++
  • Python simulation API – write your tests in Python
  • Arduino example (to C/C++) translation

About the gui

In a way searduino has a gui – We have been developing a gui written Python (pygtk) to make sure we write the underlying library in a way that makes it easy to develop a real gui. So there is a gui but no proper one. Anyhow, here’s a snapshot of the (non proper) Python gui:

Searduino's simulator GUI - written in PyGtk

 

We believe that the gui needs to be written in C/C++ and using a thread safe graphical toolkit. The speed which which the callbacks call the gui require as short path as possible from the source to the handler and as already mentioned that the toolkit is thread safe (the Arduin ocode is executed in a thread). There is however a threshold for max updates per second which can be used but we still believe that C/C++ is the best way – but don’t hesitate to contact us (see email address below) if you believe differently.

Want to join?

If you like creating guis and want to help out on Searduino – send an email to hesa -at- sandklef.com

Btw: the python gui was also used to test Searduino’s Python extension

 

HID backends architecture for local execution begun

When running Arduino code locally Searduino defaults to simply print when Arduino code uses the new USBDevice stuff available on the Leonardo board. It is now (locally on my laptop) possible to add HID fakers – currently Searduino implements Mouse.move on X11 systems using the XTest extension.

Leonardo is now supported

It took a while to get it to work, more on why below, but it seems to be working fine developing code for Leonardo now.

Where to get it:

  • from git / master branch
  • a release is under consideration

Tested so far:

  • Compile and upload for Leonardo boards
  • Move the mouse around using the Mouse.move method

Todo:

  • Test more ;)
  • Make twi code work (Arduino 1.0.1 has a slight change in the API)

Problems encountered when adding support for Leonardo:

  • Had to include all objects form libsearduino (dunno way right now). This was done using the linker flag “-whole-archve”). You as a developer need not do anything to use this.
  • USB device has to be attached in the main function. Searduino provides a macro (searduino_usb_init()) for this.

Work to support leonardo has begun

This work involves switching to Arduino 1.0.1, making sure Searduino handles the new kind of pin (pwm and digital..)

 

Newer manual & Pardon GUI screenshot

For some of the students in the embedded project we provide a picture of the current Python GUI frontend to Searduino.

New version of the manual with some text on how to write a simulator frontend: manual

Searduino 0.65 (OS X)

searduino-bin-0.65-x86_64.tar

Searduino 0.65 released

News in 0.65
Pins are now working more like the actual boards
Boards are set up separately
Only allow write on serial after a call to begin has been made

Source code:

searduino-0.65.tar.gz

GNU/Linux binaries

searduino-bin-0.65-i686.tar.gz

searduino-bin-0.65-x86_64.tar.gz

Windows/Cygwin binaries

searduino-bin-win-0.65-i686.zip

searduino-bin-win-0.65-i686.tar.gz

Searduino 0.64 (GNU/Linux 64 bit)

searduino-bin-0.64-x86_64.tar.gz

 

Searduino 0.64 OS X

searduino-bin-0.64-x86_64.tar

Searduino 0.64 released

NEWS

More Arduino examples used to verify installation
If no registered listener for log msgs, then default to fprintf to stderr
Added rather stupid stub for pulseIn
Searduino version can be requested in Makefile
Documented how to set USB device manually
Started working on documenting I2C devices
Better management of Analog pins

Fixed Savannah bugs:
#36284  SEARDUINO_DEBUG not available…
#36280  Serial print functions do not work for stand alone programs
#36227  arduino_ex2c: main.c not added in Makefile
#36226  Add OS specific paths to upload script
#36285  Add pulseIn to searduino stubs
#36286  Add doc about USER_PORT
#36224  Add version handling in makefiles

GNU/Linux 32 bit:

searduino-bin-0.64-i686.tar.gz

GNU/Linux 64 bit:

searduino-bin-0.64-x86_64.tar.gz   (UPDATED LINK!!!!)

Windows 32 bit:

searduino-bin-win-0.64-i686.zip

searduino-bin-win-0.64-i686.tar.gz