To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / *4059 (-20)
Subject: 
Developing a "button pressing" RCX system
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Fri, 29 Jan 2010 19:02:12 GMT
Viewed: 
21356 times
  
Hello,

I have inherited a hand-me-down RIS kit with a functional RCX unit that
I would like to learn to use and put to a purpose.

I would like to build a system whereas the RCX is setup to press buttons
on controllers (think remote control units) to operate other devices.

I am completely new to mindstorms programming (this RIS kit was my first
exposure).

Other than the mechanical considerations, I and not sure how to proceed
with development on the software side.

I basically would like to the RCX to be in standby until it receives a
signal via the IR tower to "push button 1" which would cause the RCX to
go through the motions then wait for another command. Think a piano
keyboard with a RCX "crane" to find and press the different keys as
directed.

For my development environment, I am using Debian Etch which provides
pre-built packages for BrickOS and LNP. I was able to load th BrickOS
firmware and try out a few of the sample programs (hello world, bumper
robot) etc. These were helpful to determine if the RCX and other parts
were still functional but they are very trivial examples compared to
what I would like to accomplish.

Are there any existing BrickOS examples out there (links) to something
similar to what I would like to do that I can work from?

Also, would it be better to create simple RCX programs to do a
load-and-run operation for each individual button press operation or to
create a single master program that always lives on the RCX and waits
for keyword instructions via the IR tower.

Any suggestions, help, and pointers would be greatly appreciated.  I
have found more dead web links than anything else trying to figure this
out on my own.  It seems that 10 years is "before recorded history" on
the Internet, given the copyright date on the Mindstorms RIS box is 1998...


Subject: 
Re: GCC 3.4.6 vs. 4.4.1
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Wed, 16 Sep 2009 06:23:55 GMT
Viewed: 
23221 times
  
Hi,

In lugnet.robotics.rcx.legos, Matthew Sheets wrote:
While working on Bibo, I observed some unexpected differences between GCC
3.4.6 and gcc 4.4.1.  Specifically, one of the XS Lisp demo programs that is
fine when built with 3.4.6 is too large (section .bss not within region ram)
when built with 4.4.1.  The only change was the compiler version being used.
The optimization argument was -Os (optimize for size) and the binutils
version was 2.16.1.

Interestingly, bibo.srec and three of the four libraries are smaller when
built using 3.4.6 (libfloat.a is the same size either way), but if there is
a difference in the size of the demo programs, those built using 4.4.1 are
usually smaller (memtest.lx is the only exception here).

Below is  a chart listing what I found.  Column 1 is the comparison, 2 is
the 3.4.6-built size, 3 is the 4.4.1-built size, and 4 is the file name.

Ver 3.4.6   4.4.1   File
========================
(3) 35892 - 38496 - bibo.srec (~2.6k)

(3) 10018 - 10470 - libc.a (452)
(3)  2774 -  3002 - libc++.a
(-)  9576 -  9576 - libfloat.a (228)
(3)  5320 -  6448 - libmint.a (1128)

(-)   278 -   278 - c++.lx
(4)   548 -   520 - cpu.lx
(4)   392 -   370 - dccthrottle.lx
(-)    90 -    90 - helloworld.lx
(-)   202 -   202 - helloworld_lnp.lx
(4)   372 -   340 - linetrack.lx
(3)   228 -   234 - memtest.lx
(-)    78 -    78 - robots.lx
(4)   262 -   250 - rover.lx
(-)   144 -   144 - sound.lx
(4)  4230 -  4198 - trailerbot.lx

(chart best view with a fixed-width font)

Anyway, I thought this was interesting enough to pass along.
Observations/comments welcome....


I would just like to add that this matches my experiences, although using some
4.0 version of GCC at that time: I wasn't able to produce working programs (not
even sure about BrickOS kernel) using any GCC version newer than 3.4.6. This is
also the reason why I never ever upgraded (and, thus far, also don't intend to
do so unless someone comes up with a solution) the gcc-h8300-hms packages in
Debian to a new GCC version.

Best,
Michael


Subject: 
Bibo Rollup Release
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Tue, 15 Sep 2009 01:10:18 GMT
Viewed: 
27133 times
  
I've been asked if I could make the patch collection updates available as a
full-distribution release.  Actually, I can't say that I blame that request.

Most of the changes have already been covered in prior lugnet postings under
the "BrickOS Patches and Development" thread (which technically became a
"Bibo Patches and Development" thread), but I will try to provide a
higher-level overview here (the numbers are based on the patch numbers).
These patches are applied to the Bibo firmware posted at
http://hoenicke.ath.cx/rcx/bibo.html.  Several of these patches were
originally written for a variety of differing BrickOS versions, but (where
appropriate) they have been adapted and applied to Bibo.

* 00 - Configuration updates for Cygwin
* (01-05 - gcc 3.3, highmem, performance, Makefile, and tcpcomm patches
needed for BrickOS but already incorporated into Bibo)
* 06 - Signedness patch for dealing with newer gcc's (based on Carl
Troein's work)
* 07 - Allow makelx to handle longer file names (based on a pending
SourceForge patch)
* 08 - Update entrypoint specification to the S9 record for Lego.NET (based
on a pending SourceForge patch)
* 09 - Address compatibility issues in non-Linux/Cygwin environments (based
on a pending SourceForge patch)
* 10 - Serial port init fix for Mac OS X (based on a pending SourceForge
patch)
* 11 - LDCC incorporated into the kernel (based on Mark Riley's work)
* 12 - LNP printf capabilities (based on a version by Brown.edu)
* 13 - lnpmsg communication utility (started out based on Mike LeSauvage's
work)
* 14 - Miscellaneous patches included with xsLisp (based on Taiichi Yuasa's
work)
* 15 - doxygen updates (based on Carl Troein's work)
* 16 - Start of a major reworking of code under the util folder to
eliminate duplicate code
* 17 - Contributor info
* 18 - Standardize the command-line arguments and the command-line argument
processing for the host utilities
* 19 - Update and reorganization of LDCC
* 20 - Linux error/warning fixes (Carl Troein)
* 21 - Bibo patches (Dr. Jochen Hoenicke)
* 22 - Make kexeci's argv argument type more generic
* 23 - Incorporated some code and ideas from http://lnphost.sf.net/
* 24 - Update serial IR tower keepalive functionality
* 25 - Cleanup the util subdirectory
* 26 - Update Makefiles and changed cross-compiler optimization flag to -Os
(space)
* 27 - Made the "View" button functionality a configurable option
* 28 - Lisp for the RCX (based on Taiichi Yuasa's mod of BrickOS 0.2.6.10
at http://www.xslisp.com/)
* 29 - Improved the internal handling of connection types in rcx_comm
* 30 - Runtime-configurable timeout properties for host utilities
* 31 - Support NQC-style device name conventions
* 32 - Check a config file in the user's home directory for a default TTY
to use
* 33 - IR communication and hacked-on (e.g. Bluetooth) communication
* 34 - Config file cleanup removed entries for CONF_* #defines that do not
exist
* 35 - Remove CONF_ASCII dependencies, reducing kernel size, and enhancing
CONF_CONIO
* 36 - Check /etc/rcx/device.conf for a default TTY
* 37 - Reset the automatic shutoff timer if the Lego remote is used while
no programs are running (based on some tips from Dr. Hoenicke)
* 38 - Initialize the IR carrier frequency in the firmware fastloader
* 39 - Updated support for Linux
* 40 - Include the Debian toolprefix for the H8/300 toolchain in the config
list
* 41 - Support for building Esterel programs (in support of work by Martin
Richard and Xavier Fornari)
* 42 - Enabled specifying whether rcx_init() starts the Keepalive timer

After applying these patches, the following changes were made:
* Removed directory util/firmdl (no longer used)
* Removed directory util/dll-src (no longer used)
* Renamed program firmdl3 to firmdl (now that the directory of the same
name has been removed)

This release is available for download at the following URL:
http://sf.net/tracker/?func=detail&aid=2858992&group_id=58151&atid=486699


Enjoy,
Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Mon, 14 Sep 2009 23:23:35 GMT
Viewed: 
31110 times
  
The Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699
has been updated.

New for this update are patches 41 and 42.

41: Makefiles and the Esterel Synchronous Programming Language - The
makefiles were updated to support building Esterel source files for the RCX.
More information and links to the Esterel software required for building is
available at http://www.emn.fr/x-info/lego/.  Five sample/demo programs
listed on this site have been included in an "esterel" folder in the bibo
distribution (make will only attempt to build these programs if the Esterel
compiler is found).

Also, when doing a "make && make install" on the bibo source, the installed
makefile may be used to build program source files by running "make -f
/path/to/installed/makefile SOURCES=demo.strl" (or demo.c, demo.cpp, demo.s,
demo.S); alternatively, you may run "make -f /path/to/installed/makefile
PROGRAMS=demo.lx" and make will attempt to build the corresponding code
file.

NOTE: While Esterel supports the CPUTS command, this requires that ASCII
support be enabled in Bibo.  ASCII support is now disabled by default due to
(1) the size required for its support and (2) the fact that CONIO was
updated to make it easier to output characters to the display without the
size bloat of ASCII support.  Some Esterel-generated programs can be quite
large, so space can be at a particular premium when using Esterel.  Ideally,
Esterel could be updated to support some of the CONIO functions.

42: RCX Comm - Updated debug output.  Modified rcx_init to allow specifying
whether or not to start the IR tower Keepalive handler (this setting does
not have any effect if the device does not require Keepalive functionality).


Thanks,
Matthew


Subject: 
GCC 3.4.6 vs. 4.4.1
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Mon, 7 Sep 2009 20:08:45 GMT
Viewed: 
24812 times
  
While working on Bibo, I observed some unexpected differences between GCC
3.4.6 and gcc 4.4.1.  Specifically, one of the XS Lisp demo programs that is
fine when built with 3.4.6 is too large (section .bss not within region ram)
when built with 4.4.1.  The only change was the compiler version being used.
The optimization argument was -Os (optimize for size) and the binutils
version was 2.16.1.

Interestingly, bibo.srec and three of the four libraries are smaller when
built using 3.4.6 (libfloat.a is the same size either way), but if there is
a difference in the size of the demo programs, those built using 4.4.1 are
usually smaller (memtest.lx is the only exception here).

Below is  a chart listing what I found.  Column 1 is the comparison, 2 is
the 3.4.6-built size, 3 is the 4.4.1-built size, and 4 is the file name.

Ver 3.4.6   4.4.1   File
========================
(3) 35892 - 38496 - bibo.srec (~2.6k)

(3) 10018 - 10470 - libc.a (452)
(3)  2774 -  3002 - libc++.a
(-)  9576 -  9576 - libfloat.a (228)
(3)  5320 -  6448 - libmint.a (1128)

(-)   278 -   278 - c++.lx
(4)   548 -   520 - cpu.lx
(4)   392 -   370 - dccthrottle.lx
(-)    90 -    90 - helloworld.lx
(-)   202 -   202 - helloworld_lnp.lx
(4)   372 -   340 - linetrack.lx
(3)   228 -   234 - memtest.lx
(-)    78 -    78 - robots.lx
(4)   262 -   250 - rover.lx
(-)   144 -   144 - sound.lx
(4)  4230 -  4198 - trailerbot.lx

(chart best view with a fixed-width font)

Anyway, I thought this was interesting enough to pass along.
Observations/comments welcome....


Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Fri, 7 Aug 2009 00:41:53 GMT
Viewed: 
34905 times
  
The Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699
has been updated.

There is just one minor Bibo-specific update this time, patch 40.

40: H8/300 TOOLPREFIX - This patch comes from Debian, where
"h8300-hitachi-coff-" is added to the list of potential H8/300 toolprefixes.

The larger update this time is a set of patches for NQC running on Linux.
Included in these patches is a patch that corresponds with Bibo patches 32
and 36, which enables Bibo to read a default tty device name from a
configuration file.  This same capability has now been extended to NQC.

More details on the NQC patches are available here -
http://news.lugnet.com/robotics/rcx/nqc/?n=1900


Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sun, 26 Jul 2009 03:08:36 GMT
Viewed: 
35111 times
  
The Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699
has been updated.

New for this update are patches 36 through 39.

36: RCX tty config file - Extends patch 32 so that /etc/rcx/device.conf will
also be checked for a default tty.  The precedence order is first, the
RCXTTY environment variable; second, ~/.rcx/device.conf; third,
/etc/rcx/device.conf.

37: Automatic Shutoff Timer - Reset the automatic shutoff timer if the Lego
remote is used in direct mode (when no programs are running).

38: Firmware Fastloader - Added code to initialize the IR carrier frequency.

39: Linux Patches - As some of you may already know, I have been using
Cygwin.  I am currently working to get a Linux-based BrickOS/Bibo
environment up and running, and though that Linux environment is not yet
fully functional, this patch is needed to help some of the earlier patches
run under Linux.

A word of thanks goes to Dr. Jochen Hoenicke for his assistance in answering
questions; any errors are mine.  :-)


Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Wed, 24 Jun 2009 00:47:03 GMT
Viewed: 
33506 times
  
The Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699
has been updated.

New for this update are patches 25 through 35.

25: Cleanup in the util subdirectory
  - Updated lnpmsg to more cleanly handle and process command-line arguments
  - Removed in mkimg that is a duplicate of code in srecload
  - Updated some Makefile cross targets

26: Updated makefiles
  - Changed the existing TOOLPREFIX to CROSSTOOLPREFIX, then used TOOLPREFIX
for the host tools (needed when creating packages that must be targeted to,
for example, a 486 processor)
  - Moved some target definitions to Makefile.user, since it is shared by
both Makefile.dist and Bibo's make process.  This also reduced Makefile
dependencies across SUBDIRS (util, lib, include, kernel, demo, doc).  Some
individual subdirs can now be removed from the SUBDIRS assignment statement
in the main Makefile and the rest of the project will still build
successfully.
  - Updates related to util/host, as it seems to be stabilizing.  Some items
in util/Makefile.sub have been moved to util/host/Makefile.sub, since the
code now resides there
  - Removed the need to set PROGRAMS when building *.lx files.  Building %.c
/ %.cpp / %.s / %.S will now look for a make variable by the name of "%_SRC"
to determine if additional object files need to be built.
  - Changed the cross-compiler optimization from -O2 to -Os (space)

27: Configuration #defines
  - Added a CONF_VIEW_BUTTON define based on Taiichi Yuasa's modification,
allowing exclusion of the information display normally provided when
pressing the RCX View button.  The primary reason for adding this
configuration define is enable building a smaller kernel.
  - Added a configuration define needed in one of the demo programs in case
CONF_RCX_MESSAGE is not defined.

28: Merged XS Lisp - http://www.xslisp.com/
  - A few of the above patches were in preparation for this update
  - Was originally based on BrickOS 0.2.6.10
  - Is not an addition to the kernel but instead can be used to build *.lx
files that can be downloaded to the RCX.  The generated *.lx programs are
large, so a smaller kernel is needed.
  - Supports both an IR-link mode and an autonomous mode (IR features were
updated to use rcx_comm)
  - Added better support for building from Makefiles
  - For the full detail on XS, please see the file xs/README and or visit
the website.  Note that information on the website refers to files such as
xs, xs0, xs1, xs2, etc.  When merged with Bibo, the numeric suffixes were
replace with more descriptive text, and xs/README reflects this
modification.
  - A list of suggested configurations to disable is also included in
xs/README.  Any other recommendations or suggestions here would be
appreciated.

29: RCX Communication
  - Created a tty struct to replace the existing FILEDESCR and tty_type_t
that get passed around in host-based programs.
  - Replaced the fast/slow options in the host utilities with support for
specifying a baud rate at run-time.

30: RCX Communication Timeout for Host Utilities
  - Timeout value in milliseconds can now be specified at run-time instead
of being a build-time #define.  This is useful when switching between a
low-latency, local IR tower and a TCP connection over the Internet (e.g.
using the uplink and downlink features added to ir-server) with a higher
latency.

31: TTY Device Names
  - Added support for interpreting NQC-style port name strings of the format
"<device type>:<device name>".  This format was already being used by the
TCP and NQC Bibo additions and was extended to include "serial:" and "usb:".
Backwards compatibility with existing conventions has been maintained.

32: Read Default TTY from a Config File
  - Added support for reading the default tty device name from a
configuration file ("~/.rcx/tty.conf").  This essentially fulfills the same
purpose as the RCXTTY environment variable, but without some of the
limitations of environment variables.  I am hoping to be able to add this
support to NQC, too.

33: IR Communication and Hacked-on (e.g. Bluetooth) Communication
  - Attempted to provide an easier starting point for those using
communication hacks such as the bluetooth hack
     ~ Ability to set the baud rate
     ~ Ability to turn of echo handling
  - Created configuration #defines to allow setting defaults for
     ~ Baud rate
     ~ IR Carrier enabled/disabled
     ~ Transmit echo/no echo
  - Replaced slow/fast (2400/4800 bps) options with the ability to select a
baud rate
  - Firmware downloads at 2400 bps can now also be completed without sending
the complement bytes (previously, this option was only available for "fast"
4800 baud)
  - Enabled setting the communication timeout value at run-time.  This is
useful, for example, when switching between a low-latency serial connection
and a higher-latency TCP-based connection.
  - Improved the keepalive functionality for serial IR towers
  - Moved help text for standard rcx_comm options to the rcx_comm header
file
  ** IMPORTANT CHANGE NOTE: Parity for all baud rates is now "odd"

34: Config File Cleanup
  - Removed #define entries for configurations that no longer exist
  - Removed RCX-only #define entries from the host configuration file

35: Remove CONF_ASCII Dependencies
  - Currently, if CONF_PROGRAM is defined CONF_ASCII must also be defined.
This patch reduces the CONF_PROGRAM dependency level from CONF_ASCII to
CONF_CONIO, reducing the size of the kernel needed for program support.
  - Created #defines for each of the entries in CONF_ASCII's
ASCII-to-CONIO-mask lookup table
  - With those #defines, CONF_ASCII is no longer needed for displaying
static strings.  (The small hex lookup table included by CONF_CONIO is still
present there.)  Functions that are variants of cputc_native*, cpuc_hex*, or
cputw may be used to write to the display.  For example, cputs("Lego") may
now be written as cputc_native_user(CHAR_L, CHAR_e, CHAR_g, CHAR_o).  While
it's a little longer statement to type, it does help toward reducing kernel
size.  ;-)
  - All demo programs were able updated to eliminate the need for
CONF_ASCII.
  - For dynamically generated strings, CONF_ASCII will still be required.
XS utilizes CONF_ASCII features for the XS functions that mirror the cputs
andcputc C functions (puts and putc), but due to the large size of XS, this
patch just limits the cputs/cputc functionality if CONF_ASCII is disabled
(puts will output "ASCII" and putc will display a '-' in the specified
position).


Thanks,
Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sun, 24 May 2009 03:48:52 GMT
Viewed: 
29976 times
  
The Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699
has been updated.

This update adds a handful of patch files--20 through 24.

20: Nice group of Linux error/warning fixes from Carl and posted to
SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2793018&group_id=58151&atid=486699
Thanks, Carl!

21:  This is a group of bibo paches by Dr. Hoenicke, of which the major
changes relate to makefile, assembly branching, and util man page updates
(plus a documentation typo on my part--sorry! :-).  Thank you!

The above patches were incorporated into the rollup to minimize merge
differences with subsequent patches.

22: This patch changes kexeci's argv argument from type char** to type
void** and is based on some (now old) feedback from the Lego.NET folks (
http://www.dcl.hpi.uni-potsdam.de/research/lego.NET/ ).  Some delegate-type
functions aren't (yet) implemented for Lego.NET, but the capability should
be there for wait_event-type delegates.  For the case of kexeci, the
Lego.NET delegate's argv would not be of type char**.  From what I can tell
by reviewing the code, the type of argv does not matter to the BrickOS/Bibo
kernel, so it should be safe for a Lego.NET delegate to pass a non-char-type
argv.  If anyone has any deeper insight, I would welcome the feedback.

23: Back to work on LNP.  Implemented some code and ideas from
http://lnphost.sf.net/ , which was designed as a replacement for lnpd.
While there are a few drawbacks due to implementation differences (no
tty_type_t support, no sharing/reuse of lnp and lnp-logical with the kernel,
a small documented problem that "in some rare cases lego packets might not
be detected correctly"), it does have some nice features, including handlers
for standard Lego messages and a nicer hexdump routine (shows both hex and
ASCII-printable characters.  That hexdump routine has been incorporated,
replacing the existing one.

LNP was updated to include a handler for standard Lego messages (this is in
addition to existing functionality), and the ability to send "Lego remote
codes" was added.  The lnpmsg program also received several updates.
Support was added for both displaying and sending both standard firmware
messages and Lego remote codes.  The LNP message output format was changed
to use the updated hexdump routine (instead of just a text string), which
should make it easier to monitor non-text LNP messages.

24: Improved the keepalive capabilities to remove some of the keepalive
burden from programs that might use rcx_comm.  Unfortunately, I'm not setup
right now to test either a serial IR tower or an NCD port, but I did try to
setup a dummy NCD-like tty for testing.  Keepalive works of a signal and
alarm, with code in place to prevent a keepalive byte from being sent while
either writing (rcx_nbwrite) or actively reading (rcx_nbread).  I would be
interested in feedback from anyone using a device that needs a keepalive.


Thank you again to those who have responded or provided feedback.  If you
ever catch a few more free moments, Carl, I would be interested in a Bibo
version of your edgecount patch.  :-)


Thanks,
Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sun, 17 May 2009 22:10:04 GMT
Viewed: 
28101 times
  
Matthew Sheets wrote:
I've again updated the Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699

Wow, Matthew, you've done a great job with this. Kudos. :-)
I've been meaning to contribute more, but all too rare are the
moments when my kids are asleep and a decent chunk of my brain
is not. But anyway: I've fixed one little bug that stopped
rcx_comm.c from compiling on Linux, plus some warnings and
stuff. Patch posted at
http://sourceforge.net/tracker/?func=detail&aid=2793018&group_id=58151&atid=486699

//Carl


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sat, 16 May 2009 21:25:03 GMT
Viewed: 
27784 times
  
I've again updated the Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699

This update adds two new patches--18 and 19.

18: For the host utilities, this patch attempts to standardize the command
line arguments and their processing.  There is also some additional cleanup
in lnpmsg, plus the addressing of a gcc 4 warning that was brought to my
attention.  The original lnpmsg (actually LegOShrink) supported logging to
file, sending from file, and filtering LNP addressing messages based on
destination host and/or port.  To ease the process of standardizing the
common host utility code, some of those features were trimmed out; however,
some of the supporting functions remain in place, including SendFile() and
LogString in lnpmsg_comm.c

19: The assembly file dccasm.S with functions necessary for DCC operation
was moved from libs/dcc to alongside kernel/dcc.c.  As has been the case
dcc.c, the code in dccasm.S now builds based on whether or not CONF_DCC has
been defined.  The folder lib/dcc may be deleted.


Thank you,
Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Tue, 12 May 2009 01:44:54 GMT
Viewed: 
28045 times
  
I have again updated the Bibo Patch Rollup Collection posted to SourceForge
at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699

A big change this time is the consolidation of the code bases of util/firmdl
and util/dll-src.  Working with all the similar-but-different code was
getting a bit cumbersome, so I finally decided to try to clean it up.  This
should make enhancing or creating other host utilities much easier.

Point by point, updates since the last lugnet posting are as follows:
* Kudos to Joe for identifying the source of the IR tower problem in Linux,
as he tracked it down to the O_NDELAY flag.  For now, this flag has been
removed.
* Made NCD tty types a runtime option instead of a compile-time #define.
* Merged patches for BrickOS with Bibo, including LDCC, lnp_printf, and
lnpmsg (formerly LegOShrink)
* Reworked firmdl3, dll, and lnpmsg under utils as well as lnp and
lnp-logic in the kernel to facilitate better code reuse, remove essentially
duplicate code, and establish a set of common functions for rcx_comm and
LNP.  Merged the resulting code into util/host, deprecating util/firmld,
util/dll-src, and util/fontdesign.c.
* Util dll--made fast mode a runtime option instead of a compile-time
#define.
* Added ability to send LNP messages directly from the lnpmsg command line.
* Added ir-server from Jochen Hoenike's BrickEmu package and used the code
reworked from above to add support for tty downlinking (e.g. serial, USB,
TCP) or TCP uplinking.


Notes and issues:
* If lnp_integrity_byte() is processing firmware download communication on
the host (e.g. if lnpmsg is listening on an ir-server repeating the firmware
download), a segmentation fault will eventually result.
* Command-line argument format and command-line argument processing - the
various programs use different methods of processing command-line arguments,
resulting in similar argument being handled differently by different
programs.  Ideally, this would be addressed in another round of code
cleanup.
* I am not currently setup to test either serial IR towers or NCD serial
connections, so any reports for these devices would be welcome.

Using the updated ir-server, I have actually been able to send firmdl3 to
ir-server (instance A) to ir-server (instance B) to USB IR tower to physical
RCX.  I then used
dll to send helloworld_lnp.lx up the same route.  Finally with one instance
of lnpmsg listening on ir-server (A) and another instance of lnpmsg
listening on ir-server (B), I ran the helloworld_lnp program on the physical
RCX.  I did have to increase RCX_TIMEOUT to 500, but everything otherwise
works as expected.

I also tried the same sequence using BrickEmu (with a ROM image from my RCX)
instead of the USB IR tower.  The only anomaly was that "unlock firmware"
fails, but everything else seems to work fine.


Thanks,
Matthew


Subject: 
Re: Preserving old-school Mindstorms resources
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sat, 9 May 2009 12:14:06 GMT
Viewed: 
28420 times
  
Hey folks

I've created a very basic site here: http://www.rcxzone.com/

When I say very basic I mean VERY basic.. it's just an empty instance
of mediawiki, but I'll look to adding content when I get a chance.
Any help appreciated.

Cheers
Tom

On 20/04/2009, at 6:29 PM, Joe Bradley wrote:

Revised version [BrickOS patches] at
http://sourceforge.net/tracker/?
func=detail&aid=2722649&group_id=58151&atid=486699

Now for Bibo....  I have merged these patch rollup collections
with Bibo
(where appropriate) and have posted the resulting diff files to
http://sourceforge.net/tracker/?
func=detail&aid=2773502&group_id=58151&atid=486699

I have found two problems with the patches. I narrowed down the
problems to
specific patches from the Bibo set. However the symptoms are
identical under
BrickOS so I assume they would be linked to the same patches there.

Patch 10: Under Ubuntu with the usb tower, this causes firmdl3 to
exit with
error "read: resource temporarily available". However the light
does light up on
the tower for a small moment.

Patch 11: This seems to do something funny with the motors. Power
does not seem
to be supplied to the motors. when running the motor, the arrows
appear on the
lcd however there is no power being outputted.


Subject: 
Simple Lego traffic light
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Thu, 30 Apr 2009 22:12:00 GMT
Viewed: 
27593 times
  
After all the amazing post across lugnet the past few weeks, it feels
a bit lame putting this one up:

http://rubyredbricks.com/2009/4/27/simple-traffic-light

I guess once it's running up on an RCX it'll be a bit more interesting.

On the topic of RCX - and the whole old-school Mindstorms
preservation idea - I haven't forgotten about it. I've registered a
domain and will aim to get a wiki up and running over the weekend.

Cheers
Tom


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Wed, 22 Apr 2009 02:50:53 GMT
Viewed: 
27362 times
  
I have updated the Bibo Patch Rollup Collection posted to SourceForge at
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699

The primary changes are in Patch 11, which provides DCC support, and the key
change in that patch was the modification of some assembly code that
performed motor controller bitmasking.

Still known to be outstanding is an issue using firmdl3 on Linux when using
a USB IR tower.


Thanks,
Matthew


Subject: 
Re: Preserving old-school Mindstorms resources
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Tue, 21 Apr 2009 04:16:09 GMT
Viewed: 
28677 times
  
Patch 10: This works for me under Cygwin with a USB tower, but some of the
files such as rcx_comm.c have a bit of platform-specific code.

Patch 11: I've noticed that the linker command file is a little different in
Bibo than it was in BrickOS.  If _motor_controller is 0x00 in bibo.ld and
dm_mask is set to 0x00 in dmotor.c dm_init(), there is "regular" motor
output; if _motor_controller is the BrickOS value of 0x80, DCC motor output
functions as expected.


Subject: 
Re: Preserving old-school Mindstorms resources
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Mon, 20 Apr 2009 18:29:14 GMT
Viewed: 
28211 times
  
Revised version [BrickOS patches] at
http://sourceforge.net/tracker/?func=detail&aid=2722649&group_id=58151&atid=486699

Now for Bibo....  I have merged these patch rollup collections with Bibo
(where appropriate) and have posted the resulting diff files to
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699

I have found two problems with the patches. I narrowed down the problems to
specific patches from the Bibo set. However the symptoms are identical under
BrickOS so I assume they would be linked to the same patches there.

Patch 10: Under Ubuntu with the usb tower, this causes firmdl3 to exit with
error "read: resource temporarily available". However the light does light up on
the tower for a small moment.

Patch 11: This seems to do something funny with the motors. Power does not seem
to be supplied to the motors. when running the motor, the arrows appear on the
lcd however there is no power being outputted.


Subject: 
Re: Preserving old-school Mindstorms resources
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sun, 19 Apr 2009 03:02:41 GMT
Viewed: 
28102 times
  
A very useful site is the cs university page here:
http://www.cs.brown.edu/courses/cs148/old/2004fall/brickos.shtml
Agreed.  There is also a set of pages from the following school year at
http://cs.brown.edu/courses/csci1480/old/2005/brickOS/quickstart.html .
Unfortunately (at least from a code merge perspective), their "version 1.2"
is based on BrickOS 0.2.5.  The lnp_printf functionality has been adapted
and included in the recently-posted rollup patches, but incorporating other
modifications, such as "Reliable LNP," is more involved due to the
difference in BrickOS versions.

A page of patches: http://carl.troein.com/
[@Carl]: Please correct me if I'm wrong, but I believe these patches are
already included in the rollup posted to SourceForge?

If the SourceForge project wiki for BrickOS could be enabled....

I've noticed another thing that is disappearing is the custom sensors and
multiplexor boards that were created for the RCX....


Thanks,
Matthew


Subject: 
Re: BrickOS Patches and Development
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sun, 19 Apr 2009 02:38:55 GMT
Viewed: 
26343 times
  
Now for Bibo....  I have merged these patch rollup collections with Bibo
(where appropriate) and have posted the resulting diff files to
http://sourceforge.net/tracker/?func=detail&aid=2773502&group_id=58151&atid=486699

Most of this follows the pattern of the previous patch rollup collection for
BrickOS, with the following notes:
* 00 - Update configuration and make slight makefile modifications to work
with Cygwin
* 10 - As Carl noted, there are similarities between rcxtty.c and
rcx_comm.c.  I updated this patch to add code to rcx_comm.c that previously
was only in rcxtty.c.  There are still some differences (such as in return
types, use of exit(), and FileDescriptor handling), but this should reduce
the gap.
* 13 - I originally added LegOShrink as lnp_shrink (due to the OS naming
issue) but have added it here as lnpmsg.
* 16 - [@Carl]: I have not included the edgecount patch.  Most of the
edgecount code appeared to be fairly straightfoward to incorporate into
Bibo; however, the assembly code in ds_interrupt in dsensor.c is a little
different, which could impact the edgecount patch.  If you have the time to
take a look at it, that would be great, as it would be nice to have it
included.


Thanks,
Matthew


Subject: 
Re: Preserving old-school Mindstorms resources
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Sat, 18 Apr 2009 09:24:44 GMT
Viewed: 
27372 times
  
A very useful site is the cs university page here:
http://www.cs.brown.edu/courses/cs148/old/2004fall/brickos.shtml
Plenty of useful tutorials and instructions. It would be unhelpful to have it
disappear.
All of the stuff at the legos/brickos sourceforge pages, however a backup
probably isn't needed of these.
A age of patches: http://carl.troein.com/

These are just the ones off the top of my head.



Next Page:  5 more | 10 more | 20 more

Redisplay Messages:  Brief | Compact

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR